Skip to content

Instantly share code, notes, and snippets.

@tashwoods
Created May 6, 2014 21:45
Show Gist options
  • Save tashwoods/39aea412e3a40aaf980f to your computer and use it in GitHub Desktop.
Save tashwoods/39aea412e3a40aaf980f to your computer and use it in GitHub Desktop.
mbed_reset_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
extern "C" void mbed_reset();
void write(char reg1, char reg2, char reg3);
void setup_DAC();
int main()
{
mbed_reset();
setup_DAC();
while(1)
{
write(0x14, 0xCC, 0xCD); //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