|
|
  |
SIM900: максимально допустимая погрешность к скорости передачи USART |
|
|
|
Oct 20 2011, 11:09
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470

|
Цитата(Ildar Belkin @ Oct 20 2011, 13:53)  Посмотрим как будет работать. Если будет плохо впаяю кварц. Эксперимент покажет что все работает- неработает на ДАННОМ ЭКЗЕМПЛЯРЕ контроллера. Для правильного эксперимента нужно сделать не так. Нужно взять контроллер, вывести на ножку частоту и контролировать ее частотомером - для контроля текущей частоты. Через уарт общатся с модулем. И напрмер по нажатию кнопки менять на некоторый шаг тактовую частоту контроллера. И в обе стороны по частотомеру определить при каком отклонении обмен начниает сбоить.
|
|
|
|
|
Oct 20 2011, 11:47
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643

|
Цитата(GeGeL @ Oct 20 2011, 15:19)  Совет: забудьте о безкварцевой конфигурации, иначе потом в серии будут проблемы, это уже проверено. Безкварцевая конфигурация -- это, скорей, когда используется часовой кварц, по которому постоянно подстраивается внутренний генератор. Часовой кварц, причём, постоянно работающий (его запуск занимает ещё более значительное время). Безкварцевая конфигурация актуальна только для микропотребляющих приборов с часами реального времени. И смысл отсутствия кварца на XX МГц в ней даже не снижение себестоимости, а экономия энергии. Вдогонку. Проценты погрешности считать нужно и для самого модема тоже и складывать с погрешностью генератора PIC. В итоге ситуация нерадостная оказывается.
|
|
|
|
|
Oct 20 2011, 12:49
|
Частый гость
 
Группа: Участник
Сообщений: 134
Регистрация: 12-08-11
Пользователь №: 66 701

|
Цитата(CADiLO @ Oct 20 2011, 14:25)  >>>1 руб на кондеры + 25 руб кварц (у меня они вообще стоят 35 руб.)
Кондеры нужны для керамических резонаторов или "советских" кварцев, при высокодобротном кварце они даже вредны для PIC. Это где Вы такие кварцы по доллару нашли - GEYER что ли или JAUCH с их бахнутыми ценами ???? Или это керамика с золочеными ножками ? У нас прекрасные кварцы тайваньского SJK HC49S по 0.15 в розницу. Семь лет их возим, ни одной претензии. Для макета можно и потратиться, а вот для массового производства прийдется подумать о поставщиках с другими ценами.
Это раз. Если заеду в одну из местных контор - сфоткаю ценник с кварцем - вышлю ;-) Цитата(CADiLO @ Oct 20 2011, 14:25)  Техническая сторона. Не гарантирую что модуль будет стабильно общаться при таком решении. Причина озвучена выше.
Это два. Это единственное что по теме хотелось бы услышать - что с внутренними генераторами работать будет нестабильно на основании массового опыта. Все. Рассуждения об экономике меня вообще не касаются. Цитата(CADiLO @ Oct 20 2011, 14:25)  А из технической стороны выплывает и экономическая - если ваша продукция начнет сбоить, то переделка обойдется гораздо дороже чем >>>6 руб.(разница между пиками) + 1 руб на кондеры + 25 руб кварц (у меня они вообще стоят 35 руб.) = 32 руб. тобишь еще один PIC16F1824-I/SL
Это три. Абсолютно также можно сказать и обратное что если все будет работать то будет и экономия. Вообще флуд какой-то. Меня это не интересовало. Я задал в старте - простой вопрос - какая погрешность допустима по SIM900. Судя по ответам такого параметра нет. Раз нет так и вывод один - ставить внешний кварц, чтоб избежать геммороя. ВСЕ... Я никого не просил учить меня экономике - она меня тут не интересовала. Косвенно в ветке отвечено, что на практике PICи с внутренним генератором для USART-обмена с SIM900 (в частном случае) использовать крайне не желательно. Мне этого более чем достаточно. Цитата(butthead2 @ Oct 20 2011, 15:09)  Эксперимент покажет что все работает- неработает на ДАННОМ ЭКЗЕМПЛЯРЕ контроллера. Для правильного эксперимента нужно сделать не так. Нужно взять контроллер, вывести на ножку частоту и контролировать ее частотомером - для контроля текущей частоты. Через уарт общатся с модулем. И напрмер по нажатию кнопки менять на некоторый шаг тактовую частоту контроллера. И в обе стороны по частотомеру определить при каком отклонении обмен начниает сбоить. Кстати, да. в этой серии есть такое - программное изменение частоты на лету. Хм.... надо будет поэкспериментировать.
|
|
|
|
|
Oct 20 2011, 16:51
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(CADiLO @ Oct 20 2011, 13:02)  Ну или хотя бы в даташит загляните ... 5.2.1.3 Oscillator Start-up Timer (OST) If the oscillator module is configured for LP, XT or HS modes, the Oscillator Start-up Timer (OST) counts 1024 oscillations from OSC1. Это уже когда генератор заработал и уровень сигнала достиг порога. С этого момента - еще 1024 такта. А полное время - существенно больше. Поэтому в батарейных приложениях бывают сложности. Цитата(CADiLO @ Oct 20 2011, 14:25)  >>>1 руб на кондеры + 25 руб кварц (у меня они вообще стоят 35 руб.)
Кондеры нужны для керамических резонаторов или "советских" кварцев, при высокодобротном кварце они даже вредны для PIC. И опять же неправда. Если у генератора нет встроенных конденсаторов, то внешние - необходимы. Согласно даташиту. Цитата(CADiLO @ Oct 20 2011, 14:44)  Давайте посмотрим - 4 000 000 для получения 9600 нужно поделить даже не на целое число, а на 416.6666666 То есть уже имеем погрешность. Вы, наверное, удивитесь, но у PC-шных COM-портов тоже вовсе не точные значения...
|
|
|
|
|
Oct 20 2011, 17:11
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470

