БЕДА - Arduino с COM портом

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 Здравствуйте!!!

Прошу помочь разобраться. Руководствуясь вот этой статьей 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 по смыслу понятно, что ПО необменялось с МК. По какой причине это произошло, что не правильно спаено, что не правильно сделано?????

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

Собирал такое-же, и ошибка была такая-же. Исправилось, когда джамперы поставил, изначально вообще о них забыл :-)? (Да, и не все шнуры подходят, нужен прямой).

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 К ПК плату я подключаю напрямую, а джамперы стоят на авто reset и на serial port

все равно такая ошибка

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

А сам контроллер запустился? при нажатии на кнопку сброса диод на 13-ой ноге мигает? И при заливке скетча диоды rx и tx мигают, или только один из них? Или может дело в версии программы, у меня работает с версией 0022 и из под windows, из под линукс на эту ардуину мне пока не удалось скетч залить...

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 3 раза мигнет rx и все 

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

Это при заливке скетча? тогда получается контроллер ответа не даёт... Может где-то плохо пропаяно, транзисторы целые?

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

и при сбросе кнопкой светодиод мигает?

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 пранзисторы и все остальный детали новые, думаю что целые :-), при сбросе нет мигания

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

так пишет на версии 0022

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 а можете мне дарь свой bootloader и настройку fuse плисссс

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 1 = Bootsz0
0 = Bootsz0

это как так

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

Точно, там опечатка. Я сейчас не вспомню, это на другом компьютере. Но там в программе биты идут в том же порядке, что и в статье, только название одного буковкой или циферкой отличается. Опечатка в названии бита, конфигурационные значения правильные. Более точно смогу посмотреть только завтра.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 все сделал изменений не каких

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 а мот быть что транзистор не правильный стаит

вместо BC547 стоит BC547B

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 и еще я заметил, что сперва мигает светик L 2 раза потом только светик RX 3 раза, а потом в Arduino IDE выходит ошибка

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

мистика:-). Контроллер точно на 16мгц? По питанию не проверяли, хотя бы на ногах контроллера всё в порядке?

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

транзистор у меня тоже 547B, главное его с 557B местами не перепутать:-) И если L мигает, это значит контроллер перегружается перед заливкой скетча, т.е. он вроде запускается. При нажатии на кнопку сброса он тоже должен бы подмигнуть.

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 пробовал переставить то же сообщение, но перед светиком RX светик L не мигает, и пробовал без джампера вообще все то же самое мигнет светик L 2 раза потом светик RX 3 раза

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 пробовал (правдо случайно) без питания на плате залить скетч, та же ошибка. Решил попробовать без платы вообще, та же ошибка

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 БЛИННН как жет так что же я мок такого натварить то!!!!!

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

Если МК грузится, то похоже дело в соединениях, ну или в компонентах. А можно фото с двух сторон увидеть, вдруг что на ум придёт? Кстати проверить соединения на связь с компом можно, если вытащить контроллер, и на панельке от него rx и tx соединить проводком. Если все нормально, то кидая что-нибудь в ком порт, оно же должно вернуться обратно, ну и при этом два диода должны активно подмигивать.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 мне чуть чуть не понятно как это

whoim
Offline
Зарегистрирован: 03.11.2011

 Вытащить МК из панеьки и в панельке замкнуть контакты 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-мосту что выше сделал два кабеля.

whoim
Offline
Зарегистрирован: 03.11.2011

Tin-Tinych пишет:

агрузчик взял из папки arduino-0022\hardware\arduino\bootloaders\atmega8

файл ATmegaBOOT.hex

в boards.txt

atmega8.name=Arduino NG or older w/ ATmega8

atmega8.upload.protocol=stk500
atmega8.upload.maximum_size=7168
atmega8.upload.speed=19200

atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca
atmega8.bootloader.path=atmega8
atmega8.bootloader.file=ATmegaBOOT.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0x0F

вбиваем фьюзы в калк

и не забываем выбрать эту же платформу в ардуино (Arduino NG or older w/ ATmega8)

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

Вот фото


whoim
Offline
Зарегистрирован: 03.11.2011

 Первым делом отмойте пату от флюса ацетоном, высушите. Вторым - прочитайте мой пост выше. Ну и сделайте что нибудь )

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 вот отмыл и пропаят все пути

 подключил питание и сразу стал мигать L светик (на фото выше он желтый) интервалом в 1секунду. Что на этот раз не пойму

whoim
Offline
Зарегистрирован: 03.11.2011

 желтый - это на 13 вывод? (PC5)? Если да то он и должен моргать - это дает знать о себе загрузчик. Если моргает с неправильной частотой - скорее всего неверно выставлены те фьюзы, что отвечают за скорость (частоту), на которо работает МК. Мой совет - пробежись по очереди по всем пунктам, что я отписал... Без этого - никак.

