Микроконтроллер ATmega1284P и Arduino IDE

Doctor
Doctor аватар
Offline
Зарегистрирован: 11.01.2016

Собрал пару штук модулей на базе ATmega1284P в соответствии с описанием товарища Jack Christensen (см. тут - https://github.com/JChristensen/mini1284#the-mighty-mini-1284p ).

Хорошие получились модули - микросхема ATmega1284P намного приятнее всем хорошо знакомой 328P - 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Doctor пишет:

микросхема ATmega1284P намного приятнее всем хорошо знакомой 328P - 

Чем?

Doctor
Doctor аватар
Offline
Зарегистрирован: 11.01.2016

Прошу прощения, что не дописал стартовый пост до конца. Случайно нажалась кнопочка "Сохранить" и повествование прервалось. Продолжаю.

Приятнее она тем, что у нее несколько больше входов-выходов, но главное, она обладает значительно большим объемом всех видов памяти. RAM - 16k, Flash - 128k и EEPROM - 4k. Это позволяет чувствовать себя гораздо свободнее при написании скетчей.

Однако, выяснилась и проблема, в связи с чем я и создал эту тему. Я имею в виду возможность использовать Arduino IDE для программирования этого контроллера. Автор модуля Jack Christensen рекомендует пойти на страницу https://github.com/maniacbug/mighty-1284p#installation и взять там zip-файл со всеми необходимыми ресурсами для включения этого контроллера в список плат Arduino IDE. Я так и поступил, соответствующая плата появилась в меню, но при попытке что-то под нее скомпилировать, IDE выдает массу ошибок. Выяснилось, что zip-файл с ресурсами для этого контроллера создан более 4-х лет назад, был предназначен для какой-то старой версии Arduino IDE и с тех пор не обновлялся. Видимо, для интеграции с новыми версиями IDE требуется некоторая доработка файлов, находящихся в этом архиве, в частности boards.txt и, возможно, некоторых других, лежащих в папкe cores. 

Отсюда возникают следующие вопросы:

 * есть ли у уважаемых посетителей форума какой-либо опыт работы ATmega1284p через Arduino IDE?

 * если есть, то где вы взяли комплект файлов, необходимых для подключения этого контроллера к IDE?

 * или, возможно, кто-то знает, что именно надо допилить в имеющихся файлах, чтобы они могли успешно работать со свежими версиями IDE.

Заранее благодарен всем, кто может помочь.

P.S. Советы использовать AVR Studio или какие-то сторонние программы (включая командную строку) для компиляции и загрузки скетчей в контроллер не предлагать! Нужно именно Arduino IDE.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Doctor пишет:

Приятнее она тем, что у нее несколько больше входов-выходов, но главное, она обладает значительно большим объемом всех видов памяти. RAM - 16k, Flash - 128k и EEPROM - 4k. Это позволяет чувствовать себя гораздо свободнее при написании скетчей.

Ну, это-то я знал. Что ж у Вас за задачи такие, что Вам это важно? :)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Он винду хочет на Ардуину повесить.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

По мне так, главная фишка там не в памяти, а в двух 16-битных таймерах. Хотя, всё, конечно, от задач зависит.

Doctor
Doctor аватар
Offline
Зарегистрирован: 11.01.2016

ЕвгенийП пишет:

Ну, это-то я знал. Что ж у Вас за задачи такие, что Вам это важно? :)

Задачи не ахти какие сложные, но если к бедной 328-й прицепить всякую периферию, скажем, SD карточку с соответствующей файловой системой, часики реального времени, дисплей какой-нибудь простенький, хотя бы текстовый LCD 1602, еще какую-нибудь ерунду в этом роде, то одни только их библиотеки почти всю память и займут, а на собственное творчество места останется не так много.

