Arduino проект в Atmega

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

Уважаемые друзья, подскажите пожалусто, есть проект на ардуино, я хотел бы код залить в atmega ,можно ли как то скомпилировать под Atmega ?

maksim
Offline
Зарегистрирован: 12.02.2012

Вы для начала с определениями определитесь.... тут почитайте.
А затем почитайте какие бывают и из чего сделаны Arduino.

Сейчас ваш вопрос звучит примерно так: "Есть лампочка от машины, можно ли ее поставить в фару Хонды?"

triada13
Offline
Зарегистрирован: 04.01.2013

maksim доброе время суток, подскажите если я камень с ардуины уно вставлю в вот эту плату (с соответствующим переходником) будет ли ее видить Arduino IDE?

maksim
Offline
Зарегистрирован: 12.02.2012

Зависит от того как эта плата видна в винде, но скрее всего как СОМ-порт, то тогда в IDE просто выберите соответствующий СОМ-порт. А вот сможете ли вы прошивать МК зависит от того подключена ли FTDI к TX, RX и RESET выводам МК, но вроде как можно это сделать проводами, правда на плате не видно самой FTDI, может она конечно с другой стороны платы...

triada13
Offline
Зарегистрирован: 04.01.2013

Там стоит двух канальный FTDI в диспетчере устройств появляется два ком порта, сама микросхема стоит с обратной стороны.

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

Собственно вопрос в том что я сделал проект на ардуино с использованием библиотеки rc switch , но сейчас хочу этот проект залить в атмегу8 , но незнаю как туда залить! Сделал HEX в ардуино попробвал залить в мегу, толку нет.

Если писать с нуля на CodeVisionAVR с подключением библиотеки, то компилятор ругаеться на подключенную библиотеку. Какой то замкнутый круг!

Клапауций
Offline
Зарегистрирован: 10.02.2013

ishimcity пишет:

Собственно вопрос в том что я сделал проект на ардуино с использованием библиотеки rc switch , но сейчас хочу этот проект залить в атмегу8 , но незнаю как туда залить! Сделал HEX в ардуино попробвал залить в мегу, толку нет.

Ничего особо сложного нет - выбираете в Arduino: плату "Arduino NG or older w/ ATmega8", программатор: который у вас есть из списка, фьюзы отдельно записываете : avrdude -p atmega8 -c stk500v2 -U hfuse:w:0xc9:m -U lfuse:w:0x9f:m - вариант с кварцевым резонатором.

Предварительно в среде Ардуино, проверяете - а влезет ли желаемое в восьмую мегу.

maksim
Offline
Зарегистрирован: 12.02.2012

В поиске по сайту вбиваете "Atmega8" и смотрите не только первую станичку, а в гугле, например, вбиваете "ArduinoISP".

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

Спасибо ребята!

 

leshak
Offline
Зарегистрирован: 29.09.2011

ishimcity пишет:

Собственно вопрос в том что я сделал проект на ардуино с использованием библиотеки rc switch , но сейчас хочу этот проект залить в атмегу8 , но незнаю как туда залить! Сделал HEX в ардуино попробвал залить в мегу, толку нет.

Когда вы делаете HEX, то нужно его делать (компилировать) именно под ту плату (микроконтроллер) в который вы собираетесь вливать.

То есть, если у вас, в момент компиляции была выбрана плата Uno/Mega и т.п., то получившийся скетч вы в atmega8 уже не зальете (вернее зальете может-быть, но вот работать - точно не будет). Вообщем совместимость между ними все-ми - на уровне скетчей более/менее есть, а на уровне HEX-сов - нет. Под каждый контроллер нужно перекомпилять заново.

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

Ну и что-бы ардуиноIDE признала микровонтроллер как "ардуино плату" - нужно вначале в нее влить бутлоадер (собственно только его наличием/отсутсвием и отличается "ардуино" от "просто плата на AVR микроконтроллере").

leshak
Offline
Зарегистрирован: 29.09.2011

А вообще, PinBoard - шикарная плата. Только, скорее, все-таки для проф. нужд. Когда на потоке нужно девасы разрабатывать (сегодня на одном камне, завтра на другом... и т.п.).

Покупать ее что-бы сделать парочку разовых пректов - особо нет смысла. Все равно как купить проф. зеркалку за $20K что-бы сделать пару снимков на дне рождения. 

Хотя, конечно если "цена не вопрос" - то можно и ее взять. Вещь - хорошая.

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

Все верно сказали по поводу компиляции, лохонулся , компилил под одно заливал в другое) понял когда в протеусе начала ругаться на ячейки памяти. сейчас компильнул под атмегу8 ,вечером буду собирать проект в кучу!

 

triada13
Offline
Зарегистрирован: 04.01.2013

leshak пишет:

А вообще, PinBoard - шикарная плата. Только, скорее, все-таки для проф. нужд. Когда на потоке нужно девасы разрабатывать (сегодня на одном камне, завтра на другом... и т.п.).

Покупать ее что-бы сделать парочку разовых пректов - особо нет смысла. Все равно как купить проф. зеркалку за $20K что-бы сделать пару снимков на дне рождения. 

Хотя, конечно если "цена не вопрос" - то можно и ее взять. Вещь - хорошая.

Мне она тоже нравится, осталось додуматься как ее прикрутить к Arduino IDE. Но пока не получается. В комплекте шел Atmega 16 и как на него воткнуть дуиновский загрузчик незнаю, а инфу в инете пока не нагуглил. (((

leshak
Offline
Зарегистрирован: 29.09.2011

Погуглите как Atmega 32 прикрурить. Вроде был в инете бутлоадер под нее (и пин маппингу нужно было поправить). Кто-то выпускал, вроде ардуино-клон на atmega32. А с 16-той, если не ошибуюсь, у нее отличие - только в количестве памяти. Так что маппинги, бутлоадер, фьюзы - должны подходить.

Но.. на вашем месте. Я бы вначале взял более традиционный камень. 168, 328 и на нем запустил эту плату. Что-бы не гадать, в чем траблы. Толи из-за камня нестандартного, то ли из-за платы.

leshak
Offline
Зарегистрирован: 29.09.2011

ATMEGA16/32 with Arduino/Processing software

Hexskews ATmega32L Bootloader - QEEWiki  (вот тут не уверен, возможно буква L помешает)

Вот еще был линк

http://www.thaieasyelec.net/index.php/Arduino/ATmega32-Dev-Board-Arduino-Diecimila-Compatible-DIP-28-DIP-40-/p_133.html

на арудино клон32-той, но он "уже мертв", может найдете кто был производителем где-то в гугл-кешах.

Вот тут 

software:bootloaders [Small Electronic Thingies for All Kinds of Fun Stuff] есть и бутлоадер  (ищите на странице atmegaboot-32.zip)

 

Можно и еще нагуглить. Вообщем при желании - думаю заставите свою 16-тую быть дуиной, но потанцевать - прийдется.

triada13
Offline
Зарегистрирован: 04.01.2013

leshak огромное спасибо, обязательно все проштудирую.

По поводу 328й, есть у меня от уно с бутлоудером зашитым, но нету внешнего резонатора в наличии на 16 мегагерц, есть только на 12, а как перешить фьюзы самому мне ваще даже думать страшно. Вот поэтому я и мучаю атмегу 16 что в комплекте шла с платой, а 328 держу про запас.

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

Блин собрал! Всеравно не работает гадость такая((, LCD показвает что готов а с RF приемника не идут данные((

Ребята посмотрите что не так делаю? На ардуино все равботает! после загрузки в Atmega не работает!

 

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

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

Клапауций
Offline
Зарегистрирован: 10.02.2013

kisoft пишет:
Я атмегу16 на пинбоарде завел, многое работает. Tone не добил. Короче бутлоадер я сделал, ядро ардуиноиде пофиксил, постараюсь выложить. Хотел статью написать. Ждите

А, что конкретно в Tone не работает?

triada13
Offline
Зарегистрирован: 04.01.2013

kisoft с меня презент, кинь адрес куда отсылать.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Клапауций пишет:

А, что конкретно в Tone не работает?

При прогоне тестовых примеров, к примеру ноты от до до ля третьей октавы играет на одной частоте, си3 и до4 на другой. Сначала вообще не "играло", потом я поправил Tone.cpp и стало так, как я написал. В принципе примерно понятно, что надо делать, но копаться лень, потому что мне особо не нужно.

Попробую на днях описать что я фиксил, но времени мало. В diff могу выложить быстрее, но это мало кому поможет :) Да, всё делалось на ArduinoIDE 1.0.4.

Сейчас про бутлоадер напишу, для начала. Там всё просто.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

triada13 пишет:

kisoft с меня презент, кинь адрес куда отсылать.

Ок, чуть позже выложу номер счета в банке ;)

Для начала я таки написал краткую статью, как сформировать bootloader, см. здесь http://arduino.ru/forum/proekty/arduinoide-i-atmega16-formiruem-bootloader

 

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

Ребята а в чем смысл бута в атмеге? я просто залил HEX проекта LCD показвает все как надо! Вчера 2 атмеги убил похоже этим бутом))) нашел в папке ардуино бут для atmega8 прошил теперь програматор видит что это контроллер но нехочет ни читать ни писать в его!

triada13
Offline
Зарегистрирован: 04.01.2013

kisoft пишет:

Ок, чуть позже выложу номер счета в банке ;)

Ну вот сразу счет и деньги, а я хотел графический дисплей презентовать, правда монохром, но зато халява. ))

