todo navbar etc

Arduino на микроконтроллере ATmega32A

Приобрел на базаре микросхемку ATmega32a в корпусе TQFP44. Тут уже описывал процесс монтажа. Официальных плат ардуино на этом чипе нет. Пришлось погуглить на тему, как подружить Arduino IDE с атмегой32.

1. Для начала добавляем в самый низ файла boards.txt следующие строки:


##############################################################

atmega32.name=atmega32

atmega32.upload.protocol=arduino
atmega32.upload.maximum_size=30720
atmega32.upload.speed=19200

atmega32.bootloader.low_fuses=0xff
atmega32.bootloader.high_fuses=0xda
atmega32.bootloader.path=atmega32
atmega32.bootloader.file=ATmegaBOOT_168_atmega32.hex
atmega32.bootloader.unlock_bits=0x3F
atmega32.bootloader.lock_bits=0x0F

atmega32.build.mcu=atmega32
atmega32.build.f_cpu=16000000L
atmega32.build.core=arduino
atmega32.build.variant=avrnetio 

(у меня такой путь: arduino-1.0.4\hardware\arduino\boards.txt)

2. Затем размещаем вот этот бутлоадер по такому пути: arduino-1.0.4\hardware\arduino\bootloaders\atmega32\ATmegaBOOT_168_atmega32.hex С допиливанием и компиляцией бутлоадеров пока не разбирался, взял готовую прошивку. Архив с исходниками на си, а также hex файл брал отсюда.

3. Файл соответствия ног контроллера и ардуины, размещаем по этому пути: arduino-1.0.4\hardware\arduino\variants\avrnetio\pins_arduino.h Сам файл я взял из проекта AVR-Net-IO by Pollin.de. Он дает следующее соответствие пинов:


 *                   +---\/---+
 * INT0 (D 24) PB0  1|        |40  PA0 (AI 0 / D8)
 * INT1 (D 25) PB1  2|        |39  PA1 (AI 1 / D9)
 * INT2 (D 26) PB2  3|        |38  PA2 (AI 2 / D10)
 *  PWM (D 27) PB3  4|        |37  PA3 (AI 3 / D11)
 *PWM+SS(D 28) PB4  5|        |36  PA4 (AI 4 / D12)
 * MOSI (D 29) PB5  6|        |35  PA5 (AI 5 / D13)
 * MISO (D 30) PB6  7|        |34  PA6 (AI 6 / D14)
 *  SCK (D 31) PB7  8|        |33  PA7 (AI 7 / D15)
 *             RST  9|        |32  AREF
 *             VCC 10|        |31  GND 
 *             GND 11|        |30  AVCC
 *           XTAL2 12|        |29  PC7 (D  7)
 *           XTAL1 13|        |28  PC6 (D  6)
 *  RX0 (D 16) PD0 14|        |27  PC5 (D  5) TDI
 *  TX0 (D 17) PD1 15|        |26  PC4 (D  4) TDO
 *  RX1 (D 18) PD2 16|        |25  PC3 (D  3) TMS
 *  TX1 (D 19) PD3 17|        |24  PC2 (D  2) TCK
 *  PWM (D 20) PD4 18|        |23  PC1 (D  1) SDA
 *  PWM (D 21) PD5 19|        |22  PC0 (D  0) SCL
 *  PWM+(D 22) PD6 20|        |21  PD7 (D 23) PWM
 *                   +--------+
 
Для корпуса TQFP44 в даташите смотрим маппинг PDIP -> TQFP.

4. Запускаем среду Arduino IDE 1.0.4. В меню появилась наша плата Tools > Board > atmega32.

5. Прошивка бутлоадера

6. Прошивка скетча из IDE

7. Помигал светодиодом на макетной плате, ура.

Продолжение, мегадевайс на atmega32

#28

Тут могла бы быть ваша реклама :-)
Tags