whoim
Offline
Зарегистрирован: 03.11.2011

 Посмотрел - это он. PB5, ошибся. На, положи под руку, пригодится еще: http://arduino.cc/en/uploads/Hacking/Arduino-To-Atmega8-Pins.png

Выясни у тех кто собирал, с какой частотой "на глаз" должен моргать диод, ибо на всех загрузчиках по разному. Если моргает как надо - значит МК запустился и работает, тогда по пунктам в плане связи через компорт мои рекомендации проверь.

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

Он и должен моргать на этой плате с интервалом в 1 секунду. Подключить к ПК пробовали? Что выдаёт?

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

подключил к ПК, залил туда скетч Blink (во время загрузки светики RX и TX как то совместно перемигивались). Загрузка прошла успешно (об этом сообщил Arduino IDE). Светик L на какое то время перестал мигать, а потом замигал опять. Так же к цифровому выходу 13 я подключил синий светик через резистор. Он и светик L мигают в один такт.

Попробовал поменять в коде скетча значение delay (1000); на 500 или 5000 и т.д.

Я так понимаю Они теперь мигают по сценарию залитого скетча Blink. 

И это значит что плата заработала ???

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

Да, плата заработала :-).

whoim
Offline
Зарегистрирован: 03.11.2011

 затести все выводы, меняя номер пина в блинке

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

цифровые выводы с 13 по 0 в скетче попереставлял они рабатают. Как проверить аналоговые выводы

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 спасибо большое за помощь в разборе моей проблемы работы COM платы Arduino.

На последок последние вопрос!!!

Можно ли как в эту плату заливать скетч через USB порт (просто в моем ноутбуке нет COM порта)

whoim
Offline
Зарегистрирован: 03.11.2011

 http://easyelectronics.ru/preobrazovatel-usb-uart-na-ftdi-ft232rl.html

на плате три штыречка, RX/TX сразу от ног МК и GND

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 Спасибо зр решение но под рукой пока нет такой микрухи. Можен есть какой то вариант на ATTINY 2313 или Atmega8(168)

whoim
Offline
Зарегистрирован: 03.11.2011

 Поделки с программной реализацией уарта были, но по отзывам - малоработоспособные. Во всех ардуинах используется именно FT232RL. Самый оптимальный вариант.

Tin-Tinych
Offline
Зарегистрирован: 16.09.2011

FT232RL самый оптимальный вариант, и именно в том исполнении как выше по ссылке на easyelectronics. Ещё иногда используют шнурки от компа к старым мобильникам (что по сути и есть переходник с usb на com), но там есть некоторые заморочки, хотя у людей работает.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 Спасибо большое. Сегодня мочью еду в Екатериндург за микрухами и еще много всего куплю для Arduino. Так что наверняка соберу этот переходник.

 Вот только мне не понятно, можно ли тогда МК Arduino использовать без обвязки (кандеры резики и т.д.), ну или пусть минимум кварц да пару кондеров (те что возле него). Заливать bootloader и скетч с доп устройсвами (программатор и переходник соответственно). 

Возможно я много хочу, хочется проще подходить к разработке, а тем более реализации своих проектов :-)))

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 Прошу ответить как можно скорее какая разница межу вот этими микрухами (кроме типа корпуса)

FT232BL - 539 шт.
FT232RL - нет в наличии
FT232RQ - 13 шт.

Это все что есть в Екатеринберге (касаемо микрасхем FT232)

Какие могут быть сложности при использовании тех что есть в наличии. Какой корпус лучше взять BL или RQ

А главное есть ли разница между BM и BL.

step962
Offline
Зарегистрирован: 23.05.2011

ТРИ МИРА пишет:

А главное есть ли разница между BM и BL.

www.cqham.ru/forum/showthread.php

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

 Спасибо бальшое!!!

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

  Вот только мне не понятно, можно ли тогда МК Arduino использовать без обвязки (кандеры резики и т.д.), ну или пусть минимум кварц да пару кондеров (те что возле него). Заливать bootloader и скетч с доп устройсвами (программатор и переходник соответственно).

whoim
Offline
Зарегистрирован: 03.11.2011

 ТРИ МИРА, можно. Конденсатор 0,1 по питанию желателен, как можно ближе к микросхеме (почти любой). Бутлоадер заливается программатором через распаянный разьем ISP, скетч заливается через UART - либо по USB либо ком, в зависимости от моста (мост USB-UART например). Задача моста уровнять напряжения и/или обеспечить интерфейс для подключения к компу. Я предпочел usb мост сделать в виде флешки и теперь просто вывожу от МК ноги - штырьки. Залил скетч - снял.

whoim
Offline
Зарегистрирован: 03.11.2011

 Без кварца МК запустится на низкой частоте (скорости) и не всегда стабилен, настраивается это все фьюзами - закинь ссылку на калькулятор (выше я давал) в избранное. Кварц и его подтяжки 22пФ желательны.