Kevin Kent
/
XVHE_HID
IVSC Project
Max5250.cpp@4:262764d24e4d, 2013-06-07 (annotated)
- 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?
User | Revision | Line number | New 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 | } |