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

Приветствую!

 

Есть партия устройств на ATMega8A. Устройство шлет некоторые данные по UART на скорости 9600. Внешнего кварца нет. Протокол обмена - запрос-ответ.

 

Смотрю сниффером + осциллографом в линию Tx и паяльным феном дую на корпус контроллера.

На +40 градусах контроллер отвечает уже с заметными пропусками (изредка наблюдаются пропуски ответных пакетов).

На +60 (ну примерно, конечно) контроллер вовсе перестает отвечать посылками.

При этом ядро работает 100%, так как МК весело моргает лампочками и управляет другими ногами. Но UART сдох.

 

Думал, внутренний RC от температуры съехал - но че с того? Даже если бы частота ушла, UART тупо расплылся бы на осцилле.

Но времянка стоит как вкопанная до момента, когда МК тупо перестает передавать ответы.

 

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

Но блин... Ведь Tx-посылки по времянке как вкопанные хоть сколько грей контроллер. Явно какая-то фигня с передачей. Либо и с тем и с другим. На уровне физической реализации кристалла.

 

Не понимаю, как положить даже (предположительно) кривую прошивку, которая работает на столе и не работает при нагреве, если в ATMega8A даже датчика температуры нет...

 

Сталкивался кто? У меня вариант пока что только один - поставщик закупился у китайцев...

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


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

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

 

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


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

На некитайской меге с тактированием от RC связь на 9600 рассыпалась при прикладывании пальца к корпусу. Если китайцам удалось в нее впихнуть RC, который стоит как влитой от +20 до +60 - честь им и хвала. Или может вы логическому анализатору частоту выборок задали 20 кГц и он просто физически съезжание фронта меньше, чем на полбита показать не может, а УАСПП меги перестает принимать правильно при гораздо меншем отклонении частоты?

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


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

Запрос-ответ ? Так это не передатчик виноват - времянки поползли, приемник перестал принимать запросы и, соответственно, выдавать ответы. Да, RC-генераторам такое свойственно, и не важно, китайский кристалл или американский. Сделайте однонаправленную посылку по таймеру и разглядывайте время между началом посылки и расползание самой посылки, все сразу станет понятно. Чудес не бывает - генератор _заведомо_ ползет. Если кажется, что посылка не ползет - значит, что-то неправильное с измерениями.

2 минуты назад, Сергей Борщ сказал:

На некитайской меге с тактированием от RC связь на 9600 рассыпалась при прикладывании пальца к корпусу. 

А вот это тоже смахивает на чудо. Вот чтобы ТАК рассыпалось - не верю (у меня на 921600, RC, с однократной калибровкой при включении по часовому кварцу - столь ужасающих аномалий не наблюдал ни разу).

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


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

59 минут назад, Arlleex сказал:

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

Он не перестает работать, но его тайминги тоже уползают и он не может "прочитать" запрос. Вот и не отвечает. С его точки зрения "Tx-посылки" уже кривые, т.к. в тайминги не попадают.

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


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

47 минут назад, Сергей Борщ сказал:

Или может вы логическому анализатору частоту выборок задали 20 кГц...

Я смотрю USB-UART анализатором на FT232RL.

И еще параллельно ткнул туда осциллом. Частоты UART-битов не плывут.

Стоят как вкопанные, а потом *резко* хлоп и нет посылок.

 

45 минут назад, rx3apf сказал:

Запрос-ответ ? Так это не передатчик виноват - времянки поползли, приемник перестал принимать запросы и, соответственно, выдавать ответы. Да, RC-генераторам такое свойственно, и не важно, китайский кристалл или американский. Сделайте однонаправленную посылку по таймеру и разглядывайте время между началом посылки и расползание самой посылки, все сразу станет понятно. Чудес не бывает - генератор _заведомо_ ползет.

Ладно бы, если время передачи от фронта до фронта START/STOP-битов менялось при нагреве и переставали идти посылки.

Но я глазом не вижу между двумя маркерами на осциллографе "разъезжания" времянки. Там, на вскидку, до единиц процентов частота точно такая же, как при холодном кристалле.

 

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

 

Приемник и передатчик работают относительно одного и того же источника частоты; разве что предделитель на Rx- меньше чем на Tx-часть.

Если бы поехала Rx, чтобы подтвердить вероятность невозможности принять адекватно данные на МК, едущую времянку на Tx я должен был тоже увидеть. А ее нет. Смотрел вроде глазами.

 

Может, конечно, стоило бы вообще запредельно точно для UART-а (в долях мкс) измерить время между START/STOP, но блин... Если визуально он стоял на месте, то это баг чипа скорее.

 

Как добуду плату для тестов, поэкспериментирую еще.

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


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

9 minutes ago, Arlleex said:

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

Это как?

Quote

Note however that the Receiver will in this case only use half the number of samples (reduced from 16 to 8) for data sampling and clock
recovery, and therefore a more accurate baud rate setting and system clock are required when this mode is used.

 

19 minutes ago, Arlleex said:

Но я глазом не вижу между двумя маркерами на осциллографе "разъезжания" времянки.

Уверены, что видите 2%?

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


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

