Всё про ATmega328PB

Weisnar
Weisnar аватар
Offline
Зарегистрирован: 19.07.2018

ИМХО всё гораздо проще. Тема форума Atmega328PB. Месяц назад Charovnik описал в точности ту же проблему, с которой когда-то столкнулся я. В поисках нормального загрузчика запорол пару микроконтроллеров.
Моё решение - не использовать этот Atmega328pb Crystal Clock.
MiniCore, как по мне, намного лучше загрузчик и при этом прекрасно работает с 328PB. Я уже на нескольких микропроцессорах проверил.

"Не согласен - критикуй. Критикуешь - предлагай..." © Иосиф Сталин

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Weisnar пишет:
Моё решение - не использовать этот Atmega328pb Crystal Clock. MiniCore, как по мне, намного лучше загрузчик и при этом прекрасно работает с 328PB.

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

Logik
Offline
Зарегистрирован: 05.08.2014

nik182 пишет:

Ну какой же бред...

спасибо за комент. А то фраза "- добавляет два цифровых пина, которые в заводской прошивке не активны;" Вызвала у меня некоторый ступор. Я загрузчиками не балуюсь, но представить такое не могу.

b707
Offline
Зарегистрирован: 26.05.2017

dimax пишет:

Weisnar пишет:
Моё решение - не использовать этот Atmega328pb Crystal Clock. MiniCore, как по мне, намного лучше загрузчик и при этом прекрасно работает с 328PB.

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

Скорее всего в комплекте с Миникоре идет уже настроенный правильно конфиг - загрузчик, опции прошивки, фьюзы. А в другом варианте ТС надо настраивать это все самому, а без понимания процесса это сделать непросто. Вот и все обьяснение "залоченным" камням и странным сигнатурам...

Чечако
Offline
Зарегистрирован: 15.06.2018

Logik пишет:

спасибо за комент. А то фраза "- добавляет два цифровых пина, которые в заводской прошивке не активны;" Вызвала у меня некоторый ступор. Я загрузчиками не балуюсь, но представить такое не могу.

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

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Только при чём здесь загрузчик - непонятно... Видимо Weisnar не в курсе, что вместе с загрузчиком Arduino IDE прошивает и фьюзы. И что эти фьюзы можно прошивать самостоятельно, вообще без загрузчика, и даже без Arduino IDE.

Weisnar
Weisnar аватар
Offline
Зарегистрирован: 19.07.2018

Чечако пишет:

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

Есть такое дело. Pin20 и pin21. Пару раз об этом написал, что их использую, но бред - так бред. Не столь важно,  проехали. 

Jeka_M пишет:

Только при чём здесь загрузчик - непонятно... Видимо Weisnar не в курсе, что вместе с загрузчиком Arduino IDE прошивает и фьюзы. И что эти фьюзы можно прошивать самостоятельно, вообще без загрузчика, и даже без Arduino IDE.

Писал об этом на предыдущей странице. Загрузчик здесь при том, что лично мне он нужен (чтобы иметь возможность обновлять скетчи со смартфона). В дополнении MiniCore есть возможность прошить фьюзы и без заливки загрузчика. В случае с 328PB ты сам выбираешь, на какой UART тебе настроить загрузчик (там же два интерфейса) или не записывать его вообще. В общем, очередной бред... Давайте уже что-то важное обсуждать :) 

 

вертеплюшка
Offline
Зарегистрирован: 13.12.2020

dimax пишет:

Boards: пока на Али не продают дешевых плат, но наш коллега sadman41 нашёл магазин, где на обычных нанах припаян чип 328PB.

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

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

aliexpress.ru/item/32828478049.html

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я там заказывал, пришли обычные 328Р, без В

sadman41
Offline
Зарегистрирован: 19.10.2016

Жаль, конечно...

--------------------
05 Oct 2020

Вопрос:Продавец долго отвечает на сообщения говорит ATmega328PB закончелись! Подтведите хто не давно брал! Мне нужен етот контроллер! Он покруче в нем уже: 2-SPI, 2-I2C, 3x16-bit Timers...

Ответ:

26 Nov 2020

