Мой arduino: начало

whoim
Offline
Зарегистрирован: 03.11.2011

 Привет всем! Мечтаю поскорее присоединится к вашему сообществу, но, как признающий исключительно самостоятельную сборку - хочу собрать ардуино сам. В общем то, с микроконтроллерами дел не имел, но очень хочется.

Итак, правильно ли я понимаю суть вопроса? Ардуино- программная среда и набор стандартов в межмодульных подключениях. Материнская плата ардуино - это обвязка некоего микроконтроллера ATMega, стандартизированная проектом. Конечно, есть готовые решения. В мелочах я готов поступится принципом "собери сам" (например, готовое решение FTDI usb) дешевле заказать с ебей, чем купить у нас эту микруху. Не говоря уже о пайке. Но в целом - только сам. Да, в "ардуино" матплату превращает бутлоадер ардуино и канал связи с компутером.

Итак, вопросы.
1) Подойдет ли ATMega32(L)?
2) Что должно быть на матплате ардуино? (исходя из концепции - минимум, все платами расширения). Достаточно наборов ключевых слов, гугл детальнее расскажет.
3) Как вы смотрите на это как основу для постройки ардуино?

Бутлоадер планирую залить на программаторе товарища. Хотелось бы чтобы эта плата в дальнейшем сама была программатором. Дисплей и кнопки хотел бы оставить, хотя кнопок можно меньше. Было бы удобно в дальнейшем написать прошивку для тестирования микроконтроллера, за этим дисплей и кнопки.

Спасибо заранее! Не обессудьте что бардаком излагаю, всю ночь читал интернеты.

whoim
Offline
Зарегистрирован: 03.11.2011

 Да, кстати, в нашем городе нашел атмега32 только в маленьком корпусе. Купить пока не могу, к сожалению - только завтра. Но уже развел плату-переходник, для изготовления ЛЛТ. ЛУТ тоже можно попробовать если потом еще погреть на утюге вверх тормашками.

Просьба - у кого есть атмега32 в корпусе tqfp - распечатайте, померьте плз. Да и дип можно сверить - я не уверен что это PDIP.

http://sendfile.su/460782

 

И добавлю еще мыслей, прошу опровергнуть или подтвердить. Согласно очень схожей гадости выходит, что мне минимум нужен еще резет и его программный сброс. Можно ли это сделать на мах232 или лучше рассыпухой как на той схеме?

76region
Offline
Зарегистрирован: 08.07.2011

Вот Вам готовое решение  http://robozone.su/2008/02/29/universalnyjj-robo-kontroller-mrc28.html, если ком есть на компе то и без юсб можно обойтись

whoim
Offline
Зарегистрирован: 03.11.2011

76region пишет:

Вот Вам готовое решение  http://robozone.su/2008/02/29/universalnyjj-robo-kontroller-mrc28.html, если ком есть на компе то и без юсб можно обойтись

Огромное спасибо! Но очень хочется на 32 меге, ибо под нее нашел парочку весьма интересных к повторению проектов :) Правильно я размышляю, что решения с атмега8 можно драть смело, заработает?

whoim
Offline
Зарегистрирован: 03.11.2011
Mogalkov
Offline
Зарегистрирован: 23.06.2011

 Для начала, atmega32 это не atmega328. Разница начинается с корпусов: TQFP44 у 32й и TQFP32 у 328й. Соответственно у 32й больше выводов, и к тому-же совершенно другое их расположение, У 32й аналоговые входы находятся на порту A, у 328й на порту С. В общем отличий много, и тебе придется дорабатывать оболочку ардуины чтоб подключить 32ю.

Даташит на 32ю lib.chipdip.ru/059/DOC000059770.pdf

Даташит на 328ю:lib.chipdip.ru/303/DOC000303014.pdf

На счет полной поддержки ардуино 32й меги не уверен(стандартного ардуино загрузчика нет), но у 32й есть более интересные решения - это ATmega32U4-AU она уже со встроенным аппаратным усб.  Вот даташит:lib.chipdip.ru/314/DOC000314012.pdf

 

whoim
Offline
Зарегистрирован: 03.11.2011

Спасибо за инфу, речь о 40-пин 32L и велась. Контроллер по ссыле выше уже собираю, печатка готова и переходник с tqfp под зажим канцелярской прищепкой. Посмотрим :)

76region
Offline
Зарегистрирован: 08.07.2011

а где прошиву возьменете под нее?

 

whoim
Offline
Зарегистрирован: 03.11.2011
whoim
Offline
Зарегистрирован: 03.11.2011

 вот еще: http://wiki.edwindertien.nl/doku.php?id=software:bootloaders

 


Arduino bootloader for ATmega32

ATmega32 controllers are not usually found in Arduino boards. However, since they have been used in a number of projects, it is usefull to adapt both bootloader and Arduino environment.

Compiling (and programming) the bootloader

remove / comment out the EFUSE definition. Since the ATmega32 does not have this fuse, don't try to program it, so remove

U efuse:w:0x$(EFUSE):m 
in the ISPFUSES setting.

the makefile has been extended:

atmega32: TARGET = atmega32
atmega32: MCU_TARGET = atmega32
atmega32: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' 
atmega32: AVR_FREQ = 16000000L 
atmega32: LDSECTION  = --section-start=.text=0x7800
atmega32: $(PROGRAM)_atmega32.hex

atmega32_isp: atmega32
atmega32_isp: TARGET = atmega32
atmega32_isp: MCU_TARGET = atmega32
atmega32_isp: HFUSE = DA
atmega32_isp: LFUSE = FF
atmega32_isp: isp
the –section start directive tells the compiler where the bootloader section starts. In the avr datasheet this address is given in words (0x3c00) For the compiler here, the address needs to be in bytes, so you have to multiply the number in datasheet hexadecimal by two (so 0x3c00 becomes 0x7800) In the bootloader source itself, make sure the correct registers for UART are set:

#elif defined __AVR_ATmega8__ || defined __AVR_ATmega32__
	/* m8 , 32*/
	UBRRH = (((F_CPU/BAUD_RATE)/16)-1)>>8; 	// set baud rate
	UBRRL = (((F_CPU/BAUD_RATE)/16)-1);
	UCSRB = (1<<RXEN)|(1<<TXEN);  // enable Rx & Tx
	UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  // config USART; 8N1
Here are the used bootloader sources: atmegaboot-32.zip

Compiling Software for mega32 using Arduino

Adapt the boards.txt file in your arduino hardware directory:

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

atmega32.name=Atmega32 board

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

atmega32.bootloader.low_fuses=0xFF
atmega32.bootloader.high_fuses=0xDA
atmega32.bootloader.path=atmega
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

##############################################################
Furthermore, change every instance of

#if defined(__ATmega8__)
in all the c-files in cores/arduino (such as wiring.c, hardwareserial.cpp, wiring_analog.c, wiring_digital.c, WInterrupts.c) into

#if defined(__ATmega8__)|| defined(__ATmega32__)
And change every instance of

#if !defined(__ATmega8__)
in all the c-files in cores/arduino (such as wiring.c, hardwareserial.cpp, wiring_analog.c, wiring_digital.c, WInterrupts.c) into

#if !defined(__ATmega8__) && !defined(__ATmega32__)
Also, you need to change the pin definitions. Some work has been done by | robocraft. Download and unzip to the correct directory.

The following example makes a LED blink on PORTB.1. This has been tested on the Mega32

int ledPin = 9;                // LED connected to digital pin 13

void setup()                    // run once, when the sketch starts
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()                     // run over and over again
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(100);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(100);                  // waits for a second
}
Mogalkov
Offline
Зарегистрирован: 23.06.2011

Спасибо за ссылку, действительно полезно, тиньку 40ю уже подключал, терь попробую 32ю.

76region
Offline
Зарегистрирован: 08.07.2011

Контроллер по ссыле выше уже собираю, печатка готова и переходник с tqfp под зажим канцелярской прищепкой. оперативно Вы :)

whoim
Offline
Зарегистрирован: 03.11.2011

 да были бы запчасти уже распаял бы.. Болею, из дома не выхожу. Завтра друг атмегу привезет. Проверил бы кто переходник, а то по болезни рисую его.. 

