Forum: Mikrocontroller und Digitale Elektronik AD7124 - Register einstellen


von WTF (Gast)


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?

von nicht "Gast" (Gast)


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.

von WTF (Gast)


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.

von WTF (Gast)


Lesenswert?

Nevermind, sieht so aus als würde der AD7794 den SPI Mode 1 brauchen, 
wenn ich dann die soft spi library für den AD7124 verwende kann das 
natürlich nicht klappen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.