leshak
Offline
Зарегистрирован: 29.09.2011

ishimcity пишет:

Ребята а в чем смысл бута в атмеге? я просто залил HEX проекта LCD показвает все как надо!

Главный смысл бута - привратить атмегу в ардуино. То есть - получить возможность заливать скетчи без программатора, через UART/SERIAL.

ishimcity пишет:

Вчера 2 атмеги убил похоже этим бутом))) нашел в папке ардуино бут для atmega8 прошил теперь програматор видит что это контроллер но нехочет ни читать ни писать в его!

Бутом - вы не можете убить. Бут - это вообщем-то "просто програма". 99% что вы нахомутали с фьюзами когда бут вливали. Если залокали, выключили SPI и т.п.  - то тут только высоковольтный программатор поможет.

Но есть надежда, что вы просто включили внешнее тактирование (у большинства плат из boards.txt именно внешний кварц во фьюзах), а кварца у вас нет. Тогда, что-бы програматор увидел камень - нужно просто кварц к нему добавить.

Вот можете почитать про фьюзы

AVR. Учебный Курс. Конфигурация FUSE бит | Электроника для всех

Там же кстати и описан методод как сменить фьюзы, если они выставлены "на внешний", а кристала/генератора нет под рукой. Ищите на странице "техническое отступление"

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

Щас попробвал прочитать контроллер и о чудо, читает и пишет сново))))

По поводу Fuse я высчитвал калькулятором , прошиваю через  ProgISP, Кварц 8мгц на борту платы уже стоит, а вот как в проге выставить кварц непонятно)))

 

И еще вопросик 1 = включено , 0 = выключено? верно?!

 

 

 

toc
Offline
Зарегистрирован: 09.02.2013

ishimcity пишет:

И еще вопросик 1 = включено , 0 = выключено? верно?!


Наоборот. 

1 - unprogrammed (по умолчанию в чипе)

0 - programmed (включено).

Так повелось с тех пор, когда фьюзы были физическим проводником в чипе. Когда он есть имеем "1". 
При включении параметра ("программировании") фьюз пережигался и превращался в "0". 
(fuse - по английски имеет одно из значений "предохранитель")

 

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

Вот спасибо большое! А я голову ломаю ставлю 1 а оно не работает ))))

 

triada13
Offline
Зарегистрирован: 04.01.2013

ishimcity пишет:

Щас попробвал прочитать контроллер и о чудо, читает и пишет сново))))

По поводу Fuse я высчитвал калькулятором , прошиваю через  ProgISP, Кварц 8мгц на борту платы уже стоит, а вот как в проге выставить кварц непонятно)))

 

