...
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:
|
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:
| 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 | DMM |
VBAT_B_SENSE Pin: PC2 (ADC2_IN3) | Measures the voltage of battery B Calculated using:
| DMM |
VBAT_A_SENSE Pin: PB1 (ADC2_IN16) | Measures the voltage of battery A Calculated using:
| DMM |
Remaining Tasks:
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)
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
...
Write firmware driver for each functionality for testing.
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
...
ST-link and how to connect
...
Breakdown all tasks on asana
...
Figure out how to test all inputs and outputs
...
User friendly?
...
).
Test the testing code by performing bring-up on a zp3 board.
Create user friendly confluence document with clear instructions.
MISC:
...