Versions Compared

Key

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

...

Step 3: Flash Firmware (make sure you can flash firmware)

(todo: create flashing guide to be created)

todo: figure out how to flash

Step 4: Proceed through testing functionality of each component - overview included below

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.

UART

Can transmit and receive data from and to a device.

Can communicate at different baud rates.

Send sample UART message through each channel and verify output by connecting to a terminalvia terminal.

Or send sample UART sequence through each pinout and perform Saleae analysis.

I2C

Can transmit and receive data from and to a device.

Saleae TestingSend sample I2C sequence through each pinout and perform Saleae analysis.

PWMConfigure

Can configure the PWM signal generationTIMS to generate PWM signals.

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

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

⭐ 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:

  1. Saleae (time consuming for simple GPIO)

  2. Connect LED to each gpio pin and drive high → low.

  3. 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 test file. Check size of input variable to see that the size of the file data and variable match.

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.

...

Test a simple PWM output to onboard LEDs is possible (assuming the LEDs work)

...

MicroSD Slot

  • SDMMC?

...

Power LEDs

  • Plug it in… does it explode? no? lights are on? should be good then.

...

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

Remaining Tasks:

  1. Figure out what to set the HSE - High Speed External Oscillator How to use HSE STM32CubeMx

    • RCC → HSE → Crystal/Ceramic Resonator (figure out the desired frequency)

  2. IO Connector Interlock

What is a buck converter? Do I have to test this?

Do I need to do input power validation/power source testing? - probably

A solid tutorial video with a simple custom PCB Bring-Up:

...

Create the stm32 project

...

  1. Write firmware driver for each functionality for testing.

  2. Flashing onto ZP3 (Message aidan bowers and ask if he has successfully flashed the zeropilot pcb with open ocd or if it would be easier to use the

...

  1. ST-link and how to connect

...

Breakdown all tasks on asana

...

Figure out how to test all inputs and outputs

...

User friendly?

...

  1. ).

  2. Test the testing code by performing bring-up on a zp3 board.

  3. Create user friendly confluence document with clear instructions.

MISC:

...