RS232 через UART

Последние две недели я пытаюсь установить связь между датчиком и моим CC1310, который работает с Contiki NG. Датчик представляет собой метеостанцию, которая каждую минуту выводит информацию (символы ASCII). Он поставляется с интерфейсом RS232, но при питании только от 0 и 5 В его можно использовать с логическими уровнями TTL, учитывая, что уровни инвертированы. Означает, что высокий уровень переводится в 0 в двоичном формате. Измеренное напряжение на линии TX датчика составляет 0 и 3,7 В в течение времени, в течение которого отправляется информация, поэтому только небольшую продолжительность каждую минуту. Это должно быть хорошо для RX UART на CC1310. Моя идея заключалась в том, чтобы соединить TX датчика с RX CC1310 и использовать приведенный ниже код, чтобы просто передавать полученные символы через последовательный порт на ПК.

PROCESS_BEGIN();


serial_line_init();


cc26xx_uart_set_input(serial_line_input_byte);

while(1){

  PROCESS_YIELD();

      if (ev == serial_line_event_message){

          printf(data);

      }

}

  PROCESS_END();

Однако я не получаю никаких символов. Я имею в виду, что инверсия сигнала должна быть решена на заключительном этапе этого проекта, но, тем не менее, некоторые символы должны распознаваться UART. Поскольку это, похоже, не так, я подключил TX датчика к TX CC1310. Также была подключена перемычка к последовательному порту. В результате я каждую минуту мог видеть неизвестные символы на консоли. Мне кажется, что драйвер UART не распознает разные уровни на линии TX датчика. Есть ли какое-нибудь решение для этого, например, что я мог бы изменить напряжения логических уровней на UART? Может быть, я мог бы также использовать другой порт ADC и написать свой собственный драйвер для датчика? Или у вас есть еще одна идея, как решить проблему?

Спасибо, Лукас

0 ответов

Другие вопросы по тегам