Периодически слетает бутлоадер arduino с самоделки 328 + cp2102

Jaguar
Offline
Зарегистрирован: 18.02.2016

Добрый день, коллеги электронщики!

Подскажите, в чем может быть загвоздка. Собрал работоспособную систему связку cp2102-atmega328.

3.3V 8MHz

Прошил сначала по SPI atmega328 бутлоадером через arduino uno с настройками  Pro mini 3,3v 8MHz.

Отлично - увидел мегу через ARduino IDE. Все шьется через Arduino IDE замечательно.

Но иногда раз на 5-ый или 7-ой скетч недозагружается до конца, и почему-то как результат бутлоадер слетает.

Закономерность следующая - чем боьше скетч - тем выше вероятность. Блинк и 20 раз может продержаться. А программа килобайт на 25 раз на третий сглючит.

При этом схема работает стабильно, глючит так только при перепрошивке.

Грешу вот на что....

Я соединил с DTR cp2102 reset atmega328p  через 100 nf. Ну чтобы кнопоцку не жмакать каждый раз.

Может там что-то иногда проскакивает? Может какие разницы потенциалов проскакивают, и контроллер самопроизвольно входит в режим программирования? Ну и затирает бутлоадер.

Поделитесь опытом, как понадежнее сделать. Может вообще отказаться от соединения Reset через 100nf на DTR и только вручную. ресетить при перепрошивке?

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а не 10 нан ли должен быть конденсатор? (Для 2102)

А диод параллельно 10 ком на + питания присутствует?

Jaguar
Offline
Зарегистрирован: 18.02.2016

Нет, диода нет. А зачем его ставят?

Я в типовых схемах встречал диод, но крайне редко

Конденсатор видел 100нф

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Jaguar пишет:

и контроллер самопроизвольно входит в режим программирования? Ну и затирает бутлоадер.

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

Jaguar
Offline
Зарегистрирован: 18.02.2016

Я ничего не выставлял. Я просто жмакал пнкт меню "Записать загрузчик" в Arduino IDE, предварительно выставив на прошику atmega328p 3.3v 8MHz. По теории все фьюзы там Arduino IDE через само должно записать правильно. Разве не?

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Jaguar пишет:

Я ничего не выставлял. Я просто жмакал пнкт меню "Записать загрузчик" в Arduino IDE, предварительно выставив на прошику atmega328p 3.3v 8MHz. По теории все фьюзы там Arduino IDE через само должно записать правильно. Разве не?

если так, то твой рассказ о затирании загрузчика - ложь.

Jaguar
Offline
Зарегистрирован: 18.02.2016

Я предположил, что затирается загрузчик.

Последовательность такая.

1. Шью по SPI загрузчик в самодельную atmega328p+cp2102 через UNO.

2. Пробую увидеть atmega328 через Arduino IDE - успешно

3...~10. Закачиваю разные скетчи - успешно

11. Закачиваю скетч условно одинадцатый раз - недокачивает.  Отваливается по таймауту.

12. Больше не закачивается никакой скетч, пока по SPI опять заново не перепрошью загрузчик.

13. GO TO 1.

Количество удачных перепрошивок обратно пропорционально размеру скетча. Можно и 25 кб втолкнуть, но пару раз.... Или 3 кб, но раз 12.

Jaguar
Offline
Зарегистрирован: 18.02.2016

Ах да - cp2102 я впаивал и обвязывал сам феном.

Собрал промышленный образец миниатюрый. USB-Передатчик радиоканальный на 2км уместился на плате 3х3см. 

Вот еще бы не глючил....

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

чтобы убедиться, что бутлоадер не затирается, нужно залить скетч размером atmega328.upload.maximum_size=30720 и закрыть вопрос о затирании загрузчика.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

просмотрел файл боардс - какие-то нескладушки с математикой у дуино писателей

diecimila.menu.cpu.atmega328.upload.maximum_size=30720
diecimila.menu.cpu.atmega328.upload.maximum_data_size=2048

mini.menu.cpu.atmega328.upload.maximum_size=28672
mini.menu.cpu.atmega328.upload.maximum_data_size=2048

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Jaguar пишет:

Нет, диода нет. А зачем его ставят?

Я в типовых схемах встречал диод, но крайне редко

Конденсатор видел 100нф

Для протекания тока: диод - плюс источника питания - минус источника питания - наш компонент - диод

Jaguar
Offline
Зарегистрирован: 18.02.2016

ua6em, это-то понятно. но я питаюсь от usb через ams1117 на 3.3в по жестко разведенной плате, там не будет ошщибочной полярности.

Слышщал, диоды ставят для предотвращения переходных процессов со всплеском обратного тока. но тут он врядли имеет место быть

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Jaguar пишет:

ua6em, это-то понятно. но я питаюсь от usb через ams1117 на 3.3в по жестко разведенной плате, там не будет ошибочной полярности.

Слышщал, диоды ставят для предотвращения переходных процессов со всплеском обратного тока. но тут он врядли имеет место быть

Любой конденсатор создает переходные процессы, а он у вас 100n, по простому замкнуть цепь разряда,  реле для этих же целей блокируют, при отключении на коллекторе начинает расти напряжение и диодом "замыкаем" на БП

По резету: в мою бытность для формирования сигнала RESET использовалась копеечная микросхема DS1818 или нечно аналогичное, для AVR она не применяется, толи внутри уже есть, может кто просветит

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaguar, а вы пробовали что-делать по диагностике проблемы , или только горестно вздыхать будете? Простор для экпериментов огромный. Можно начать с того, что шить на другом компе и с другим кабелем. Не помогло? -прикрутить другой преобразователь usb-uart.  Не помогло? Поменять МК. 

Jaguar
Offline
Зарегистрирован: 18.02.2016

Да, безусловно я пытался найти закономерности в этой неисправности.

По схемотехнике и проверке платы существует целый ряд сложностей. 

Во-первых в ams1117 уже по умолчанию между выводами GND и Vout сопротивление всего 1 Ком, поэтому на схеме во многих местах дает не бесконечное сопротивление, а вполне себе измеряемое, то есть сложно оценить, есть ли коротыши или подтравливания от флюса, или же килоомы сопротивления между двумя точками - это схематически корректны.

Во-вторых, после того, как загрузчик слетает, приходится отпаивать RFM-модуль, ибо когда он смонтирован с atmega по SPI, прошить ее по SPI уже не удается - видимо есть реакция на сигналы программатора и у RFM. Хотя SS не активирован. Я не знаю почему возникает конфликт с программатором, но он возникает.

Поэтому я обратился за помощью в форум.

Попробую снять с платы по максимуму обвязку и посмотреть еще раз. Но это сложно. там часть компонентов SMD формфактора 0603 плюс светодиоды, которые феном не хорошо выпаивать. приходится под лупой паяльничком орудовать. А это не очень хорошо, так как у cp2102 корпус qfn28, дорожки мелкие. И не то, чтобы коротышей боюсь - их флюсом снять не проблема. У меня дорожи по 0.15мм. Отстанут от платы через 4-5 нагреваний. Короче это тот еще процесс...

Изготавливать травить такую новую плату и монтировать туда все - еще часов 5-6 работы - это роскошь.

Именно поэтому хочется не столько паяльником пробовать, сколько в теории предугадать проблему.

 

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Jaguar пишет:

Во-вторых, после того, как загрузчик слетает

ты долбоёб, или где - я тебе вчера объяснил, что не слетает у тебя загрузчик.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaguar, всё проверяется только методом земены.  Как то однажды, ещё в доардуиновские времена, я собрал программатор.Он состоял из меги8 и новомодного тогда преобразователя интерфейсов ft232bm. И он едва работал после сборки, всё глючило безобразно. Я поменял всё, -мегу8, всю рассыпуху включая даже кварцы. -Ноль результата. Даже с автором программатора списывался.  На ft232 подозрений  небыло, -при замыкании rx и tx было чёткое эхо.  Поэтому когда заменил уже всё, а результата не было решился наконец поменять ft232, особо не надеясь на удачу -Но программатор после замены взял да заработал как надо.. К чему это я -ничего нельзя исключать, и не в чём нельзя быть уверенным заочно.

Jaguar
Offline
Зарегистрирован: 18.02.2016

Все оказалось банальнее! Никогда не верьте наклейке "безотмывочный флюс". Я прошелся зубной щеткой с фэри по плате, смыл теплой водой, высушил, и все заработало стабильно . Приепрошил самые страшные скетчи по 30 раз - тикает как часики

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Jaguar пишет:

Все оказалось банальнее! Никогда не верьте наклейке "безотмывочный флюс". Я прошелся зубной щеткой с фэри по плате, смыл теплой водой, высушил, и все заработало стабильно . Приепрошил самые страшные скетчи по 30 раз - тикает как часики

спиртобензиновую смесь сделай и мой свои платы: бензин "калоша", денатурат 1:1

Jaguar
Offline
Зарегистрирован: 18.02.2016

Можно, конечно , поаккуратнее изготовить и подрезать, да т поставить резонатор поменьше раза в 4, ну и так сойдет для тестов :)

Jaguar
Offline
Зарегистрирован: 18.02.2016

Спасибо за рецепт промывки !

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Клапауций 234 пишет:

спиртобензиновую смесь сделай и мой свои платы: бензин "калоша", денатурат 1:1

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

Jaguar
Offline
Зарегистрирован: 18.02.2016

Угу, спасибо