Пара штук приехала, потом заказал ещё пару, пришли уже простые...(((
-------------------------

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Вроде появились 328PB - https://aliexpress.ru/item/32866959979.html

P.S. Плату получил - маркировка PB присутствует.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я тоже прошлым летом получил 2 зеленые платки типа Нано, с контроллером на котором написано 328РВ, оказалась простая Нано на 328Р Old bootloader, по другому не шьёцца. :)

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

DetSimen То что в него зашили китайцы - не показатель !

Я обычно сразу на MiniCore перешиваю и зеленые с PB сразу перешил. И там именно PB чип. Можно же запустить скетч, использующий лишние компоненты, которые есть только в PB и проверить ... сигнатуры считать ...

Добрался до компа:

 
SysInfo for Arduino version 1.07
 
F_CPU = 16000000
Frequency = 16 MHz
 
CPU_IDE = ATmega328P
 
Flash Memory = 32767 bytes
Free RAM memory = 1091 bytes
 
Signature = 1E 95 16
Fuses (Low/High/Ext/Lock) = FF DA FD CF
Processor = ATmega328PB
Flash memory size = 32 kB
 
max0
Offline
Зарегистрирован: 05.10.2018

Здравствуйте. Нужен совет.

У меня есть плата которая предназначена для работы с мк Atmega328p. Могу ли я вместо 328p припаять 328pB? Мне очень важно не промахнуться с этим делом, т.к. нет возможности ошибиться.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

max0 Можно. Только разберитесь с 3 и 6 ножками.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Сигнатуры проца и фьюзы запросто читаются программно. Что мешает проверить проц прямо из программы?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

А кто уже попробовал использовать на ней Serial1?
Что-то не выходит каменный цветок...

Распиновка на плате типоразмера NANO:

 * RXD0 - PD0   TXD0 - PD1
 *            (D0)             (D1)
 *  ----------------------      
 * RXD1 - PB4   TXD1 - PB3
 *            (D12)           (D11)  
 * -----------------------

sadman41
Offline
Зарегистрирован: 19.10.2016

Да все было ок. Я сразу Serial1 щупал иглой осциллографа.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
Да все было ок. Я сразу Serial1 щупал иглой осциллографа.

Да всё бьюсь с этой IBUS )))
По распиновке правильно?

sadman41
Offline
Зарегистрирован: 19.10.2016

ua6em пишет:

sadman41 пишет:
Да все было ок. Я сразу Serial1 щупал иглой осциллографа.

Да всё бьюсь с этой IBUS )))
По распиновке правильно?

http://arduino.ru/forum/obshchii/vse-pro-atmega328pb-0#comment-469706

_Igor_
Offline
Зарегистрирован: 10.01.2022

День добрый. Ожидая китайскую плату с 328BP, озадачился софтовой поддержкой. Остановился на MiniCore.  Пока взял обычную NANO. Установил, прошил загрузчик, стал примеры проверять. Flash_get_put.ino выдает "Incompatible or no bootloader present! Please burn correct bootloader". Функция flash.check_writable() проверяет последний байт на «08». А у меня не «08». И если убрать проверку, то все пишется и читается. Может, кто проверит. Nano такая или у всех так. Спасибо.

 

b707
Offline
Зарегистрирован: 26.05.2017

_Igor_, на стандартной Нано могут стоять разные бутлоадеры, то что бутлоадер не проходит эту прверку, еще не означает. что плата "плохая". Если требуется, бутлоадер можно и поменять

_Igor_
Offline
Зарегистрирован: 10.01.2022

Бутлоудер от MiniCore... Зашил перед примером...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

_Igor_ пишет:

Бутлоудер от MiniCore... Зашил перед примером...

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

_Igor_
Offline
Зарегистрирован: 10.01.2022

Flash_get_put.ino. Пример из MiniCore...

Max hit
Offline
Зарегистрирован: 22.02.2022

Добрый день. Сделал плату с 328BP. Прошивка заливается на шестипиновый разъём через ардуино (Arduino as ISP). Есть выводной кварц на 16мгц. Использую MiniCore. Загрузчик встал без проблем, а скейтч не прошился. Заливаемая прошивка - пример blink. Хочу ещё попробовать через AVRDUDEPROG, но у него нет на 328pb. Может, кто помочь в мозговом штурме. Спасибо. 

