Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 1:256d7a2f8391
- Parent:
- 0:b0f98b83cb07
- Child:
- 2:a57a5501152c
--- a/main.cpp Thu Jul 03 19:55:29 2014 +0000
+++ b/main.cpp Mon Jul 07 23:39:59 2014 +0000
@@ -1,46 +1,68 @@
-#include "mbed.h"
+#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);
+ /////////////////////////////////////////////////
+ // 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(1000000); // 1 MHz
-/////////////////////////////////////////////////
+ // 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
+ /////////////////////////////////////////////////
+ // PWMCLK
+ /////////////////////////////////////////////////
+ //PwmOut pinPWMCLK(D9); // For Nucleo board, not for Redgarden board
+ //pinPWMCLK.write(0.5f); // Set to 50% duty cycle for testing
+
+
+ /////////////////////////////////////////////////
+ // OTHER / DEBUG
+ /////////////////////////////////////////////////
+ /////////////////////////////////////////////////
+
+
-/////////////////////////////////////////////////
-// OTHER / DEBUG
-/////////////////////////////////////////////////
-Serial pc(SERIAL_TX, SERIAL_RX);
-DigitalOut myled(LED1);
-/////////////////////////////////////////////////
-
-
-int main() {
- int i = 0;
- pc.printf("Hello World!\n");
+ printf("17:22\n");
+ //int i = 0;
while(1) {
- wait(1);
- pc.printf("Alive for %d seconds.\n", i++);
- myled = !myled;
-
- device.write(0x55);
- device.write(0xE0);
+ 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
}
}
\ No newline at end of file