|
Цитата(rx3apf @ Oct 20 2011, 19:51)  Вы, наверное, удивитесь, но у PC-шных COM-портов тоже вовсе не точные значения... Честно говоря очень удивлюсь. В стандартном контроллере rs232 ( интел как его там, запамятовал ) стоял кварц 1,8432МГц. Откуда взяться неточным значениям? Хотя могли уже давно все извратить...
|
|
|
|
|
Oct 20 2011, 17:34
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470

|
Цитата(rx3apf @ Oct 20 2011, 20:17)  Так то ж в стандартном...Теперь обычно 24 MHz/13. Погрешность незначительна, но тем не менее. Подозреваю, что и у модуля тоже опорник вовсе не кратный... Дык и нецелые коэффициенты деления никто не отменял. А с ними можно загнать погрешность в такие исчезающе малые проценты, что на фоне фронтов физического сигнала никто и не догадается. Да и смысла добиватся менее 0,1% нету - работать и так будет всегда.
|
|
|
|
|
Oct 20 2011, 18:21
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Старт-бит, 8 инфобит, стоп-бит. Синхронизация приемника проводится в начале каждого байта по началу старт-бита. Выборка, будем считать, проводится в средине предполагаемого инфобита. Будет сбоить, если в конце байта выборка будет произведена или в предыдущем бите, или в стоповом. Итого: за время передачи 9 бит ошибка не должна превышать полбита (абсолютный максимум !). Итого плюс-минус 5% - критическое значение.
И еще (из практики) - в виду особенности UART PIC, при использовании неточных (целых) кварцев, лучше сделать скорость передачи БОЛЬШЕ рассчетной, чем меньше. Иначе UART PIC дает сбои приема в первую очередь (более чувствителен, чем UART модулей SIMCOM).
Сообщение отредактировал GeGeL - Oct 20 2011, 18:29
|
|
|
|
|
Oct 20 2011, 18:26
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Ildar Belkin @ Oct 20 2011, 22:07)  тогда опять вопрос - 0,1% погрешности - это нормально и работать будет. А сколько уже не будет? 0,2% - уже не будет. Мне просто интересно - обычно на практике сколько допустимо отклонение. Например, 1% - это много? Только проверять. Типично UART свободно переваривает отклонение на пару процентов (все должно работать, даже если с обоих сторон уйдет на два процента в разные стороны). Но про модули от SIMCOM рассказывают какие-то страсти-мордасти, мне лично кажущиеся сомнительными. Однако, есть такая неприятная вещь, как автодетект скорости, который и при точном (почти) совпадении скоростей не очень-то стабильно работает. И нисколько не удивлюсь, если при более-менее существенном отклонении возникнут проблемы. По-хорошему, надо зафиксировать скорость (+IPR=), и потом проверять надежность при отклонении скорости передатчика. Ну, и то же самое с включенным автодетектом, чтобы знать наверняка, кто виноват и что делать. Ну, это кому нужно, пусть и делает...
Сообщение отредактировал rx3apf - Oct 20 2011, 18:28
|
|
|
|
|
Oct 20 2011, 18:52
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Цитата(rx3apf @ Oct 20 2011, 22:26)  Но про модули от SIMCOM рассказывают какие-то страсти-мордасти Я с этим лично столкнулся на sim900. На 115200 не хотел слушать в режиме по умолчанию, пока не дал чуть ЗАНИЖЕННУЮ скорость с PIC. А автодетект там вобще какой-то странный, не так совсем, как в сим300. Было принято решение на старте пика каждый раз давать AT+IPR=57600 (чтобы "чистый" модуль фиксировать на эту скорость) наскорости чуть НИЖЕ 115200, а затем переключать UART PIC на скорость чуть ВЫШЕ 57600, и далее все шло ОК. Извраты...
Сообщение отредактировал GeGeL - Oct 20 2011, 18:56
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|