chili-chips-ba / openCologne

Spicing up the first and only EU FPGA chip with a flashy new board, loaded with a suite of engaging demos and examples. https://www.chili-chips.xyz/open-cologne
https://nlnet.nl/project/openCologne
BSD 3-Clause "New" or "Revised" License
46 stars 2 forks source link

UART Receiver and Transmitter Not Functioning on Olimex GateMate Board #11

Closed TarikHamedovic closed 5 months ago

TarikHamedovic commented 5 months ago

Description

While testing the UART receiver and transmitter on the Olimex GateMate board, we encountered an issue where input typed in the terminal was neither received nor transmitted.

Steps Taken

  1. Firmware Check: Verified the RP2040 firmware to ensure UART communication was enabled. The firmware confirmed that UART communication was enabled.
  2. Documentation Review: Consulted the documentation for the Olimex board to verify if the Receive and Transmit Debug pins were declared and connected to the RP2040. The documentation confirmed that the pins were correctly declared and connected.

Expected Behavior

Input typed in the serial communication terminal should be received and transmitted correctly.

Actual Behavior

No input typed in the terminal is being received or transmitted.

Additional Information

TarikHamedovic commented 5 months ago

The problem was that the documentation for the GateMate Olimex board was wrong.

The pins were declared like:

Pin_out "o_Tx_Serial" Loc = "IO_SA_A6";
Pin_in "i_Rx_Serial" Loc = "IO_SA_B6" | PULLUP=true;

Which when looking at the documentation is correct.

But in actuality they pins are reversed and the correct way to declare them is:

Pin_out "o_Tx_Serial" Loc = "IO_SA_B6";
Pin_in "i_Rx_Serial" Loc = "IO_SA_A6" | PULLUP=true;
chili-chips-ba commented 5 months ago

The confusion comes from the fact that, at the first look, it seems that the FPGA pins are as shown on Olimex Schematic: image

However, those labels are from the RPi Pico perspective. It's also of no help that Olimex User Manual does not include a section for UART. There is certainly room for improvements on doc front...