AD7124 - Register einstellen

Gast #6956012
Lesenswert?

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?
Gast #6956447
Lesenswert?

Moin,
Ich würde auf einen Fehler in der SPI Übertragung tippen. Die ist etwas 
zickig und die Dokumentation dazu im Datenblatt kommt nicht ganz hin. 
SPI-Mode sollte 3 sein. Evtl. erstmal das device-ID Register (0x17) 
lesen, um die Kommunikation zu testen.
Gast #6956567
Lesenswert?

Hi,

vielen Dank für deine Antwort! Ich habe versucht das ID Register 
auszulesen (ist laut Datenblatt aber denke ich 0x05, habs aber auch mit 
0x17 probiert) und ich bekomme wieder nur 0 in meinen Buffer, die 
Kommunikation funktioniert also nicht.

Ich verwende eine soft SPI library, ist also kein echts spi, sondern 
toggelt die GPIO pins als wären sie SPI Pins. Das könnte man theoretisch 
aber ändern, finde es nur komisch, da das beim AD7794 sehr gut 
funktioniert hat.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren