RSS блога
Подписка
Всего $0.60/шт за ATmega128A-AU и самодельная Crumbuino-128 (Arduino ATmega128A)
- Цена: $11.99
- Перейти в магазин
Помню время, когда я покупал ATMEGA128A-AU для своих проектов по $1.
Сейчас их можно купить почти вдвое дешевле! Я себе их заказал аж 40шт, а под катом вы найдете мини обзор как сделать самодельную ардуину на ATMEGA128A используя наработки от немецкой платы Crumbuino-128.
Чуть больше чем год назад я решил сделать самодельную отладочную плату, которая давала бы больше возможностей чем про мини/уно и при этом чтобы она стоила дешевле чем ардуино мега и была при этом ардуино-совместимой.
Причин на то было несколько — я вообще очень люблю делать свои отладочные платы, которых в свое время было сделано 5шт (как для пиков, так и для аврок)
Кстати свою самую первую отладочную плату я сделал именно на 128 меге еще в далеком 2005 году и с тех пор полученный опыт успешно использую и в других проектах.
В этот раз я собрался сделать все качественно и заказать изготовление ПП в китае, но случайно нашел уже готовые нераспаянные отладочные платы:
$13.00 Free shipping 5x ATMEL ATMega128 AVR Development Board DIY PCB bare board
Мне они достались по $2.89 за шт
Реальные фото плат:
Их цена оказалась приемлимой и я решил повторить этот китайский проект как есть, а свои платы сдать в производство потом, учтя недоработки китайцев если они будут найдены.
Но спустя год я могу сказать что китайские платы оказались довольно хорошим инструментом для прототипирования.
Дизайнер платы хорошо постарался, все нужные пины выведены на контактные колодки, особых недоработок я не заметил (мне попала ревизия платы 1.3)
Возможно не всем понравится тип USB порта (USB-A), но это скорее придирки.
Есть стандартные разъемы ISP и JTAG.
Все выводы микроконтроллера выведены на контактные колодки.
ATmega128 (128k Flash, 4k SRAM, 4k EEPROM)
Интерфейсы: 2xUSART, SPI, I2C/TWI, 42x IO Pins
Периферия: 2x 8 Bit / 2x 16 Bit Timer with PWM/Capture/Compare, 8ch. 10 Bit ADC, Analog Comparator, RTC Timer, Watchdog, Brownout, Sleep/Powerdown Modes
PL2303HX USB UART конвертер на USART0
Для сборки этих ардуин было закуплено:
Детальный BOM по ссылке
То чего нет в списке уже было в наличии.
Схема платы
Файлы бутлоадера и добавления поддержки в Arduino IDE качайте тут или тут — все одним архивом:
Полный комплект конструкторской документации + уже полностью настроенная ардуино IDE — архив 250Мб
(без правки оригинальных файлов поддерживаются только версии ардуино IDE не новее 1.0.6)
Я шил с помощью UsbAsp:
Получилась недорогая (себестоимостью $4-5) плата которую не жалко оставить в готовом устройстве и что самое главное спаять ёё сможет любой радиолюбитель-самодельщик. Тут нет ни TSSOP корпусов, ни мелкой рассыпухи.
Проблемы может доставить только пайка PL2303HX, но при остутствии нормального флюса/опыта пайки паяльником ёё можно запаять феном.
Я признаюсь честно одну из 10 плат повредил как раз при (пере)пайке PL2303. Оторвал две дорожки и пришлось пользоваться этой платой без USB-TTL интерфейса (не беда, можно подключить внешний)
Для меня самое главное это повторяемость устройств и повторное использование кода (готовых своих и чужих библиотек, написанных на все случаи жизни), поэтому я осознанно решил остаться на AVR.
Копеечная экономия на чуть более дешевых камнях STM32 не стоит тех затрат времени и сил, которые понадобились бы чтобы портировать код моих библиотек и проектов на STM32.
А разводить зоопарк архитектур не хочется. Ведь это для меня хобби, а не работа.
Готовое решение для любой проблемы на AVR или ардуине нагуглить намного проще. Аналогично ваши наработки другим людям будет легче повторить если они реализованы на одном из популярных AVR микроконтроллеров.
Я решил использовать мегу128 во всех своих серьезных проектах, а там где ее не будет хватать можно поставить например малину.
Для простых проектов мне хватает меги8 или тини13.
Платы были собраны больше года назад, какие то шаги я мог забыть описать.
Если что — спрашивайте в комментариях.
П.С. Больше фотографий спаянных плат будет добавлено на выходных, они на домашнем пк, а обзор пишется почти что на ходу. Спешу поделиться ссылкой, пока продавец не поднял цены на меги.
П.С. Также будет добавлена инструкция по прошивке бутлоадера если нужно, хотя тут нет ничего сложного.
Сейчас их можно купить почти вдвое дешевле! Я себе их заказал аж 40шт, а под катом вы найдете мини обзор как сделать самодельную ардуину на ATMEGA128A используя наработки от немецкой платы Crumbuino-128.
Дополнительная информация
Примечание — это фото ATmega128A заказанных еще в 2014 году как раз для этих самодельных ардуин, поэтому на них датакод 1333. У продавца по ссылке датакод будет более свежий (хотя это совсем не важно).
Чуть больше чем год назад я решил сделать самодельную отладочную плату, которая давала бы больше возможностей чем про мини/уно и при этом чтобы она стоила дешевле чем ардуино мега и была при этом ардуино-совместимой.
Причин на то было несколько — я вообще очень люблю делать свои отладочные платы, которых в свое время было сделано 5шт (как для пиков, так и для аврок)
Кстати свою самую первую отладочную плату я сделал именно на 128 меге еще в далеком 2005 году и с тех пор полученный опыт успешно использую и в других проектах.
В этот раз я собрался сделать все качественно и заказать изготовление ПП в китае, но случайно нашел уже готовые нераспаянные отладочные платы:
$13.00 Free shipping 5x ATMEL ATMega128 AVR Development Board DIY PCB bare board
Мне они достались по $2.89 за шт
Реальные фото плат:
Мои фото
Фото плат ATMEGA128A Mini System (от продавца уже готовых отладок)
Их цена оказалась приемлимой и я решил повторить этот китайский проект как есть, а свои платы сдать в производство потом, учтя недоработки китайцев если они будут найдены.
Но спустя год я могу сказать что китайские платы оказались довольно хорошим инструментом для прототипирования.
Дизайнер платы хорошо постарался, все нужные пины выведены на контактные колодки, особых недоработок я не заметил (мне попала ревизия платы 1.3)
Возможно не всем понравится тип USB порта (USB-A), но это скорее придирки.
TTX платы
Отладочная плата разработчика ATMEGA128A в компактном форм факторе.Есть стандартные разъемы ISP и JTAG.
Все выводы микроконтроллера выведены на контактные колодки.
ATmega128 (128k Flash, 4k SRAM, 4k EEPROM)
Интерфейсы: 2xUSART, SPI, I2C/TWI, 42x IO Pins
Периферия: 2x 8 Bit / 2x 16 Bit Timer with PWM/Capture/Compare, 8ch. 10 Bit ADC, Analog Comparator, RTC Timer, Watchdog, Brownout, Sleep/Powerdown Modes
PL2303HX USB UART конвертер на USART0
Возможные доработки
При желании можно вывести DTR вместо вывода PENДля сборки этих ардуин было закуплено:
Детальный BOM по ссылке
То чего нет в списке уже было в наличии.
BOM
C1, C2, C6, C7 = 22p (Обвязка кварца) — При частотах от 4 до 20МГц можете ставить от 18-20 до 30-33 пикофарад. Лучше — 20-22пф. При большей емкости увеличивается время запуска генератора в нормальный режим (колебания нарастают медленно), при малой емкости или ее отсутствии возможен перескок частоты некоторых кварцев на 3 гармонику.
C3, C5, C9 = 100n
C4 = 4.7uF
C8 1uF — не ставить если нужен bootloader reset (через вывод DTR)
D1 4148 — не ставить если нужен bootloader reset (через вывод DTR)
L1 = можно поставить перемычку
R1, R2 = 20 (USB)
R3 = 1.5k (USB)
R4, R5 = 1k (LED)
R6 = 10k
R7 = 4.7k
C3, C5, C9 = 100n
C4 = 4.7uF
C8 1uF — не ставить если нужен bootloader reset (через вывод DTR)
D1 4148 — не ставить если нужен bootloader reset (через вывод DTR)
L1 = можно поставить перемычку
R1, R2 = 20 (USB)
R3 = 1.5k (USB)
R4, R5 = 1k (LED)
R6 = 10k
R7 = 4.7k
Схема платы
Файлы бутлоадера и добавления поддержки в Arduino IDE качайте тут или тут — все одним архивом:
Полный комплект конструкторской документации + уже полностью настроенная ардуино IDE — архив 250Мб
(без правки оригинальных файлов поддерживаются только версии ардуино IDE не новее 1.0.6)
Прошивка бутлоадера
Тут ничего сложного, кто хоть раз уже это делал разберется и без меня.Я шил с помощью UsbAsp:
Лог прошивки
S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/bin/avrdude -CS:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega128 -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xFF:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright © 2000-2005 Brian Dean, www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch
System wide configuration file is «S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf»
Using Port: usb
Using Programmer: usbasp
avrdude: seen device from vendor ->www.fischl.de< — avrdude: seen product ->USBasp< — AVR Part: ATMEGA128
Chip Erase delay: 9000 us
PAGEL: PD7
BS2: PA0
RESET disposition: dedicated
RETRY pulse: SCK
serial program mode: yes
parallel program mode: yes
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Memory Detail:
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — eeprom 4 12 64 0 no 4096 8 0 9000 9000 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — flash 33 6 128 0 yes 131072 256 512 4500 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type: usbasp
Description: USBasp, www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9702
avrdude: current erase-rewrite cycle count is -50462977 (if being tracked)
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: reading input file «0x3F»
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of lock verified
avrdude: reading input file «0xFF»
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFF:
avrdude: load data efuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of efuse verified
avrdude: reading input file «0xDA»
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of hfuse verified
avrdude: reading input file «0xFF»
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of lfuse verified
avrdude done. Thank you.
S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/bin/avrdude -CS:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega128 -cusbasp -Pusb -Uflash:w:S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex:i -Ulock:w:0x0F:m
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright © 2000-2005 Brian Dean, www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch
System wide configuration file is «S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf»
Using Port: usb
Using Programmer: usbasp
avrdude: seen device from vendor ->www.fischl.de< — avrdude: seen product ->USBasp< — AVR Part: ATMEGA128
Chip Erase delay: 9000 us
PAGEL: PD7
BS2: PA0
RESET disposition: dedicated
RETRY pulse: SCK
serial program mode: yes
parallel program mode: yes
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Memory Detail:
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — eeprom 4 12 64 0 no 4096 8 0 9000 9000 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — flash 33 6 128 0 yes 131072 256 512 4500 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type: usbasp
Description: USBasp, www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9702
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: reading input file «S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex»
avrdude: writing flash (129342 bytes):
Writing | ################################################## | 100% 970.23s
avrdude: 129342 bytes of flash written
avrdude: verifying flash memory against S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex:
avrdude: load data flash data from input file S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex:
avrdude: input file S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex contains 129342 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 728.09s
avrdude: verifying…
avrdude: 129342 bytes of flash verified
avrdude: reading input file «0x0F»
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of lock verified
avrdude done. Thank you.
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright © 2000-2005 Brian Dean, www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch
System wide configuration file is «S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf»
Using Port: usb
Using Programmer: usbasp
avrdude: seen device from vendor ->www.fischl.de< — avrdude: seen product ->USBasp< — AVR Part: ATMEGA128
Chip Erase delay: 9000 us
PAGEL: PD7
BS2: PA0
RESET disposition: dedicated
RETRY pulse: SCK
serial program mode: yes
parallel program mode: yes
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Memory Detail:
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — eeprom 4 12 64 0 no 4096 8 0 9000 9000 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — flash 33 6 128 0 yes 131072 256 512 4500 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type: usbasp
Description: USBasp, www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9702
avrdude: current erase-rewrite cycle count is -50462977 (if being tracked)
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: reading input file «0x3F»
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of lock verified
avrdude: reading input file «0xFF»
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFF:
avrdude: load data efuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of efuse verified
avrdude: reading input file «0xDA»
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of hfuse verified
avrdude: reading input file «0xFF»
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of lfuse verified
avrdude done. Thank you.
S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/bin/avrdude -CS:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega128 -cusbasp -Pusb -Uflash:w:S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex:i -Ulock:w:0x0F:m
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright © 2000-2005 Brian Dean, www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch
System wide configuration file is «S:\.src_Arduino_m128\arduino-1.0.6\hardware/tools/avr/etc/avrdude.conf»
Using Port: usb
Using Programmer: usbasp
avrdude: seen device from vendor ->www.fischl.de< — avrdude: seen product ->USBasp< — AVR Part: ATMEGA128
Chip Erase delay: 9000 us
PAGEL: PD7
BS2: PA0
RESET disposition: dedicated
RETRY pulse: SCK
serial program mode: yes
parallel program mode: yes
Timeout: 200
StabDelay: 100
CmdexeDelay: 25
SyncLoops: 32
ByteDelay: 0
PollIndex: 3
PollValue: 0x53
Memory Detail:
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — eeprom 4 12 64 0 no 4096 8 0 9000 9000 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — flash 33 6 128 0 yes 131072 256 512 4500 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
— — — — — — — — — — — — signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type: usbasp
Description: USBasp, www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9702
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: reading input file «S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex»
avrdude: writing flash (129342 bytes):
Writing | ################################################## | 100% 970.23s
avrdude: 129342 bytes of flash written
avrdude: verifying flash memory against S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex:
avrdude: load data flash data from input file S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex:
avrdude: input file S:\.src_Arduino_m128\arduino-1.0.6\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega128.hex contains 129342 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 728.09s
avrdude: verifying…
avrdude: 129342 bytes of flash verified
avrdude: reading input file «0x0F»
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying…
avrdude: 1 bytes of lock verified
avrdude done. Thank you.
Получилась недорогая (себестоимостью $4-5) плата которую не жалко оставить в готовом устройстве и что самое главное спаять ёё сможет любой радиолюбитель-самодельщик. Тут нет ни TSSOP корпусов, ни мелкой рассыпухи.
Проблемы может доставить только пайка PL2303HX, но при остутствии нормального флюса/опыта пайки паяльником ёё можно запаять феном.
Я признаюсь честно одну из 10 плат повредил как раз при (пере)пайке PL2303. Оторвал две дорожки и пришлось пользоваться этой платой без USB-TTL интерфейса (не беда, можно подключить внешний)
Кто то обязательно спросит: — Почему я не стал делать плату на одном из контроллеров STM32
Сколько я пробовал уйти с AVR на STM32 (а у меня было в наличии несколько разных дискавери), но каждый раз вид этих нагромождений инициализационного кода периферии вгонял меня в уныние и сон.Для меня самое главное это повторяемость устройств и повторное использование кода (готовых своих и чужих библиотек, написанных на все случаи жизни), поэтому я осознанно решил остаться на AVR.
Копеечная экономия на чуть более дешевых камнях STM32 не стоит тех затрат времени и сил, которые понадобились бы чтобы портировать код моих библиотек и проектов на STM32.
А разводить зоопарк архитектур не хочется. Ведь это для меня хобби, а не работа.
Готовое решение для любой проблемы на AVR или ардуине нагуглить намного проще. Аналогично ваши наработки другим людям будет легче повторить если они реализованы на одном из популярных AVR микроконтроллеров.
Я решил использовать мегу128 во всех своих серьезных проектах, а там где ее не будет хватать можно поставить например малину.
Для простых проектов мне хватает меги8 или тини13.
Платы были собраны больше года назад, какие то шаги я мог забыть описать.
Если что — спрашивайте в комментариях.
П.С. Больше фотографий спаянных плат будет добавлено на выходных, они на домашнем пк, а обзор пишется почти что на ходу. Спешу поделиться ссылкой, пока продавец не поднял цены на меги.
П.С. Также будет добавлена инструкция по прошивке бутлоадера если нужно, хотя тут нет ничего сложного.
+213 |
103963
143
|
Самые обсуждаемые обзоры
+28 |
791
27
|
+43 |
2304
59
|
+50 |
2712
38
|
За те же деньги можно собрать гораздо более полезную плату со 128Кб флеша (не говоря уже о 4k SRAM, 4k EEPROM)
А еще к этой плате можно докупить/собрать недорогой JTAG отладчик (вот только придется пользоваться древней авр студией)
Мне бы к примеру было бы интересно увидеть сравнительную таблицу плюшек. Может будет проект где и 2560 не хватит.
А вы часто превышаете 32к кода?
однако у авр fuse такой гимор и нет нормального программатора с гуем
сейчас ковыряю один программатор фирменный с софтом и похоже там глюк или я совсем отупел
вот вся история we.easyelectronics.ru/kalobyte-ya/strannost-s-mega8-na-vyvodah-pb6-pb7.html
делаю для себя вывод, что заниматься умственным трудом не надо после 21 часа и это как минимум
в 8 утра оно как бы лучше работает
нет стабилизатора 5в при питании от внешнего бп
нет контактов для подключения внешнего бп проводами — типа штырьки или винтовые зажимы
Плата стабилизатора у меня как бы отдельный модуль. Я считаю это неправильно когда на каждой плате стоит свой стабилизатор как это принято на ардуиновских модулях.
Особенно когда предполагается батарейное питание
«Сколько я пробовал уйти с AVR на STM32» — присмотритесь к линейкам atXmega, их есть на али, если нужно, могу дать линк на «проверенного» продавца, как раз заканчиваю проект на одной из них, весьма доволен. Жуткое количество апп. периферии по сравнению с мегами и стм 32, и 48мгц тактовая (можно и сильно меньше, но понадобилось).
Несколько лет назад перебрался на ARM, вспоминаю про AVR и содрогаюсь…
Платы для тестов-разработок на stm32f103 беру на Али по паре баксов с копейками…
Для 80% любительских проектов атмег достаточно, особенно тем, кто привык под них писать.
Хотя если убрать привычку, по цене да, Атмел спёкся :(
При проектировании схемы в протеусе и интеграции его с атмел-студией разработка превращается в удовольствие с возможностью пошаговой отладки в обоих софтинах (что полностью исключает возможные ошибки симуляции протеуса).
А в Протеусе можно еще и дополнительную обвязку протестировать.
В последнее время я использую TDD, оно сильно ускоряет разработку и предотвращает появление глюков в прошивке.
Жаль что на STM32F030F4P6 нет таких дешевых плат
Выделяете страницу, пишите информацию каждый раз в следующую чистую ячейку, пока область не заполнится, только тогда страница затирается и по-новой…
www.aliexpress.com/wholesale?ltype=wholesale&d=y&origin=y&isViewCP=y&catId=0&initiative_id=&SearchText=STM32F030F4P6&blanktest=0&tc=af
Готовый IDE на Эклипсе.
P.S. подкиньте зелёнки, то и не плюсануть-то… )))
https://aliexpress.com/item/item/10PCS-LOT-40P-2-54mm-Male-Color-Single-Row-Pin-Header/32405262324.html
Например, сабжевый контроллер сняли с производства.
Слышали, кстати, что Microchip купил Atmel?
Сумма сделки 3,56 млрд долларов.
Вот так вот…
Они пообщещали продолжить выпуск AVR, несмотря на внутреннюю конкуренцию
Видимо, что-то не так с этой планетой, если правильные и востребованные пожираются криворукими конкурентами с фатальной регулярностью :(
Вот, например, статейка на BBC.
Я себе написал тестовую прошивку для проверки портов, еепрома и шима. Любой может закодить себе нечто подобное, однако на 100% протестировать ядро невозможно. Регистров слишком много. Но мы ведь самодельщики, а не разработчики военной техники.
Я пока что не обнаружил ни одного глючного контроллера
не выходила и всё по прерыванию. у другой норма было.
Atmega128 10шт. — программатором видятся и шьются, в промышленном оборудовании не работают. Тоже самое с атмегами64 10 шт.
В 2014 году были куплены 10 шт атмег328р tsop32, три микроконтроллера сразу были с успехом установлены в оборудование. В конце апреля по недосмотру, повредил порты микроконтроллера неразряженным конденсатором в транзистортестере от маркуса.
Каково было моё удивление, когда все!!! оставшиеся 7 микросхем были мёртвые — даже программатором не виделись. Пришлось ардуину пускать на запчасти…
Флюс — глицерин.
Теперь ищу более надежного поставщика
мои поиски надежного продавца пока не увенчались успехом