sing Programmer              : arduino
         Overriding Baud Rate          : 115200*Делал разные скорости
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xcd
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0
 
avrdude done.  Thank you.
 
Upload error: Failed uploading: uploading error: exit status 1

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Если заливаете через ISP причем тут загрузчик ? Загрузчик для заливки через COM порт ...

Прочитайте фьюзы через ISP и опубликуйте нам.

Max hit
Offline
Зарегистрирован: 22.02.2022

Кароч... Надо было выбрать опцию "Загрузить используя программатор".

"Ctrl+Shift+U" ИЛИ Скетчагрузить используя программатор

Стрелочка прошивает скетч в ардуино (но она у меня программатор). А опция "Загрузить используя программатор" готовит файл для отправки через ардуино в мою плату.

 
v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Max hit пишет:

Кароч... Надо было выбрать опцию "Загрузить используя программатор".

"Ctrl+Shift+U" ИЛИ Скетчагрузить используя программатор

Стрелочка прошивает скетч в ардуино (но она у меня программатор). А опция "Загрузить используя программатор" готовит файл для отправки через ардуино в мою плату.

 


Это пять ))) Собственно, если нужно через загрузчик, то можно через USB-TTL конвертер заливать, как в про мини

Erling
Offline
Зарегистрирован: 23.02.2022

Вставлю свои пять копеек. Столкнулся ATmega328PB минувшим летом, даже не зная, что он существует. Сразу интуитивно нашел соответствующую опцию в MiniCore, которым пользуюсь уже довольно давно. Загрузчик прекрасно встаёт, прошиваю USBasp либо Arduino-as-ISP (у меня есть специальная Nano, у которой micro USB перепаян на USB A и "экспортный" сигнал RST подведен к соответствующему пину ISP хедера, при необходимости сигнал DTR возвращается к пину RST нажатием кнопки). Потом всё нормально загружается как через встроенные в плату, так и через внешние USB-TTL UART преобразователи.

_Igor_
Offline
Зарегистрирован: 10.01.2022
Для информации.
Atmega328PB, внешний кварц 8 МГц, питание 3.3 вольта, Bootloader - MiniCore
Радио - модуль LORA E22-400M22S (SX1268) - соединен по SPI (на 4 МГц)
Библиотека - SaberShip/SX126x_Async, пример передатчика прямо из нее.
Так вот.
Компилируем пример LoRaTX, компилируем, загружаем... 
LORA приемник второй байт (из двух) в посылке принимает НЕ верно...
Берем обычную ардуину + SX1268. Загружаем тот же пример. Приемник принимает все правильно.
Вывод - передатчик передает не верно.
Оказалось, что
!!! С Atmega328PB работает правильно ТОЛЬКО при установки "LTO enable" в MiniCore !!!
Два дня курочил библиотеку и программу... Поставил "LTO enable" от безысходности.
 

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

_Igor_ это проблема Arduino IDE скорее всего

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

_Igor_ это проблема Arduino IDE скорее всего

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

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Komandir пишет:

_Igor_ это проблема Arduino IDE скорее всего

Как, когда я спрашивал про LTO вообще, сказал Евгений Петрович - «в ардуино IDE оно всегда включено по умолчанию», в миникор дают выбор действиям. И лично я теперь всегда включаю. И объём исполняемого кода меньше и проблем небыло пока.

ЗЫ: ТСу - А зачем загрузчик? По любому через программатор заливаете прошивку. Только место отъедает ничего полезного (как по мне) не несёт.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BOOM пишет:

Komandir пишет:

_Igor_ это проблема Arduino IDE скорее всего

 

ЗЫ: ТСу - А зачем загрузчик? По любому через программатор заливаете прошивку. Только место отъедает ничего полезного (как по мне) не несёт.

видимо ПЗУ и WDT

_Igor_
Offline
Зарегистрирован: 10.01.2022

Com port нужен. Размер платы 16х22 мм. Разъем ISP некуда. Отсюда бутлоадер...

Чечако
Offline
Зарегистрирован: 15.06.2018

del

_Igor_
Offline
Зарегистрирован: 10.01.2022

Каждый делает как умеет и считает нужным. Ну нет там места. НО Я ПРО ДРУГОЕ. Все как обычно... Тема 328PB. А рассуждения про линейку 1.27...  Предлагаю модератору (если он есть) удалить последние сообщения (и мои) не касающиеся ТЕМЫ... И не только в этой теме.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

