Периодически слетает бутлоадер arduino с самоделки 328 + cp2102
- Войдите на сайт для отправки комментариев
Добрый день, коллеги электронщики!
Подскажите, в чем может быть загвоздка. Собрал работоспособную систему связку 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 и только вручную. ресетить при перепрошивке?
а не 10 нан ли должен быть конденсатор? (Для 2102)
А диод параллельно 10 ком на + питания присутствует?
Нет, диода нет. А зачем его ставят?
Я в типовых схемах встречал диод, но крайне редко
Конденсатор видел 100нф
и контроллер самопроизвольно входит в режим программирования? Ну и затирает бутлоадер.
бутлоадер физически может сам себя затереть только в том случае, если ты неправильно прошил фьюзы устанавливающие размер загрузочной области.
Я ничего не выставлял. Я просто жмакал пнкт меню "Записать загрузчик" в Arduino IDE, предварительно выставив на прошику atmega328p 3.3v 8MHz. По теории все фьюзы там Arduino IDE через само должно записать правильно. Разве не?
Я ничего не выставлял. Я просто жмакал пнкт меню "Записать загрузчик" в Arduino IDE, предварительно выставив на прошику atmega328p 3.3v 8MHz. По теории все фьюзы там Arduino IDE через само должно записать правильно. Разве не?
если так, то твой рассказ о затирании загрузчика - ложь.
Я предположил, что затирается загрузчик.
Последовательность такая.
1. Шью по SPI загрузчик в самодельную atmega328p+cp2102 через UNO.
2. Пробую увидеть atmega328 через Arduino IDE - успешно
3...~10. Закачиваю разные скетчи - успешно
11. Закачиваю скетч условно одинадцатый раз - недокачивает. Отваливается по таймауту.
12. Больше не закачивается никакой скетч, пока по SPI опять заново не перепрошью загрузчик.
13. GO TO 1.
Количество удачных перепрошивок обратно пропорционально размеру скетча. Можно и 25 кб втолкнуть, но пару раз.... Или 3 кб, но раз 12.
Ах да - cp2102 я впаивал и обвязывал сам феном.
Собрал промышленный образец миниатюрый. USB-Передатчик радиоканальный на 2км уместился на плате 3х3см.
Вот еще бы не глючил....
чтобы убедиться, что бутлоадер не затирается, нужно залить скетч размером atmega328.upload.maximum_size=30720 и закрыть вопрос о затирании загрузчика.
просмотрел файл боардс - какие-то нескладушки с математикой у дуино писателей
Нет, диода нет. А зачем его ставят?
Я в типовых схемах встречал диод, но крайне редко
Конденсатор видел 100нф
Для протекания тока: диод - плюс источника питания - минус источника питания - наш компонент - диод
ua6em, это-то понятно. но я питаюсь от usb через ams1117 на 3.3в по жестко разведенной плате, там не будет ошщибочной полярности.
Слышщал, диоды ставят для предотвращения переходных процессов со всплеском обратного тока. но тут он врядли имеет место быть
ua6em, это-то понятно. но я питаюсь от usb через ams1117 на 3.3в по жестко разведенной плате, там не будет ошибочной полярности.
Слышщал, диоды ставят для предотвращения переходных процессов со всплеском обратного тока. но тут он врядли имеет место быть
Любой конденсатор создает переходные процессы, а он у вас 100n, по простому замкнуть цепь разряда, реле для этих же целей блокируют, при отключении на коллекторе начинает расти напряжение и диодом "замыкаем" на БП
По резету: в мою бытность для формирования сигнала RESET использовалась копеечная микросхема DS1818 или нечно аналогичное, для AVR она не применяется, толи внутри уже есть, может кто просветит
Jaguar, а вы пробовали что-делать по диагностике проблемы , или только горестно вздыхать будете? Простор для экпериментов огромный. Можно начать с того, что шить на другом компе и с другим кабелем. Не помогло? -прикрутить другой преобразователь usb-uart. Не помогло? Поменять МК.
Да, безусловно я пытался найти закономерности в этой неисправности.
По схемотехнике и проверке платы существует целый ряд сложностей.
Во-первых в ams1117 уже по умолчанию между выводами GND и Vout сопротивление всего 1 Ком, поэтому на схеме во многих местах дает не бесконечное сопротивление, а вполне себе измеряемое, то есть сложно оценить, есть ли коротыши или подтравливания от флюса, или же килоомы сопротивления между двумя точками - это схематически корректны.
Во-вторых, после того, как загрузчик слетает, приходится отпаивать RFM-модуль, ибо когда он смонтирован с atmega по SPI, прошить ее по SPI уже не удается - видимо есть реакция на сигналы программатора и у RFM. Хотя SS не активирован. Я не знаю почему возникает конфликт с программатором, но он возникает.
Поэтому я обратился за помощью в форум.
Попробую снять с платы по максимуму обвязку и посмотреть еще раз. Но это сложно. там часть компонентов SMD формфактора 0603 плюс светодиоды, которые феном не хорошо выпаивать. приходится под лупой паяльничком орудовать. А это не очень хорошо, так как у cp2102 корпус qfn28, дорожки мелкие. И не то, чтобы коротышей боюсь - их флюсом снять не проблема. У меня дорожи по 0.15мм. Отстанут от платы через 4-5 нагреваний. Короче это тот еще процесс...
Изготавливать травить такую новую плату и монтировать туда все - еще часов 5-6 работы - это роскошь.
Именно поэтому хочется не столько паяльником пробовать, сколько в теории предугадать проблему.
Во-вторых, после того, как загрузчик слетает
ты долбоёб, или где - я тебе вчера объяснил, что не слетает у тебя загрузчик.
Jaguar, всё проверяется только методом земены. Как то однажды, ещё в доардуиновские времена, я собрал программатор.Он состоял из меги8 и новомодного тогда преобразователя интерфейсов ft232bm. И он едва работал после сборки, всё глючило безобразно. Я поменял всё, -мегу8, всю рассыпуху включая даже кварцы. -Ноль результата. Даже с автором программатора списывался. На ft232 подозрений небыло, -при замыкании rx и tx было чёткое эхо. Поэтому когда заменил уже всё, а результата не было решился наконец поменять ft232, особо не надеясь на удачу -Но программатор после замены взял да заработал как надо.. К чему это я -ничего нельзя исключать, и не в чём нельзя быть уверенным заочно.
Все оказалось банальнее! Никогда не верьте наклейке "безотмывочный флюс". Я прошелся зубной щеткой с фэри по плате, смыл теплой водой, высушил, и все заработало стабильно . Приепрошил самые страшные скетчи по 30 раз - тикает как часики
Все оказалось банальнее! Никогда не верьте наклейке "безотмывочный флюс". Я прошелся зубной щеткой с фэри по плате, смыл теплой водой, высушил, и все заработало стабильно . Приепрошил самые страшные скетчи по 30 раз - тикает как часики
спиртобензиновую смесь сделай и мой свои платы: бензин "калоша", денатурат 1:1
Можно, конечно , поаккуратнее изготовить и подрезать, да т поставить резонатор поменьше раза в 4, ну и так сойдет для тестов :)
Спасибо за рецепт промывки !
спиртобензиновую смесь сделай и мой свои платы: бензин "калоша", денатурат 1:1
вдогонку, может быть непонятно - смесь в банку с широким горлом, бросаешь туда плату, откисает пинут пять, затем жёсткой кистью там же моешь, стряхиваешь смесь с платы, сушить полчаса.
Угу, спасибо