-
Notifications
You must be signed in to change notification settings - Fork 39
Description
Background:
I'm updating OpenLog Artemis to use v2.1.0 of the core. All is going well(ish) but I'm not able to receive any serial data on UART1. OpenLog Artemis uses pin 12 for Tx and pin 13 for Rx. Serial Tx on pin 12 works fine, I'm just not able to receive anything on pin 13.
Steps to replicate:
RedBoard Artemis ATP
v2.1.0 of the core
Use a jumper wire to link pin 12 to pin 13
Run this sketch:
// Apollo3 v2.1.0 UART Loopback Test
// Board: RedBoard Artemis ATP
// Use a jumper wire to connect Pin 12 (TX) to Pin 13 (RX)
UART mySerial(12, 13);
void setup() {
Serial.begin(115200);
mySerial.begin(115200);
Serial.println("UART Loopback Test");
mySerial.println("Hey, it worked!");
delay(100);
while (mySerial.available())
{
Serial.write(mySerial.read());
}
}
void loop() {
}
Open the serial monitor, and you should see this (captured using Serial1 on pins 24 and 25):
Instead, we get this:
Putting a logic analyzer on the jumper wire, I can see pin 12 transmitting:
So the issue is somewhere in the receive functionality.
I started digging into the core UART code, but I haven't found a smoking gun so far. It looks like pin 13 should be being configured correctly:
I'm out of ideas... Any suggestions on where to dig next?
Cheers!
Paul