Непонятно, почему просто частотомером не измерили частоту кварца МК при 60 и при 20 градусах.

 Измерить глазом по осциллографу - это несерьёзно.

Частота второго устройства тоже не стабилизирована кварцем? Частоту МК при настройке подстраивали?

Для меня работа работа UART в широком диапазоне температур без кварцевой стабилизации сильно сомнительна.

 

 

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


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

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

Может, конечно, стоило бы вообще запредельно точно для UART-а (в долях мкс) измерить время между START/STOP, но блин... Если визуально он стоял на месте, то это баг чипа скорее.

Как добуду плату для тестов, поэкспериментирую еще.

А преобразований уровней сигналов никаких нет? Можно разъехаться не только по длительности, но и по уровням.

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


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

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

Это как?

Ну да. Никак:blush: Почему-то считал режим удвоенной скорости как раз 16 выборок на бит.

И мое представление о разбросе точности и режиме выборок было неправильным.

 

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

Уверены, что видите 2%?

По маркерам смотрел. На глаз 2%, конечно, в самом сигнале не увидишь.

 

39 минут назад, AI7 сказал:

Непонятно, почему просто частотомером не измерили частоту кварца МК при 60 и при 20 градусах.

Кварца? Я же писал, что кварца внешнего нет...

Внутреннюю частоту не замерял. Пока что.

 

39 минут назад, AI7 сказал:

Частота второго устройства тоже не стабилизирована кварцем? Частоту МК при настройке подстраивали?

Второе устройство - комп. Частоту... да вроде не подстраивали.

Оно писано было еще в начале 2000-х и досталось мне по наследию. Вот сижу теперь и думаю че с этим делать.

Я и прошивку то не видел и не увижу, все допущения со слов коллег.

 

39 минут назад, AI7 сказал:

Для меня работа работа UART в широком диапазоне температур без кварцевой стабилизации сильно сомнительна.

Для меня тоже. Но поделие не мое, поэтому воочию наблюдаю последствия.

 

16 минут назад, adnega сказал:

А преобразований уровней сигналов никаких нет? Можно разъехаться не только по длительности, но и по уровням.

Не, преобразователей нет. Смотрю прям на ноги МК.

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


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

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

Непонятно, почему просто частотомером не измерили частоту кварца МК при 60 и при 20 градусах.

У ТС - RC-генератор. Кварцованный, естественно, никак от прогрева феном не сумеет уйти до того, чтобы UART не работал.

 

Цитата

 Измерить глазом по осциллографу - это несерьёзно.

Цифровым - можно. Но при твердом понимании, что и как.

 

 

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

Ну да. Никак:blush: Почему-то считал режим удвоенной скорости как раз 16 выборок на бит.

И мое представление о разбросе точности и режиме выборок было неправильным.

Неправильным, да.

 

Цитата

 

По маркерам смотрел. На глаз 2%, конечно, в самом сигнале не увидишь.

saleae при правильном выборе скорости семплирования позволил бы увидеть.

 

Цитата

Вот сижу теперь и думаю че с этим делать.

Написать собственную тестовую прошивку - работа от того же RC с тем же выбором ckdiv. Запрягаем один из таймеров в режим CTC, выводим результат на выход. Смотрим скопом (цифровым) или частотомером, греем и медитируем над результатом. Нет скопа/частотомера - пишем свой примитивнейший.

 

upd: обновил свой склероз - согласно даташиту, RC-генератор уползает на чуть более одного процента при изменении температуры на 30 градусов. Т.е. при разогреве до сотни - вполне можно ожидать проблемы с UART. Забавно - у M8 и у M88 разный знак зависимости частоты от температуры. Но порядки изменения одинаковы, и не слишком велики (потому-то я в свое время для прибора, работающего при комнатной температуре, и отказался от периодической рекалибровки, начальной оказалось достаточно).

 

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

 

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

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


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

все что выше - согласен.

Возможно, при прогреве и высокой частоте тактирования поплыли внутренние "времянки" в софте в стиле delay(10000) или что-то другое.

(те проблема может быть не обязательно в частоте тактирования узла USART).

Проверить можно, если на плату в норм. условиях подать пакеты с отклонением битрейта вниз-вверх (вместо кварца к любому другому контроллеру подключить RC или даже кварц с подстроечником). Этой проверкой можно найти границу устойчивости проверяемого девайса от отклонения битрейта, и исключить то что я выше привел. Таймером не получится из-за дискретности и шага. Ну, или внешний ГСС.

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


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

16 hours ago, Arlleex said:

"Кварца? Я же писал, что кварца внешнего нет...

Внутреннюю частоту не замерял. Пока что."

 

Надо было написать "частоту генератора МК", слово кварц написал, конечно, ошибочно по инерции, поскольку большей частью использую кварцы.

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

 

 

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

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


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

7 часов назад, k155la3 сказал:

(вместо кварца к любому другому контроллеру подключить RC или даже кварц с подстроечником).

Кварц с подстроечником - несерьезно. На сотню-другую ppm кварц утянуть можно, но в данном случае речь идет о процентах.

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


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

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

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

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

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

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

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

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

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

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