Полная версия этой страницы:
ATmega1281V не стартует
Al Jumper
Nov 2 2009, 17:34
При времени нарастания питания от 0 до 3.3В порядка 10-20 мс МЕГА встает враскорячку, не отзывается по ISP и вообще не подает признаков жизни. Ресет хороший, генерится стабилизатором TPS70158, поднимается резко примерно через 100 мс после достижения VCC 3.3 В. При резком нарастании VCC (~1мс) все нормально. При совсем медленном (1-2 секунды) - тоже. Кто с таким сталкивался - HELP!!!

Раньше с мегой103 такого никогда не было.
Огурцов
Nov 2 2009, 17:55
Попробовать встроенный bod ?
Al Jumper
Nov 2 2009, 20:30
Цитата(Огурцов @ Nov 2 2009, 20:55)

Попробовать встроенный bod ?
Пробовал - бесполезно. BOD генерит RESET , а ресетом процессор из этого раскоряченного состояния не выводится. Никаким. Пока напрашивается только решение сделать ключ, подающий питание на МЕГУ уже после того, как VCC установилось. Но это означает переразводку платы, чего не хотелось бы.
А какой генератор используете, может он не запускается?
И как определили, что проц встал в раскорячку? Может, он в бутлоадер влез, а вы там ничего не написали?
Лучше всего, конечно, такие ситуации с эмулятором отлавливать. У меня сейчас xmega32 + JTAGICE mkII прекрасно отслеживают пропадание и включения питания проца. При включении программа идет по вектору ресета (у меня в бутлоадер), так ставим брекпойнт и рассматриваем ситуацию!
Al Jumper
Nov 3 2009, 07:20
Цитата(V_G @ Nov 3 2009, 03:03)

А какой генератор используете, может он не запускается?
И как определили, что проц встал в раскорячку? Может, он в бутлоадер влез, а вы там ничего не написали?
Лучше всего, конечно, такие ситуации с эмулятором отлавливать. У меня сейчас xmega32 + JTAGICE mkII прекрасно отслеживают пропадание и включения питания проца. При включении программа идет по вектору ресета (у меня в бутлоадер), так ставим брекпойнт и рассматриваем ситуацию!
Враскорячку, потому чтот ни на ресет ни на попытки обмена с компом по ISP (через AVREAL) он не реагирует. Бутлоадер у меня не используется - отключен фузами. JTAG тоже не используется и отключен.
MrYuran
Nov 3 2009, 07:31
Цитата(Al Jumper @ Nov 2 2009, 23:30)

Пробовал - бесполезно. BOD генерит RESET , а ресетом процессор из этого раскоряченного состояния не выводится. Никаким.
Он не только генерит ресет, но и удерживает его, пока не установится нормальное питание (должен по идее), не допуская вставание "враскорячку"
На MSP430 подобная проблема решилась установкой внешнего супервизора на правильное напряжение
Al Jumper
Nov 3 2009, 08:23
Цитата(MrYuran @ Nov 3 2009, 10:31)

Он не только генерит ресет, но и удерживает его, пока не установится нормальное питание (должен по идее), не допуская вставание "враскорячку"
На MSP430 подобная проблема решилась установкой внешнего супервизора на правильное напряжение
Даже если держать ресет вручную (кнопкой) на время поднятия питания с большим запасом, то все равно то же самое. Зависит только от скорости нарастания VCC. Внешний супервизор есть, уже писал, что ресет поднимается через 100 мс после установки питания. Клок от внешнего генератора, его амплитуда тоже устанавливается с запасом раннее, чем отпускается ресет.
Огурцов
Nov 3 2009, 09:38
Поднять напряжение до 5V, если ничего другое не сгорит. А вообще, может экземпляр такой или партия ? Что там, в ерратах пишут ?
А параметр Vpsr (Power-on slope rate) Min=0.01V/ms Max=4.5V/ms (стр. 375 doc2549) Вам ничего не говорит ?
Цитата(maugli @ Nov 3 2009, 14:42)

А параметр Vpsr (Power-on slope rate) Min=0.01V/ms Max=4.5V/ms (стр. 375 doc2549) Вам ничего не говорит ?
А что с ним не так ? 3.3в/(10..20мс) = 0.165..0.33в/мс - в рамках.
Честно говоря, первое подозрение - на клок.
Но раз уж он от геренатора и стабилен, не знаю (может ещё раз его проверить - а) заменить генератор, б) запитать генератор от отдельного постоянного питания, в) включить последовательно с клоком R~33ом, г) попробовать внутренний RC генератор меги, д) поднять питание меги до 5в...).
За сколько мсек у меня в проекте на 1281 (не V) растёт питание до 5в смогу только в чт глянуть (даже не задумывался об этом - всё на BOD спихнул, проблем не было. один раз с аналогичными симптомами не запустился генератор - почесал затылок, ткнул осциллографом в кварц -> заменил его - всё ок).
Цитата(Ronin @ Nov 3 2009, 21:11)

Честно говоря, первое подозрение - на клок.
Цитата(Al Jumper)
При времени нарастания питания от 0 до 3.3В порядка 10-20 мс МЕГА встает враскорячку...
Может мега через защитные диоды запитывается от клока? И её от такого питания ставит с ступор? В старом даташите на мегу128 написано:
"Input High Voltage, XTAL1 pin, External, Clock Selected - Max: Vcc + 0,5V" Получается нельзя подавать клоки ДО подачи питания? Проверьте, переключив мегу на внутренний RC. (И отрезав соответственно генератор)
defunct
Nov 3 2009, 23:11
Цитата
При времени нарастания питания от 0 до 3.3В порядка 10-20 мс МЕГА встает враскорячку
А SUT фузы прошиты в соответствии с указанным нарастанием VCC?
14 CK + 65ms?
demiurg_spb
Nov 4 2009, 10:45
Установите в фузак CKDIV=8, а в программе инициализации MCU (лучше в самом её конце) переходите на CKDIV=1.
И будет счастье.
alevnew
Nov 4 2009, 13:29
Давно заметил такую проблему с мегами (первоначально заметил на ATM128, потом то же самое на ATM32. (где-то в 2005 году экспериментировал).
Видимо это семейное у них.
Исследовал в свое время эту проблему.
Выявил на ATMega128 - когда проц впадает в такое состояние, у него на выводе PEN низкий уровень становится.
Причем никакие подтяжки на VCC его не могут поднять. Если напрямую на VCC замкнуть пи этом то ток течет бешеный через эту ного, процессор греется.
У меня при этом он откликался на команды ISP по SPI без команды входа в режим ISP (т.е. как бы изначально находился в режиме ISP).
Но при этом записаться туда ничего не могло и читался мусор.
Из этого состояния проц выводился только передергиванием питания.
Причем вероятность входа в это состояние значительно повышалась, если запитать AVCC от другого стабилизатора, к примеру.
После этого все мои девайсы на мегах содержат внешний watchdog с коммутацией питания. Если после подачи питания с проца не поступают прямоугольные импульсы, то питание снимается и подается вновь.
С тех пор больше с этой проблемой гиморроев не имею. правда стоимость девайса чуть увеличивается.
Al Jumper
Nov 4 2009, 18:50
Да, со 128 тоже такая проблема была, но там заметил четкую закономерность - проц не любит быстро растущий VCC. С SUT экспериментировал с разными - безрезультатно. На клок грешить на приходится. Генератор питается от того же источника. Пробовал с кварцем. Только с внутренним RC еще не пробовал. Попробую, но, предполагаю, что ничего не даст. Самое неприятное то, что источник питания находится в системе заказчика, и какое там будет нарастание неизвестно. В общем, похоже, придется сделать что-то похожее на то, что Вы предлагаете с внешним ключом по питанию.
У меня 1281 (не V) на 5в с кварцем 14.7456 напряжение растёт примерно так:
- от t=0 до 1-1.5мс вырастает до 3в
- до t=2.5мс растёт медленнее до 4в
- до t=7.5мс ещё медленее до 5в
Проблем не было, устройств штук 50, каждое раз по 10 запускалось.
CKDIV8=1,CKOUT=1,CKSEL=7,SUT=2
alevnew
Nov 11 2009, 05:02
Цитата(Ronin @ Nov 10 2009, 16:27)

Проблем не было, устройств штук 50, каждое раз по 10 запускалось.
Проблема запуска у ATMega при определенных временах нарастания питания действительно есть. Иногда сталкивался, что вроде стартует устойчиво, 50 раз включишь-выключишь. А полежит полчасика-часок выключенным, включаешь - опа, висяк полный. Переткнешь питание - опять хоть сто раз запускай.
Поэтому предпочитаю перестраховываться "сторожевым псом" с перезапуском по питанию.
Особенно, если заказчику отдается не прибор в сборе, а только модули с процессором - неизвестно, какое питание у него будет.
Запускалось конечно не подряд, лежало и по дню и более между стартами. И у заказчика норм. Буду считать повезло. Просто сам ни на 128й ни на 1281ой пока не столкнулся (тьфутьфутьфу), городить такой огород совсем нет желания каждый раз. Но на случай когда такое будет критично важно, буду иметь ввиду.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.