_Igor_ Так чип виноват или LTO ? В MiniCore есть и обычный 328 - под него скомпилировать без LTO ?

И листинги бы сравнить ...

_Igor_
Offline
Зарегистрирован: 10.01.2022

Пока сказать не могу. Ассемблерные листинги разные, но видимых ошибок нет. Без LTO - пишет в SX1268 два байта циклом. С LTO - пишет один, потом второй. Коды записи по SPI - абсолютно одинаковые... 

_Igor_
Offline
Зарегистрирован: 10.01.2022

Да. Для обычного можно скомпилировать, но мне проверить сложно - модули SX1268 разные (надо библиотеку править) и впаяны...

Erling
Offline
Зарегистрирован: 23.02.2022

Намедни ATmega328PB на моём опыте проявил несколько повышенную чувствительность к фильтрации питания по сравнению с клонами Nano на других МК. Собрал на печатке часы на DS3231 с разъёмом под Нано (сделал так специально, чтобы можно было потестировать разные платы). С Нано на ATmega328P работает отлично, с псевдо-Нано на LGT8F328P LQFP32 – тоже. Вставил Нано на ATmega328PB – через какое-то время начинается сильная рябь на 4-символьном 7-сегментном индикаторе, да и данные в Serial перестают выводиться. Добавил между 5V и GND пару керамических конденсаторов на 10 мкФ – ряб ослабла, Serial работает, но результат неудовлетворительный (цифры "дёргаются"). Добавил электролитический конденсатор на 470 мкФ – пока вроде работает нормально, рябь ушла совсем. Не знаю, в чём дело, может, это даже и не особенность МК, а особенности сборки данной платы Нано.

P.S. Питание шло на 5V от USB-разъёма ноутбука.

Чечако
Offline
Зарегистрирован: 15.06.2018

Erling пишет:

Не знаю, в чём дело, может, это даже и не особенность МК, а особенности сборки данной платы Нано.

P.S. Питание шло на 5V от USB-разъёма ноутбука.

А что за нанка-то с PB? Может банально плата под нее не особо правильно разведена?

Erling
Offline
Зарегистрирован: 23.02.2022

С виду обычная Нано. Могу выложить фото, но, честное слово, ничего особенного. Брал с Али где-то в начале осени 2021 г. партию 10 штук. Что до разводки, а чем она должна отличаться от таковой под обычный ATmega328P? Китайцу нужно было как-то учесть перемещение SPI и появление UART1? Я об этом не особо задумывался, так как мне нужны были только пины, оставшиеся неизменными.

Из нововведений я заметил только, что на I2C1 забили болт и оставили пины неподключенными.

Чечако
Offline
Зарегистрирован: 15.06.2018

Erling пишет:
С виду обычная Нано. Могу выложить фото, но, честное слово, ничего особенного. Брал с Али где-то в начале осени 2021 г. партию 10 штук. Что до разводки, а чем она должна отличаться от таковой под обычный ATmega328P? Китайцу нужно было как-то учесть перемещение SPI и появление UART1?

Китайцу нужно было как минимум учесть то, что ноги 3 и 6 больше не земля и питание. :)

Erling
Offline
Зарегистрирован: 23.02.2022

Правильно, они теперь I2C1. Вот их и оставили неподключенными.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Кто нибудь проверял работу  SPI1 на 328PB? 

Сначала залил в МК загрузчик с этого аддона, т.к. в нем с китая был хитрый загрузчик с подменой сигнатуры на обычный 328 (это обсуждалось в начале этой темы, поэтому я быстро разобрался). После чего чип нормально стал прошиваться как 328PB. 

Хочу повесить MCP2515 на SPI1 чтобы Serial1 высвободить (SPI и Serial1 занимает одни пины). В библиотеке CAN 2515 поменял все SPI на SPI1. видимо этого не достаточно, не работает. 

аддон такой  https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Может ноги попутал в железе ? Анализатор повесь и посмотри ...

_Igor_
Offline
Зарегистрирован: 10.01.2022

SPI1 и Serial1 ноги разные. SPI0 и Serial1 ноги единые. См. даташит...