Home About Blog

Radio Debug Board v1

From Snowcap

Jump to: navigation, search

Status: Completed

The purpose of the Debug Radio Board is to ease connecting a Radio Board, a Raspberry Pi and a PC to each other (even without a Radio Board).

Design

Radio debug board v1 gerbers
Radio debug board v1 3D view in Kicad
Radio debug board v1 schema

Requirements

  • Provide a convenient way to connect a Radio Board to a PC (USB)
  • Provide a convenient way to connect a Radio Board to a RPi (RPi's expansion header)
  • Act as serial to USB dongle for RPi (with and without having Radio Board connected)
  • Provide debug leds for Radio Board
  • Provide a pin pair for measuring Radio Board power consumption

Implementation details

  • FTDI provides 3.3V to cc430 even when the USB is not connected (max 50mA!)
  • The Debug Board must have RPi compatible pin header. See a photo of RPi for reference.
  • Connect a debug led to CN1_9 (AN3) directly, no need for a FET/transistor.

Jumper configurations

  • 5V from RPi to FTDI goes through a jumper that allows cutting 5V when connecting both RPi and USB.
  • TX/RX from RPi are connected to Radio (which is connected to FTDI) through jumpers that allows disconnecting TRX/RX from RPI when not needed
    • Allows also crossing TX/RX when used with FTDI without the Radio Board

Pinout

The following tables are copied from elinux.org and the RBv2 added there to show how to connect the pins between the 26pin header and the radio board.

P1 Header Pinout, top row:

Pin Number Pin Name Rev1 Pin Name Rev2 Pin RBv2 Hardware Notes Alt 0 Function Other Alternative Functions
P1-02 5V0 5V0 FTDI Supply through input poly fuse
P1-04 5V0 5V0 NC Supply through input poly fuse
P1-06 GND GND GND
P1-08 GPIO 14 GPIO 14 CN1_3 (A0_RX) Boot to Alt 0 -> UART0_TXD ALT5 = UART1_TXD
P1-10 GPIO 15 GPIO 15 CN1_2 (A0_TX) Boot to Alt 0 -> UART0_RXD ALT5 = UART1_RXD
P1-12 GPIO 18 GPIO 18 CN1_9 (A3) PCM_CLK ALT4 = SPI1_CE0_N ALT5 = PWM0
P1-14 GND GND GND
P1-16 GPIO23 GPIO23 CN1_5 (!RST) ALT3 = SD1_CMD ALT4 = ARM_RTCK
P1-18 GPIO24 GPIO24 CN1_6 (TEST) ALT3 = SD1_DAT0 ALT4 = ARM_TDO
P1-20 GND GND GND
P1-22 GPIO25 GPIO25 CN2_5 (ACLK) ALT3 = SD1_DAT1 ALT4 = ARM_TCK
P1-24 GPIO08 GPIO08 CN2_3 (A0_SS) SPI0_CE0_N
P1-26 GPIO07 GPIO07 CN2_6 (RFGDO2) SPI0_CE1_N

P1 Header Pinout, bottom row:

Pin Number Pin Name Rev1 Pin Name Rev2 Pin RBv2 Hardware Notes' Alt 0 Function Other Alternative Functions
P1-01 3.3 V 3.3 V NC 50 mA max (01 & 17)
P1-03 GPIO 0 GPIO 2 CN2_2 (B0_SDA) 1K8 pull up resistor I2C0_SDA / I2C1_SDA
P1-05 GPIO 1 GPIO 3 CN2_1 (B0_SCL) 1K8 pull up resistor I2C0_SCL / I2C1_SCL
P1-07 GPIO 4 GPIO 4 CN2_7 (RFGDO0) GPCLK0 ALT5 = ARM_TDI
P1-09 GND GND GND
P1-11 GPIO17 GPIO17 CN2_8 (A0) ALT3 = UART0_RTS ALT4 = SPI1_CE1_N ALT5 = UART1_RTS
P1-13 GPIO21 GPIO27 CN2_9 (A1) PCM_DOUT / reserved ALT4 = SPI1_SCLK ALT5 = GPCLK1 / ALT3 = SD1_DAT3 ALT4 = ARM_TMS
P1-15 GPIO22 GPIO22 CN2_10 (A3) ALT3 = SD1_CLK ALT4 = ARM_TRST
P1-17 3.3 V 3.3 V NC 50 mA max (01 & 17)
P1-19 GPIO10 GPIO10 CN1_2 (A0_MOSI) SPI0_MOSI
P1-21 GPIO9 GPIO9 CN1_3 (A0_MISO) SPI0_MISO
P1-23 GPIO11 GPIO11 CN2_4 (A0_SCLK) SPI0_SCLK
P1-25 GND GND GND

Open Questions

  • RPi seems to have already 1.8k pull-ups for i2c. RBv2 does have 4.7k pull-ups. Is this a problem?
  • Is it a problem to have TX/RX lines connected 3-way between FTDI/RPi/RBv2 even if the USB is not connected to FTDI?

Closed Questions

  • If a debug board with FTDI and USB connectors assembled is connected to an RPi, is there a problem with 3.3V going everywhere?
    • Solution: Use a jumper to choose where is the power provided
  • Would it be possible to use this debug board as an usb-to-serial dongle for RPi's UART without the radio?
    • How to control TX/RX lines between cc430, RPi and FTDI then?
      • Jumpers/switches?
    • Solution: Use jumpers to choose where how the TX/RX are routed

Errata

  • FT232R pads too short for hand soldering
  • LEDs are reversed.