whoim
Offline
Зарегистрирован: 03.11.2011

 А по поводу печаток - ламинатор рулит! Перенес тонер на текстолит со второго раза, причем на подложке у меня принтер не печатает - использовал рекламные листочки билайна, добываются нахаляву :) На утюге погрел на всяк и фпиред. Бумага потом отмывается мылом с тонера, а на меди ее и не остается.

Mogalkov
Offline
Зарегистрирован: 23.06.2011

Возможно имеет смысл подумать вот об этой плате: ladyada.net/products/atmega32u4breakout/

github.com/adafruit/Atmega32u4-Breakout-Board/raw/master/atmega32u4bbsch.png

Чип: atmega32u4, минимум деталей в обвязке, никакого переходника юсб-юарт так как юсб уже встроен в МК на аппаратном уровне.

whoim
Offline
Зарегистрирован: 03.11.2011

 Возможно, разведу когда нибудь сам такое. Пока цель - собрать стенд и набор переходников для атмег. Приехала мне 32-я в.. MLF. 7x7 мм контакты. Пришлось осваивать исскуство впайки оных, вроде успешно. Но не запускал, не на чем пока. Переходник выложил тут: http://forum.roboclub.ru/IPBoard/index.php?showtopic=2633&view=findpost&p=29991

whoim
Offline
Зарегистрирован: 03.11.2011

 Ну что же, собрал. Почти. Осталось на переходнике десяток перемычек а у меня нет 0.5-0.4мм сверла. И припой кончился :)

Вот фото: 

 

А теперь вопрос :) На борту есть прошивалка на max232, я с ее помощью могу прошить атмегу бутлоадером и/или заливать скетчи?

whoim
Offline
Зарегистрирован: 03.11.2011

 Еще вопрос: верно ли вот это?

whoim
Offline
Зарегистрирован: 03.11.2011
whoim
Offline
Зарегистрирован: 03.11.2011

 Помогите :) БОЮСЬ :)

Все собрал, питание есть, надо шить бутлоадер. Ардуину  я как на фотке выше обновил.

Теперь надо скачать AVR Studio и сделать как в посте номер 9? Подскажите :) Шьюсь через компорт и мах232 на борту платы

whoim
Offline
Зарегистрирован: 03.11.2011

Уточню запросы :)

Смогу ли я этим прошить бутлоадер напрямую из ардуино? Бутлоадер нашел.

whoim
Offline
Зарегистрирован: 03.11.2011

 пошол ка я куплю лпт порт себе в машину, чиппрог+ заведу. фьюзы вроде такие: http://my.jetscreenshot.com/1474/20111106-alqf-147kb.jpg

whoim
Offline
Зарегистрирован: 03.11.2011

 будем надеятся, выставил верно..

http://my.jetscreenshot.com/1474/20111107-p7tc-191kb

whoim
Offline
Зарегистрирован: 03.11.2011

 Не работает. Ни на кварце, ни на внутреннем резонаторе. Не заводится и от пальца (наводки). Микросхема шьется, читается, стирается. Два вида загрузчика для 2 атмеги пробовал (найденные на буржуйских сайтах). 

Прошу тестовую прошивку для Атмеги32, например которая сможет мигать некоторыми светодиодами или всеми по кругу (на все ноги).

Сейчас на пин13 (pb5) никакой реакции. Зато она есть на PD1(txd) и кратковременно пропадает при  резете.

Возможно - загрузчик ардуино для 32 атмеги не должен мигать ничем. Должен просто слушать порт. А у меня проблема с max22 (он бэу). Как знать наверняка?

Дайте плз прошивочку, работающую в направлении моргания светодиодов.. Без ардуино загрузчика..

whoim
Offline
Зарегистрирован: 03.11.2011

 Значить, 32 атмега с загрузчиком ардуино моргает на PD0. Отлично, но связи через компорт нет, в боардс тхт прописана как stk500

whoim
Offline
Зарегистрирован: 03.11.2011

 Все работает. Был негоден мах22 и неправильно разведен комп-порт на панельке с матери. Спасибо! Хочешь сделать хорошо - много и медленно читай (про фьюзы)

