Forum: Mikrocontroller und Digitale Elektronik ADS7828 keine genauen Werte.


von Dennis B. (Firma: Home) (deboman)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Problem mit einem I2C ADC (ADS7828) in meinem System. 
Dieser läuft nicht so wie ich will.
An den 8 Eingängen messe ich 4 mal die Spannung 
(Spgteiler->Impedanzwandler) und 4 mal den Strom (LEM-Wandler 
LTS15-NP->Impedanzwandler).

Wie in der Schaltung zu sehen betreibe ich den Wandler mit 5V (~4,96V).

1
uint16_t i2c_adc_dcdc_read(uint8_t channel)
2
// 
3
{
4
  uint32_t buffer = 0; // average puffer
5
  uint8_t adcmux = i2c_dcdcadc_add[channel]; // select related adc channel address
6
  uint8_t lowbyte, highbyte;  // buffer for incoming data
7
  uint8_t i; // iteration variable 
8
  
9
  i2c_start_wait(I2C_DCDCADC+I2C_WRITE);  // start i2c transfer (DCDCADC)
10
  i2c_write(adcmux);    // CMD byte: single ended, channel selection, int ref off and power-down mode
11
  i2c_stop();                  // stop i2c transfer    
12
  
13
  //for(i = 0; i < I2C_AVG_NUM; i++)
14
  //{
15
    i2c_start_wait(I2C_DCDCADC+I2C_READ);  // start i2c transfer
16
    highbyte  = i2c_readAck();  // read high byte conversion register 
17
    lowbyte    = i2c_readNak();  // read low byte conversion register
18
    i2c_stop();  
19
    
20
  //  buffer += ((highbyte<<8) + lowbyte); // high + low byte, add adc value to average puffer
21
  //}
22
  
23
  //buffer = buffer >> I2C_AVG_SHIFT; // calculate average result
24
  buffer = (highbyte<<8) + lowbyte;
25
  return buffer; // return result 
26
}

Folgendes Problem habe ich mit dem ADS7828. Wenn ich den Strom der 
LEM-Wandler im Leerlauf messen will, dann ergeben sich am Ausgang des 
Wandlers ~2,5V für 0A. Diese ~2,5V liegen auch an den Eingängen des 
ADS7828 an. Wenn ich jedoch meinen Quellcode für alle 8 Kanäle 
durchlaufen lasse, dann springen mir die gemessenen Werte zu sehr hin 
und her, z.B. bei einer Strommessung im Leerlauf von 2,4V-2,6V, sodass 
es sich krasse Ungenauigkeiten ergeben.
Betrieben wird der ADS7828 mit Single Ended und externer Ref Spg bzw 
PowerDown Mode 0.

Hat jemand schon ähnliche Probleme mit dem ADS7828 gehabt?

Als Lösungsansatz habe ich einen Kanal mehrmals durchlaufen lassen ohne 
den Kanal zu wechseln, das hat aber auch keine Verbesserung gebracht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dennis B. schrieb:
> dann springen mir die gemessenen Werte zu sehr hin und her
Mach mal ein Foto von deinem Messaufbau. Wie sieht die Platine aus?

> Diese ~2,5V liegen auch an den Eingängen des ADS7828 an.
Wie hast du das festgestellt?
Mit dem Oszi? Wie gemessen?

von Dietrich L. (dietrichl)


Lesenswert?

Dennis B. schrieb:
> Wie in der Schaltung zu sehen betreibe ich den Wandler mit 5V (~4,96V).

Wird damit auch der µC betrieben? Wenn ja, dann kann diese Spannung (die 
ja auch die REF-Spannung des ADC ist) durchaus kurzzeitige Schwankungen 
haben diese Messfehler bewirken. Das hängt auch stark vom gesamten 
Aufbau/Layout ab.
Mögliche Lösung:
- besseres Layout
- Filter für REF des ADC
- LEM-Wandler mit REF-Ausgang (2,5V) verwenden. Diesen Ausgang mit OP 
auf 5V verstärken und REF des ADC damit versorgen.
- eigene REF-Spannungsquelle für den ADC-REF verwenden

Gruß Dietrich

von Dennis B. (Firma: Home) (deboman)


Angehängte Dateien:

Lesenswert?

Lothar Miller schrieb:
> Dennis B. schrieb:
>> dann springen mir die gemessenen Werte zu sehr hin und her
> Mach mal ein Foto von deinem Messaufbau. Wie sieht die Platine aus?

Im Anhang kannst du ein Bild des Platinenaufbaus sehen. Ich habe keine 
Leistung an die Platine geschlossen. Ich habe lediglich über den 
Platinenverbinder 5V angelegt, um mit meinem externen µC die Sensoren zu 
testen.

Lothar Miller schrieb:
>> Diese ~2,5V liegen auch an den Eingängen des ADS7828 an.
> Wie hast du das festgestellt?
> Mit dem Oszi? Wie gemessen?

Einmal mit dem Multimeter und gerade habe ich ein Oszi dran gehalten. 
Bei den Spannungsteilern habe ich keine Welligkeit. Lediglich bei den 
LEM-Wandler habe ich eine Welligkeit von max 50mV feststellen können.

Es wundert mich nur etwas, da ich auf meinem µC Board und einem anderen 
externen Board andere I2C ADC verwende (ADS1015 und ADS1115). Bei diesem 
Devices habe ich keine Probleme mit der Messauswertung. Bei dem einen 
habe ich sogar einen LEM-Wandler dran und er gibt mir einen konstanten 
Wert aus ohne dabei solche Sprünge zu machen.

ERGÄNZUNG:
An den LEM-Wandlern habe ich für die VCC noch einen 47n und für OUT 4,7n 
hängen.

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

Ich glaube ich habe die Lösung gefunden. 4 LEM-Wandler habe ich verbaut. 
Wie ich erwähnt habe, ist an 5V ein 47nF und an OUT 4,7nF. Bei einem 
Wandler habe ich den 4,7nF entfernt und habe ein viel viel besseres 
Signal am Oszi. Leider ist die Platine in meinem Projekt verbaut und ich 
komme nicht an die anderen Wandler dran. Dann geht es morgen früh ans 
ausbauen.

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.