реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Программирование "fuses" в серийном производстве, Есть ли "слово конфигурации fuses" в AVR ?
OLEG_BOS
сообщение Feb 12 2007, 23:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639



Описание проблеммы: Разработано устройство на базе AVR микроконтроллера. Переданы документы в производство в том числе и собственно сама "прошивка" для микроконтроллера в виде .hex файла. В макетном варианте проблем с программированием микроконтроллера нет : запустил программу, вставил кабель в устройство, загрузил прошивку, выставил fuses, нажал кнопочку и ввуля - вот готовое устройство.

В серийном производстве возникают вопросы именно по fuses. Проблемма именно в правильной установке fuses. Присутсвует "человеческий фактор": при неправильной установке fuses человеком, который программирует устройства приводит к тому що устройство не работает.

Вопрос: Есть ли возможность в самом файле .hex задать состояние fuses при программировании микроконтроллера AVR ? Просто я ранее работал с PIC-контроллерами - там таких проблем нет: слово конфигурации (fuses) можно передавать в самом .hex файле.
Как можно решить проблемму "человеческого фактора" при программировании AVR? Кто как делает ? Поделитесь пожалуйста опытом ! smile.gif

Заранее благодарен за ответы smile.gif

P.S. Производство мелко-серийное - заказывать "заказные" кристалы AVR нет возможности wink.gif
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 13 2007, 00:10
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(OLEG_BOS @ Feb 12 2007, 23:55) *
Вопрос: Есть ли возможность в самом файле .hex задать состояние fuses при программировании микроконтроллера AVR ? Просто я ранее работал с PIC-контроллерами - там таких проблем нет: слово конфигурации (fuses) можно передавать в самом .hex файле.
Как можно решить проблемму "человеческого фактора" при программировании AVR? Кто как делает ? Поделитесь пожалуйста опытом ! smile.gif

Увы, в отличии от PIC, здесь такой возможности изначально не предусмотрено. Это тем более досадно по мере увеличения числа фьюзов, зависимость назначения и самого факта существования от кристалла, потому как одно дело компилятор сам разберется и отругается, если что, и совсем другое - описывать их уже для программатора.

Выход, полагаю (и применяю) только один - не пользоваться интерактивными программаторами вообще, а использовать те, которые позволяют задавать фьюзы в командной строке (avreal, к примеру). Тогда на производство передаем один-два хекса и .bat для программирования. При таком подходе у нас, например, никогда не было проблем.
Go to the top of the page
 
+Quote Post
arttab
сообщение Feb 13 2007, 06:00
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



да нет проблем
например avreal в командной строке можно и байт Fuse передать. для производства передаем набор файлов в том числе и bat. внем все прописываем и им остается только его запустить
ponyprog можно сделать скрипт файл. и все ок. + вариант: Точно не помню, но если им считать (еще с не лоченой) как устройство и выставить Fuse и сохранить это в файл, то и Fuse там будут. такое для стерха проходило


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
plombir
сообщение Feb 13 2007, 08:53
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



Чтобы не возникало у нас проблем с изготовителем, типа компьютер 286, нет COM, нет USB выхода, и т.д. был собран универсальный маленький программатор по SPI на M8 + Flash 4Mбайта (на все случаи жизни) + 2 светодиода и одна кнопка.
Уже в двух серийных девайсах такой программатор применяем.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 13 2007, 12:48
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(arttab @ Feb 13 2007, 07:00) *
да нет проблем
например avreal в командной строке можно и байт Fuse передать. для производства передаем набор файлов в том числе и bat. внем все прописываем и им остается только его запустить
ponyprog можно сделать скрипт файл. и все ок. + вариант: Точно не помню, но если им считать (еще с не лоченой) как устройство и выставить Fuse и сохранить это в файл, то и Fuse там будут. такое для стерха проходило


Да тоже поддерживаю. Здесь лучший вариант - пакетный программатор. Нажал одну кнопку и - Ok.


Я даже и не в производстве его использую. Если у Вас 20 изделий и на каждое ещё несколько вариантов, то как вспомнишь где какие фузы? А тут задокументировано всё. Бывают также изделия с разными HEX и с общими EEP файлами к примеру. Короче пакетный программатор здесь просто незаменим.
Go to the top of the page
 
+Quote Post
gormih
сообщение Feb 13 2007, 12:52
Сообщение #6


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



в AS2M есть такое понятие, как проект. в нем хранится полная информация, как чем и с какими fuse программировать микроконтроллер.
Советую пользоваться этим. Программатор относительно дешевый, внутрисхемный...


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Artur Nikitin
сообщение Feb 21 2007, 16:42
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-11-06
Из: Набережные Челны
Пользователь №: 22 856



При программировании Avreal-ом я неправильно выставил фузы. Захотел изменить, а проц больше не шьется. Бывший коллега сказал что исправлял подобную проблему параллельным программатором. Можно ли тем же авреалом все исправить?
З.Ы. при прошивке пишет что не может засинхронизироваться


--------------------
начинающий программист
Go to the top of the page
 
+Quote Post
OLEG_BOS
сообщение Feb 21 2007, 18:20
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639



Спасибо всем ответившим, за Ваши рекомендации и предложения по вопросу который я задавал Вам smile.gif . Я остановил свой выбор на PonyProg + STK200, поскольку PonyProg позволяет создавать скриптовый файл где можна задать все параметры программирования кристала. STK200 у меня уже был и использовался ранее. Приятно, но вся процедура программирования осуществляется двумя кликами мыши, что таким образом сводит к минимуму "человеческий фактор" smile.gif

Цитата
....При программировании Avreal-ом я неправильно выставил фузы.


Я вот тоже: пока поставил на поток сам процесс программирования кристалов, пару раз по недопонимаю изученных ранее DataSheet выставил неправильные фюзы: 1-й раз выставил фюз внешнего тактирования (а у меня в схеме используется кварцевый резонатор). Соответсвенно после этого ни о какой синхронизации и речи немогло и быть. Ситуацию спасло изучение DataSheet и чудо wink.gif - на плате изделия имелась еще одна микросхема с кварцевым резонатором. Подав от нее на контроллер тактовый сигнал, я быстро научил контроллер обратно синхронизироваться wink.gif
2-й раз был более печальным sad.gif Изучив внимательно DataSheet от Atmel, где черным по белому написано: 0 (programmed) и 1 (unprogrammed) и недопоняв описания Help от PonyProg - я выставил бит RSTDISBL - как по описанию от Atmel в 1 (unprogrammed). И это было моей роковой ошибкой sad.gif кристал уже не отзывался на команды программатора (и мне кажется уже никогда не будет на них отзыватся).
Ситуацию спасла только замена на другой контроллер (корпус TQFP-32) wink.gif

Долго думая над тем что я сделал не так, я внимательно перечитал еще раз DataSheet от Atmel и Help от PonyProg. И нашел в PonyProg такое описание "...bits rapresentation (note that a 1 means programmed)". Тоесть в PonyProg все точностью до наоборот тогоже описания от Atmel wink.gif

Так что уважаемый Artur Nikitin, если Вы нетрогали RSTDISBL - то вероятно кристал можно еще научить синхронизироватся и с помощью Avreal-программатора wink.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 21 2007, 19:17
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(OLEG_BOS @ Feb 21 2007, 17:20) *
Я остановил свой выбор на PonyProg + STK200, поскольку PonyProg позволяет создавать скриптовый файл где можна задать все параметры программирования кристала.
Последняя версия понипрога датирована 2005г. Вероятнее всего автор потерял к нему интерес. Вы не боитесь, что в будущем заложите в разработку неподдерживаемый понипрогом процессор и придется менять программу программатора (каламбурsmile.gif) и переучивать персонал? avreal точно также запускается двумя кликами по иконке .bat-файла, а в случае перехода придется сменить лишь содержимое этого .bat, с точки зрения же персонала все останется как и было.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Artur Nikitin
сообщение Feb 22 2007, 10:25
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-11-06
Из: Набережные Челны
Пользователь №: 22 856



