Particle Electron на RS232 Серийная тарабарщина

Я потратил весь день, пытаясь отслеживать вывод последовательной консоли маршрутизатора. Я использую конвертер MAX3232 RS232 в TTL от «ebay», подключая только GND, TX и RX к Electron. Попытка просто отслеживать вывод консоли во время загрузки - все, что я получаю, это тарабарщина.

Даже подключен к порту COM1 компьютера и не может передавать эхо туда и обратно. Все, что я получаю, это 0 или странные символы. (это было опробовано с большим количеством кода, чем показано ниже)

Вот мой самый простой код. Я почти готов сдаться. Есть идеи?

#include "Particle.h"

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600); // пробовал с 2400/даже 1200 должно быть 9600
  Serial.println("Starting up Serial");
  Serial1.println("Starting up Serial1");
} 


void loop() {
 while(Serial1.available()>0)
 {
   Serial.write(Serial1.read());
 }
 delay(50);
}

, 👍1

Обсуждение

Проверяли ли вы напряжение питания на контактах MAX3232 (контакт 2 V+ и контакт 6 V-)? Каковы значения двух летающих колпачков (на контактах 1–3 и 4–5)? И, если вы подозреваете, что вам продали контрафактную деталь, служба поддержки клиентов Максима хотела бы знать об этом. (Отказ от ответственности: я инженер приложений Maxim.), @MarkU

Я подозреваю, что у вас неправильная тактовая частота основного последовательного порта., @Jasen

Петлевой тест трансивера MAX3232 сам по себе (независимо от микроконтроллера). Подключите петлю на стороне RS232 (T1OUT управляет R1IN), а затем подайте логический низкий уровень на T1IN, ожидайте, что петля RS232 должна стать примерно +5,5 В, и ожидайте, что R1OUT должен стать логическим низким. Затем установите высокий логический уровень на T1IN, ожидайте, что петля RS232 должна стать примерно -5,5 В, и ожидайте, что R1OUT должен стать логическим высоким. [Техническое описание MAX3232](http://pdfserv.maximintegrated.com/en/ds/MAX3222-MAX3241.pdf), @MarkU

Обязательно попробую и вернусь. Спасибо, @user1389579

Я не видел никаких комментариев, чтобы проверить другие скорости передачи данных. Как вы определили, что она должна быть 9600 бод? Какую плату Arduino вы используете? Я не играл с мегаплатой, но в примерах, которые я видел, Serial.begin() не использовался. Все они были Serial1.begin, Serial2.begin... в зависимости от того, какой последовательный порт вы хотите использовать., @linhartr22


2 ответа


1

Если OP правильно заявил, что было выполнено только три подключения к MAX3232, питание на устройство отсутствует. Код протестирован с передающим устройством RS232 (Maxbotix 7092) с прорывом Sparkfun MAX3232 и Particle Photon. Последовательный монитор правильно отображает показания непрерывного диапазона.

,

0

Вам не нужно никакого оборудования между Particle и маршрутизатором. И маршрутизатор, и Particle работают на логических уровнях 3,3 В.

  • Подключите GND маршрутизатора к GND Particle.
  • Подключите TX маршрутизатора к RX1 Particle.
  • Подключите RX маршрутизатора к TX1 Particle.

Вам нужен только MAX3232, если вы хотите подключиться напрямую к порту RS232 вашего компьютера:

  • Подключите GND MAX3232 к GND компьютера и GND маршрутизатора.
  • Подключите TX компьютера к RIN MAX3232
  • Подключите RX компьютера к DOUT MAX3232
  • Подключите TX маршрутизатора к DIN MAX3232.
  • Подключите RX маршрутизатора к ROUT MAX3232
  • Подключите VCC MAX3232 к +3,3 В от маршрутизатора.
,