Однако, заводя этот топик, я не планировал вести тут разного рода философские дискуссии вроде того, какой микроконтроллер лучше и сколько памяти человеку нужно для счастья. Если мы в эту тему углубимся, то тут же прибегут любители Cortex, PIC, всяких 8051 и пойдет такая заруба, что тот вопрос, который я задал, немедленно утонет под шквалом постов в пользу того или иного чипа. Я был бы счастлив, если бы на мой пост откликнулись те, кому есть что сказать по сути заданного вопроса.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Doctor пишет:

 если к бедной 328-й прицепить всякую периферию, скажем, SD карточку с соответствующей файловой системой, часики реального времени, дисплей какой-нибудь простенький, хотя бы текстовый LCD 1602, еще какую-нибудь ерунду в этом роде, то ...

http://arduino.ru/forum/programmirovanie/rabota-s-sd-kartoi#comment-344050

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Doctor пишет:
Я был бы счастлив, если бы на мой пост откликнулись те, кому есть что сказать по сути заданного вопроса.

Как мало Вам надо для счастья. Всего-то навсего в верхнем правом углу ПОИСК заметить.

http://arduino.ru/forum/apparatnye-voprosy/kto-nibud-smog-podruzhit-ardu...

http://homes-smart.ru/index.php/oborudovanie/arduino/dobavlyaem-podderzh...

http://www.instructables.com/id/ATmega-DIP40-in-Arduino-IDE-164/

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

ЕвгенийП пишет:

Doctor пишет:

 если к бедной 328-й прицепить всякую периферию, скажем, SD карточку с соответствующей файловой системой, часики реального времени, дисплей какой-нибудь простенький, хотя бы текстовый LCD 1602, еще какую-нибудь ерунду в этом роде, то ...

http://arduino.ru/forum/programmirovanie/rabota-s-sd-kartoi#comment-344050

Сильно! Рекомендовать всем горе программистам к прочтению.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Doctor, с эим всем и 328 справится. Но проблема Ардуины в том что это один процессор. И даже если вы зальете все библиотеки в пямять, то они банально начнут конфликтовать за время работы процессора. Можно взять кучу рабочих скетчей из интернета, слепить единый код , залить и получить пшик. Ну нет на Ардуине аппаратной возможности параллельной работы независимых скетчей. И ATmega1284P то же нет. Вот и приходится копать глубоко науку программирования, что бы увязать все.  ПС: Пробуйте, может я окажусь не прав.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013
Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Doctor пишет:

 * есть ли у уважаемых посетителей форума какой-либо опыт работы ATmega1284p через Arduino IDE?

 * если есть, то где вы взяли комплект файлов, необходимых для подключения этого контроллера к IDE?

 * или, возможно, кто-то знает, что именно надо допилить в имеющихся файлах, чтобы они могли успешно работать со свежими версиями IDE.

Заранее благодарен всем, кто может помочь.

P.S. Советы использовать AVR Studio или какие-то сторонние программы (включая командную строку) для компиляции и загрузки скетчей в контроллер не предлагать! Нужно именно Arduino IDE.

 

Как выше написал  ув. Dimax  ядро MightyCore вам в помощь.

Устанавливаете через "настройки" добавив линк , как описано по ссылке и все . Перезагружаем ИДЕ и пользуемся как и Атмега328 .

Там и Atmega 644, Atmega32 и много других.

Поначалу и мне казалось , что у 328 мало памяти и для серьезных проектов она не очень.Да , выводов маловато . это правда . Но за все время я еще ни разу не забил под завязку память 328.

 А так  под разные проекты нужно подбирать то ,что у вас есть в наличии и более подходит под ваши цели. А блинковать двумя -тремя ледами 1284 ой или 2560-ой  смысла нет - типа штаны на вырост с запасом.

Doctor
Doctor аватар
Offline
Зарегистрирован: 11.01.2016

