Здравствуйте дорогие форумчане, помогите разобраться купил Arduino Ethernet w POE, также имеется Адаптер USB-UART TTL Основан на чипе CP2102, не могу загрузить скетч, IDE выдает сообщение: avrdude: stk500_getsync(): not in sync: resp=0x00 Думал проблема в адаптере, замыкал tx rx, нормально, данные передаются. На arduino светится светодиод ON, и светодиод L9 - постоянно. Что показывает L9 и за что отвечает ?
"LED: 9. There is a built-in LED connected to digital pin 9. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. On most other arduino boards, this LED is found on pin 13. It is on pin 9 on the Ethernet board because pin 13 is used as part of the SPI connection" L9 подключен к PORTB 1 микроконтроллера (Digital pin 9 Arduino). Во время Reset МК сбрасывает все ноги в "Ноль" - L9 по идее не должен гореть, если только загрузчик его не "поджигает". Чтобы загружать скетч через USB-UART нужно либо подключить ногу DTR через конденсатор к пину Reset ардуины, либо после того, как скетч скомпилирован и сразу перед попыткой avrdude его загрузить, нажать кнопку Reset. Первый способ, соответственно, является автоматическим, второй - ручным. После нескольких загрузок в ручном режиме вы обязательно реализуете автоматический Некто Nestor Oakписал по теме ручного режима: "При нажатии кнопки Upload необходимо сделать маленькую хитрость, чтобы программа смогла залиться. Если пустить все на самотек, то программа будет долго пытаться залиться и, наконец, выдаст ошибку. Для избежания ошибки необходимо в ручную сделать ресет проца в момент, когда прога скомпилилась. Этот момент случается, когда в поле состояния вылазит строка Binary sketch size: xxx bytes (of a xxxxx byte maximum) В этот момент быстро нажмите и отпустите кнопку на плате, и тогда прога успешно зальется! Если на конвертере начали быстро моргать зеленая и красная лампочки - все идет правильно. Если этого не произошло, возможно, вы нажали не вовремя - попробуйте еще раз" Да, вот еще что: как сделать Reset через DTR можно подсмотреть здесь http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf Найдите конденсатор C5 на схеме и пляшите от него
Так на переходнике есть reset который я подключаю к ардуино Кстати если нажать перед avrdude reset на ардуино то IDE сразу выдает : avrdude: ser_drain(): read error: Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения.
в таблице Table 5. CP2102 Pin Definitions выход RST обозначен как "Device Reset. Open-drain output of internal POR or VDD monitor. An external source can initiate a system reset by driving this pin low for at least 15 µs" Т.е. этот пин используется для перезапуска самого CP2102 и, возможно, после POR CP2102 на этом пине появляется короткий импульс. Но в любом случае (имхо) его нельзя использовать при программировании Arduino. Отключите Reset от ардуины и попробуйте сделать так, как об этом пишет Nestor Oak. У меня тоже не сразу получилось, но получилось. Потом мне надоело делать это руками и я приладил кондер к DTR Забыл добавить: когда Reset ардуины подключен к Reset CP2102, то при попытке программировать ардуину (после нажатия кнопки Reset на ней) на RST CP2102 подается НОЛЬ, что в соответствии с Table 5 ( An external source can initiate a system reset by driving this pin low) вероятно вызывает перезапуск CP2102
Получается что при прошивке управляющий сигнал DTR нужен ? То что я нажимаю на самом arduino reset перед прошивкой - это не поможет ?
DTR нужен для того, чтобы автоматически управлять сигналом Reset при прошивке скетча. То есть либо CP2102 пошлет в ардуину сигнал Reset через DTR и конденсатор, либо, если DTR не подключен к линии Reset, вы нажимаете кнопку Reset руками
Прочтите тут http://www.dfrobot.com/wiki/index.php/Arduino_Nano_328_(SKU:_DFR0010) главу Automatic (Software) Reset
Получается нужно сделать вот так только без резистора ? http://www.kerrywong.com/blog/wp-content/uploads/2010/07/CP2102_ArduinoSch.png Кстати попробовал нажать reset, после нажатия кнопки загрузки скетча и о чудо - IDE сообщило мне что загружено, думал глюк, подключил светодиод, был загруженный тестовый скетч. Все работает , попробовал модифицировать программу и еще раз загрузить, прошло нормально. Осталось решить вопрос с авто RESET через DTR.
Приятное чувство, да ? Рад за вас! Насчет резистора: в ардуине Reset уже подтянут к Vcc резистором RN1D. Так что вам он не понадобится
Доработанный Адаптер USB-UART основанный на чипе CP2102, все работает, с первого раза, спасибо roggedhorse за содействие в решении проблемы.
У меня такая же ошибка при загрузки скетча в Arduino Ethernet w POE. Плату и порт выставил правильно, подключаю через покупал на амперке. Когда замыкаю Rx/Tx то всё нормально отображается на мониторинге. P.S. Заметил что при замыкании Rx/Tx, то загорается L9, но при размыкании не гаснет.