Программирование arduino.
Jan. 22nd, 2014 02:37 amПлата без usb практически бесполезна, ибо для программирования через последовательный интерфейс требуется последовательный порт с уровнями ТТЛ и выводом DTR, что найти практически невозможно: в преобразователях с usb его не выводят, а в преобразователях rs232->ttl этот вывод используется для питания преобразователя.
Еще, если некоторые выводы используются как вход и выход, то arduino может отказаться перепрошиваться. Тогда понадобиться ISP программатор, но купленный на алибабе usb программатор может оказаться без прошивки. Тогда придется сначала прошивать этот программатор через lpt порт компьютера через 5 проводов.
Необходимые части.
1. Компьютер под управлением win32.
2. Встроенная плата lpt.
3. Разъем DB-25-male.
4. 10 проводов "1p to 1p female to female jumper wire Dupont cable".
5. Жесткий, неизолированный, провод, толщиной в 0.6мм.
6. Удлинитель usb.
7. Плата USBASP.
8. Паяльник.
9. припой.
10. Канифоль.
11. Программы: AvReAl32, DLPortIO.
12. Прошивка usbasp.
Процесс программирования usbasp.
1. Сделать программатор "пять проводков" из 3 проводов "1p to 1p female to female jumper wire Dupont cable" и разъема DB-25-male:
-вывод 2 соединить с 12;
-вывод 3 соединить с 11;
-выводы 18-25 соединить вместе;
-припаять половину "1p to 1p female to female jumper wire Dupont cable" к выводам: 6, 7, 9, 10.
2. На плате usbasp найти резистор подключенный к выводу reset микроконтроллера. Если это микросхема atmega8a в квадратном корпусе, то это будет вывод 29.
3. Припаять к этому резистору жесткий провод подходящей толщины, что бы в него можно было воткнуть
"1p to 1p female to female jumper wire Dupont cable".
4. Соединить "пять проводков" с платой usbasp.
Разъем на плате usbasp.
Как соединить.
| контакт db5 | контакт usbasp | название |
| 6 | 7 | SCK |
| 7 | 1 | MOSI |
| 9 | припаянный жесткий провод к резистору | RESET |
| 10 | 9 | MISO |
| 18-25 | 10 | GND |

5. Вставить удлинитель usb в другой конец usbasp.
6. Воткнуть удлинитель usb и db-25 в компьютер.
7. Установить dlportio.
8. Выполнить команду для стирания микросхемы "avreal32.exe -pEC00 +MEGA8 -as -5 -e", где:
"-pEC00" - базовый адрес lpt порта, берется из диспетчера устройств;
"+MEGA8" - тип микросхемы на usbasp;
"-as" - программатор "мять проводков";
"-5" - задержка программирования;
"-e" - команда стирания.
9. Выполнить команду программирования "avreal32.exe -pEC00 +MEGA8 -as -5 -w -c code.hexusbasp.atmega8.2011-05-28.hex -f_HIGH=C9,_LOW=EF", где:
"-w" - команда записи;
"-c code.hexusbasp.atmega8.2011-05-28.hex" - задание имени файла кода прошивки;
"-f_HIGH=C9,_LOW=EF" - задание "fuse bits".
10. Выполнить команду проверки чтения из usbasp "avreal32.exe -pEC00 +MEGA8 -as -5 -v -c code.hexusbasp.atmega8.2011-05-28.hex -f_HIGH=C9,_LOW=EF"., где "-v" означает проверку содержимого.
В выводе должно быть два слова passes.
Fuses:
OSCCALs = BA B8 B2 B0
_LOCK = FF
BLB1 = 3
BLB0 = 3
_LOW = EF
BODLEVEL = 1
BODEN = 1
SUT = 2
CKSEL = F
_HIGH = C9
RSTDISBL = 1
WDTON = 1
CKOPT = 0
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
Verifying CODE memory
Verfiy [**************************************************]
done (1.20s)
passed
Verifying fuses
passed
Total time 1.34sЕсли этого нет, то повторить с 9 пункта.