|
Темп выдачи команд в SIM900, обмен затыкается |
|
|
|
Sep 5 2012, 10:58
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Наблюдается странное поведение, когда обмен между SIM900 и микроконтроллером встает. В процессе разбирательств сделали такой трюк, с помощью диодов и одного pull-uр резистора объединили RX и TX по И и вывели на RX-овый вход USB-UART мостика (CP2103). И тоге имеем в гипертерминале протокол обмена модуля и контроллера. Поскольку в основном обмен полудуплексный то все достаточно наглядно. Этим методом изучали, где затыкается.
Так вот, обнаружили что: 1) Затыкается не в определенном конкретно месте, а блуждает по разным командам. 2) С очень высокой вероятностью на сбойной команде видно мусор в терминале, что говорит об одновременной активности RX и TX. Но иногда мусора нет. 3) Остановка обмена выглядит так, мы туда что-то послали (например, AT+CPIN=0000), а в ответ тишина, ну то есть вообще ничего, ни OK, ни ERROR.
Из фактов пока все.
Пока что решили увеличить задержки между командами. И теперь все работает вроде, хотя и медленно.
Но ведь раньше их тоже не то чтобы слали без разбору. Ждали OK или таймаут. А оно все равно умирает. Ну была гипотеза, что нельзя до прихода OK начинать слать следующую команду, и при неправильном таймауте оно может не дожидаться ОК, и слать следующую команду. Но тогда странно другое: 1) Ну и что такого, что команда идет до OK, она же в буфер идет? И будет обработана второй. 2) Мы видели зависание команд, которые в логе вполне чистые, то есть нет наложений на предыдущий ОК. 3) Допустим, что при приеме команды и до выдачи ОК модуль вообще RX выключает. Допустим, что он пропустит начало следующей команды и примет только конец, тогда он должен выдать ERROR. Но вот ERROR мы никогда не видели от него. Получается, что мы как-бы вообще всю команду послали в закрытый RX ему. Странно.
Да, эхо у нас выключено, и падать начинает сильно после его выключения.
|
|
|
|
|
 |
