Перейти к содержанию
    

1 hour ago, Herz said:

И это битрейт 29.6 кбод. На 28.8 (что могло быть, если частота осциллятора вдруг вдвое меньше должной) - белиберда. Выходит, частота совсем какая-то неадекватная, далеко не 8 МГц.

Реально это как-то исправить? Или менять чип?

Чип менять не надо.

Quote

By default, the Internal RC Oscillator provides an approximate 8.0MHz clock. Though voltage
and temperature dependent, this clock can be very accurately calibrated by the user. See
Table
29-10 on page 323
for more details. The device is shipped with the CKDIV8 Fuse programmed.
See
”System Clock Prescaler” on page 36 for more details.

Т.е. ваш мк работает на 1 МГц, примерно.

Чтобы точнее понять какой у вас битрейт на выходе, с учетом заводской калибровки внутреннего RC генератора и с учетом настройки UART. Выводите в UART число 0xAA или 0x55.

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

И не плохо было бы разобраться исходя из какой тактовой частоты ваш скетч вычисляет коэффициенты делителя для заданного вами битрейта.

 

И для отсчета времени, в целях избежания переполнения разрядной сетки, лучше делать так

long time_now = millis();
long delta_time = time_now - millisVal;
if(delta_time >= 1000)
{
....
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Вроде скетчем должно было быть предусмотрено (изменение?) фьюзов под 8 МГц именно. Почему этого не случилось - непонятно.

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

Чип был сдут с модуля Ардуино WAVGAT Nano Mini, купленного здесь. Так что, даже бутлоадер заливать не пришлось. Модуль стоит копейки, дешевле, чем нынче чипы Атмега в розницу покупать.

Выгодное дело.

Но, что интересно: сам чип, как упоминается, "Same as ATMEGA328P", и даже лого на нём "WAVGAT", а не Атмел.

В порядке бреда предположение: что, если китайцы наладили выпуск клона ATMEGA328P, но с нерабочим (неоткалиброванным) внутренним осциллятором? Вроде же не подделка, и в юридическом смысле всё законно.

А на плате модуля присутствует внешний керамический резонатор, от которого чип и тактируется. Возможно, так дешевле в технологическом смысле.

2 часа назад, dimka76 сказал:

Т.е. ваш мк работает на 1 МГц, примерно.

Ну, не похоже. Тогда бы битрейт был в 8 раз меньше... По осциллограмме видно, что это явно не так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, Herz said:

Чип был сдут с модуля Ардуино WAVGAT Nano Mini

Но, что интересно: сам чип, как упоминается, "Same as ATMEGA328P", и даже лого на нём "WAVGAT", а не Атмел.

http://arduino.ru/forum/apparatnye-voprosy/obzor-klona-megi328-lgt8f328p

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13.10.2021 в 11:04, Herz сказал:

О, вот оно что...

В таком случае почему не поставить кварц, например на 11.059.200, чтобы получить точный делитель для уарта? Судя по описанию МК, он там только похож на атмегу, даже фьюзов нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, mantech сказал:

В таком случае почему не поставить кварц, например на 11.059.200, чтобы получить точный делитель для уарта? Судя по описанию МК, он там только похож на атмегу, даже фьюзов нет...

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

 

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

То есть, выходит, китайцы вовсю шуруют свои чипы даже под видом Атмеловских... Вот засада.

Забавно, что на обеих платах исправно работают часы и выдают свои 32768. Почему было не использовать их для УАРТа?

 

Для смеха залил тот же скетч в один из китайских модулей нано (на котором, якобы, Атмел), что с резонатором на 16МГц.  Работает, без проблем.

УАРТ, предсказуемо, на 115200. То есть, проблема у них именно с внутренним резонатором, выходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Herz said:

Но она только усугубилась: при попытке залить скетч посредством прошитого бутлоадера выводится ошибка, дескать, "программатор не отвечает". Попытка прошить бутлоадер заново отвергается с сообщением, что чип не идентифицируется правильно.

Это вызвано фьюзами, скорее всего. Нужно разбираться, что там навыставлял при первой прошивке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Однако, процедура это "стандартная", за исключением предварительного выбора типа платы. Тогда откуда берутся сведения о фьюзах? Из того самого текстового файла boards.txt?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 minutes ago, Herz said:

Из того самого текстового файла boards.txt?

Да. Шьются при любой заливке через программатор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Herz said:

Тогда откуда берутся сведения о фьюзах? Из того самого текстового файла boards.txt?

Цитата из вашего первого сообщения

OWHLatmega328.bootloader.low_fuses=0xE2 OWHLatmega328.bootloader.high_fuses=0xDA OWHLatmega328.bootloader.extended_fuses=0x05

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, rkit сказал:

Да. Шьются при любой заливке через программатор.

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

 

4 часа назад, Herz сказал:

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

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, mantech сказал:

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

Речь о процедуре, принятой в концепции Ардуино. Основная программа (скетч), как мы можем видеть, никаких настороек фьюзов не содержит.

Следовательно, за настройки (фьюзов или чего-то ещё?) отвечает бутлоадер? И здесь не понятны отличия "оригинальной Меги" от не-оригинальной.

Выходит, в не-оригинальной ничего изменить нельзя и всё работает по дифолту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, Herz said:

Следовательно, за настройки (фьюзов или чего-то ещё?) отвечает бутлоадер?

Мама дорогая - вот это каша !

А запустить avrdude и посмотреть фьюзы религия не позволяет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Herz сказал:

Следовательно, за настройки (фьюзов или чего-то ещё?) отвечает бутлоадер?

В версии с клоном- да.

1 час назад, Herz сказал:

Выходит, в не-оригинальной ничего изменить нельзя и всё работает по дифолту?

Все работает так, как заложено в ардуиновском бутлоадере для данного клона.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, x893 сказал:

Мама дорогая - вот это каша !

А запустить avrdude и посмотреть фьюзы религия не позволяет ?

Какая, нафиг, религия?!

Что такое - "запустить avrdude"? Я, например, не знаю.

2 часа назад, mantech сказал:

В версии с клоном- да.

Ну, вот интересно. Если режим работы, скажем, того же осциллятора, задают обычно фьюзы самого МК (и с оригиналом это очевидно), то как в случае клона (и, отсутствия фьюзов, соответственно) бутлоадер регулирует это? Как он определяет, с каким осциллятором работать МК, и, главное, как он управляет клоном в этом смысле?

Нет, я понимаю, что надо взять документацию и разобраться. Это правильно.

Но пока мне не до этого - надо просто заставить устройство работать, а для этого добыть оригинальную Атмегу.

Дальше вопрос спортивного интереса, и если на него нет короткого ответа, то и ладно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...