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

Требования UART Sim800

Копаясь по переводу одного изделия с Sim900 на Sim800 я тут обнаружил один ма-а-а-а-ленький косяк с большими последствиями.
Как я вижу у Sim800 сильно выше требования по точности установки скорости UART-а - явно допуска +/-1% недостаточно.
Наблюдаю на:
Revision:1308B09SIM800M32
Revision:1418B05SIM800F32
Так и должно быть или как? Каковы требования на точность UART-а?

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


Ссылка на сообщение
Поделиться на другие сайты
А из чего сделан такой вывод и почему даже 1% недостаточен (учитывая, что и при 2% общего разбега ошибка на стопбите вполне приемлема) ? Можно ожидать, что автодетект скорости будет промахиваться, но его вообще лучше не использовать без крайней необходимости. Каких-то особых требований на допуск скорости что-то не наблюдаю ни для 300, ни для 900, ни для 800.
Изменено пользователем rx3apf

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rx3apf @ Mar 29 2018, 22:58) <{POST_SNAPBACK}>
А из чего сделан такой вывод и почему даже 1% недостаточен (учитывая, что и при 2% общего разбега ошибка на стопбите вполне приемлема) ? Можно ожидать, что автодетект скорости будет промахиваться, но его вообще лучше не использовать без крайней необходимости. Каких-то особых требований на допуск скорости что-то не наблюдаю ни для 300, ни для 900, ни для 800.

Модуль начинает в диапазоне температур видеть ошибки(вплоть до потери связи) от контроллера без кварца с тактовым RC-генератором(уход оценочно не более 1%). Даже пришлось включить ATE1 что-бы точно убедиться чего там модуль принимает. При этом все сообщения от модуля контроллер видит корректно, в отладочный UART тот-же контроллер кидает без ошибок и терминал подключенный на шину обмена ошибок от контроллера не замечает.
Автодетект, естественно, выключен. Скорость 9600.
ЗЫ. Плата и зимой и летом в автомобилях тысячами много лет работала с Sim900 без вопросов.
ЗЗЫ.В принципе откаллиброваться по принятым символам проблем особых не составляет, но грабли, однако, неожиданные...

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(ArtemKAD @ Mar 30 2018, 04:10) <{POST_SNAPBACK}>
...от контроллера без кварца с тактовым RC-генератором(уход оценочно не более 1%)...
А что это за контроллер?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата
А что это за контроллер?

xmega128a3

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


Ссылка на сообщение
Поделиться на другие сайты
Как и в SIM900 рекомендован общий разбег не более 2% при фиксированной скорости.
На атмелах наблюдалась фигня при кварце 20 мгц и скорости 115200, приходилось ставить 18.432 мгц.

У нувотоновского N76E003 без кварца как раз +/- 2% во всем диапазоне температур.
Гоняли его в термокамере с SIM800C от -25 до +60, сбоев в обмене не было.

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


Ссылка на сообщение
Поделиться на другие сайты
А сам температурный дрейф частоты встроенного RC-генератора не меряли, просто ради интереса?
Экспериментировал в своё время с LPC900 и некоторыми силабсами, вписались с хорошим запасом. У первых при заявленных +/- 2,5% (в другой модели - 1%) отклонение не превышало 0,15% от -40 до +85, у вторых - 0,4% при заявленных 2%.

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


Ссылка на сообщение
Поделиться на другие сайты
Я бы начал с детального измерения времянок. В свое время, когда был спор о скорости для SIM900, таким измерением я удостоверился, что реальные скорости у модуля несколько отличаются от "эталонного" ряда (что было вполне ожидаемо, поскольку давно уже практикуется в качестве опорного номинала 27 MHz/13, т.е. на -0.16%).

И припоминается, что у AVR (XMEGA не щупал, работаю с MEGA) "в диапазоне" опорник все ж гуляет больше. В любом случае, все проверяется любым цифровым скопом буквально за несколько минут. В особо тяжелых случаях можно и какой-то отдельный измеритель смастерить, чтобы закрыть вопрос.

И при желании вполне можно попробовать создать такую ситуацию, перестроив тактовую или использовав внешнюю (что более предсказуемо) достичь такого же эффекта (пропуски, ошибки) - будем знать границы устойчивой работы UART.
Изменено пользователем rx3apf

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rx3apf @ Mar 30 2018, 11:41) <{POST_SNAPBACK}>
В особо тяжелых случаях можно и какой-то отдельный измеритель смастерить, чтобы закрыть вопрос.

Касательно МК - выводил наружу выход таймера и мерял его частоту, гоняя по температуре.

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


Ссылка на сообщение
Поделиться на другие сайты
Измерить частоту и ее девиацию от температуры и напряжения - это, на самом деле, еще полдела. Там, где внутри еще и PLL, надо смотреть и на времянки разгона-установления (я так хорошо нарвался на новых PIC16 - привык, что IntRC стартует сразу с нужной частотой, а с PLL все совсем иначе). Если, конечно, хост в сон не уходит, этим можно пренебречь.

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация