Самоделная ардуиноподобная плата ATmega328p

HXT
Offline
Зарегистрирован: 20.12.2012

Создал самодельную плату на ATmega328P-AU и FT232RL по схеме http://arduino.ru/Schematic/arduino-duemilanove-schematic.pdf.Вместо ATmega8 применил указаный выше МК.

При зазрузке по USB скетчи не загружаются, хотя по линии DSR из  FT232RL наблюдается сброс ,что видно на осциллограме.Линии Rx и Tx тоже работают. В какую сторону копать , или что-то упустил

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Скорее всего имеется какая то детская ошибка. Между программатором  и МК нет общей земли, перепутаны 

rx и tx , косяк в монтаже и т.д.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Лично я подключал к reset не dsr а rts.

HXT
Offline
Зарегистрирован: 20.12.2012

У меня и RTS подключен через 100 Ом .А имеет значение что корпус МК в исполнении TQFP?Может есть какие-то особенности?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Стоп. Что значит "и rts подключен" ?

Зачем резистор ? Там все напрямую включается.

Выложите нормальную схему. Неохота мне ее качать, да и адоб ридера на этой машине нет.

HXT
Offline
Зарегистрирован: 20.12.2012

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Rx к Rx , Tx к Tx , RTS к  reset. Больше ничего не нужно.

HXT
Offline
Зарегистрирован: 20.12.2012

 

А почему в схеме подключена линия DTR через 0,1 мкФ /?

 

 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Незнаю. Я пытался включать pl2303 по подобной схеме. Не работает.

Подключил rts напрямую - заработало.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Вы даже можете дергать resetом вручную, перд прошивкой.

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

HXT пишет:

При зазрузке по USB скетчи не загружаются, хотя по линии DSR из  FT232RL наблюдается сброс...

На схеме к резету атмеги подключены линии RTS через резистор и DTR через кондер, а линия DSR в сбросе вообще не учавствует. Снимите осцилограмму с пина резет атмеги328 при заливке скетча.

HXT
Offline
Зарегистрирован: 20.12.2012

2 Evgen 

Извините я имел в виду линию DTR вместо DSR (ошибочка вышла).Именно с линия DTR после кондера я снял осциллограму. 

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

Хорошо. А загрузчик ардуиновский для атмега328 вы какой залили, откуда брали? Как диод на 13 пине ведет себя после подачи питания? Фъюзы биты какие выставили? Какую плату вы выбираете в IDE при заливке скетча?

HXT
Offline
Зарегистрирован: 20.12.2012

Загрузчик залил 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

 

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

Попробуйте вот эти фъюзы: 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

HXT
Offline
Зарегистрирован: 20.12.2012

Благодарю вечером попробую перешить фьюзы, а то на роботу с собой плату не взял.Может дело действительно в фьюзах. Еше заметил что если замкнуть контакты Rx и Tx на FT232RL и слать данные то обратно не возвращаются.Хотя заливал скетч программатором с посылкой данных через ком-порт -светодиод Tx возле FT232RL мигает и идут данные (смотрел осциллографом). Точно также данные шлю через монитор порта - мигает светодиод Rx  возле FT232RL и идут данные.

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

HXT пишет:

Еше заметил что если замкнуть контакты Rx и Tx на FT232RL и слать данные то обратно не возвращаются

Такого быть не должно. Проверьте FT232RL как вот тут написано http://arduino.ru/forum/programmirovanie/atmega-8#comment-23466

HXT
Offline
Зарегистрирован: 20.12.2012

2Evgen

Фьюзы прошил на указанные вами. С платы выпаял 1кОМ резисторы на линиях Rx и Tx между FT232 и МК и припаял просто проводками к линиям Rx и Tx на МК .Закорачиваю пины на МК Rx и Tx перемычкой , данные посылаю через монитор порта и они возвращаются обратно.Но Ардуина отказывается прошиватся по Com-порту. Может поиграть номиналами на линии RTS ?

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

Может Rx и Тх перепутали? Надо Rx с FT232 припаять к Tx мега328, а Tx припаять Rx соответственно.

И еще, после того как дудкой что-нибудь залили в МК, надо дуину отключить от USB на три секунды, а потом включить обратно, перзапустить IDE (на всякий случай) и только потом пробовать заливать скетч.

Когда скетч залить не получается IDE что пишет, как ругается?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Может поиграть номиналами на линии RTS ?<<

RTS напрямую к resetу.

HXT
Offline
Зарегистрирован: 20.12.2012

Rx и Tx уже проверял раза три. Пишет после неудачной загрузки :avrdude: stk500_getsync(): not in sync: resp=0x00

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

В файле boards.txt такая строчка есть?

HXT
Offline
Зарегистрирован: 20.12.2012

А что надо именно такую скорость выставлять. А то я выставил 9600 и в програме и в FT232RL

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

А вы попробуйте такую.

HXT
Offline
Зарегистрирован: 20.12.2012

Пробовал ввыставлять скорость ничего не изменилось.А как должны мигать светодиоды возле FT232RL при заливке скетча , а то уменя мигает только на прием и выбивает вышеуказаную ошибку? Монтаж проверил вчера и на короткое замыкание между ножками ФТ232 и АТмега328.

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

Как я понимаю должно происходить так. IDE, перед заливкой скетча, при помощи ft232 формирует на МК сигнал сброса. Так как фъюзами мы указали стратовать не с нулевого адреса памяти, а с области загрузчика, МК, получив сигнал сброса, запускает загрузчик - программу, которая находится в конце памяти (которую вы залили уже). Загрузчик при готовности принять скетч, по ЮАРТу передает сигнал об этом микросхеме ft232 (например посылает какойнить байт или несколько байтов). Посылка эта идет на скорости которую задали разработчики загрузчика (по идее должна быть 57600, принимать скетч он будет опять-же на этой-же скорости).

Так как диод на прием у вас моргает, значит ft232 принимат этот сигнал, но скетч выдавать не хочет. Очень похоже, что скорости не совпадают.

Вы кварц на 16 МГц поставили?

HXT
Offline
Зарегистрирован: 20.12.2012

Сегодня поменял микросхему FT232rl на исправную и автозагрузка скетчей заработала.

exolon
Offline
Зарегистрирован: 20.05.2015

ребята вопрос, сделал ардуино по аналогичной схеме но без стабилизатора и с внутренним кварцем 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 через монитор последовательного порта, может кто подсказать что это может быть или куда капать ?

exolon
Offline
Зарегистрирован: 20.05.2015

думаю тему можно закрыть, но пока не буду, ларчик открывался просто, где то на 20м форуме в его далёких недрах один умный человек посоветовал atmega328_8_33.upload.speed=57600 поставить такую скорость, так как она идёт по умолчанию и никакой другой последовательный порт писать не будит, так и сделал. заработало