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.
7. Помигал светодиодом на макетной плате, ура.
Продолжение, мегадевайс на atmega32