IVSC Project

Dependencies:   USBDevice mbed

Committer:
kevinkent
Date:
Fri Jun 07 19:59:29 2013 +0000
Revision:
4:262764d24e4d
Parent:
2:d0778c36d28d
Version 1.2
; Added MSG[0] = 0x06 tow write one pot chain with a single message

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevinkent 1:82f2ef52759e 1 #include "mbed.h"
kevinkent 1:82f2ef52759e 2 #include "Max5250.h"
kevinkent 1:82f2ef52759e 3
kevinkent 1:82f2ef52759e 4 SPI spi(p5, NC, p7);
kevinkent 1:82f2ef52759e 5 DigitalOut cs(p8);
kevinkent 2:d0778c36d28d 6 Serial dbg3(USBTX, USBRX);
kevinkent 1:82f2ef52759e 7
kevinkent 1:82f2ef52759e 8 int DAC_Setup(void) {
kevinkent 1:82f2ef52759e 9 spi.format(16,0);
kevinkent 1:82f2ef52759e 10 spi.frequency(1000000);
kevinkent 1:82f2ef52759e 11 return 1;
kevinkent 1:82f2ef52759e 12 }
kevinkent 1:82f2ef52759e 13
kevinkent 1:82f2ef52759e 14 /**********************************************************************
kevinkent 1:82f2ef52759e 15 * Configures the command from the data bytes and writes to the SPI
kevinkent 1:82f2ef52759e 16 * MAX5250 command structure: A1,A0, C1,C0, D9..D0, S1,S0
kevinkent 1:82f2ef52759e 17 * A1,A0 - DAC addr, C1,C0 = 3 for immediate update, 1 for deferred update
kevinkent 1:82f2ef52759e 18 * D9..D0 = 10bit value [Vo = (Vref* D/1024)(Gain)] Gain = 1 in this desgin
kevinkent 1:82f2ef52759e 19 * S1,S0 = always zero
kevinkent 1:82f2ef52759e 20 */
kevinkent 1:82f2ef52759e 21 int SetDAC(uint8_t *data){
kevinkent 1:82f2ef52759e 22 int cmd;
kevinkent 1:82f2ef52759e 23
kevinkent 1:82f2ef52759e 24 data[2] &= 3; //Fix to 3 max.
kevinkent 1:82f2ef52759e 25 cmd = (data[1] << 12);
kevinkent 1:82f2ef52759e 26 cmd += (data[2] << 10);
kevinkent 1:82f2ef52759e 27 cmd += (data[3] << 2);
kevinkent 2:d0778c36d28d 28 dbg3.printf("cmd = %0x\n", cmd);
kevinkent 1:82f2ef52759e 29
kevinkent 1:82f2ef52759e 30 cs = 0;
kevinkent 1:82f2ef52759e 31 spi.write(cmd);
kevinkent 1:82f2ef52759e 32 cs = 1;
kevinkent 1:82f2ef52759e 33 return 1;
kevinkent 1:82f2ef52759e 34 }