Ответов
|
Sep 5 2012, 12:56
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
>>>Кстати, а чего они до 3.3В то не дотянули? Довольно странно, что при рекомендованном питании в 4.1В ограничение по I/O ни то ни се.
4.1 вольта питается только усилитель мощности. Чипсет имеет питания - 0.9 -ядро и порты 2,8 или 1,8 вольта - переключается выводом чипсета VIO поэтому и такие требования к уровням. вопрос этот не к симкому, а к производителям чипсетов. Идеальный вариант - питать контроллер ровно 3.0 вольта.
>>>нормально работал с внешней отладкой на 115200. А на микрооконтроллере не завелся. Стали разбираться и выяснили, что обмен встает.
Думаю что ошибка явно связана или с построением интерфейса или гуляет скорость контроллера.
>>>А что такое "фантомное питание" модуля?
Наличие любых уровней на цифровых входах модуля когда на него подано питание VBAT, но сам модуль еще не включен выводом поверкей. Ну и соответственно при выключении - сняли уровни - выключили модуль. Если об этом не позаботиться, то модуль будет жить своей жизнью....
Кстати проверьте чтобы поверкей был через реальный ключ с ОК, а не на ножку контроллера - это тоже иногда к интересным глюкам приводит
Если есть желание можете скинуть кусок схемы - модуль+контроллер - посмотрим на предмет правильности.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Sep 5 2012, 14:50
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Цитата(CADiLO @ Sep 5 2012, 16:56)  >>>Кстати, а чего они до 3.3В то не дотянули? Довольно странно, что при рекомендованном питании в 4.1В ограничение по I/O ни то ни се.
4.1 вольта питается только усилитель мощности. Чипсет имеет питания - 0.9 -ядро и порты 2,8 или 1,8 вольта - переключается выводом чипсета VIO поэтому и такие требования к уровням. вопрос этот не к симкому, а к производителям чипсетов. Идеальный вариант - питать контроллер ровно 3.0 вольта. Ну в итоге так и сделали, но у нас там от этого питания еще например NAND Flash питается, хотя она вроде как от 2.7В до 3.6. Микроконтроллер от 1.8 до 3.6. Вообще, конечно, это грабли с надписью "не наступать". 3.3В - довольно распространенное питание I/O. Во всяком случае, можно было бы и сделать уровни терпимыми хотя бы до 3.6В, раз уж все равно на модуле есть питание 4.1В. Обычно затвор входного транзистора держит чуть больше, но защитный диод цепляют к питанию, и горит то в первую очередь именно он а не транзистор. У меня тут была эпопея в другом проекте с LTM2881б у них тоже есть один сигнал ON, который включает модуль, и который диодом зацеплен на питание логики. Причем там питание логики можно сделать и 3 и 5В, но в процессе модификаций мы перекинули питание с 5 на 3.3, а этот вход ON остался на 5В. В итоге получилась довольно интересная статистика. Примерно 30% схем не стали работать, причем разделились пополам: половина не работала по-тихому, а другая страшно грелась. Я по этому поводу сделал такие выводы: в 70% случаев диод разрушился по-тихому и не повредил транзистор. В15% случаев диод оказался хорошим, а его контакты плохими, и все это греется. Еще в 15% случаев диод разрушился и прожег дорожку от вывода к затвору входного транзистора. В итоге внутренний нижний защитный диод держит вход у нуля и схема тихо не включается. Думаю, и здесь что-то похожее будет. Цитата(CADiLO @ Sep 5 2012, 16:56)  >>>Думаю что ошибка явно связана или с построением интерфейса или гуляет скорость контроллера. Сейчас пока решили дальше идти, писать основной функционал, потом еще раз вернемся, откатим задержки до минимума. Скорость контроллера у нас определяется кварцем с 10 ppm вообще-то, не гуляет она. Погрешность там около 0.7% максимум. Завтра проверю еще дополнительно осциллографом. Цитата(CADiLO @ Sep 5 2012, 16:56)  Наличие любых уровней на цифровых входах модуля когда на него подано питание VBAT, но сам модуль еще не включен выводом поверкей. Ну и соответственно при выключении - сняли уровни - выключили модуль. Если об этом не позаботиться, то модуль будет жить своей жизнью.... Ну мы вроде же при старте ему еще ресет подаем честный, всякая жизнь должна заново начинаться. Цитата(CADiLO @ Sep 5 2012, 16:56)  Кстати проверьте чтобы поверкей был через реальный ключ с ОК, а не на ножку контроллера - это тоже иногда к интересным глюкам приводит Да, здесь честно стоят два полевика 2N7002.
Сообщение отредактировал Hoodwin - Sep 5 2012, 15:06
|
|
|
|
|
Sep 5 2012, 21:54
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(Hoodwin @ Sep 5 2012, 18:50)  Скорость контроллера у нас определяется кварцем с 10 ppm вообще-то, не гуляет она. Погрешность там около 0.7% максимум. Завтра проверю еще дополнительно осциллографом. Одной стабильности мало. В идеале, когда кварц кратен частоте порта UART. Тогда погрешность установки скорости обмена делителем может стать 0%. В противном случае, кроме погрешности изготовления 0.7%, добавляется систематическая погрешность. Кварц какого номинала вы используете? Цитата(Hoodwin @ Sep 5 2012, 18:50)  Да, здесь честно стоят два полевика 2N7002. Как два? Как же вы их включили?
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
Сообщений в этой теме
Hoodwin Темп выдачи команд в SIM900 Sep 5 2012, 10:58 CADiLO Самый первый вопрос - скорость стоит в автоопредел... Sep 5 2012, 11:07 Hoodwin 1) Модули не перепрограммировали по части режима с... Sep 5 2012, 11:24 CADiLO 1. Поставьте фиксированую скорость - на автоопреде... Sep 5 2012, 11:29 Hoodwin 1) Ну, а какая связь бодовой скорости и этой пробл... Sep 5 2012, 11:46 CADiLO При автободинге остается небольшое дрожание скорос... Sep 5 2012, 12:18 Hoodwin >>> не обязательно, может быть проигнорир... Sep 5 2012, 12:46 Velund QUOTE (Hoodwin @ Sep 5 2012, 14:58) 1) Ну... Sep 6 2012, 05:21 CADiLO >>>>Скорость контроллера у нас определ... Sep 6 2012, 05:58 Hoodwin Master of Nature
По поводу кварца. Кварц у нас на ... Sep 6 2012, 09:07 CADiLO >>>В этом случае никакой "отче наш... Sep 6 2012, 09:47 Hoodwin 1) Ну, я про рекомендацию понял, это вполне можно ... Sep 6 2012, 10:22 ssokol Цитата(Hoodwin @ Sep 6 2012, 14:22) Относ... Sep 6 2012, 10:55 MKdemiurg Цитата(Hoodwin @ Sep 6 2012, 12:07) Остал... Sep 6 2012, 11:02 Hoodwin Так я же вроде бы написал, что мы ждем ответов и п... Sep 6 2012, 11:14 _Артём_ Цитата(Hoodwin @ Sep 6 2012, 14:14) 2) чт... Sep 6 2012, 11:20 Hoodwin Не, МК ничего такой, довольно живучий, даже без во... Sep 6 2012, 11:25 _Артём_ Цитата(Hoodwin @ Sep 6 2012, 14:25) Я име... Sep 6 2012, 12:32 MKdemiurg Цитата(Hoodwin @ Sep 6 2012, 14:14) Так я... Sep 6 2012, 11:26 Master of Nature Цитата(MKdemiurg @ Sep 6 2012, 15:26) Кст... Sep 6 2012, 11:43 CADiLO Если с автоопределения на фиксированую - то на лет... Sep 6 2012, 11:56 Hoodwin Не понял, зачем менять скорость?
Артем
Ну проблем... Sep 6 2012, 12:59 MKdemiurg Цитата(Hoodwin @ Sep 6 2012, 15:59) В общ... Sep 6 2012, 13:08 CADiLO >>>>Например, ждем OK, а пришло уведом... Sep 6 2012, 13:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|