Например TDA7294

Форум РадиоКот • Просмотр темы - UART в PIC18F2620 и GSM-shield на базе SIM900
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт дек 30, 2025 18:33:53

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: UART в PIC18F2620 и GSM-shield на базе SIM900
СообщениеДобавлено: Вс май 22, 2016 01:29:46 
Родился

Зарегистрирован: Вт мар 24, 2015 16:37:21
Сообщений: 10
Откуда: Kharkov
Рейтинг сообщения: 0
Доброго всем времени суток!

Опишу сразу задачу, потом проблему.

Необходимо связать через UART микроконтроллер PIC18F2620 и gsm-модуль http://g02.a.alicdn.com/kf/HTB1je20JXXX ... r-font.jpg
Прошивка написана (почти). Контроллер при подключении к ноуту через MAX232 и адаптер USB-RS232 просто на ура обменивается данными в обе стороны.
GSM-модуль также отлично взаимодействует с ноутом через то же подключение.

Теперь проблема:
при подключении этих двух устройств друг к другу контроллер не получает данные от модуля.
При этом отправляет нормально - модуль их корректно принимает. Проверено следующим образом: у модуля есть несколько uart-портов и он по умолчанию шлет эхом на все порты данные, которые принимает по любому из них. Т.е. у меня при подключении цепочки "комп - модуль - контроллер" данные, отправленные с контроллера, нормально принимаются на компе, а также на компе принимается ответ модуля на посланную команду. Контроллер же ничего не принимает - ни эхо на свои посылки, ни ответ, ни эхо на посылки с компьтера.

Предпринятые меры: пробовал подтягивать Rx на контроллере к питанию через 47k, 15k, 10k, 4,7k, 2,2k - ничего не помогает. Вроде как, судя по всему, какая-то аппаратная беда с пином контроллера, но при подключении его к компу все отлично работает без каких-либо потерь данных.

Я неочень силен именно в схемотехнике, по сему прошу знающих людей откликнуться и помочь найти причину такого поведения схемы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: UART в PIC18F2620 и GSM-shield на базе SIM900
СообщениеДобавлено: Вс май 22, 2016 05:23:58 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24635
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Если контроллер не принимает свое же эхо, то 99%, что неправильно выбрана полярность у приемника (передатчик не обсуждается, поскольку модуль с ним работает).
Покажите инициализацию UARTa.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: UART в PIC18F2620 и GSM-shield на базе SIM900
СообщениеДобавлено: Вс май 22, 2016 20:14:18 
Родился

Зарегистрирован: Вт мар 24, 2015 16:37:21
Сообщений: 10
Откуда: Kharkov
Рейтинг сообщения: 0
Спойлер
Код:
void Init_USART(unsigned char SpeedNumber){
   
    unsigned int _value = 0;
   if(SpeedNumber == 1){         // 1200
      _value = 8332;
   }else if(SpeedNumber == 2){      // 2400
      _value = 4165;
   }else if(SpeedNumber == 4){      // 19200
      _value = 520;
   }else if(SpeedNumber == 5){      // 57600
      _value = 172;
   }else{                     // 9600
      _value = 1040;
   }
   
   TRISCbits.RC6 = 0; //TX pin set as output
   TRISCbits.RC7 = 1; //RX pin set as input
   BAUDCONbits.BRG16 = 1;
   TXSTAbits.BRGH = 1;
   SPBRG = (unsigned char)(_value%256);
   SPBRGH = (unsigned char)(_value/256);
   
   IPR1bits.RCIP = 1; // высокий приоритет прерывания от приемника USART
   IPR1bits.TXIP = 1; // высокий приоритет прерывания от передатчика USART
   
   TXSTAbits.SYNC = 0; // асинхронный режим
   RCSTAbits.SPEN = 1; // uart on
   PIE1bits.RCIE = 1;  // прерывания по приему включены
   PIE1bits.TXIE = 1;  // прерывания по передаче включены
   
   RCSTAbits.CREN = 1; // receiving enabled
   
}


Контроллер не принимает только передачу от модуля, если замкнуть на контроллере Rx-Tx, то свои данные он принимает. Ну и от компа, как я уже говорил, тоже принимает. Догадываюсь, что там получается какая-то несогласованность то ли по уровням, то ли еще хз по чему... Но я в схемотехнике неочень, к сожалению...

В принципе, я уже придумал "костыль", который решил проблему, поставил между модулем и контроллером max232 по схеме UART <-> RS232 <-> UART. Сразу на два канала в ту и в обратную сторону на всякий случай.

Но все таки хотелось бы разобраться, в чем же причина такого поведения схемы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: UART в PIC18F2620 и GSM-shield на базе SIM900
СообщениеДобавлено: Вс май 22, 2016 20:50:02 
Открыл глаза

Карма: 7
Рейтинг сообщений: 40
Зарегистрирован: Вт апр 05, 2016 19:00:29
Сообщений: 76
Откуда: Ростовская обл. Новочеркасск
Рейтинг сообщения: 0
UserCat писал(а):
поставил между модулем и контроллером max232 по схеме UART <-> RS232 <-> UART. Сразу на два канала в ту и в обратную сторону на всякий случай.

Осцилом сигналы без 232-ой посмотреть? Проблема с уровнями сигналов. Возможно из-за включенной/выключенной/"не_туда" подтяжкой уровня?

_________________
Ох уж эти сказки...
Ох уж эти сказочники...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: UART в PIC18F2620 и GSM-shield на базе SIM900
СообщениеДобавлено: Вс май 22, 2016 21:42:54 
Родился

Зарегистрирован: Вт мар 24, 2015 16:37:21
Сообщений: 10
Откуда: Kharkov
Рейтинг сообщения: 0
Пытался=) Проблема в том, что я ж не могу заставить gsm-модуль слать данные бесконечно. А словить на осциле единичную посылку проблематично - я ее вижу на долю секунды. Попробую еще покопаться в настройках осциллографа - там вроде где-то такое было, чтобы он ожидал начала сигнала и потом фиксировал показания. В крайнем случае можно будет написать скрипт, делающий в цикле посылку какого-то байта в модуль на один порт, а на другом слушать эхо. Найти бы время на это...

Хотя, можно и одним портом обойтись для этого :) Почему-то мне сразу такая идея не пришла...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y