Цитата(OLEG_BOS @ Feb 21 2007, 18:20) *
...если Вы нетрогали RSTDISBL - то вероятно кристал можно еще научить синхронизироватся и с помощью Avreal-программатора wink.gif

Трогал только cksel. но все равно не синхронизируется


--------------------
начинающий программист
Go to the top of the page
 
+Quote Post
boez
сообщение Feb 22 2007, 14:44
Сообщение #11


Частый гость
**

Группа: Новичок
Сообщений: 79
Регистрация: 1-11-06
Пользователь №: 21 868



Тогда вам проще - просто подайте на вход кварцевого генератора (посмотрите по даташиту какая нога - Х1 или Х2 у него вход) сигнал в районе от 1 до нескольких мегагерц (например от соседнего рабочего контролера) и все будет хорошо. Это вы его перевели в режим внешнего тактирования. Очень часто бывает у "опытных" установщиков CKSEL - просто классика smile.gif.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 23 2007, 10:53
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Тоже задумываюсь над программированием в серии. Первое и главное условие, которое я выработал, это необходимость обеспечить программирование МК в "режиме обезьянки". В следствие этого родилась идея разработать программатор на основе наладонника (купить недорогой б/у не проблема). Т.е. я прописываю хекс и файл с фузами в наладонник. Специально разработанная программа прописывает это в МК с помощью специально разработанного программатора. Причем желательно иметь в программаторе разъем для установки платы, через который она будет запитана. В итоге программирование сведется к установке платы и нажатию кнопки. Если что не так - еще раз жмем кнопку. Кто поможет осуществить идею?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Artur Nikitin
сообщение Feb 27 2007, 13:53
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-11-06
Из: Набережные Челны
Пользователь №: 22 856



Цитата(smk @ Feb 23 2007, 10:53) *
Тоже задумываюсь над программированием в серии. Первое и главное условие, которое я выработал, это необходимость обеспечить программирование МК в "режиме обезьянки". В следствие этого родилась идея разработать программатор на основе наладонника (купить недорогой б/у не проблема). Т.е. я прописываю хекс и файл с фузами в наладонник. Специально разработанная программа прописывает это в МК с помощью специально разработанного программатора. Причем желательно иметь в программаторе разъем для установки платы, через который она будет запитана. В итоге программирование сведется к установке платы и нажатию кнопки. Если что не так - еще раз жмем кнопку. Кто поможет осуществить идею?

А зачем наладонник, может можно это на МК сообразить, развести платку, написать программку, ну и воткнуть ту же кнопку

Сообщение отредактировал Artur Nikitin - Feb 27 2007, 13:55


--------------------
начинающий программист
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 27 2007, 13:58
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
А зачем наладонник, может можно это на МК сообразить, развести платку, написать программку, ну и воткнуть ту же кнопку


Можно и на МК. Но я думаю наладонник в этом смысле практичней и дешевле и быстрее сделать можно. Ну и на будущее задел хороший в виде КПК.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Artur Nikitin
сообщение Feb 28 2007, 09:49
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-11-06
Из: Набережные Челны
Пользователь №: 22 856



Цитата(boez @ Feb 22 2007, 14:44) *
Тогда вам проще - просто подайте на вход кварцевого генератора (посмотрите по даташиту какая нога - Х1 или Х2 у него вход) сигнал в районе от 1 до нескольких мегагерц (например от соседнего рабочего контролера) и все будет хорошо. Это вы его перевели в режим внешнего тактирования. Очень часто бывает у "опытных" установщиков CKSEL - просто классика smile.gif.

Да, перевел в режим внешнего тактирования (с кварца), потом обратно (CKSEL=2). После этого внешнее тактирование не помогало (подавал с LPT, с осциллографа).
На счет "опытных" настройщиков CKSEL. Что будет, если физически установлен кварц, а настройки CKSEL выставить в режим керамического резонатора? По даташиту внешний кварц - это Crystal Oscillator или Ceramic Resonator. И что будет если поствить вообще на Ext. RC Oscillator?


--------------------
начинающий программист
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th July 2025 - 20:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016