Только авторезет не пашет, ну да чорт с ним.

В общем, ардуина на 32 меге - есть!

whoim
Offline
Зарегистрирован: 03.11.2011

 Собрал опыт в кучу: http://mcudevice.narod2.ru/mcr-40/

vba1984
Offline
Зарегистрирован: 24.01.2012

подскажите что в итоге вышло - как и чем прицепили 32ю мегу, у меня есть 32я в куфп64 очень хочу подружить ее с дуиной.

С уважением. 

whoim
Offline
Зарегистрирован: 03.11.2011

 Да что, работает, лежит в коробке. Приходится для нее держать отдельную папку со старой иде, версии 0022. Файлы скачиваются по ссылке выше, там же есть ссылка на видео как их устанавливать (дополнять ИДЕ). Там же и бутлоадер, заливать только парралельным или ISP программатором.

vba1984
Offline
Зарегистрирован: 24.01.2012

ftdi шило пойдёт? или только или ком или паралельный прогер?(с лпт порта, не STK200)

версия дуины долько 0022? 23я не катит тоже? прально понял?

просто испинал уже со всех сторон 32ю.. мож чего упустил - вот и уточняю:)  

whoim
Offline
Зарегистрирован: 03.11.2011

 да, ft232rl нормально льет, никаких отклонений. Важно: бутлоадер мигает на 8 пине, а не на 13. Я долго его перешивал, ища его))) Распиновки не осталось, придется методом тыка. Либо могу попозже зарисовать с платы MRC40, я там писал когда искал их.

Изменения софта делались под 22, с 23 я не тестил. 22 лежит если что, могу скинуть.

 

vba1984
Offline
Зарегистрирован: 24.01.2012

лодырь из 8 поста? или 9го? %)

распиновку былобы очень круто, по времени - сёдня точно паять уже не буду:) думаю оно не одному мне пригодится.

как что получится обязательно отпостю сюда:) 

whoim
Offline
Зарегистрирован: 03.11.2011
whoim
Offline
Зарегистрирован: 03.11.2011

 тьфу, несразу вьехал про лодырь)))) восьмого))

whoim
Offline
Зарегистрирован: 03.11.2011

 ftdi шило пойдёт? или только или ком или паралельный прогер?(с лпт порта, не STK200)

оп, несразу понял, думал про уарт вопрос. Я чиппрогом лил, но по идее разниц с той же 8/328 атмегой нет, кроме как во фьюзах.

Позже могу снять камень и слить их, ибо не помню уже. Хотя точно помню что на робозоне в последних каментах чувак верные фьюзы давал.

vba1984
Offline
Зарегистрирован: 24.01.2012

по ссылкам всё ясно, кроме того какой загрзчик зашит в мегу.. собственно пока в этом затык.. 

whoim
Offline
Зарегистрирован: 03.11.2011

В скачанных файлах atmega32...hex, поищите в hardware
их там немного. Скачанных на страничке с видео.

whoim
Offline
Зарегистрирован: 03.11.2011

Дома буду - точно сказать могу

vba1984
Offline
Зарегистрирован: 24.01.2012

нету этого счастья.. :( сейчас попинал - получил одноразовый бут:( когда нет шерстил - попадалось парочка, в итоге один из всех даёт единожды загрузить из дуины скетч и на этом усё - скетч пашет самостоятельно... бут больше не откликается..  

whoim
Offline
Зарегистрирован: 03.11.2011

 http://narod.ru/disk/38768118001/bootloaders.zip.html

пробуй начала тот что длиннее всех. Светодиод ищи на 8 пине ардуино, где это на МК я не помню. Моргает 2-4гц.

whoim
Offline
Зарегистрирован: 03.11.2011

 http://narod.ru/disk/38768278001/ATMEGA32-Software%20Support.zip.html

это файлы к дополнению Arduino Ide 0022, там пинауты можно посмотреть чтоб не искать ручками..

vba1984
Offline
Зарегистрирован: 24.01.2012

всё завелось!!!!!!!!

бут этот http://wiki.edwindertien.nl/lib/exe/fetch.php?media=software:atmegaboot-...

фузы

atmega32.bootloader.low_fuses=0xFF
atmega32.bootloader.high_fuses=0xDA 

 

whoim
Offline
Зарегистрирован: 03.11.2011

а из какой статьи файл? ардуино дополняли для работы с 32 атмегой?

vba1984
Offline
Зарегистрирован: 24.01.2012

пардон - вот весь список

бут этот http://wiki.edwindertien.nl/lib/exe/fetch.php?media=software:atmegaboot-...

фузы

atmega32.bootloader.low_fuses=0xFF
atmega32.bootloader.high_fuses=0xDA

апгрейт ардуины от сюда 

http://www.thaieasyelec.net/index.php/Arduino/ATmega32-Dev-Board-Arduino...

шил ftdi шилом т.к. лпт нету:) 

камень сейчас на макетке, но это не надолго, в итоге всё под мега пилот допилю

Вам спасибо за поддержку:)