И еще вопросик 1 = включено , 0 = выключено? верно?!

 

 

 

поделись ссылкой на калькулятор.

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

Да запросто лови http://www.engbedded.com/fusecalc/

triada13
Offline
Зарегистрирован: 04.01.2013

ishimcity пишет:

Да запросто лови http://www.engbedded.com/fusecalc/

Премного благодарен.

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

Ребята выручите плиз, залочил 3 штуки atmegи по CKSEL3...0 = 0000, кварц на 8мгц на ножках не видит, я так понимаю надо собрать генератор на 1 мгц чебы разлочить? подкинте схемку на 555 микросхемке? Спасибо!

leshak
Offline
Зарегистрирован: 29.09.2011

leshak пишет:

Вот можете почитать про фьюзы

AVR. Учебный Курс. Конфигурация FUSE бит | Электроника для всех

Там же кстати и описан методод как сменить фьюзы, если они выставлены "на внешний", а кристала/генератора нет под рукой. Ищите на странице "техническое отступление"

Опять-таки, в этой же статье есть  и ссылка на калькулятор фьюзов, который вы выпрашивали раньше. Причем именно на тот же калькулятор. И про "что значит 0, а что 1" - тоже там есть.

leshak
Offline
Зарегистрирован: 29.09.2011

>подкинте схемку на 555 микросхемке?
Если есть дуина в руках, то почему-бы на одну из ее ног не выдать импульсы? Пусть он еще и генератором поработает.

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

Дуина имеется, прошу прощения за тупоголовость ,  а можно пример кода или схемку как это организовать через ардуино?

maksim
Offline
Зарегистрирован: 12.02.2012

Если дуина будет генератором на 1 МГц, то ей же прошивать не получится. Пост #43.
Заливаете, открываете сериал-монитор, вбиваете в него 1000000 и нажимаете send, сериал-соединение виснет, но вроде как на 9 выводе дуины получаем 1 МГц. "Вроде как" потому что сам осциллографом не проверял, но по даташиту расчет верный.

leshak
Offline
Зарегистрирован: 29.09.2011

maksim пишет:

 сериал-соединение виснет, но вроде как на 9 выводе дуины получаем 1 МГц. 

Да там же не обязательно 1Мгц выдвать. Если "метод пальца" - прокатывает что-бы фьюзы перешить, то значит и 50 герц хватать должно. Выше скорость - значит просто быстрее все это пройдет.

Но, честно говоря - не пробовал.

Возможно даже хватит подкрутить чуток heartbeat() в AduinoISP.

Но, конечно, если есть просто отдельная ардуино для генерации сигнала и отделная для прошивки (или просто есть программатор), то проще не морочить себе голову с модификаций ArudinoISP

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

У меня есть отдельно програматор ProgISP и отдельно ардуино!

leshak
Offline
Зарегистрирован: 29.09.2011

ishimcity пишет:

У меня есть отдельно програматор ProgISP и отдельно ардуино!

 

 

 ну тогда все просто в отдельную дуино "скетч от Максима", если хочется именно 1mHz.
 
Или, если "ну что-бы выдать какую-нибдь", вообще что-то тривиальное.
Тупо дергать ногой дуины.
 
bool state=false;
#deinfe PIN 9

setup(){
pinMode(PIN,OUTPUT);
}

void loop(){
state!=state;
digitalWrite(PIN,state);
delay(10);
}

 

 
Можно еще выкинуть delay() и вместо digitalWrite прямую запись в порт делать - что-бы поднять частоту.
ishimcity
Offline
Зарегистрирован: 24.01.2012

Ребята Спасибо Вам большое щас приеду с работы буду пробвать!

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Не забудьте, что ночью надо иногда спать! ;) Удачи!

 

leshak
Offline
Зарегистрирован: 29.09.2011

kisoft пишет:

Не забудьте, что ночью надо иногда спать! ;) Удачи!

 

Учитывайте что не у всех сейчас ночь ;)

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Не всем повезло, значит, а нам, говорят, подвезут чуть позже, так что у меня дома всем ночи хватит :) Рассылать что ли по почте, кому мало.. эхх

