Hallo, ich hab mir ein ganz banales setup für meinen AD7124 geschrieben:
1 | #define AD7124_READ 0x40
|
2 | #define AD7124_WRITE 0x00
|
3 | #define AD7124_COMM_REG 0x00
|
4 | #define AD7124_STATUS_REG 0x00
|
5 | #define AD7124_CONTROL_REG 0x01
|
6 | |
7 | /* adc config register */
|
8 | #define AD7124_FULL_POWER 0xC0
|
9 | #define AD7124_LOW_POWER 0x00
|
10 | #define AD7124_MID_POWER 0x40
|
11 | #define AD7124_DATA_STATUS 0x04
|
12 | #define AD7124_INT_CLK 0x01
|
13 | #define AD7124_CONTIN_MODE 0x00
|
14 | |
15 | void ad7124Init (void) |
16 | {
|
17 | uint8_t i; |
18 | |
19 | for (i = 0; i < SPI_BUFFER_SIZE; i++) |
20 | {
|
21 | spiTransmitBuffer[i] = 0xff; |
22 | spiReceiveBuffer[i] = 0xff; |
23 | }
|
24 | |
25 | sspiTransmitByte (AD7124_READ | AD7124_STATUS_REG); |
26 | sspiReceive (spiReceiveBuffer, 1); |
27 | |
28 | /* write adc control register */
|
29 | spiTransmitBuffer[0] = AD7124_WRITE | AD7124_CONTROL_REG; |
30 | spiTransmitBuffer[1] = AD7124_CONTIN_MODE | AD7124_DATA_STATUS; |
31 | spiTransmitBuffer[2] = AD7124_FULL_POWER | AD7124_INT_CLK; |
32 | sspiTransmit (TransmitBuffer, 3); |
33 | |
34 | sspiTransmitByte (AD7124_READ | AD7124_CONTROL_REG); |
35 | sspiReceive (ReceiveBuffer, 3); |
36 | }
|
und wollte damit nur checken, ob ich das control Register konfigurieren sowie erneut auslesen kann. Leider liefert der Receive Buffer nur 0 und nicht die Werte des control Registers. Hat jemand eine Ahnung, wieso das so sein könnte?