БЕДА - Arduino с COM портом
- Войдите на сайт для отправки комментариев
Здравствуйте!!!
Прошу помочь разобраться. Руководствуясь вот этой статьей robocraft.ru/blog/arduino/19.html собрал плату по управление МК ATmega8. Прошил в МК bootloader, а так же выставил фюзы по этой статье robocraft.ru/blog/arduino/51.html с помощью COM программатора Громова собрал его по этой статье easyelectronics.ru/avr-shag-pervyj-programmator.html . Скачал ArduinoIDE 1.0 (как я понял это последняя версия) и вот по этой статье robocraft.ru/blog/arduino/53.html решил проверить свою плату. Компиляция прошла успешно, а вот загрузка скетча в МК потерпеча неудачу.
Вот ошибка avrdude: stk500_getsync(): not in sync: resp=0x00 по смыслу понятно, что ПО необменялось с МК. По какой причине это произошло, что не правильно спаено, что не правильно сделано?????
Собирал такое-же, и ошибка была такая-же. Исправилось, когда джамперы поставил, изначально вообще о них забыл :-)? (Да, и не все шнуры подходят, нужен прямой).
К ПК плату я подключаю напрямую, а джамперы стоят на авто reset и на serial port
все равно такая ошибка
А сам контроллер запустился? при нажатии на кнопку сброса диод на 13-ой ноге мигает? И при заливке скетча диоды rx и tx мигают, или только один из них? Или может дело в версии программы, у меня работает с версией 0022 и из под windows, из под линукс на эту ардуину мне пока не удалось скетч залить...
3 раза мигнет rx и все
Это при заливке скетча? тогда получается контроллер ответа не даёт... Может где-то плохо пропаяно, транзисторы целые?
и при сбросе кнопкой светодиод мигает?
пранзисторы и все остальный детали новые, думаю что целые :-), при сбросе нет мигания
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
так пишет на версии 0022
У меня при нажатии на сброс мигает светодиод. Если всё правильно собрано и пропаяно, то я бы проверил fuse биты и перепрошил загрузчик. Причём собрано четыре именно таких платы и все работают нормально.
а можете мне дарь свой bootloader и настройку fuse плисссс
fuse (взял отсюда http://www.xakep.ru/magazine/xa/122/100/1.asp). С fuse битами надо очень аккуратно, а то потом перепрошить мк будет не просто.
Low Fuse 0xDF = 1101 1111
1 = Cksel0
1 = Cksel1
1 = Cksel2
1 = Cksel3
1 = Sut0
0 = Sut1
1 = Boden
1 = Bodelevel
High Fuse 0xCA = 1100 1010
0 = Bootrst
1 = Bootsz0
0 = Bootsz0
1 = Eesave
0 = CKOPT
0 = SPIEN
1 = WDTON
1 = RSTDSBL
Загрузчик взял из папки arduino-0022\hardware\arduino\bootloaders\atmega8
файл ATmegaBOOT.hex
1 = Bootsz0
0 = Bootsz0
это как так
Точно, там опечатка. Я сейчас не вспомню, это на другом компьютере. Но там в программе биты идут в том же порядке, что и в статье, только название одного буковкой или циферкой отличается. Опечатка в названии бита, конфигурационные значения правильные. Более точно смогу посмотреть только завтра.
все сделал изменений не каких
а мот быть что транзистор не правильный стаит
вместо BC547 стоит BC547B
и еще я заметил, что сперва мигает светик L 2 раза потом только светик RX 3 раза, а потом в Arduino IDE выходит ошибка
мистика:-). Контроллер точно на 16мгц? По питанию не проверяли, хотя бы на ногах контроллера всё в порядке?
транзистор у меня тоже 547B, главное его с 557B местами не перепутать:-) И если L мигает, это значит контроллер перегружается перед заливкой скетча, т.е. он вроде запускается. При нажатии на кнопку сброса он тоже должен бы подмигнуть.
ну и на самый крайний случай, я бы тот джампер, что на трёх контактном разъёме переставил в другое положение, посмотреть хотя бы на сообщение в программе, изменится оно, или тоже останется...
пробовал переставить то же сообщение, но перед светиком RX светик L не мигает, и пробовал без джампера вообще все то же самое мигнет светик L 2 раза потом светик RX 3 раза
пробовал (правдо случайно) без питания на плате залить скетч, та же ошибка. Решил попробовать без платы вообще, та же ошибка
БЛИННН как жет так что же я мок такого натварить то!!!!!
Если МК грузится, то похоже дело в соединениях, ну или в компонентах. А можно фото с двух сторон увидеть, вдруг что на ум придёт? Кстати проверить соединения на связь с компом можно, если вытащить контроллер, и на панельке от него rx и tx соединить проводком. Если все нормально, то кидая что-нибудь в ком порт, оно же должно вернуться обратно, ну и при этом два диода должны активно подмигивать.
мне чуть чуть не понятно как это
Вытащить МК из панеьки и в панельке замкнуть контакты 2 и 3 (где ноги у контроллера TXD И RXD). Запустить терминал, настроить на нужный ком-порт и послать любой сивмол. Он должен вернуться.
Очень хороший терминал: http://www.google.ru/search?q=terminal+exe&channel=linkdoctor
Если ответа нет - замыкаем RX и TX мразу на разьеме компорта, убедится что он работает.
Если компорт работает а на плате перемычкой ответа нет - ищем косяки в сборке касательно цепей от разъема компорта до ног МК.
Как собравший несколько таких вариантов (и разработавший свою) осмелюсь посоветовать собрать вот такую штучку: http://easyelectronics.ru/preobrazovatel-usb-uart-na-ftdi-ft232rl.html
ее делаешь в виде отдельной флешки (разьем USB как на флешке же только цепляешь, в камментах внизу есть моя ссылка на печатку) и пользуешь с самыми разными платами, на которых достаточно вывести три штырька - GND, TXD, RXD напрямую с ног МК. Я так прошиваю готовые устройства, зачем на них держать uart/мост?
Ну и вообще, даже для компорта было бы разумнее поставить вместо транзисторов микросхему MAX232, хотя бы даже в виде отдельного модуля.
Ну и мои траблы, при сборе первой похожей платы (на атмега32 и max232)
1) COM-порт не был выведен с матплаты, использовал кабель от старого компа "не той системы". Системы две (распространенные) - шлейф паяется на разьем Z-образно или же раскидывается вверх-вниз через один пин.
2) Пока искал траблу, перегрел MAX232. В твоем случае проще перегреть транзисторы
3) Нужно убедится что загрузчик (а с ним и контроллер) работают. Смотрим на поведение светодиода, в твоем случае он на PB5. Должен циклично мигать. Разные бутлоадеры по разному мигают. Даже на разных ногах, для атмеги32 например он на 8 пине. Сначала быстро-быстро, потом перерыв и снова цикл. Либо равномерно. Но - активность должна быть стабильной. Если этого нет - ищем, отчего может незапускаться МК. Проверяем кварц, конденсаторы на нем, питание на все нужные ноги. Проверяем GND везде где должно быть. Далее проверяем фьюзы, в основном настройки на нужную частоту (внешний кварц) и настройки загрузчика. Если грузим "родной" бутлоадер из ардуино то ищем его фьюзы (какие нужны) в boards.txt в формате avrdude (верх нижн), переводим в удобночитаемый формат тут: http://www.engbedded.com/fusecalc/ (вбиваем в нижний блок) и не забываем, что для разных программ-прошивальщиков могут быть нюансы вида (установка галки означает 0, а не один). Также скажу, что часто понипрог делает вид что шьет, но ничего не заливается. Я шью теперь программатором chipprog+ LPT, и рекомендую чего нить такое прикупить.
В общем - должен моргать светодиод.
4) Почти никогда не работает авторезет (ну я не заморачивался им вообще). В момент компиляции файла hex (появляется строка с адруино) включаем устройство либо же делаем резет. Если скетчей еще не загружалось (только загрузчик) то и этого не нужно.
5) Потом часто путал по запарке TX и RX поэтому к USB-мосту что выше сделал два кабеля.
агрузчик взял из папки arduino-0022\hardware\arduino\bootloaders\atmega8
файл ATmegaBOOT.hex
в boards.txt
вбиваем фьюзы в калк
и не забываем выбрать эту же платформу в ардуино (Arduino NG or older w/ ATmega8)
Вот фото
Первым делом отмойте пату от флюса ацетоном, высушите. Вторым - прочитайте мой пост выше. Ну и сделайте что нибудь )
Да уж, плату отмыть бы не помешало, я бы ещё дорожки покрыл слоем припоя. Мне на плате не понравилась вторая дорожка сверху, при увеличении на ней трещины довольно глубокие от края до края, и слева непонятное что-то, за флюсом не видно. я карандашиком обвёл.
вот отмыл и пропаят все пути
подключил питание и сразу стал мигать L светик (на фото выше он желтый) интервалом в 1секунду. Что на этот раз не пойму
желтый - это на 13 вывод? (PC5)? Если да то он и должен моргать - это дает знать о себе загрузчик. Если моргает с неправильной частотой - скорее всего неверно выставлены те фьюзы, что отвечают за скорость (частоту), на которо работает МК. Мой совет - пробежись по очереди по всем пунктам, что я отписал... Без этого - никак.
Посмотрел - это он. PB5, ошибся. На, положи под руку, пригодится еще: http://arduino.cc/en/uploads/Hacking/Arduino-To-Atmega8-Pins.png
Выясни у тех кто собирал, с какой частотой "на глаз" должен моргать диод, ибо на всех загрузчиках по разному. Если моргает как надо - значит МК запустился и работает, тогда по пунктам в плане связи через компорт мои рекомендации проверь.
Он и должен моргать на этой плате с интервалом в 1 секунду. Подключить к ПК пробовали? Что выдаёт?
подключил к ПК, залил туда скетч Blink (во время загрузки светики RX и TX как то совместно перемигивались). Загрузка прошла успешно (об этом сообщил Arduino IDE). Светик L на какое то время перестал мигать, а потом замигал опять. Так же к цифровому выходу 13 я подключил синий светик через резистор. Он и светик L мигают в один такт.
Попробовал поменять в коде скетча значение delay (1000); на 500 или 5000 и т.д.
Я так понимаю Они теперь мигают по сценарию залитого скетча Blink.
И это значит что плата заработала ???
Да, плата заработала :-).
затести все выводы, меняя номер пина в блинке
цифровые выводы с 13 по 0 в скетче попереставлял они рабатают. Как проверить аналоговые выводы
Если не ошибаюсь, то аналоговые выводы могут работать в режиме цифровых. Или взять какой-нибудь скетч из упражнений из раздела analog.
спасибо большое за помощь в разборе моей проблемы работы COM платы Arduino.
На последок последние вопрос!!!
Можно ли как в эту плату заливать скетч через USB порт (просто в моем ноутбуке нет COM порта)
http://easyelectronics.ru/preobrazovatel-usb-uart-na-ftdi-ft232rl.html
на плате три штыречка, RX/TX сразу от ног МК и GND
Спасибо зр решение но под рукой пока нет такой микрухи. Можен есть какой то вариант на ATTINY 2313 или Atmega8(168)
Поделки с программной реализацией уарта были, но по отзывам - малоработоспособные. Во всех ардуинах используется именно FT232RL. Самый оптимальный вариант.
FT232RL самый оптимальный вариант, и именно в том исполнении как выше по ссылке на easyelectronics. Ещё иногда используют шнурки от компа к старым мобильникам (что по сути и есть переходник с usb на com), но там есть некоторые заморочки, хотя у людей работает.
Спасибо большое. Сегодня мочью еду в Екатериндург за микрухами и еще много всего куплю для Arduino. Так что наверняка соберу этот переходник.
Вот только мне не понятно, можно ли тогда МК Arduino использовать без обвязки (кандеры резики и т.д.), ну или пусть минимум кварц да пару кондеров (те что возле него). Заливать bootloader и скетч с доп устройсвами (программатор и переходник соответственно).
Возможно я много хочу, хочется проще подходить к разработке, а тем более реализации своих проектов :-)))
Прошу ответить как можно скорее какая разница межу вот этими микрухами (кроме типа корпуса)
FT232BL - 539 шт.
FT232RL - нет в наличии
FT232RQ - 13 шт.
Это все что есть в Екатеринберге (касаемо микрасхем FT232)
Какие могут быть сложности при использовании тех что есть в наличии. Какой корпус лучше взять BL или RQ
А главное есть ли разница между BM и BL.
А главное есть ли разница между BM и BL.
www.cqham.ru/forum/showthread.php
Спасибо бальшое!!!
Вот только мне не понятно, можно ли тогда МК Arduino использовать без обвязки (кандеры резики и т.д.), ну или пусть минимум кварц да пару кондеров (те что возле него). Заливать bootloader и скетч с доп устройсвами (программатор и переходник соответственно).
ТРИ МИРА, можно. Конденсатор 0,1 по питанию желателен, как можно ближе к микросхеме (почти любой). Бутлоадер заливается программатором через распаянный разьем ISP, скетч заливается через UART - либо по USB либо ком, в зависимости от моста (мост USB-UART например). Задача моста уровнять напряжения и/или обеспечить интерфейс для подключения к компу. Я предпочел usb мост сделать в виде флешки и теперь просто вывожу от МК ноги - штырьки. Залил скетч - снял.
Без кварца МК запустится на низкой частоте (скорости) и не всегда стабилен, настраивается это все фьюзами - закинь ссылку на калькулятор (выше я давал) в избранное. Кварц и его подтяжки 22пФ желательны.