Jump to content

    
Sign in to follow this  
artemkad

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

Recommended Posts

Копаясь по переводу одного изделия с Sim900 на Sim800 я тут обнаружил один ма-а-а-а-ленький косяк с большими последствиями.

Как я вижу у Sim800 сильно выше требования по точности установки скорости UART-а - явно допуска +/-1% недостаточно.

Наблюдаю на:

Revision:1308B09SIM800M32

Revision:1418B05SIM800F32

Так и должно быть или как? Каковы требования на точность UART-а?

Share this post


Link to post
Share on other sites

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

Edited by rx3apf

Share this post


Link to post
Share on other sites
А из чего сделан такой вывод и почему даже 1% недостаточен (учитывая, что и при 2% общего разбега ошибка на стопбите вполне приемлема) ? Можно ожидать, что автодетект скорости будет промахиваться, но его вообще лучше не использовать без крайней необходимости. Каких-то особых требований на допуск скорости что-то не наблюдаю ни для 300, ни для 900, ни для 800.

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

Автодетект, естественно, выключен. Скорость 9600.

ЗЫ. Плата и зимой и летом в автомобилях тысячами много лет работала с Sim900 без вопросов.

ЗЗЫ.В принципе откаллиброваться по принятым символам проблем особых не составляет, но грабли, однако, неожиданные...

 

Share this post


Link to post
Share on other sites

Как и в SIM900 рекомендован общий разбег не более 2% при фиксированной скорости.

На атмелах наблюдалась фигня при кварце 20 мгц и скорости 115200, приходилось ставить 18.432 мгц.

 

У нувотоновского N76E003 без кварца как раз +/- 2% во всем диапазоне температур.

Гоняли его в термокамере с SIM800C от -25 до +60, сбоев в обмене не было.

Share this post


Link to post
Share on other sites

А сам температурный дрейф частоты встроенного RC-генератора не меряли, просто ради интереса?

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Edited by rx3apf

Share this post


Link to post
Share on other sites
В особо тяжелых случаях можно и какой-то отдельный измеритель смастерить, чтобы закрыть вопрос.

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this