понедельник, 5 февраля 2018 г.

Прошивка ATTiny26L с помощью китайского SparkFun FTDI (с использованием avrdude на Ubuntu)

[Черновик]

Коротко


Такой программатор, USB mini b:

Такое подключение выводов платы к ATTiny26:
DTR => 10 (RESET)
RX  => 2  (MISO)
TX  => 1  (MOSI)
CTS => 3  (SCK)

Можно также запитать МК, подав 5V прямо с программатора (VCC => 5, GND => 6).

Инструкции подробно


Скачай avra assembler https://sourceforge.net/projects/avra/files/
Скомпилируй avra assembler: http://help.ubuntu.ru/wiki/programs_installation --- начни с bootstrap, если будет ругаться на отсутствие файлов (README, AUTHORS и т.п.) создай пустые файлы с этими именами.  Затем собери и установи пакет checkinstall'ом: https://habrahabr.ru/post/130868/

Установи avrdude

Ознакомься с предметной частью (прочитай про Bit Bang, подключи программатор, настрой avrdude.conf):

Настройку программатора не обязательно прописывать в avrdude.conf, можно прописать в ~/.avrduderc  Моя настройка:

programmer
  id    = "ftdi";
  desc  = "SparkFun FTDI Basic Breakout";
  type  = "ftdi_syncbb";
  connection_type = usb;
  miso  = 1;  # RXD
  sck   = 3;  # CTS
  mosi  = 0;  # TXD
  reset = 4;  # DTR
;

Последняя строка с точкой-с-запятой обязательна! Если нужно прописать другие номера ножек (DSR, DCD, RI и проч.), то можешь посмотреть нумерацию тут http://kmpu.ru/other/ft232rl_usb-programmator-avr/index.html или в Datasheet http://www.ftdichip.com/Support/Documents/AppNotes/AN232B-01_BitBang.pdf

Пропишись в нужные группы: https://askubuntu.com/a/800566

Запусти lsusb и убедись, что linux видит usb программатор:

vova@alex:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 413c:2501 Dell Computer Corp. 
Bus 001 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Команда для проверки:

sudo avrdude -p t26 -c ftdi -F -U flash:r:"/home/vova/tmp/t26blink.hex":i -B 1400

эта команда скопирует программу, залитую на MCU.  Не забудь -B 1400, если работаешь с не очень быстрым MCU (см. мануал avrdude, а также http://www.avrfreaks.net/forum/avrdude-gives-diff-device-sigs-same-attinys и http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html). Результат ее запуска:

vova@alex:~$ sudo avrdude -p t26 -c ftdi -F -U flash:r:"/home/vova/tmp/t26blink.hex":i -B 1400

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.10s

avrdude: Device signature = 0x1e9109 (probably t26)
avrdude: reading flash memory:

Reading | ################################################## | 100% 7.79s

avrdude: writing output file "/home/vova/tmp/t26blink.hex"

avrdude: safemode: Fuses OK (E:FF, H:F7, L:E1)


avrdude done.  Thank you.


Кстати, для последующего дезассемблирования слитого с МК hex файла используй 

avr-objdump -m avr -D t26blink.hex

Взято отсюда: http://www.avrfreaks.net/comment/800129#comment-800129
Если нет такой программы, то надо установить binutils-avr

sudo apt install binutils-avr


Комментариев нет:

Отправить комментарий