Arduino.ru
Подцепи его по SPI, прочитай ID и фьюзы. Запость сюдой. Подумаю.
- Войдите на сайт для отправки комментариев
1000 извинений, но я видимо чего-то не понял или не так написал. Я цепляю его через usbasp программатор по тому же spi. Работаю avrdude_prog 3.3. Фьюзы не читаются, а как считать id не знаю.
- Войдите на сайт для отправки комментариев
Значит либо процу хана, либо не правильно подключил.
SPI это mosi/miso/sck/res и + и — питание 5 Вольт.
ID проца — это несколько байт (2 или 3, не помню) для ТОЧНОГО определения проца при программировании.
- Войдите на сайт для отправки комментариев
Подключение верное, потому что подсовываю ему нормальную мегу328-ау. Все читается. Это значит что мое подключение верное. Меня смущает строчка avrdude.exe: warning: cannot set sck period. Я не могу ничего прочитать по SPI потому что этот SPI не заводится. Ни фьюзы, ни флэш, ничего. ID читается по какому-то другому протоколу?
- Войдите на сайт для отправки комментариев
процессор новый? еще не использовали?
- Войдите на сайт для отправки комментариев
смущает строчка avrdude.exe: warning: cannot set sck period.
- Войдите на сайт для отправки комментариев
Подключение верное, потому что подсовываю ему нормальную мегу328-ау. Все читается.
Значит процу пипец. Выкинь.
- Войдите на сайт для отправки комментариев
Как уже отметили надо снизить частоту SPI. Если прошивка в USBasp новая то можно в командной строке дописать значение скорости, если старая то только перемычкой на плате USBasp
- Войдите на сайт для отправки комментариев
у самого такой проц, прошить фьюзы не смог НО:
использую программатор ардуино «arduino AS ISP»
установил MiniCore с гитхаба
Clock » 1MHz internal»
compiler LTO — disabled
на плате ранее стояла атмега8, заменил на этот. Пару раз пробовал зашить- ничего не получилось. Полазил лупой и увидел непропай. после недолгой работы паяльником все заработало. т.к. мне частоты достаточно и кварца нет, оставил как есть.
- Войдите на сайт для отправки комментариев
Как уже отметили надо снизить частоту SPI. Если прошивка в USBasp новая то можно в командной строке дописать значение скорости, если старая то только перемычкой на плате USBasp
- Войдите на сайт для отправки комментариев
Процы взял из ленты. Всего их 7 штук. Попробовал 3, ни с одним ничего не получилось. Попробовал с перемычкой на jp3. Без результатов.
- Войдите на сайт для отправки комментариев
Процы взял из ленты. Всего их 7 штук. Попробовал 3, ни с одним ничего не получилось. Попробовал с перемычкой на jp3. Без результатов.
- Войдите на сайт для отправки комментариев
Попробовал с перемычкой на jp3. Без результатов.
Ну дак вышли «советчикам» с перемычкой по паре перемычек почтой. Пусть в левое и правое вставят, мошт мосх паявицца.
Все твои «игры» со скоростями — фуфло полное. Нормальные программаторы и без этой перемычки могут менять скорость обмена по шине. Кроме «дудки» есть ещё по крайней мере пара-тройка БЕСПЛАТНЫХ программаторов под твой «свисток». Пробуй их. Задача твоя прочитать либо ид либо фузы. Без них никак.
Ну про платные программаторы я не буду, хотя и такие есть в природе.
- Войдите на сайт для отправки комментариев
Это какие например? Яндекс по запросу выдает только дудку и в качестве альтернатив целое нихрена.
- Войдите на сайт для отправки комментариев
Не слушай этого балабола, он ничего не знает про программаторы 🙂
- Войдите на сайт для отправки комментариев
Это какие например? Яндекс по запросу выдает только дудку и в качестве альтернатив целое нихрена.
Фигово, что ты думаешь только яндексом, фигово.
Давай сделаем проще — пусть тебе пока «перемычечные» будут давать советы и как тебе надоест, я дам для посмотреть через тимвьювер мой ноутбук и покажу ТРИ бесплатных программатора и платный. Устроит?
- Войдите на сайт для отправки комментариев
Процы взял из ленты. Всего их 7 штук. Попробовал 3, ни с одним ничего не получилось. Попробовал с перемычкой на jp3. Без результатов.
из ленты ?
они вроде ж пластмассовом черном прямоугольном кейсе .
а фотографию микроконтроллера что не приложили ? и где покупали ?
тоже не шились новые atmega328p u-th , atmega328pu-th купленные в россии
решилось так http://arduino.ru/forum/apparatnye-voprosy/atmega328pb-u-chem-chrevato#comment-536135 ( USBtinyISP )
// если не поможет попробуйте на крайняк параллельное программирование — Atmega fusebit doctor
// или возможно это просто битый чип
- Войдите на сайт для отправки комментариев
у меня тоже не шились, пока паяльником не прошел, теперь и фьюзы меняются и скетчи принимает.
к сожалению в программировании я слабоват, в основном мой друг профессор Тыков и интернет.
еще момент, у меня для программирования Нано — фьюзы меняю заливкой загрузчика, код заливаю Arduino as ISP — любое действие получается со второго раза (после появления ошибки, любой), подряд, без всяких ресетов и передергивания шнурков. Уже несколько лет такая проблема, о ней знаю и не парюсь.
- Войдите на сайт для отправки комментариев
Большое спасибо, Буду пробовать. К сожалению результаты смогу сообщить не раньше выходных.
Покупал тут https: //aliexpress.ru/item/33042649983.html
Фото к сожалению не сделал, но он точь в точь как на фото по ссылке, которую я скинул в первом посте.
- Войдите на сайт для отправки комментариев
хрень какая-то, может кто может чего подсказать по этому процессору? вот результаты после прошивки бутлоудера, для установки фьюзов
тестовый скетч, на атмега8 работает нормально, а на этой хрене не могу ничего получить от DS18B20. осциллографом вижу факт передачи данных, даже тайминги ресета соответствуют даташиту. Не могу получить адрес датчиков ну и все вытекающее выход по ошибке ERR=1 (строка 190). в выводе адреса одни нули 🙁 строка 160.
изначально был код с часами и установкой с 2х кнопок, часы работают превосходно.
- Войдите на сайт для отправки комментариев
UPD. похоже дело не в бабине. на НАНО с кварцем 16 датчики работают. без кварца на 8ке и 328й ничерта не получается :(((((( запросы вижу, а результат жопа. осциллом вижу ответ от датчика, а в адресе одни нули :((( завтра попробую продолжить. если получится.
- Войдите на сайт для отправки комментариев
Я прошил последней прошивкой USBasp. Но теперь вместо прежней ошибки стала вылетать вот эта:
- Войдите на сайт для отправки комментариев
dizzel, 99% проблем при прошивке МК — плохой контакт (пайка/разъёмы, итп) 1% -плохое питание.
PS: Цифры конечно условны 🙂
- Войдите на сайт для отправки комментариев
Ну вот смотрите:
Я подпаялся на плату напрямую с напаянным мк. С новой прошивкой он пишет target doesn’t answer. 1
Если влить старую прошивку в АСП то cannot set sck period.
А обычно я заливаю все с помощью вот такой конструкции
При чем если взять диповую 328 и вставить ее в левую плату то все шикарно видится. И в этой же конструкции qfp-шная 8-мая мега видится.
- Войдите на сайт для отправки комментариев
dizzel, возможно проблема с переходником. На них кстати были жалобы. Я б взял, да припаял заведомо хороший МК к обычному переходнику. Ну и с другим программатором (Arduino as ISP хотя б) тоже не мешало проверить.
- Войдите на сайт для отправки комментариев
dizzel, возможно проблема с переходником.
Так я ж подпаялся проводками, на первом фото. Результат 0.
Я б взял, да припаял заведомо хороший МК к обычному переходнику.
Ну мега8 же видится/шьется. Чем не заведомо хороший мк?
Ну и с другим программатором (Arduino as ISP хотя б) тоже не мешало проверить.
Ардуиной пробовал шить. Ругается на чип айди. Не может прочесть предполагаю.
- Войдите на сайт для отправки комментариев
Ардуиной пробовал шить. Ругается на чип айди. Не может прочесть предполагаю.
Ругается на неправильный или там сплошные нули? Какой именно device signature показывало?
- Войдите на сайт для отправки комментариев
вот я выпаял 8 и поставил 328 — и нифига, потому что хреново припаял и даже с лупой ничего не было видно. Взял тонкое жало и прогрел аккуратно ноги и все пошло — причина простая, окислы на ногах.
- Войдите на сайт для отправки комментариев
Ругается на неправильный или там сплошные нули? Какой именно device signature показывало?
Гриша, я уже и в плате это чудо пытаюсь шить с непосредственно запаяным мк и через переходник и так и сяк. Завтра впаяю на плату другой мк и попробую цепануться. Но я все ноги прозванивал и они звонятся. Поэтому большого смысла в этом нет.
Сдается мне что надо ваять фуз доктор.
- Войдите на сайт для отправки комментариев
dizzel, дудка кривой версии — не знает 328P.
- Войдите на сайт для отправки комментариев
Любопытно. Дайте пожалуйста ссылочку на некривую версию или подскажите как найти.
- Войдите на сайт для отправки комментариев
Любопытно. Дайте пожалуйста ссылочку на некривую версию или подскажите как найти.
а чего, НАНО под рукой нет? или УНО, любой под USB
- Войдите на сайт для отправки комментариев
и код ошибки лучше копировать и в под спойлер, как скетч вставкой кода.
- Войдите на сайт для отправки комментариев
Ничего не понял. Чего НАНО, чего любой под USB? Яснее пожалуйста. Но если вы про прошивку Arduino as ISP, то тремя сообщениями выше я выложил то что мне пишет ИДЕ.
Да и дудка кстати видит 328p в дип исполнении, а вот мои qfp ни по чем. Мистика. Либо чипаки сами мертвее мертвого либо там фьюзы неправильные.
- Войдите на сайт для отправки комментариев
Да и дудка кстати видит 328p в дип исполнении, а вот мои qfp ни по чем. Мистика. Либо чипаки сами мертвее мертвого либо там фьюзы неправильные.
вот эту тему прочитайте полностью может чего полезное найдете. особо когда до поста 25 дойдете.
- Войдите на сайт для отправки комментариев
Прочитал. И что я там должен был прочесть? То что у человека сигнатура была не та из-за того что он один проводок не туда запаял? Я своей связкой из свистка, платы-адаптера и переходника dip-qfp прошил не одну 328-ую.
Как это связано со мной? Может у меня уже шарики за ролики, ну уж извините меня, мозг просто пухнет..
Еще раз. Купил 10 ATmega328p-AU (так обещал продавец) в qfp корпусе. В итоге мне приходят две AU, одна TW, остальные PH. Первые три (AU и TW) без проблем прошиваются. А на PH затык. Убираю PH вставляю мегу8/мегу16/тини85 все определяется. То есть все у меня соединено правильно. У меня стойкое ощущение что свисток не может завести камень, не может он добится от мк ответа на простой вопрос — кто ты? Не то что свистка не устроил ответ, он ответа вообще не получает.
Обновил прошивку в свистке. Не помогло, мега328-ПХ все также шлет, и вместо этого теперь мега8 и тини85 шьются только с джампером JP3. На хрена козе такой баян?
Но тут происходит интересная вещь. В кратчайшие сроки (рак на горе свистнул) ко мне приезжает еще 10 камней и все с маркировкой ATmega328p-AU тоже qfp. Я потирая руки, бегу к программатору, а он посылает меня к такой-то матери и с этими процами. Тут у меня начинается полная прострация.
Я уже и короткими проводками подпаивался как советуют не помогло. Я скармливал ему диповые и мегу8, мегу328. Все сжирает сволочь, а эти не хочет.
Завтра попробую повоевать как вы в 9-ом посте посоветовали. Но я думаю все это безрезультатно. Попутно делаю фьюздоктора. Может он мне споможет.
Маркировка микроконтроллеров AVR семейства ATmega и ATtiny
В этой статье мы разберемся с маркировкой микроконтроллеров AVR семейства ATmega и ATtiny. Маркировку микроконтроллеров надо знать (или хотя бы знать, где ее посмотреть). Различные буквы и цифры в маркировке микроконтроллера рассказывают о всех его главных характеристиках. К примеру, популярный микроконтроллер ATmega8 может иметь такую маркировку: ATmega8L-8AU, ATmega8-16MUR, ATmega8-16PU и так далее. Что означают эти буквы и цифры вы узнаете из этой статьи.
Базовые версии микроконтроллеров AVR
Стандартов обозначения восьмиразрядных (восьмибитных) микроконтроллеров фирмы Atmel всего два:
— семейство megaAVR (ATmega)
— семейство tinyAVR (ATtiny)
Версии микроконтроллеров AVR
После обозначения базовой версии микроконтроллера идет обозначение версии микроконтроллера — от одной до трех цифр, и еще в конце может быть буква.
Цифры обозначают объем встроенной памяти программ и модификацию микроконтроллера.
К примеру:
ATmega8 — объем памяти программ — 8 килобайт
ATmega32 — объем памяти программ — 32 килобайт
ATmega168 — объем памяти программ — 16 килобайт, модификация 8
ATtiny45 — объем памяти программ — 4 килобайт, модификация 5
ATtiny861 — объем памяти программ — 8 килобайт, модификация 61
Буква после цифр указывает на параметры питающего напряжения и потребляемой мощности микроконтроллера.
Буквы в конце цифр обозначают:
Нет буквы — напряжение питания микроконтроллера скорее всего находится в пределах 4,5 — 5,5 вольт
L — версии контроллеров, работающих на пониженном (Low) напряжении питания (2,7 — 5,5 вольт)
V — версии контроллеров, работающих на низком напряжении питания (1,8 — 5,5 вольт)
U — версии контроллеров, работающих на сверхнизком напряжении питания (0,7 — 5,5 вольт)
P — малопотребляющие версии (до 100 нА в режиме Power-down)
A — уменьшен ток потребления, перекрывается весь диапазон тактовых частот всех версий, напряжение питания 1,8 — 5,5 вольт (также, в некоторых моделях, добавлены новые возможности и новые регистры, но сохранена полная совместимость с предыдущими версиями). Микроконтроллеры «А» и «не-А» обычно имеют одинаковую сигнатуру, что вызывает некоторые трудности, так как Fuse-bit’ы отличаются.
К примеру:
ATmega8 — объем памяти программ — 8 килобайт, напряжение питания — 4,5 — 5,5 вольт
ATmega8L — объем памяти программ — 8 килобайт, напряжение питания — 2,7 — 5,5 вольт
ATtiny43U — объем памяти — 4 килобайта, модификация — 3, напряжение питания — 0,7 — 5,5 вольт
ATtiny44А — объем памяти — 4 килобайта, модификация — 4, уменьшенный ток потребления, напряжение питания 1,8 — 5,5 вольт
При этом надо учитывать, что микроконтроллер без буквы в обозначении может иметь пониженное напряжение питания (1,7 или 1,8 вольт), надо проверять по даташиту, к примеру:
ATtiny841 — объем памяти — 8 килобайта, модификация — 41, напряжение питания — 1,7 — 5,5 вольт
ATtiny48 — объем памяти — 4 килобайта, модификация — 8, напряжение питания — 1,8 — 5,5 вольт
Обозначения индексов микроконтроллеров
После обозначения базовой версии и серии микроконтроллера, через дефис идет индекс, указывающий вариант исполнения микроконтроллера.
Индекс состоит из 1-2 цифр, которые означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания, и из 1-3 букв, которые обозначают вариант корпуса, температурный диапазон работы, и особенности изготовления.
Первая буква (или две буквы) после частоты обозначает тип корпуса:
P — корпус DIP (PDIP)
A — корпус TQFP
M — корпус MLF
TS — корпус SOT-23 (ATtiny4/5/9/10)
J — корпус PLCC
A — корпус UDFN/USON
C — корпус CBGA
CK — корпус LGA
S — корпус EIAJ SOIC
SS — узкий корпус JEDEC SOIC
T — корпус TSOP
X — корпус TSSOP
Следующая буква означает температурный диапазон и особенности изготовления:
C — коммерческий температурный диапазон (0 °C — 70 °C)
A — температурный диапазон −20 °C — +85 °C, с использованием бессвинцового припоя
I — индустриальный температурный диапазон (-40 °C — +85 °C)
U — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припоя
H — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием NiPdAu
N — расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припоя
F — расширенный температурный диапазон (-40 °C — +125 °C)
Z — автомобильный температурный диапазон (-40 °C — +125 °C)
D — расширенный автомобильный температурный диапазон (-40 °C — +150 °C)
Еще в самом конце может быть буква R , которая означает, что микроконтроллеры упакованы в ленты для автоматизированных систем сборки
К примеру:
ATmega8L-8AU — максимальная частота — 8 мегагерц, корпус — TQFP, индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припоя
ATmega8-16PN — максимальная частота — 16 мегагерц, корпус — PDIP, расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припоя
Если вы знаете, что обозначают буквы и цифры в маркировке микроконтроллера, значит знаете основные параметры микроконтроллеров, и всегда сможете подобрать для своей конструкции наиболее оптимальный вариант микроконтроллера.
Устройство ATmega328P: распиновка, даташит и Old Bootloader
Компания Atmel производит множество чипов и 2 разновидности микроконтроллеров, которые были признаны радиолюбителями. Один из них — ATmega328P, рассматриваемый в этой статье. Рассмотрим его устройство, варианты программирования и ПО, требующееся для прошивки
ATmega328P — микроконтроллер группы AVR
Устройство atmega328p имеет 28 контактов. Его знает большинство владельцев конструктора Arduino, как главный элемент электронного комплекта. Но на самом деле, функционал устройства намного шире, чем применение в этом конструкторе. И это подтверждается в atmega328p datasheet.
Семейство микроконтроллеров AVR, куда входит atmega328p, сегодня широко применяется при конструировании электроники разного уровня. Среди них не только микроконтроллер ATmega328P, но и схожий по характеристикам 8-контактный ATtiny45, имеющий чуть меньше функций.
Микроконтроллер также является основой Arduino Nano — маленькой отладочной платы, очень распространённой в любительской среде программистов. Это устройство — компактное по размеру, но по характеристикам не уступающее всем известной Arduino Uno. Она запросто включается в проекты, где параметры очень важны.
Распиновка atmega328p
Как правило, программирование указанных устройств ведется с помощью SPI — последовательного периферийного интерфейса. Через шину данных идет ряд сигналов:
- MOSI — вход поступления данных;
- MISO — выход ее распространения;
- SCK — синхронизирующий вход.
Последний — генерирует программатор и обеспечивает синхронное получение между двумя связанными устройствами. Можно сказать, что интерфейс SPI — это синхронная шина коммуникации.
Как выбрать физический программатор под ATmega328P
Для указанного микроконтроллера есть множество подходящий программаторов. Один из них производится той же фирмой, Atmel и разрабатывался профессионалами. Он называется «Atmel-ICE».
По мнению радиолюбителей, это лучший программатор для прошивки AVR и схожих микросхем. Его можно приобрести в интернет-магазинах наподобие AliExpress, по стоимости от 5 тысяч рублей. Устройство выглядит так:
К сожалению, такая версия не по карману простым любителям электроники. Рациональнее — остановить выбор на usb — программаторе AVR Pocket Programmer. Он стоит намного дешевше профессионального Atmel-ICE. На некоторых сайтах его можно приобрести даже за 200 р, правда, без проверки.
При отсутствии возможности купить простой программатор, можно изготовить его собственноручно. Основу такой схемы составляет чип ATtiny2313. Внешними элементами в ней являются:
- Резисторы.
- Светодиоды.
- Стабилитроны.
Конструкция самодельного устройства — проста и доступна. Желательна буферизация сигнальных линий, но она не обязательна. Для нее в схеме должен находиться буфер. К примеру, его роль может сыграть устройство 74AC125. Оно же входит и в фирменную версию. Вместо него можно применить транзистор.
Программатор не функционирует без usb-драйвера. Поэтому, радиолюбители обзаводятся универсальным инсталлятором для Windows (7 и более высоких версий), который помогает устанавливать общие драйвера. Установка драйвера в ОС желательна до того, как физическая схема atmega328p подключится к компьютеру.
Как подключать и программировать микроконтроллер
Устройства группы AVR программируют с помощью интерфейса SPI, сигнальным прохождением сквозь 6 участкоа:
- электропитание;
- «земля»;
- сброс;
- получение данных;
- передача;
- синхронизирование.
Чтобы все перечисленные сигналы перемещались через устройства, нужен 1 из 2 стандартных разъемов, с 6 или 10 контактами. Программаторная atmega328p плата соединяется с ними с помощью шлейфа-кабеля. Ее заводской вариант укомплектован всеми возможными дополнениями.
Для работы вместе с программным инструментом используются 2 вида контактных разъемов SPI.
Фирменная плата оборудована переключателем режимов электропитания. При его помещении в положение Power Target, она получает от usb напряжение 5 В. В противном случае, то есть, режиме No Power на контакте нет питания. Второй вариант применяется, чтобы программировать чипы с невысоким напряжением, от 1,8 до 3,3 В.
В каждый контроллер atmega328p для avrdude встраивается технология bootloader atmega328p. Она считается самым рациональным и правильным вариантом программирования. Так как специализированные программные адаптеры и набор знаний — не обязательны, необходимо подключение классического кабеля от ПК к плате и активацию программы.
При предварительной переконфигурации atmega328p nano или обычной, старт микроконтроллера идёт со специализированого адреса, где, как правило, располагается atmega328p old bootloader. Это является условием запуска, определяемым состоянием перемычки извне, которая подключается к ножке atmega328p для Ардуино.
Использование утилиты AVRDUDE
Рассмотрим инструмент для строки команд в системе Windows. Для его применения нужно нажать всего 2 клавиши: Пуск, а затем, выполнить. После этого выясните уровень готовности утилиты следующей командой:avrdude -c usbtiny -p atmega328p.
Эта комбинация помогает выяснить, подключен ли микроконтроллерный программатор к разъему usb. Чипы из других серий, соответственно, проверяются другими командами.
Если программатор подключен правильно, утилита выведет на экран следующее (см. Рисунок):
Если микроконтроллер изготавливается по стандартам, в нем присутствуют идентификаторы. Он определяется при первом запуске утилиты. AVRDUDE в ходе проверки сканирует идентификатор чипа.
Микросхемные идентификаторы имеют разный вид, согласно типу AVR. В частности, идентификация ATmega328P выглядит как 0x1E950F. Эти символы выводятся в специальное окно. После проверки работоспособности схемы, идет следующий шаг — чтение и запись программного кода посредством утилиты.
Участок памяти чипа, как правило, прошиваемый, является энергозависимой областью, местом для хранения программ (Flash). Прошивка atmega328p производится с помощью комбинации: avrdude c usbtiny p atmega328p U flash:w:test.hex. Имя файла здесь дано только как пример.
Чтобы записать flash-память, потребуется некоторое время, большее, чем для считывания информации atmega328p. Проверка устройства, чтение и запись, в свою очередь, меняют командную строку.
Взгляните на этот рисунок, чтобы увидеть, как читается информация в памяти устройства посредством утилиты. Она помещается в специальное окно.
Добавочный символ w указывает на запись, затем, через знак “:” идет имя и местонахождение документа, который и записывается в память.
Работа инструмента возможна лишь с теми документами, у которых есть расширение hex.
Отличия ATmega328 от ATmega328P и ATmega328PU
Обычному пользователю сложно понять, почему маркировка кристаллов отличается, и какой выбрать. Попробуем разобраться:
- Для использования в обычных сферах между первыми двумя вариантами — разница небольшая, поэтому возможна взаимозаменяемость.
- Энергопотребление ATmega328P — существенно ниже, чем Atmega328. Это описано в параметрических таблицах даташит. О чем это говорит? О том, что при разработке первого варианта применялся более точный технический процесс. Как правило, стоимость этих чипов — выше. У микроконтроллеров категории AVR с низким энергопотреблением, согласно классификации производителя, есть отметка PicoPower. Получается, что для батарейных устройств ATmega328P — выгоднее. В них должны быть использованы контролирующие режимы для уменьшение потребления энергии.
- У рассматриваемых вариантов — разные сигнатуры чипов. Поэтому, при использовании программ для их чтения (по аналогии с утилитой avrdude) можно увидеть сообщения об ошибке atmega328p при неправильном указании типа микроконтроллера.
- Только Atmega328P может быть оснащен корпусом TQFP32, но не TQFP328. Это зависит от большей толщины кристалла, из-за которой он просто не влезает в данный корпус.
- В Atmega328 отсутствует фьюз, блокирующий детектор низкого уровня питания. Во втором варианте данный фьюз присутствует, за счет чего дополнительно снижается потребление энергии и происходит отключение BOD. Наличие такого фьюза возможно только у версий группы picoPower. Их обозначение заканчивается символами 48PA, 88PA, 168 PA, 328 P. То же самое касается фьюзов BODS, BODSE.
- Система команд, которые относятся к инструкциям перехода, тоже пусть незначительно, но отличается. При компиляции чипа программы в обоих вариантах — работоспособны.
- Буквы PU означают вид кристального корпуса. Это -DIP28 из пластика. В него легко помещается ATmega328, вот и дополняется таким суффиксом. Также варианты корпусов обозначаются буквенными сочетаниям AU, MU.
Можно изготовить Ардуино на основе atmega328p mini. Этот вариант — более простой, чем uno, так как там нет участка USB-to-Serial. Как мы знаем, atmega328p pro mini — это, как правило, вариант atmega328p au. Но для некоторых устройств этот вариант — слишком мал, и туда больше подходит PU.
На основе микроконтроллеров создаётся множество устройств, в том числе, atmega328p тестер-транзистор и контроллер atmega328p nano 3.0.
Led-матрица на основе ATmega328p (самодельный Arduino)
Этот прибор может украсить полку любого пользователя и радиолюбителя.
Составляющие элементы
Сначала нужно собрать все необходимые детали. Нам понадобится:
- 7 резисторов с сопротивлением 150 Ом.
- 5 конденсаторов (50 В, 1 мкФ ).
- Резонатор из кварца (16 МГЦ).
- Разъём-гребенка с 18 контактами.
- Регистор сдвига с DIP-корпусом.
- Микросхемная панель 74ch595 с 16 ножками.
- 35 световых диодов (3 В).
- Непосредственно микроконтроллер в корпусе DIP.
- Плата для монтажа 5*7.
Обзаведитесь флюсом, припоем и паяльником, оптимальными проводами, например, МГТФ.
Регистр сдвига
Принцип действия микросхемы 74ch595 — довольно сложен для понимания. Ее основное предназначение — увеличение числа пинов.
В схеме есть несколько основных регулирующих контактов: вывода (DS), определения напряжения на выводе (SH), записи состояния в DC, открытия и закрытия микросхемы путем установки контактов в нужное положение (ST).
Последнее, что нужно узнать, — это код для функционирования микросхемы.
Как подготовить матрицу
Иногда светодиодам не хватает места на плате, и тогда нужна обточка мелкой окантовки. Делайте ее аккуратнее, так как световые диоды — довольно хрупкие элементы.
Не забудьте о конденсаторах! При их отсутствии световые диоды погаснут, что помешает оптимизации устройства.
Резисторов, как уже было указано, в конструкции — 7, но видно только 6, так как 1 расположен напрямую под микросхемой.
Вместо генератора с частотой 16 МГц можно использовать имеющий 24 МГц, для ускорения работы. Но такую корректировку можно сделать только в готовом устройстве. Дело в том, что прошивка ATmega328p на генераторе с большей частотой — невозможна.
Расположение светодиодов таково:»+» к 74ch595, «-» — ATmega328p.
Конечно, не прошитое устройство мгновенно не заработает, однако, можно попробовать воспользоваться классическим blink Arduino. При определённых условиях — может сработать. При мигании света в 1-м ряду можно считать, что эксперимент удался.
Для возможности влияния микроконтроллера на контакты, нужна их инициализация. В противном случае, актуально было бы использование массива и цикла для сокращения функционального кода.
В устройстве обязательно должна быть динамическая память, при отсутствии которой оно просто зависнет.
Как выбрать источник электропитания
Этот момент нужно учесть в первую очередь. Например, выбрать в качестве электроисточника ноут или персональный компьютер — не лучшая идея. Конечно, кое-как при таких пульсациях конструкция какое-то время поработает, но стабильности не ждите.
Конечно, слабая работа прибора, созданного на микроконтроллере, может объясняться неправильным прошивочным кодом, проблемой с контактами на плате. Но если вы меняете источник питания, и работа возобновляется, дело в нем.
Не все сетевые варианты здесь подходит, гораздо выгоднее — использование автономного питания. Например, подойдут и литий-ионные аккумуляторы для питания мобильников.
А поскольку, согласно технической инструкции, чтобы контроллер ATmega328p при 16 МГц, нужно напряжение около 5 В, здесь не обойтись без модуля преобразователя, который повышает напряжение.
Atmega328p u th что за микросхема
Компания Atmel применяет довольно неудобную систему именования чипов AVR, которая часто приводит в недоумение даже опытных пользователей. Бывает трудно понять, с какой именно маркировкой следует использовать кристалл для разработки, если имеется несколько на первый взгляд незначительно отличающихся вариантов. В этой статье сделана попытка обобщить различия между ATmega328, ATmega328P, ATmega328PU.
1. Для обычных применений нет никакой разницы между Atmega328P и Atmega328. Так что можно просто заменить ATmega328 на ATmega328P или наоборот.
2. Atmega328P меньше потребляет энергии, чем Atmega328 (в чем можно убедиться, если посмотреть таблицы параметров даташита). Это означает, что для Atmega328P использовался более точный техпроцесс (60 нм у ATmega328P против 90 нм у ATmega328), и обычно эти чипы дороже. Микроконтроллеры AVR, которые меньше потребляют, обладают по терминологии Atmel классификацией PicoPower. Таким образом, в устройствах с батарейным питанием предпочтительнее использовать ATmega328P, и задействовать у них специальные режимы управления питанием с целью снижения энергопотребления.
3. Сигнатуры чипа для Atmega328P и Atmega328 отличаются. Так что если используются программы, читающие сигнатуру чипа (наподобие утилиты программирования avrdude в составе Arduino IDE), то Вы можете встретиться с сообщениями об ошибке, если неправильно укажете тип микроконтроллера.
4. Корпус микроконтроллера типа TQFP32 доступен только для Atmega328P, и его нет для Atmega328. Возможно это связано с тем, что толщина кристалла Atmega328 больше, и он не помещается в корпус TQFP32.
5. В Atmega328 нет фьюза для запрета детектора некачественного питания (Brown-out Detector, BOD). В Atmega328P этот фьюз есть, что позволяет дополнительно уменьшить энергопотребление, если отключить BOD.
Фьюз BOD имеется только в AVR с технологией picoPower ATmega48PA, ATmega88PA, ATmega168PA, ATmega328P. Фьюзы BODS и BODSE имеются только в AVR с технологией picoPower ATmega48PA, ATmega88PA, ATmega168PA, ATmega328P.
6. Есть незначительные отличия в системе команд, относящиеся к инструкциям перехода. Если компилировать для чипа ATmega328, то программа будет одинаково работоспособна и на ATmega328, и на ATmega328P.
Мнемоника | Операнды | Описание | Операция | Действие на флаги | # циклов |
JMP | adr | Прямой переход по адресу | PC ← adr | нет | 3 |
CALL | adr | Прямой вызов подпрограммы по адресу | PC ← adr | нет | 4 |
Примечание: эти инструкции имеются только в ATmega168PA и ATmega328P.
7. Суффикс PU обозначает тип корпуса кристалла — пластиковый DIP28 (PDIP), это не имеет никакого отношения к суффиксу P. Т. е. ATmega328PU это просто ATmega328 в корпусе PDIP28.
[Суффиксы -PU, -AU, -MU]
Эти суффиксы обозначают тип корпуса микроконтроллера. PU соответствуют пластиковому DIP (PDIP), AU пластиковому TQFP, MU пластиковому QFN.