Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Channel

Goal/Scope

Proposed Testing Strategy

Main Channels

SPI

Can transmit and receive data from and to a device.

Can use chip select/enable line to selectively communicate with multiple peripherals.

Send sample SPI signals through the channels and verify output using Saleae Logic Analyzer.

SPI loopback connection should be able to test that transmit & receive work. (connect MOSI to MISO) and send random values through it, receiving what is sent. The sent value and received value should match if the SPI is working properly.

UART

Can transmit and receive data from and to a device.

Send sample Connect to a terminal, send UART message through each channel and verify output via terminal.Or send sample UART sequence through each pinout and perform Saleae analysisfrom PC and see if it can echo the message back to terminal.

I2C

Can transmit and receive data from and to a device.Send sample I2C sequence through each pinout and perform Saleae analysis

After research, there is no easy way to test I2C lines. Best thing to do is connect a simple I2C peripheral and see if it can communicate with it successfully.

todo: find an unimportant i2c sensor/device to steal for bringup testing. Write driver for device.

PWM

Can configure the PWM TIMS to generate PWM signals.

Basic: Configure PWM settings. Connect to oscilloscope. Inspect/analyze PWM signal.

DMA: Configure PWM settings (using DMA method). Connect to oscilloscope. Inspect/analyze PWM signal.

Also could: Test by sending PWM signals to on-board LEDs and confirm functionality by visual inspection (much less rigorous than oscilloscope analysis).

GPIO

Can toggle on and off.

Pull each GPIO pin up/down.

Options to check functionality:

Saleae (time consuming for simple GPIO)

  1. Connect LED to each gpio pin and drive high → lowtoggle the pins to turn them on/off continuously.

  2. Drive GPIO pins high and output a simple message to a terminal if a HIGH signal was read from each GPIO pin confirming it was successfully pulled HIGH/LOW.

ADC

Varying analog input is converted to a digital binary output.

Connect potentiometer to ADC in channel. Vary voltage input. Output binary values to terminal?

MicroSD

Read/Write data to the SD Card.

Write:

Create text file, write to the text file, plug the SD card into a computer and confirm that the test text file has been created and written to.

Read:

Read from a the test file. Check size of input variable to see that the size of the file data and variable matchOutput data to terminal.

OR

Attempt to read known data from a text file. Pass through an assertion or if statement.

On-board LEDs

Can light up.

Run simple blink test code on each on-board LED.

MISC

GPIO Interlock

Pins:

  • PF2 (GPIO_IL_D)

  • PF3 (GPIO_IL_C)

  • PG6 (GPIO_IL_B)

  • PG7 (GPIO_IL_A)

GPIO interlock, should be read high (3V3) to ensure interface board is properly connected.

Read the pins.

uSD_Detect

Pin: PF11

Pin low when SD card is inserted and high when SD card slot is vacant

This functionality was not confirmed and should be checked.

Read pin (should be low when SD card is inserted and high when SD card is empty)

PWR_SENSE

Pin: PA4 (ADC2_IN9)

Measures the voltage available to the system after power filter

Calculated using V = PWR_SENSE * 18.28395 (280k, 16.2k voltage divider)

DMM

VBAT_B_SENSE

Pin: PC2 (ADC2_IN3)

Measures the voltage of battery B

Calculated using:

V = VBAT_B_SENSE * 18.28395 (280k, 16.2k voltage divider)

DMM

VBAT_A_SENSE

Pin: PB1 (ADC2_IN16)

Measures the voltage of battery A

Calculated using:

V = VBAT_A_SENSE * 18.28395 (280k, 16.2k voltage divider)

DMM

...