Спасибо, братцы, ЕвгенийП и dimax! Три ссылки от ЕвгенийП я, как это ни странно, раньше не нашел, хотя слово "Поиск" знаю, умею в него тыкать при помощи передвижения мыши по столу с последующим нажатием левой кнопки и даже в какой-то степени владею клавиатурой для того чтобы ввести поисковую строку. Те способы решения вопроса, которые рекомендуются по этим ссылкам я пока не проверял, помогут они мне решить мою проблему или нет, я еще не знаю, но, кажется, это именно то, что мне надо.

Что же касается ответа уважаемого dimax, то я бы посоветовал всем участникам форума поучиться  у него точности и конкретности ответа. Обратите внимание - ответ содержит всего два слова (не считая обращения "Doctor") и одну гиперссылку, а пользы от него раз в тысячу (или в миллион) больше чем от малограмотных рассуждений о том, как библиотеки конфликтуют за время работы процессора. Разумеется, могучее ядро, рекомендованное dimax я попробую в первую очередь, как только доберусь до своего стола, а пока хочу еще раз поблагодарить за быстрый и конкретный ответ.

По результатам того, удалось ли мне в итоге поженить ATmega1284P и Arduino IDE, обязуюсь доложить тут.

P.S. Пока писал этот пост, подоспел еще ответ от Штирлица. Также благодарен и за него, все четко и конкретно.

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Doctor пишет:
Что же касается ответа уважаемого dimax, то я бы посоветовал всем участникам форума поучиться  у него точности и конкретности ответа. Обратите внимание - ответ содержит всего два слова (не считая обращения "Doctor") и одну гиперссылку, а пользы от него раз в тысячу (или в миллион) больше чем от малограмотных рассуждений о том, как библиотеки конфликтуют за время работы процессора.
А теперь выделите ,к примеру недельку, и проконсультируйте новичков.  Если бы тема не была бы с 10 постов 1- вы решили что форум мертвый 2- те кто вас кратко консультировали, вашу тему не обратили внимания. 

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

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

Doctor пишет:

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

записал в чорный блокнотик - буду знать, что делать с трупом очередного(100501-го) навичка. О_О

Doctor
Doctor аватар
Offline
Зарегистрирован: 11.01.2016

Как обещал, докладываю о результатах. Подключил могучее ядро в соответствии с советом dimax, после чего все пошло, как по маслу:

  • компилятор перестал выдавать массу ошибок,
  • подключив свой контроллер на базе ATmega1284P через Arduino UNO в качестве программатора, я с первой попытки прошил bootloader и fuses. Для этого достаточно было подключить 6 проводов от ISP header контроллера к соответствующим выводам Arduino UNO, разъем USB Arduino UNO подключить к компьютеру и, наконец, в меню Arduino IDE выбрать пункт Tools --> Burn bootloader,
  • после этого в ATmega1284P появляется ардуиновский загрузчик, который позволяет заливать скетчи через UART при помощи любого USB to TTL конвертера.

Еще раз хочу сказать спасибо тем, кто прислал мне тут конкретные ответы на мой призыв о помощи и ссылки на работающие файлы.

Надеюсь, что в ближайшее время я сумею накопить некоторый практический опыт работы с контроллером https://github.com/JChristensen/mini1284#the-mighty-mini-1284p и смогу поделиться этим опытом с теми, кто захочет такой контроллер повторить и использовать в своих разработках. В качестве первого практического опыта могу сказать, что печатные платы заказывал в OSH Park , как и указано у автора. Минимальный заказ у них - 3 шт., за что они с меня взяли $10.25 вместе с пересылкой, то есть примерно три с половиной доллара за штуку. Изготовление и пересылка заняли 25 дней, качество изготовления плат - очень высокое. Микросхемы 1284P куплены в Чип и Дип по 330 руб за штуку. В Китайщине можно было эти микросхемы заказать дешевле, рублей по 240-250 по нынешнему курсу, но сил не было ждать, пока они дойдут. Все остальные комплектующие нашел в своих загашниках, но даже если их покупать, общая стоимость собранного контроллера не превысит $10, что, по-моему, не так плохо.