Самоделная ардуиноподобная плата ATmega328p
- Войдите на сайт для отправки комментариев
Вс, 17/02/2013 - 23:46
Создал самодельную плату на ATmega328P-AU и FT232RL по схеме http://arduino.ru/Schematic/arduino-duemilanove-schematic.pdf.Вместо ATmega8 применил указаный выше МК.
При зазрузке по USB скетчи не загружаются, хотя по линии DSR из FT232RL наблюдается сброс ,что видно на осциллограме.Линии Rx и Tx тоже работают. В какую сторону копать , или что-то упустил
Скорее всего имеется какая то детская ошибка. Между программатором и МК нет общей земли, перепутаны
rx и tx , косяк в монтаже и т.д.
Лично я подключал к reset не dsr а rts.
У меня и RTS подключен через 100 Ом .А имеет значение что корпус МК в исполнении TQFP?Может есть какие-то особенности?
Стоп. Что значит "и rts подключен" ?
Зачем резистор ? Там все напрямую включается.
Выложите нормальную схему. Неохота мне ее качать, да и адоб ридера на этой машине нет.
Rx к Rx , Tx к Tx , RTS к reset. Больше ничего не нужно.
А почему в схеме подключена линия DTR через 0,1 мкФ /?
Незнаю. Я пытался включать pl2303 по подобной схеме. Не работает.
Подключил rts напрямую - заработало.
Вы даже можете дергать resetом вручную, перд прошивкой.
При зазрузке по USB скетчи не загружаются, хотя по линии DSR из FT232RL наблюдается сброс...
На схеме к резету атмеги подключены линии RTS через резистор и DTR через кондер, а линия DSR в сбросе вообще не учавствует. Снимите осцилограмму с пина резет атмеги328 при заливке скетча.
2 Evgen
Извините я имел в виду линию DTR вместо DSR (ошибочка вышла).Именно с линия DTR после кондера я снял осциллограму.
Хорошо. А загрузчик ардуиновский для атмега328 вы какой залили, откуда брали? Как диод на 13 пине ведет себя после подачи питания? Фъюзы биты какие выставили? Какую плату вы выбираете в IDE при заливке скетча?
Загрузчик залил ATmegaBOOT_168_atmega328.hex . Диод при включении мигает 8 или 9 раз. Фьюзы сконфигурировал в avrdude :avrdude -F -C avrdude.conf -p m328p -c avrisp -P COM11 -b 19200 -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m -Ulock:w:0x0F:m. Плату выбрал Arduino Duemilanove w/ATmega328
Попробуйте вот эти фъюзы: avrdude -F -C avrdude.conf -p m328p -c avrisp -P COM11 -b 19200 -Uefuse:w:0x05:m -Uhfuse:w:0xda:m -Ulfuse:w:0xff:m -Ulock:w:0x0F:m
Благодарю вечером попробую перешить фьюзы, а то на роботу с собой плату не взял.Может дело действительно в фьюзах. Еше заметил что если замкнуть контакты Rx и Tx на FT232RL и слать данные то обратно не возвращаются.Хотя заливал скетч программатором с посылкой данных через ком-порт -светодиод Tx возле FT232RL мигает и идут данные (смотрел осциллографом). Точно также данные шлю через монитор порта - мигает светодиод Rx возле FT232RL и идут данные.
Еше заметил что если замкнуть контакты Rx и Tx на FT232RL и слать данные то обратно не возвращаются
Такого быть не должно. Проверьте FT232RL как вот тут написано http://arduino.ru/forum/programmirovanie/atmega-8#comment-23466
2Evgen
Фьюзы прошил на указанные вами. С платы выпаял 1кОМ резисторы на линиях Rx и Tx между FT232 и МК и припаял просто проводками к линиям Rx и Tx на МК .Закорачиваю пины на МК Rx и Tx перемычкой , данные посылаю через монитор порта и они возвращаются обратно.Но Ардуина отказывается прошиватся по Com-порту. Может поиграть номиналами на линии RTS ?
Может Rx и Тх перепутали? Надо Rx с FT232 припаять к Tx мега328, а Tx припаять Rx соответственно.
И еще, после того как дудкой что-нибудь залили в МК, надо дуину отключить от USB на три секунды, а потом включить обратно, перзапустить IDE (на всякий случай) и только потом пробовать заливать скетч.
Когда скетч залить не получается IDE что пишет, как ругается?
>>Может поиграть номиналами на линии RTS ?<<
RTS напрямую к resetу.
Rx и Tx уже проверял раза три. Пишет после неудачной загрузки :avrdude: stk500_getsync(): not in sync: resp=0x00
В файле boards.txt такая строчка есть?
А что надо именно такую скорость выставлять. А то я выставил 9600 и в програме и в FT232RL
А вы попробуйте такую.
Пробовал ввыставлять скорость ничего не изменилось.А как должны мигать светодиоды возле FT232RL при заливке скетча , а то уменя мигает только на прием и выбивает вышеуказаную ошибку? Монтаж проверил вчера и на короткое замыкание между ножками ФТ232 и АТмега328.
Как я понимаю должно происходить так. IDE, перед заливкой скетча, при помощи ft232 формирует на МК сигнал сброса. Так как фъюзами мы указали стратовать не с нулевого адреса памяти, а с области загрузчика, МК, получив сигнал сброса, запускает загрузчик - программу, которая находится в конце памяти (которую вы залили уже). Загрузчик при готовности принять скетч, по ЮАРТу передает сигнал об этом микросхеме ft232 (например посылает какойнить байт или несколько байтов). Посылка эта идет на скорости которую задали разработчики загрузчика (по идее должна быть 57600, принимать скетч он будет опять-же на этой-же скорости).
Так как диод на прием у вас моргает, значит ft232 принимат этот сигнал, но скетч выдавать не хочет. Очень похоже, что скорости не совпадают.
Вы кварц на 16 МГц поставили?
Сегодня поменял микросхему FT232rl на исправную и автозагрузка скетчей заработала.
ребята вопрос, сделал ардуино по аналогичной схеме но без стабилизатора и с внутренним кварцем http://www.robotmaker.ru/wp-content/uploads/2014/08/51eec304ce395f104c000000.png прописал в бут лоадер настройки под атмега238
atmega328_8_33.name=Atmega328 (3.3V, 8 MHz internal)
atmega328_8_33.upload.protocol=arduino
atmega328_8_33.upload.maximum_size=30720
atmega328_8_33.upload.speed=19200
#atmega328_8_33.upload.speed=57600
atmega328_8_33.upload.tool=arduino:avrdude
atmega328_8_33.bootloader.tool=arduino:avrdude
atmega328_8_33.bootloader.low_fuses=0xC2
##atmega328_8_33.bootloader.low_fuses=0xE2
atmega328_8_33.bootloader.high_fuses=0xDE
atmega328_8_33.bootloader.extended_fuses=0x07
atmega328_8_33.bootloader.path=optiboot
atmega328_8_33.bootloader.file=optiboot_atmega328.hex
atmega328_8_33.bootloader.unlock_bits=0x3F
atmega328_8_33.bootloader.lock_bits=0x0F
atmega328_8_33.build.mcu=atmega328p
atmega328_8_33.build.f_cpu=8000000L
atmega328_8_33.build.core=arduino
atmega328_8_33.build.variant=standard
залил в неё загрузчик но вот не задача скетч я в неё могу заливать через SPI, работает хорошо но мне бы хотелось заливать через TX/RX, попробовал через урдуино без чипа, и оно почиму-то просто виснит на моменте заливки, хотя я беспроблем снимаю данные что мне выдаёт скетч в TX/RX через монитор последовательного порта, может кто подсказать что это может быть или куда капать ?
думаю тему можно закрыть, но пока не буду, ларчик открывался просто, где то на 20м форуме в его далёких недрах один умный человек посоветовал atmega328_8_33.upload.speed=57600 поставить такую скорость, так как она идёт по умолчанию и никакой другой последовательный порт писать не будит, так и сделал. заработало