Включаю две тестовые платы на SIM5300E (Revision:1551B02SIM5300E)
Задача была быстренько перекинуть код с SIM900 на SIM5300E. Но не тут-то было.
1. Сначала напоролся на то, что заказчик попросил поставить на POWERKEY полевик вместо биполяра (у него их куча на складе).
С полевиком модуль самопроизвольно включался после подачи питания.
Полевик IRLML2502 c Drain-to-Source Leakage Current < 1 mkA @ VDS = 16V, VGS = 0V, T = 25'C
Почему это происходило, так и не понял. Закорачивание затвора на землю ничего не меняло.
Замена на биполяр BC847 проблему решила, хотя напряжение на POWERKEY и в случае с полевиком, и в случае с биполяром выглядело одинаково.
Зачем разработчики при напряжении на подтяжке 1.8В сделали ее 200кОм (9 мкА !) и снизили время включения до 100 мс для меня загадка.
(в SIM900 было 2.8В и 100кОм при 1 секунде).
Сейчас модуль включается от любой помехи (становлюсь на POWERKEY щупом скопа с Rвх=1МОм и касаюсь пинцетом - пачка помех 10-20 мс).
2. Преобразователь уровней. Поставил TXB0108 от Техас с автоматической двунаправленной передачей. Выглядит один-в-один как в даташите на модуль. Были определенные сомнения, так как преобразователь довольно специфичный, но поскольку в даташите больше никаких рекомендаций не было, думал что это оно самое и есть.
Оказалось, что SIM5300 имеет внутренние подтяжки на входах RXD и RTS, около 10-15кОм что приводит к уровням нуля 0.5В. Работает, но ни по каким спецификациям не пролазит. Еще эти подтяжки динамические: видимо есть наружные + включаются внутри чипсета, уровни иногда меняются.
Почему в SIM5300E_Hardware_Design отсутствует информация о величине подтяжек внутри модуля?
Где информация о нагрузочной способности выходов? Где прямое предостережение не применять такого типа преобразователи уровня?
3. Самый большой сюрприз ожидал в программной части. Долго не мог понять почему модуль отказывается выдавать RDY и т.д. пока ему не подашь на вход любую команду. Грешил на преобразователь уровней, на RTS, потратил кучу времени, пока не обнаружил спрятанную в даташите главку при описании команды AT+IPR о том, что после включения питания модуль ВСЕГДА работает в режиме auto-bauding и переключение на конкретную скорость НЕ СОХРАНЯЕТСЯ во флеш.
А дальше - больше. Стал читать описание команд и обнаружил полное отсутствие сохранения чего-бы-то-ни-было во флеш.
Команда AT&W отсутствует (хотя и отвечается ОК).
Команда AT&V в описании присутствует, но выдает ERROR.
Для проверки попробовал AT+CIURC (Enable or disable initial URC presentation). Команда есть в описании.
И даже работает! Пока не выключишь питание модуля. Она ничего не сохраняет Такая циничная команда.
После включения Call Ready появляется при любом раскладе.
Так что в этой прошивке сохранение во флеш отсутствует как класс и при включении модуля ВСЕГДА нужно сначала подать AT
После чего модуль ВСЕГДА вывалит тебе что у него уже есть в выходном буфере:
RDY +CFUN:1 +CPIN: NOT INSERTED AT OK
АТ это потому, что после подачи питания эхо ВСЕГДА включено, а ОК это ответ на изначальную команду АТ
Весело, не находите?
Такой вот длинный опус получился, наболело. Занимаюсь этим вечерами, уже целую неделю на это убил, и ни на шаг не продвинулся кроме бесполезного "экспириенса".
Вопросы:
1. Может мне кто-нибудь объяснить почему модуль сам включается при полевике на POWERKEY ?
2. Можно ли применять преобразователь уровня с автоматической двунаправленной передачей другого типа, а именно с динамическими включаемыми подтяжками в 10 кОм типа TXS0108 или там могут быть другие подводные камни и нужно применять только честные однонаправленные преобразователи уровня типа 74AVC4T245 ?
3. Будет ли в новых прошивках SIM5300 доделано сохранение параметров во флеш или нет ???
Т.е. прошивка В02 это выставочная вещь сляпанная на скорую руку или принципиально менять ничего не будут и на эту концепцию нужно ориентироваться ???
Как-то, программу писать нужно , а непонятно как. Переделывать всю конфигурацию модуля, сносно работавшую на SIM300, SIM900 и SIM800 никакого желания нет...