реклама на сайте
подробности

 
 
> sim300dz. Проблема с приемом данных на мк, USART&sim300dz
Aleksey N.
сообщение Aug 27 2010, 07:09
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 27-08-10
Пользователь №: 59 132



С первой задачей, а именно взаимодействие sim300dz и RS232(комп), я отлично справился. Посылаю данные через терминал, модуль адекватно реагирует, отвечает и выполняет команды.
А вот с взаимодействием sim300dz и mega16 возникла проблема. Команды с контроллера успешно "доходят до жсм модуля" и выполняются (проверял, к примеру командой выключения AT+CPOWD=1 - модуль вырубается). Но на контроллер ответы приходят искаженные crying.gif .
Ответы с sim300dz вывожу на LCD на базе hd44780. Вместо "OK" выводится "cPU", а на команду "AT+CSMINS?" приходит ответ "PCMM", ну и т.д.
Причем это не наводки и не случайный мусор - ответы каждый раз одинаковые.
Совсем в ступоре, почему на комп приходят нормальные ответы, а на контроллер кракозябры. По первому впечатлению ошибка в программной части, но я ничего не смог исправить.

Очень надеюсь на вашу помощь.

Напряжение на max3232 - 2.8V, кондеры 0.1 мкф, подключение по даташиту.
Относительно mega16:
1) пробовал скорости обмена 9600, 115200 бод - ответы одинаковые и нечитаемые.
2) пробовал кварцы 4MHz и 7.3728Mhz - ответ на "AT" в первом случае был "b", во втором "cPU"
Фьюзы(avr studio): CKOPT установлен, SUT_CKSEL = "Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms"

Далее привожу часть проги:
CODE

#define USART_BAUDRATE 9600
#define BAUD_PRESCALE ((F_CPU/(USART_BAUDRATE * 16UL)) - 1)

int main (void)
{
cli();

lcd_init(LCD_DISP_ON);
lcd_puts("!LCD Test");
_delay_ms(1000);
lcd_clrscr();

UCSRB |= (1 << RXEN) | (1 << TXEN); // Turn on the transmission and reception circuitry
UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1); // Use 8-bit character sizes

UBRRL = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register
UBRRH = (BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register

UCSRB = ((1<<TXEN)|(1<<RXEN) | (1<<RXCIE)); // Enable receiver and transmitter and receive complete interrupt
sei(); // Enable the Global Interrupt Enable flag so that interrupts can be processed

USART_Transmit("AT\r\n");

lcd_puts("!z"); //debug message
_delay_ms(1000);

USART_Transmit("AT+CSMINS?\r\n");
lcd_puts("!z"); //debug message

for (;;) {}
}

ISR(USART_RXC_vect)
{
char ReceivedByte;
ReceivedByte = UDR; // Fetch the recieved byte value into the variable "ByteReceived"

lcd_putc(ReceivedByte);

/*if(ReceivedByte=='O'||ReceivedByte=='o')
lcd_puts("(o)");
if(ReceivedByte=='K'||ReceivedByte=='k')
lcd_puts("(k)"); - и это писал, т.к. даже в кодировке LCD засомневался*/
}


Сообщение отредактировал Aleksey N. - Aug 27 2010, 07:13
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovz
сообщение Aug 27 2010, 07:58
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079



1. "AT\r\n" - в командах отсылаемых модему \n не нужен
2. ответ "OK" от модема будет прислан как "\r\nOK\r\n". Это касается всех ответов за очень редким исключением.
3. успевает ли вывестись символ на экран, до того как будет получен новый(зависит от реализации lcd_putc() )? Это можно узнать проверив флаг переполнения буфера приема перед чтением очередного байта.

Сообщение отредактировал kovz - Aug 27 2010, 08:00
Go to the top of the page
 
+Quote Post
Aleksey N.
сообщение Aug 27 2010, 10:57
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 27-08-10
Пользователь №: 59 132



Цитата(kovz @ Aug 27 2010, 13:58) *
1. "AT\r\n" - в командах отсылаемых модему \n не нужен
2. ответ "OK" от модема будет прислан как "\r\nOK\r\n". Это касается всех ответов за очень редким исключением.
3. успевает ли вывестись символ на экран, до того как будет получен новый(зависит от реализации lcd_putc() )? Это можно узнать проверив флаг переполнения буфера приема перед чтением очередного байта.

Спасибо, kovz, внесу коррективы в программу и проверю еще раз
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Aleksey N.   sim300dz. Проблема с приемом данных на мк   Aug 27 2010, 07:09
- - CADiLO   А мега что, тоже через MAX3232 подключена ? Как В...   Aug 27 2010, 07:28
|- - Aleksey N.   Цитата(CADiLO @ Aug 27 2010, 13:28) А мег...   Aug 27 2010, 10:52
- - Slonofil   Ай-ай-ай, надо же документацию читать внимательно...   Aug 27 2010, 10:53
|- - Aleksey N.   Цитата(Slonofil @ Aug 27 2010, 16:53) Ай-...   Aug 27 2010, 11:13
- - CADiLO   Да уж - выход макса который может быть до 12 вольт...   Aug 27 2010, 10:59
- - kovz   у max3232 нижний предел напряжений ниже.   Aug 27 2010, 11:37
- - Slonofil   В принципе, подавая на МЕГУ напряжение с выхода МА...   Aug 27 2010, 11:45
- - CADiLO   Добавлю что дело даже не в повышеном напряжении. Н...   Aug 27 2010, 12:09
|- - Mitsufan   Вопрос к CADiLO. Так можно ли подключаться к SIM3...   Aug 27 2010, 16:23
|- - Aleksey N.   1. Цитата(CADiLO @ Aug 27 2010, 18:09) До...   Aug 28 2010, 09:24
- - Aleksey N.   Спасибо всем за помощь, буду разбираться...   Aug 27 2010, 12:26
- - uzz   Почитайте рекомендации в семинарах: SIM300 semina...   Aug 27 2010, 20:20
- - Aleksey N.   Хотел было ехать за буферами К155ЛП9 (хотел сделат...   Aug 29 2010, 14:57
- - CADiLO   >>>Модем имеет входные-выходные уровни в ...   Aug 30 2010, 06:20
- - ArtemKAD   ЦитатаМалейшее превышение и..... ... через резисто...   Aug 30 2010, 07:36
- - Slonofil   На самом деле, это не описка. Это изложение принци...   Aug 30 2010, 07:43
- - CADiLO   Согласен - я выбрал неудачное слово. Просто Вы дал...   Aug 30 2010, 08:32
|- - rx3apf   Цитата(CADiLO @ Aug 30 2010, 12:32) то на...   Aug 30 2010, 09:07
- - Slonofil   Кстати, поскольку работаю с PIC от Microchip, хоте...   Aug 30 2010, 08:41
- - Prizrac   Я думаю если питание м.к. будет 4в и модуля тоже п...   Aug 30 2010, 10:33
|- - Slonofil   Цитата(Prizrac @ Aug 30 2010, 14:33) Я ду...   Aug 30 2010, 10:37
- - Prizrac   <Это из разряда "Вредные советы" Ска...   Aug 30 2010, 10:48
- - Slonofil   Просто нужно ВНИМАТЕЛЬНО читать документацию на мо...   Aug 30 2010, 11:12
- - Prizrac   Там 3,2 + 0,7 а не 3 ...? насколько я помню.   Aug 30 2010, 11:22
- - CADiLO   Плохо помним - там абсолютное максимальное значени...   Aug 30 2010, 11:40
- - Slonofil   Вот Вам выдержки из Hardware Design и семинара. Па...   Aug 30 2010, 11:41
- - ArtemKAD   Цитатаэто 3 года назат было ненайдете но работало ...   Aug 30 2010, 11:59
- - Prizrac   да уже прасматриваю, а за дезинфармацию извиняюсь....   Aug 30 2010, 12:37
- - CADiLO   На 90% вышесказаное относится и к SIM900. Естеств...   Aug 31 2010, 06:29
- - Prizrac   я прасматрел дествительно я не так помнил у меня н...   Sep 1 2010, 04:26


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 06:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016