dim
Offline
Зарегистрирован: 09.01.2012

 привет всем. Вспомнил про свою железку мастеркит nm8036. Модскажите как превратить его в ардуинку? Стоит Atmega 32 16pu. Внешнего резонатора нет. Как я понимаю резонатор нужно впаять на Xtal1 и xtal2, но пока нет в наличии кварца. Можно ли обойтись без него? еще интересует вопрос как прошить бут с помощью FTDI friend.

Nm8036

 

 

vba1984
Offline
Зарегистрирован: 24.01.2012

FTDI friend
я зашивал через avrdude, скажите как сюда файло сгрузить - выложу чем шил.

кварц необходим. 

whoim
Offline
Зарегистрирован: 03.11.2011

 да, бутлоадер работает только на 16. Кварц - 5 рублей у нас. Конденсаторы 22пф на минус не забываем от ног мк/кварца.

vba1984
Offline
Зарегистрирован: 24.01.2012

 начал портировать мега пилот для 32 мегу.. сто граблев:(  нужно согласовывать рабочие регистры, в ардуневских бордах на 328й например у камня регистры несколько иначе называются, и есть некоторые новые - их согласовать ещё нада.. :) жесть кароч:)) зато потом:) ...

dim
Offline
Зарегистрирован: 09.01.2012

Нашел распиновку похожего устройства http://aplcino.blogspot.com/2011/01/arduino-bm8036-2.htm

Пин Arduino Порт ATmega32 Назначение
0 PC7 OUT0 (220-1)
1 PC6 OUT1 (220-2)
2 PC5 OUT2 (220-3)
3 PC4 OUT3 (220-4)
4 PA7 OUT4 (свободен)
5 PA6 OUT5 (свободен)
6 PA5 OUT6 (свободен)
7 PA7 OUT7 (свободен)
8 PD7 DALLAS (вход для сети 1-wire)
9 PD0 RX
10 PD1 TX
11 PD5 BEEPER0 (микродинамик)
12 PB0 E (шина дисплея)
13 PB1 RW (шина дисплея)
14 PB2 RS (шина дисплея)
15 PB4 D4 (шина дисплея)
16 PB5 D5 (шина дисплея)
17 PB6 D6 (шина дисплея)
18 PB7 D7 (шина дисплея)
19 PD4 BR (подсветка дисплея)
20 PD2 TACT1S (подключен к SQW/OUT DS1307)
21 PC0 SCL (подключен к SCL DS1307)
22 PC1 SDA (подключен к SDA DS1307)
23 PA0 BAT (напряжение батареи RTC)
24 PA1 KEYS (аналоговые кнопки)
25 PA3 IN1 (вход АЦП 1 на колодке)
26 PA2 IN1 (вход АЦП 0 на колодке)
27 PD3 INT1 (свободен)
28 PD6 ICP (свободен)
29 PC2 TCK (свободен)

30 PC3 TMS (свободен)
 

vba1984
Offline
Зарегистрирован: 24.01.2012

кроме этого ещё нада библиотеки поправить - в статейке про это есть.. сам тож пилю этот вопрос. 

whoim
Offline
Зарегистрирован: 03.11.2011

 ребят, вы чо делаете, велосипед? файлы скачали, в папку с ардуиноиде закинули - все работает!