Arlleex 131 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Приветствую! Есть партия устройств на ATMega8A. Устройство шлет некоторые данные по UART на скорости 9600. Внешнего кварца нет. Протокол обмена - запрос-ответ. Смотрю сниффером + осциллографом в линию Tx и паяльным феном дую на корпус контроллера. На +40 градусах контроллер отвечает уже с заметными пропусками (изредка наблюдаются пропуски ответных пакетов). На +60 (ну примерно, конечно) контроллер вовсе перестает отвечать посылками. При этом ядро работает 100%, так как МК весело моргает лампочками и управляет другими ногами. Но UART сдох. Думал, внутренний RC от температуры съехал - но че с того? Даже если бы частота ушла, UART тупо расплылся бы на осцилле. Но времянка стоит как вкопанная до момента, когда МК тупо перестает передавать ответы. Может, конечно, приемный тракт перестает работать - возможности проверить пока нету. Ну, типа частота уплыла и МК не принимает запросы, следовательно не отвечает. Но блин... Ведь Tx-посылки по времянке как вкопанные хоть сколько грей контроллер. Явно какая-то фигня с передачей. Либо и с тем и с другим. На уровне физической реализации кристалла. Не понимаю, как положить даже (предположительно) кривую прошивку, которая работает на столе и не работает при нагреве, если в ATMega8A даже датчика температуры нет... Сталкивался кто? У меня вариант пока что только один - поставщик закупился у китайцев... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ikm 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Тут вряд ли найдутся экстрасенсы. Так что надо сделать тестовую прошивку, которая все время шлет контрольный пакет из Атмеги и затем ее греть смотреть когда отвалится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Угу... Буду ждать, значит, когда дадут свободную для тестирования плату. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба На некитайской меге с тактированием от RC связь на 9600 рассыпалась при прикладывании пальца к корпусу. Если китайцам удалось в нее впихнуть RC, который стоит как влитой от +20 до +60 - честь им и хвала. Или может вы логическому анализатору частоту выборок задали 20 кГц и он просто физически съезжание фронта меньше, чем на полбита показать не может, а УАСПП меги перестает принимать правильно при гораздо меншем отклонении частоты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Запрос-ответ ? Так это не передатчик виноват - времянки поползли, приемник перестал принимать запросы и, соответственно, выдавать ответы. Да, RC-генераторам такое свойственно, и не важно, китайский кристалл или американский. Сделайте однонаправленную посылку по таймеру и разглядывайте время между началом посылки и расползание самой посылки, все сразу станет понятно. Чудес не бывает - генератор _заведомо_ ползет. Если кажется, что посылка не ползет - значит, что-то неправильное с измерениями. 2 минуты назад, Сергей Борщ сказал: На некитайской меге с тактированием от RC связь на 9600 рассыпалась при прикладывании пальца к корпусу. А вот это тоже смахивает на чудо. Вот чтобы ТАК рассыпалось - не верю (у меня на 921600, RC, с однократной калибровкой при включении по часовому кварцу - столь ужасающих аномалий не наблюдал ни разу). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NStorm 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба 59 минут назад, Arlleex сказал: Может, конечно, приемный тракт перестает работать - возможности проверить пока нету. Ну, типа частота уплыла и МК не принимает запросы, следовательно не отвечает.Но блин... Ведь Tx-посылки по времянке как вкопанные хоть сколько грей контроллер. Явно какая-то фигня с передачей. Он не перестает работать, но его тайминги тоже уползают и он не может "прочитать" запрос. Вот и не отвечает. С его точки зрения "Tx-посылки" уже кривые, т.к. в тайминги не попадают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба 47 минут назад, Сергей Борщ сказал: Или может вы логическому анализатору частоту выборок задали 20 кГц... Я смотрю USB-UART анализатором на FT232RL. И еще параллельно ткнул туда осциллом. Частоты UART-битов не плывут. Стоят как вкопанные, а потом *резко* хлоп и нет посылок. 45 минут назад, rx3apf сказал: Запрос-ответ ? Так это не передатчик виноват - времянки поползли, приемник перестал принимать запросы и, соответственно, выдавать ответы. Да, RC-генераторам такое свойственно, и не важно, китайский кристалл или американский. Сделайте однонаправленную посылку по таймеру и разглядывайте время между началом посылки и расползание самой посылки, все сразу станет понятно. Чудес не бывает - генератор _заведомо_ ползет. Ладно бы, если время передачи от фронта до фронта START/STOP-битов менялось при нагреве и переставали идти посылки. Но я глазом не вижу между двумя маркерами на осциллографе "разъезжания" времянки. Там, на вскидку, до единиц процентов частота точно такая же, как при холодном кристалле. Тем более, как я понял, сейчас в прошивке 8spb, что достаточно сильно загрубляет требования к точности битовых интервалов. По сравнению с режимом 16spb. Приемник и передатчик работают относительно одного и того же источника частоты; разве что предделитель на Rx- меньше чем на Tx-часть. Если бы поехала Rx, чтобы подтвердить вероятность невозможности принять адекватно данные на МК, едущую времянку на Tx я должен был тоже увидеть. А ее нет. Смотрел вроде глазами. Может, конечно, стоило бы вообще запредельно точно для UART-а (в долях мкс) измерить время между START/STOP, но блин... Если визуально он стоял на месте, то это баг чипа скорее. Как добуду плату для тестов, поэкспериментирую еще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба 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%? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AI7 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Непонятно, почему просто частотомером не измерили частоту кварца МК при 60 и при 20 градусах. Измерить глазом по осциллографу - это несерьёзно. Частота второго устройства тоже не стабилизирована кварцем? Частоту МК при настройке подстраивали? Для меня работа работа UART в широком диапазоне температур без кварцевой стабилизации сильно сомнительна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба 1 час назад, Arlleex сказал: Может, конечно, стоило бы вообще запредельно точно для UART-а (в долях мкс) измерить время между START/STOP, но блин... Если визуально он стоял на месте, то это баг чипа скорее. Как добуду плату для тестов, поэкспериментирую еще. А преобразований уровней сигналов никаких нет? Можно разъехаться не только по длительности, но и по уровням. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба 1 час назад, aaarrr сказал: Это как? Ну да. Никак Почему-то считал режим удвоенной скорости как раз 16 выборок на бит. И мое представление о разбросе точности и режиме выборок было неправильным. 1 час назад, aaarrr сказал: Уверены, что видите 2%? По маркерам смотрел. На глаз 2%, конечно, в самом сигнале не увидишь. 39 минут назад, AI7 сказал: Непонятно, почему просто частотомером не измерили частоту кварца МК при 60 и при 20 градусах. Кварца? Я же писал, что кварца внешнего нет... Внутреннюю частоту не замерял. Пока что. 39 минут назад, AI7 сказал: Частота второго устройства тоже не стабилизирована кварцем? Частоту МК при настройке подстраивали? Второе устройство - комп. Частоту... да вроде не подстраивали. Оно писано было еще в начале 2000-х и досталось мне по наследию. Вот сижу теперь и думаю че с этим делать. Я и прошивку то не видел и не увижу, все допущения со слов коллег. 39 минут назад, AI7 сказал: Для меня работа работа UART в широком диапазоне температур без кварцевой стабилизации сильно сомнительна. Для меня тоже. Но поделие не мое, поэтому воочию наблюдаю последствия. 16 минут назад, adnega сказал: А преобразований уровней сигналов никаких нет? Можно разъехаться не только по длительности, но и по уровням. Не, преобразователей нет. Смотрю прям на ноги МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 (изменено) · Жалоба 4 часа назад, AI7 сказал: Непонятно, почему просто частотомером не измерили частоту кварца МК при 60 и при 20 градусах. У ТС - RC-генератор. Кварцованный, естественно, никак от прогрева феном не сумеет уйти до того, чтобы UART не работал. Цитата Измерить глазом по осциллографу - это несерьёзно. Цифровым - можно. Но при твердом понимании, что и как. 3 часа назад, Arlleex сказал: Ну да. Никак Почему-то считал режим удвоенной скорости как раз 16 выборок на бит. И мое представление о разбросе точности и режиме выборок было неправильным. Неправильным, да. Цитата По маркерам смотрел. На глаз 2%, конечно, в самом сигнале не увидишь. saleae при правильном выборе скорости семплирования позволил бы увидеть. Цитата Вот сижу теперь и думаю че с этим делать. Написать собственную тестовую прошивку - работа от того же RC с тем же выбором ckdiv. Запрягаем один из таймеров в режим CTC, выводим результат на выход. Смотрим скопом (цифровым) или частотомером, греем и медитируем над результатом. Нет скопа/частотомера - пишем свой примитивнейший. upd: обновил свой склероз - согласно даташиту, RC-генератор уползает на чуть более одного процента при изменении температуры на 30 градусов. Т.е. при разогреве до сотни - вполне можно ожидать проблемы с UART. Забавно - у M8 и у M88 разный знак зависимости частоты от температуры. Но порядки изменения одинаковы, и не слишком велики (потому-то я в свое время для прибора, работающего при комнатной температуре, и отказался от периодической рекалибровки, начальной оказалось достаточно). Но вот если калибровки вообще нет никакой, и разработчик положился на заводскую, тут можно нарваться на совокупность факторов, и отказ произойдет при существенно меньшей девиации температуры. Изменено 13 апреля, 2020 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 14 апреля, 2020 Опубликовано 14 апреля, 2020 · Жалоба все что выше - согласен. Возможно, при прогреве и высокой частоте тактирования поплыли внутренние "времянки" в софте в стиле delay(10000) или что-то другое. (те проблема может быть не обязательно в частоте тактирования узла USART). Проверить можно, если на плату в норм. условиях подать пакеты с отклонением битрейта вниз-вверх (вместо кварца к любому другому контроллеру подключить RC или даже кварц с подстроечником). Этой проверкой можно найти границу устойчивости проверяемого девайса от отклонения битрейта, и исключить то что я выше привел. Таймером не получится из-за дискретности и шага. Ну, или внешний ГСС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AI7 0 14 апреля, 2020 Опубликовано 14 апреля, 2020 (изменено) · Жалоба 16 hours ago, Arlleex said: "Кварца? Я же писал, что кварца внешнего нет... Внутреннюю частоту не замерял. Пока что." Надо было написать "частоту генератора МК", слово кварц написал, конечно, ошибочно по инерции, поскольку большей частью использую кварцы. Подключить частотомер - вроде как минутное дело, будет ясно и с начальной настройкой, и с уходом частоты при прогреве. Правда, надо сделать аккуратно, чтобы щуп не изменил частоту генератора. Изменено 14 апреля, 2020 пользователем AI7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 14 апреля, 2020 Опубликовано 14 апреля, 2020 · Жалоба 7 часов назад, k155la3 сказал: (вместо кварца к любому другому контроллеру подключить RC или даже кварц с подстроечником). Кварц с подстроечником - несерьезно. На сотню-другую ppm кварц утянуть можно, но в данном случае речь идет о процентах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться