Test application for getting the Nucleo F0 30 board to work with Evan's prototype LED board.
Dependencies: mbed
main.cpp
- Committer:
- bgrissom
- Date:
- 2014-07-07
- Revision:
- 1:256d7a2f8391
- Parent:
- 0:b0f98b83cb07
- Child:
- 2:a57a5501152c
File content as of revision 1:256d7a2f8391:
#include "mbed.h" int main() { // NOTE: 24MHz is half the 48MHz clock rate. The PWM registers // seem to only allow 24MHz at this point, so I'm matching // the SPI bus speed to be the same. // // 1/24MHz => 1/(24*10^6) => 41.6*10^-9 second period, // which means 41.6ns period and 20.8ns pulse width at // 50% duty cycle (which seems to be right for the SPI clock // line as well as a reasonable choice for the PWM line). ///////////////////////////////////////////////// // SPI SETUP ///////////////////////////////////////////////// // We are not using MISO, this is a one-way bus //SPI device(SPI_MOSI, NC, SPI_SCK); // Note: Polarity and phase are both 0 for the TC62D723FNG // For a graphical reminder on polarity and phase, visit: // http://www.eetimes.com/document.asp?doc_id=1272534 // //device.format(16, 0); //device.frequency(24000000); // 24 MHz //device.frequency(1000000); // 1 MHz ///////////////////////////////////////////////// ///////////////////////////////////////////////// // PWMCLK ///////////////////////////////////////////////// //PwmOut pinPWMCLK(D9); // For Nucleo board, not for Redgarden board //pinPWMCLK.write(0.5f); // Set to 50% duty cycle for testing ///////////////////////////////////////////////// // OTHER / DEBUG ///////////////////////////////////////////////// ///////////////////////////////////////////////// printf("17:22\n"); //int i = 0; while(1) { wait_us(50); // S0 Command: Needs only SCK and SIN (which are SPI_SCK and SPI_MOSI respectively) // This is because TRANS can be 0 for this command according to the datasheet SPI data(SPI_MOSI, NC, SPI_SCK); data.format(16, 0); data.frequency(1000000); // 1 MHz data.write(0xFF); // S1 Command: TRANS / "LATCH" // The S1 command doesn't use SIN, but TRANS needs to be on for exactly // three clock pulses. The easiest way to do this is re-configuring // the SPI bus to use the TRANS line as MOSI and sending 0x07. If this // doesn't work, we need to bitbang it. SPI latch(PA_9, NC, SPI_SCK); latch.format(16, 0); latch.frequency(1000000); // 1 MHz latch.write(0x07); // Three clock pulses } }