n.bresh
Jun 1 2013, 21:15
пользуюсь MicroC Pro 5.61
шлю "AT+IPR=9600" но в терминале вижу что пик отправляет "AT+APR=9600" то есть I заменяется на А че за лажа
попробовал отправить следующую после I букву "AT+JPR=9600" - в терминале вижу "AT+BPR=9600"
шлю "at+ipr=9600" - пик шлет "aT+Apr=9600"
шлю "AT+IPR?" - все в норме, пик шлет "AT+IPR?"
vassabi
Jun 1 2013, 21:55
Какая расчетная ошибка бодрейта у вас получилась?
n.bresh
Jun 1 2013, 22:06
[quote name='vassabi' date='Jun 1 2013, 23:55' post='1166808']
Какая расчетная ошибка бодрейта у вас получилась?
Generated baud rate is 9615 bps (error = 0.16 percent)
vassabi
Jun 1 2013, 22:25
Скорость пробовали менять? Что-то меняется?
А в терминалке вы видите именно то что шлет пик или это уже эхо модуля?
n.bresh
Jun 2 2013, 09:05
в терминале могу видеть и то что шлю и то что отвечает модуль
соответственно на "AT+APR=9600" приходит ответ "AT+APR=9600 ERROR"
переключение скорости на "AT+IPR=19200" не дало никаких изменений
попробовал отсылать не строку а отдельно каждый символ в ASCII функцией UART1Write(0x22) (для ковычек)
контроллер шлет все корректно
vassabi
Jun 2 2013, 10:00
Функции UARTa ваши или библиотечные?
Код
void _UART1_Send_String(const char *string){
while(*string)
{
U1TXREG = *string++;
while(!U1STAbits.TRMT);
}
}
Falkon_99
Jun 2 2013, 10:08
а как с другими командами???
например
AT+CLIP=1
n.bresh
Jun 2 2013, 11:13
до других команд еще и не дошел
первой после Uart1_init(9600) шлю Uart1_Write_Text("AAAAAAAAAAAAAAAAAAAAA") для настройки автоопределения скорости
и потом после паузы сбрасываю флаг прерывания RCIF разрешаю .GIE и шлю Uart1_Write_Text("AT+IPR=9600")
ArtemKAD
Jun 2 2013, 14:39
Тактовая с кварцем или на RC-генераторе?
n.bresh
Jun 2 2013, 15:25
стоит кварц 8 МГц
Цитата(n.bresh @ Jun 2 2013, 18:25)

стоит кварц 8 МГц
Процессор какой ?
Используется фифо уарта, или нет ??
Falkon_99
Jun 2 2013, 17:47
попробуете другой кварц например на 7.3728 MHz. тогда error будет равна 0
ArtemKAD
Jun 2 2013, 18:01
Возможные варианты - вместо кварца выбран RC-генератор, неправильно посчитан делитель скорости, неправильно выбрано число стоп-бит, чем-то затягиваются фронты при передаче, ошибка в программе.
vassabi
Jun 2 2013, 18:02
Цитата(Falkon_99)
попробуете другой кварц например на 7.3728 MHz.
Я работал с ошибкой и 1,5% на скорости 115200 проблем небыло, думаю это не в кварце дело.
Цитата(SergOv)
Используется фифо уарта, или нет ??
Мне кажется, что дело не в фифо, т.к. при OERR прием блокируется до сброса флага, к томуже при глюках с фифо теряется обычно 5-ый символ...
Не понятно какой модуль у ТСа, например у sim900 при автободрейте после первого AT нужно выждать паузу 3 сек (по памяти).
ArtemKAD
Jun 2 2013, 18:07
Цитата
Не понятно какой модуль у ТСа, например у sim900 при автободрейте после первого AT нужно выждать паузу 3 сек (по памяти).
У него одну и ту же ошибку видит и терминал и модуль.
n.bresh
Jun 2 2013, 18:22
ребят чой то какая то фигня
мож я меня problem with крякнутой microC Pro 5.61 ? и PIC18F25K20
до этого работал с проектом на PIC16F1826 все было в норме, и UART и все прочее
вообще то конечно красота отправлять "AT+IPR=9600" и видеть в Hterm отправленный "AT+APR=9600"
супер - фокус
строю проект на SIM900 и PIC18F25K20 и тут же на первой команде такой косяк
Falkon_99
Jun 2 2013, 18:28
если с кварцем и скоростью все в норме, то проблема в СИшной функции, в программе.
Попробуйте тупо в уарт кидать байты с задержкой, типа:
while(1)
{
UDR="A";
delay();
UDR="T";
delay();
UDR="+";
delay();
UDR="I";
delay();
UDR="P";
delay();
UDR="R";
delay();
}
и тд
n.bresh
Jun 2 2013, 18:36
так я ж писал что отправляя все знаки по очереди в ввиде ASCII кодов функцией Uart1_Write(0x22) ( 0x22 для кавычек)
я получаю в терминале корректно "AT+IPR=9600"
vassabi
Jun 2 2013, 18:42
Цитата(n.bresh)
так я ж писал что отправляя все знаки по очереди в ввиде ASCII кодов ....
Возможно проблема с библиотечной функцией, я вам выше привел код, попробуйте.
n.bresh
Jun 2 2013, 18:53
PIR1.RCIF = 0;
INTCON.GIE = 1;
UART1_Write(0x41);
UART1_Write(0x54);
UART1_Write(0x2B);
UART1_Write(0x49);
UART1_Write(0x50); I
UART1_Write(0x52);
UART1_Write(0x3d);
UART1_Write(0x39);
UART1_Write(0x36);
UART1_Write(0x30);
UART1_Write(0x30);
// UART1_Write_Text("AT+IPR=9600");
вверху рабочий код , внизу закоментированный нерабочий
проблема в том что я не знаю насколько правильно в этом случае будет
if ( PIR1.RCIF == 1) Uart1_Read_text( antwort, "OK", 50)
у меня не определяется
хотя я вижу что модуль отвечает "OK"
Цитата(n.bresh @ Jun 2 2013, 21:22)

супер - фокус
строю проект на SIM900 и PIC18F25K20 и тут же на первой команде такой косяк
А скомпиленный код в ассемблерных командах посмотреть не ??
Кстати, при чем тут SimCom ?
)))
alexdos
Jun 2 2013, 20:04
Цитата(n.bresh @ Jun 2 2013, 21:53)

if ( PIR1.RCIF == 1) Uart1_Read_text( antwort, "OK", 50)
у меня не определяется
хотя я вижу что модуль отвечает "OK"
Как говорится, а видите ли Вы все что видите. Вы щас суслика видите?, уверен что не видите, а он есть. Так и с "OK", у Вас получается. Видите Вы OK а на самом деле там \r\nOK\r\n
vassabi
Jun 2 2013, 20:21
Цитата
строю проект на SIM900....
Стоп! Раньше вы не упоминали, что модуль sim900.
Тогда вопрос - вывообще доку на него открывали?
Для инициализации в режиме автободрейт слать нужно не ААААА.... (или что там вы шлете), а выдержать тамаут 3-5 секунд после подачи питания, затем послать исключительно АТ (с учетом регистра), и только потом слать ему команды!
n.bresh
Jun 3 2013, 01:47
все правильно в терминалке я вижу \r\nOK\r\n
но до интерпретации ответов мне еще далеко
вопрос то в том что при отсутствии соединения между контроллером и модулем контроллер в порт отдает совсем не то что ему передано
функцией
alexdos
Jun 3 2013, 05:26
Цитата(n.bresh @ Jun 3 2013, 04:47)

вопрос то в том что при отсутствии соединения между контроллером и модулем контроллер в порт отдает совсем не то что ему передано
функцией
Если без модуля видите всякую чуш, а с подключеным модулем нормально, то на моё мнение нужно смотреть железо, через которое Вы смотрите. Согласование уровней сигналов, длину проводов.
vassabi
Jun 3 2013, 05:32
n.bresh, что все таки говорит скомпилированный асм?
n.bresh
Jun 19 2013, 19:06
всем спасибо
проблему решил теперь появилась новая
отправляю в программном коде звонок на номер в формате ATD+49XXXXXXXX;
все проходит нормально
вариант 2 :
в симке прописываю тот же номер с именем Alarm
в модуль PICом отсылаю:
AT+CPBS="SM"
ATD>"Alarm";
не хочет работать
перебор вариантов "FD" "ME" "LD" и прочее не помогает. Переключение AT+CSCS=GSM и IRA тоже не помогает.
че делаю то неправильно?
n.bresh
Jun 20 2013, 16:24
ни у кого нет идей?
ssokol
Jun 20 2013, 18:49
Цитата(n.bresh @ Jun 20 2013, 20:24)

ни у кого нет идей?
По-моему это было реализовано только в последних версиях ветки JD_DTMF_MMS... может обновиться до последней.
n.bresh
Jun 20 2013, 18:59
вроде бы все стандартно описано в AT Commands SIM900
2.2.5 ATD><str> Originate Call to Phone Number in Memory Which Corresponds to Field
<str>
SergOv
Jun 20 2013, 19:30
Цитата(n.bresh @ Jun 20 2013, 19:24)

ни у кого нет идей?
Какие идеи ?
Оно так и сказало, дескать, работать не хочу ??
Цитата(SergOv @ Jun 21 2013, 02:30)

Какие идеи ?
Оно так и сказало, дескать, работать не хочу ??
Ну конечно же нет. Это же не Российский модуль, он сказал:
+CME ERROR: "I don't want to work"\r\n
CADiLO
Jun 21 2013, 05:28
И еще неплохо бы указать с какой версией прошивки модуль.
n.bresh
Jun 21 2013, 14:35
S2-1040S-Z091U
FCC ID: UDV-0912142009007
n.bresh
Jun 22 2013, 18:12
ну хорошо хрен с ним с ATD"Alarm";
как сообщить модулю с каким номером телефона он должен общаться?
только через AT+CAUTORUN=1,"номер телефона" ?
CADiLO
Jun 23 2013, 18:39
S2-1040S-Z091U = 1137B09SIM900M64_ST
Обычная европрошивка, там AT+CAUTORUN и остальных расширенных команд нет, не было и не будет.
Ну и достаточно древняя - последняя европейская уже 12 версии.
Обновляйтесь до xUSSR версии прошивок
1137B09SIM900M64_ST_DTMF_JD_MMS или 1137B01SIM900M64_ST_ENHANCE
n.bresh
Jun 23 2013, 18:56
спасибо за ответ
но может есть какой способ заставить модуль работать с заранее запрограммированным на симке номером?
ArtemKAD
Jun 23 2013, 22:16
Да в чем проблема? Найдите абонента по имени, вытащите из него номер и воспользуйтесь обычным ATD.
ЗЫ. Кстати, надеюсь Вы дожидаетесь активации карты...
n.bresh
Jun 25 2013, 08:49
всем спасибо
проблемка решена
оказалось при записи номера телефона на симку
в конце имени телефон добавляет еще и индекс
то есть я писал имя "Alarm" а фактически имя было "Alarm/1"
сейчас ATD>"Alarm/1" нормально отрабатывает
n.bresh
Aug 7 2013, 07:48
есть ли возможность получить актуальную или названные Вами прошивки на n.bresh <собака> web.de ?
Возможность конечно есть - емейлом запрос своему дистрибьютору.
n.bresh
Aug 7 2013, 08:11
брал я модули на TME и мой вопрос по новой прошивке загнал их в тупик
отсылают меня напрямую в SIMCOM
Цитата(n.bresh @ Aug 7 2013, 12:11)

брал я модули на TME и мой вопрос по новой прошивке загнал их в тупик
отсылают меня напрямую в SIMCOM
А ТМЕ оф. дистрибьютор?
http://wm.sim.com/en/marketen.aspx
n.bresh
Aug 7 2013, 08:58
ребята, я живу в Германии ( как выразился по моему GADILO в "гевропействе") и дистрррибутор EBV конечно же напрягает покупать модули у них
конечно же все дороже и прошивку с именем xUSSR мне ну ни как здесь не поймать
поэтому и вопрос на форуме
если возможность есть - помогите, если же нет - ну буду иметь дальше то что имею
заранее всем спасибо
Есть в Эстонии официал который возит модули с xUSSR прошивками
http://www.vis-plus.ee/?leng=rus&m=1Запросите у них.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.