Здравствуйте. В презентацию сказано
RTS: request to send, input, pull down inside, SIM300's default mode is hardware follow control, no need it. You can use RTS for large data transferring or receiving. If RTS is Low, MCU can send data to SIM300's buffer, about 10kbytes, If RTS is High, not suggest to send data to SIM300, maybe these data will be lost.
CTS: clear to send, output, default is Low. Low, means there is some space for SIM300's buffer for sending data. High, not suggest to send data to this buffer, as RTS above.
Вопрос следующий. Передача данных по последовательному порту с использованием RTS и CTS в настоящее время организуется как правило двумя способами. 1) Согласно стандарта RS-232C . Контроллер запрашивает у модема может ли модем принять от него даны для чего контроллер выставляет сигнал RTS. Если модем готов, он отвечает устанавливая в активный уровень сигнал CTS. 2) Начиная со стандарта RS-232E стала применяться другая схема. Сигнал RTS стал использоваться НЕ как классический запрос на передачу (Request To Send), а как сигнал, который дает разрешение модему пересылать данные в контроллер.
Если переводить то, что приведено в презентации семинара, то получается, что обмен идет по первому способу, т.е. согласно устаревшему RS-232C.
Хотелось бы ясности в этом вопросе. Очень тяжело когда переводишь с английского то, что написал на английском китаец.
Еще желательно знать размер буфера SIM300C, в который МК сыпет данные и размер буфера SIM300C, из которого модем сыпет в МК данные.
Еще вопрос Если обмен происходит по второму варианту, а именно МК выставляя сигнал RTS разрешает модему передавать в МК данные, то сколько байт модем передаст в МК после выставления синала RTS, Вопрос из-за того, что некоторые модемы siemens после получения сигнала RTS еще высыпают в МК из буфера остаток около 250 байт. SIM300C сразу прекратит слать или тоже высыпет?
Меня интересует именно SIM300C.
Второй вопрос, судя по частоте поднятия его на форуме наболевший
В презентации сказано
ПРЕДУПРЕЖДЕНИЕ ОТ ПРОИЗВОДИТЕЛЯ !
Модули создавались для устройств с батарейным питанием. При применении внешнего источника питания необходимо помнить о корректном отключении модуля при помощи вывода PWRKEY или команды AT+CPOWD=1. Снятие питания с вывода VBAT без корректного выключения модуля может привести к разрушению содержимого FLASH памяти.
Предусмотрите резервный аккумулятор для работы в случае пропадания основного питания и корректного отключения модуля.
Это просто не выдерживает критики. Все сотовые телефоны являются устройствами с батарейным питанием. К ним что вторую батарею подцеплять в качестве резервного источника? У многих из них наоборот рекомендуют отцеплять батарею, чтобы сбросить зависший телефон.
Дело здесь как мне кажется в другом. Начались проблемы после перехода на память STT. С памятью SPANSION этих проблем как я понял не было. А SST и SPANSION имеют основное отличие. У них обеих есть схема защиты от низкого питания, которая запрещает запись и стирание при низком напряжении питания. Так вот у SPANSION порог срабатывания этой защиты равен 2,5 вольта. А у SST этот порог всего 1,5 вольта. Напряжение при котором работает находящийся внутри модема процессор 1,8 вольта. Т.е. когда использовалась SPANSION, она отключалась еще то того, как в нее мог что-то нехорошее записать процессор.
Здесь же стало все наоборот. Процессор уже не может толком функционировать, из-за пониженного напряжения ( например 1,6 вольт при медленном падении питания), а память SST еще работоспособна. Вот он и пишет в нее всякую еренду.
Дело здесь в другом.
В статье Укрощение модулей Simcom или три орешка для разработчиков, казано следующее. Даже уровня логического 0 достаточно чтобы через защитные диоды запитать часть чипсета и заставить модуль жить своей, непредсказуемой жизнью.
Вот где собака порылась. Не должен модуль жить непредсказуемой жизнью. Для этого есть супервизоры питания (стоят копейки), которые вообще должны блокировать работу модуля. Именно для этого и чип SPANSION и SST имеют вывод RST, который по идее подключаться к системному сбросу. SPANSION напрямую рекомендует делать так.
Был бы супервизор питания не было бы проблем ни с паразитной подпиткой ни с пропаданием питания. Хорошо пусть копейки, но что-то супервизор стоит. А вот вывод сигнала сброса на разъем не стоит практически ничего. Но этого не делается. И делаться не будет, т.к. сомневаюсь, чтобы китайские разработчики делали бы эти ответы насчет побайтной и постраничной записи во flash, если бы действительно собирались это делать.
Там подход другой. Фирма изготовитель SST указывает в datasheet разделе Absolute maximum stress rating. Что flash работает до минус 20 градусов. Тогда ни о какой работе модуля при более низких температурах не может быть и речи, т.е. вполне вероятно будут попадаться модули, у которых по причине низких температур будут отказы flash чипов, например, в виде стирания блоков памяти. На форуме видел, что китайцы ответили, что они каждый модуль стали тестировать на низкие температуры. Как бывший работник контрольно испытательного цеха по испытанию flash памяти, я глубоко сомневаюсь в этом. Просто я знаю, что это за оборудование и чего стоят эти испытания. Подозреваю, что испытания модуля будут стоить еще дороже. Испытания зачатую стоят дороже изготовления чипа. Посмотрите на цены чипов коммерческого и военного диапазонов и тоже станете сомневаться.
Еще про слет прошивки. Если память находится в рабочем режиме, а МК уже сбаивает, то время от времени он будет записывать в память что попало или стирать блоки. И это относиться не только к flash. У меня это происходило с DS1996 (это ОЗУ с батарейкой последовательным интерфейсом 1-wire)/ МК у меня запитывался отсвоей батареи а ОЗУ от своей. Так вот пир просадке батареи, которой запитывался МК, он портил информацию в ОЗУ, т.е. писал что попало куда попало. Поставил супервизор питании – все встало на место.
Еще можно понизить вероятность слета прошивок из-за отключения питания, если самим ставить этот супервизор и быстро в момент просадки разряжать им через мощный транзистор емкость, которая стоит на линиях питания. В даташите SIM300C эту емкость рекомендуют 100мкф. Тогда процессору модуля будет оставаться меньше времени, чтобы что-то испортить. Разумеется транзистор надо ставить перед, а не между конденсатором и модулем. Но этим можно только снизить вероятность слета флеши, но не победить окончательно проблему.
Прошу кого-нибудь ответить на вопросы про RST, о чем я написал в начале.
Все это по материалам форума и семинару. И огромное спасибо CADiLO. В многом я разобрался с работой модуля благодаря его постам. Очень толковые ответы, которые он пишет от себя. Ну а что ему говорят китайцы – это на их совести.
|