This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf51822 pca10001 UART RX and TX pin voltage

Hi,

I modified the uart_example project for the pca10001 board of the nRF51822 evaluation kit to make it work with a UART TTL JPEG camera. So far, the camera can receive commands and send back responses just fine. However, I cannot capture any incoming data on the board. With nothing connected to the board and after the code executes and the UART pins are idle, I measure 3.0V on the TX pin and 3.3V on the RX pin. My Vcc is 3.0V and my board is connected to the USB port on the PC (which I measured at 5.08V).

I would like to know why the "high" voltage is different on both pins, and how the RX pin can have a voltage higher than Vcc, as well as what state each pin is supposed to be in while idle. While using a logic analyzer, I can see the TX and RX work just fine as long as the board's RX pin is not connected to the camera's TX pin. When it is connected, the logic analyzer just shows that line being held high the whole time. The camera itself (jut connected to power and not the board) will hold its TX pin high at 3.3V and the RX pin will remain low (after it's done initializing). I figured the board would keep its TX pin high and its RX pin low as well.

My code even used the "simple_uart_get()" function with a huge array to store the incoming bytes, but no luck.

Thanks!

Parents
  • I don't understand what you are referring to about pin11 and why/what it's doing. If you are trying to reconfigure UART RXD pin from pin11 to pin13 you can do this easily by changing the UART_RXD pin setting in simple_uart.c or writing directly to the PSELRXD register. There's a definition for the pin in the code that you can easily change/modify to be pin13 if that's what you are trying to do.

Reply
  • I don't understand what you are referring to about pin11 and why/what it's doing. If you are trying to reconfigure UART RXD pin from pin11 to pin13 you can do this easily by changing the UART_RXD pin setting in simple_uart.c or writing directly to the PSELRXD register. There's a definition for the pin in the code that you can easily change/modify to be pin13 if that's what you are trying to do.

Children
No Data
Related