Кстати, о фьюзах, для Андроида есть "AVR Fuse", может кто не знает. Во всяком случае всегда под рукой. А еще "AVR database" или типа того, там даташиты на многие AVR МК, тоже может быть полезным.

 

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

Ребята спасибо огромное 3 МК разблокировал с помощью ардуино!!!!!!!!!!!!!!!!!!!!!!!!!!

leshak
Offline
Зарегистрирован: 29.09.2011

ishimcity пишет:

Ребята спасибо огромное 3 МК разблокировал с помощью ардуино!!!!!!!!!!!!!!!!!!!!!!!!!!

А теперь заблокируйте их обратно!!

Что-бы потренироватся ;)

И "метод пальца" - опробовать.

Так каким вариантом сигнал генерили "1mHz" или "тупо дергаем ногой абы-как?"

dtvims
Offline
Зарегистрирован: 26.11.2012

В качестве софта для программирования лучше всего использовать SinaProg. Мало того, что у меня только он нормально заработал с arduinoISP (AvrISP), так еще и сам в себе имеет шикарный фьюзе-калькулятор, в котором интуитивно понятно или ставим галки или снимаем, причем для каждого МК он уже знает что и зачем. Случайно залочить уже не получится (не рассматриваем особо умные способы:) ). 

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

leshak пишет:

ishimcity пишет:

Ребята спасибо огромное 3 МК разблокировал с помощью ардуино!!!!!!!!!!!!!!!!!!!!!!!!!!

А теперь заблокируйте их обратно!!

Что-бы потренироватся ;)

И "метод пальца" - опробовать.

Так каким вариантом сигнал генерили "1mHz" или "тупо дергаем ногой абы-как?"

 

Вы знаете уже заблокировал и разблокировал сново)))) теперь знаю куда пехать свой нос а куда нет))) Пальцем не получаеться)))

leshak
Offline
Зарегистрирован: 29.09.2011

ishimcity пишет:

Вы знаете уже заблокировал и разблокировал сново)))) теперь знаю куда пехать свой нос а куда нет))) Пальцем не получаеться)))

Ну так скажите другим, кто будет с такой же проблемой сталкиватся, что-бы они тоже знали куда нос пихать.
Какой скетч использовали?

А еще лучше - опишите рецепт детальный для будущих горемык (поверте, не вы последний). Что-бы можно было посылать в поиск - искать вашу тему ;)

 

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

Скетч вот здесь брал http://arduino.ru/forum/programmirovanie/generatsiya-vysokochastnykh-impulsov-s-pomoshchyu-arduino-leonardo-atmega32u4#comment-26611 залил в ардуино , с 9 ножки взял и крокодилчиком прицепил на XTAL1 (у меня уже висел RC генератор   кварц 16мгц на ногах), в ардуино мониторе ком порта ввел 1000000 и нажал SEND , прочитал МК Фузы изменил как надо , отключил крокодильчик и ардуино! Сохранил скетч! (На всякий пожарный))))))

Короче чтоб без Вас я делал Ребятки!

PS: Сегодня врубит фюзи CKOPT его я снял 500000 HZ при напряжении 3.3в

 

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

Ребята помогите пожайлусто с проектом, реально уже забадался, то одно то другое)

Мне просто надо принимать код с приемника и пулять в ком порт, но блин такая фигня получаеться голова кругом

Ссылка на архив в нем есть протеус проект, ардуино проект, прошивка, будте лбезны гляньте где моя ошибка? Архив

leshak
Offline
Зарегистрирован: 29.09.2011

1. Все ссылки битые (есть такая волшебная кнопка "Предпросмотр" - можно увидеть как все будет выглядить до поста. Если "все укацалось" - как правило нажатие на кнопку "Источник" (вверху слева, над текстом) помогает вычистить мусор.
2. Непонятно каки образом это относится к тещуйщей теме. Вообщем - не плодите винигрет. Заведите отдельную тему (только нормально назовите). Нормально опишите что вы хотите, что за фигня.... и т.п.