Skip to content

Instantly share code, notes, and snippets.

@tashwoods
Last active August 29, 2015 14:00
Show Gist options
  • Save tashwoods/84c81f87fa6e0f1b98a2 to your computer and use it in GitHub Desktop.
Save tashwoods/84c81f87fa6e0f1b98a2 to your computer and use it in GitHub Desktop.
VCO_test
#include "mbed.h"
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8); //SYNC* pin labeled as cs
DigitalOut LDAC(p9); //LDAC* pin
DigitalOut CLR(p10); //CLR* pin
DigitalOut Reset(p11); //Reset* pin
void write(char reg1, char reg2, char reg3);
void setup_DAC();
int main()
{
setup_DAC();
while(1)
{
write(0x10, 0x00, 0x00); //programs DAC to change to the voltage corresponding to 14, CC, CD
}
}
void write(char reg1, char reg2, char reg3)
{
cs = 1;
LDAC = 1;
cs = 0;
spi.write(0x20); //Sets the control register
spi.write(0x00); //DACTRI, OPGND, SDOSIS, LINCOMP = 0
spi.write(0x12); //RBUF, BIN/2sC = 1
wait_us(1);
cs = 1;
wait_us(1);
LDAC = 0;
wait_us(1);
cs = 1;
LDAC = 1;
cs = 0;
spi.write(0x40); //Sets the control register
spi.write(0x00); //LDAC*, CLR*, RESET* = 0
spi.write(0x00); //Still setting control register
wait_us(1);
cs = 1;
wait_us(1);
LDAC = 0;
wait_us(1);
cs = 1;
LDAC = 1;
cs = 0;
spi.write(reg1); //Sets the control register
spi.write(reg2); //LDAC*, CLR*, RESET* = 0
spi.write(reg3); //Still setting control register
wait_us(1);
cs = 1;
wait_us(1);
LDAC = 0;
wait_us(1);
return;
}
void setup_DAC()
{
//mbed_reset();
spi.format(8,1); //set words sent to DAC to 8 bits, and sclk to mode 1
spi.frequency(10000); //set sclk frequency
Reset = 0;
wait_us(1);
Reset = 1;
LDAC = 0;
CLR = 1;
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment