Смотрю документ:
http://microchip.ua/simcom/SIM900x/AppNotes/SIM900_Serial Port_Application Note_V1.03.pdf
На странице 11 указано, что мол следующие (там список) URC сообщения вызывают импульс на выводе RI. А другие что, не вызывают?
Ниже указано, что RI можно использовать как прерывание для микроконтроллера. Это может быть интересно только в случае, когда микроконтроллер останавливает тактовый генератор и засыпает (ввиду чего неспособен принять, без прерывания, данные из UART). Но тут сразу же вопрос: тогда вообще хотелось бы:
1) чтобы любое сообщение (а не из списка) вызывало импульс на RI;
2) от начала импульса до передачи данных в UART была бы пауза в ~несколько десятков мкс для
включения генератора (внутреннего) или даже в пару мс (внешний резонатор).
Ни про 1, ни про 2 из документации ничего непонятно. Я был бы рад, если кто-то пояснил, как оно на практике.
На скорости 19600 бит/сек бит передаётся за 51мкс. Внутренний (FRC) генератор в микроконтроллере, например, включается за ~30мкс (или 5мкс, вспоминая недавнюю тему 32 vs 8 bit -- армы не так уж и плохи). Возможно принять искажённым первый символ (0x0D, 0x0A...) и принять остальное, если межсимвольный интервал -- 2 стоп бита. Или даже 1 стоп бит, но при более низкой скорости, 9600 и ниже. Это рассуждения на тему, что если прерывание возникает непосредственно от вывода TX SIM900.
Почему это интересно. Потребление микроконтроллера с внешним кварцевым резонатором (от единиц МГц, не 32768Гц), при работающем генераторе, сопоставимо с потреблением SIM900(

(в режиме "сна").