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.
Fork of jro by
Diff: dds.h
- Revision:
- 0:b444ea725ba7
- Child:
- 1:7c424a3e12ea
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dds.h Tue Dec 02 02:27:30 2014 +0000
@@ -0,0 +1,53 @@
+#include "mbed.h"
+
+#define SPI_BITS 8
+#define SPI_MODE 0
+#define SPI_FREQ 10000
+
+class DDS{
+ private:
+ float frequency; // Work frequency in MHz
+ unsigned char cr_multiplier; // Multiplier 4- 20
+ unsigned char cr_mode; // Single, FSK, Ramped FSK, Chirp, BPSK
+ bool cr_ioupdclk; // IO Update clock enable: 0 -> input
+ bool cr_inv_sinc; // Inverse sinc filter enable: 0 -> enable
+ bool cr_osk_en; // Enable AM: 0 -> disabled
+ bool cr_osk_int; // ext/int output shaped control: 0 -> external
+ bool cr_msb_lsb; // msb/lsb bit first: 0 -> MSB
+ bool cr_sdo; // SDO pin active: 0 -> inactive
+
+ SPI *spi_device;
+ //DDS I/O
+ DigitalOut *dds_mreset;
+ DigitalIn *dds_outramp;
+ DigitalOut *dds_sp_mode;
+ DigitalOut *dds_cs;
+ DigitalOut *dds_io_reset;
+ DigitalInOut *dds_updclk;
+
+
+ int __writeData(unsigned char addr, unsigned char ndata, const unsigned char* data);
+ unsigned char* __readData(unsigned char addr, unsigned char ndata);
+ int __writeDataAndVerify(unsigned char addr, unsigned char ndata, const unsigned char* wr_spi_data);
+ unsigned char* __getControlRegister();
+ int __writeControlRegister();
+ int setSingleMode();
+ int setFSKMode();
+ int setBPSKMode();
+
+ public:
+ bool isConfig;
+
+ DDS(SPI *spi_dev, DigitalOut *mreset, DigitalIn *outramp, DigitalOut *spmode, DigitalOut *cs, DigitalOut *ioreset, DigitalInOut *updclk);
+ int init();
+ int reset();
+ int scanIOUpdate();
+ int find();
+ int setMode(unsigned char mode);
+ int setMultiplier(unsigned char multiplier, float clock);
+ int setPhase1(unsigned char* phase);
+ int setPhase2(unsigned char* phase);
+ int setFrequency1(unsigned char* freq);
+ int setFrequency2(unsigned char* freq);
+
+};
\ No newline at end of file
