Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
Für die Logik verwende ich 5V, die Betriebsspannung beträgt 15V.
Mit den Werten liege ich innerhalb meiner Betriebsspannung (also 0...14.7V). Bloß komme ich nicht bis zu den erwähnten 14.7V...
Echt keiner?
Habe jetzt noch Folgendes getestet und gemessen:
- Die Spannung an A beträgt auch wirklich 14,7V. (Die Versorgungsspannung ist bei 15V)
- Die I²C-Frequenz spielt keine Rolle und wird korrekt erkannt (testhalber sogar bis 950kHz)
- Habe den Bus näher am Oszilloskop untersucht. Es stimmt alles. Die Adresse, das folgende Acknowledge, das darauffolgende Statusbyte, ein weiteres Aknowledge und schlussendlich das DataByte selbst (gefolgt von einem Nack).
Heißt also: Das IC bekommt alle korrekten Informationen.
Da könnte man glatt auf den Gedanken kommen, dass der Chip hinüber ist. Hast du einen zweiten AD5282 zum Vergleich (oder schon verglichen)?
Die Platine mit dem AD5282 funktioniert ja. Es geht um den fast baugleichen AD5280. Ich habe drei gleiche Testplatinen für den AD5280 bestellt und diese sind bereits alle bestückt, um einen Bauteildefekt auszuschließen. Funktioniert leider nach wie vor nicht, bei keinem aus der AD5280-Reihe. Also liegt ein systematischer Fehler vor. Oder ich sehe den Wald vor lauter Bäumen nicht mehr.
Sorry, hab nicht richtig gelesen.
Liefert die fragliche Spezies denn unterhalb von 141 proportionale Ausgangsspannungen? Welchen Nennwert hat sie, also R_AB
Ist auch garantiert nicht der rehostatische sondern der potentiometrische Mode aktiv? Würde das mit Schutzwiderstand und Nennwert des Chips als Spannungsteiler zusammenpassen?
Schaltungsfehler oder Lötpanne ist ausgeschlossen?
Ja, mit den Spannungen kleiner Registerinhalt 141 passt es hundertprozentig.
Mein aktuelles Testprogramm:
Lötfehler auf allen drei Testplatinen halte ich eher für unwahrscheinlich. Aber auch alle Kontakte auf korrekte Verbindung geprüft.Code:const uint32_t I2C_DIGIPOT_1 = 200000; // Nennwert des Widerstandes (nominell) const uint16_t Rlim = 3700; // strombegrenzender Widerstand const uint8_t Rw = 60; // Widerstand des Wipers i2c_start_wait(TWI_ADDR_DIGIPOT_1+I2C_READ); regRDAC1 = i2c_readNak(); i2c_stop(); // Aktuell eingestellten Widerstandswert berechnen, anhand des vorhandenen ausgelesenen RDAC-Registerinhalt digiRes = (uint32_t) (regRDAC1 + I2C_DIGIPOT_1) / 256.0 + Rw; // Die abfallende Spannung RWB berechnen digiVoltage_mV = (uint32_t) (1000.0*digiRes*15) / (Rlim + I2C_DIGIPOT_1);
Schaltungsfehler... Keine Ahnung, die Logikspannung ist eben 5V (Sowie auch !SHDN-Pin), die Versorgung beträgt 15V, Masse ist auf GND, sowie auch die negative Versorgung.
Am Punkt A kommen wegen des Rlim keine vollständigen 15V mehr an und damit liege ich innerhalb der Betriebsspannung.
Ähm... muss man diesen explizit einstellen? *zum Datenblatt hinlauf*Ist auch garantiert nicht der rehostatische sondern der potentiometrische Mode aktiv?
P.S.: Das Programm folgt also nach dem Codeschnipsel oben (wo der Wert zum Potentiometer übertragen wird). Hier ist die Ausleseprozedur und die Konvertierung nach mV dargestellt.
- - - Aktualisiert - - -
Ergänzung: Habe soeben noch die "Power Up Sequence" laut Datenblatt beachtet. Durch ein RC-Verzögerungsglied habe ich die Spannung am Punkt A später ansteigen lassen als die Betriebsspannung. Ebenfalls ohne Erfolg. Die abfallende Spannung RWB bleibt bei den 8V
Lesezeichen