-         

Ergebnis 1 bis 10 von 10

Thema: Problem bei ADWandlung mit PCF 8591

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.02.2005
    Beiträge
    76

    Problem bei ADWandlung mit PCF 8591

    Anzeige

    Moin Moin
    Mein Problem: Ich spreche über die LPT Schnittstelle einen PCF 8591 an und es funktioniert auch einigermaßen. "Einigermaßen" heißt das der PCF8591 auf mein Addressbyte reagiert, aber teilweise ganz falsche Werte zurückliefert.
    Die Spannung am Eingang regel ich mit einem Poti zwischen 0V und 5V, ne Versuchsreihe hat ergeben, dass bis 2,5V der Wert den der PC ausgibt um den Faktor 2 falsch ist sobald die 2,5V Marke überschritten ist sind die Werte um den Faktor 1/2 falsch. Hier nochmal aufgeschrieben:
    (KA heißt keine Acknowledge beim senden des Addressbytes vom PCF empfangen)

    U[mV](Voltmeter) --> U[mV](PC)
    0 --> 20
    200 --> 500
    850 --> 1700
    1200 --> 2420
    1250 --> 2540
    2000 --> 3900
    2500 --> 4940
    3000 --> 900 KA
    3500 --> 1780 KA
    4000 --> 2740 KA
    4500 --> 3700 KA
    5000 --> 5100 KA

    Also hat jemand eine Idee wodran es liegen könnte? Das Programm, was ich geschrieben habe scheint an sich zu funktionieren. Es könnte auch irgendein elektrotechnisches Problem sein, also Pull-up's oder Pull-down's hab ich gar nicht eingebaut, da ich gar nicht genau weiss wozu diese Widerstände gebraucht werden.

    Ach ja, zur Pinbelegung an AIN0 liegt der Schleifer des Potis an, die Pins der Hardware Addresse liegen alle auf GND, genauso wie AGND, Vss und EXT. An Vref und Vdd liegen 5V an.

    Ich bin für jede mir weiterhelfende Antwort sehr dankbar!
    mfg crowdy

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2004
    Beiträge
    275
    Du solltest dich bei der Ansteuerung des PCF's schon an das I2C Protokoll halten. Lese dir mal die Seiten dazu hier im Forum durch.
    Die Pullups solltest du nicht weglassen....

    mfG
    Batti

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.02.2005
    Beiträge
    76
    JO!
    Vielen Dank das werde ich auf jeden Fall machen, aber woher weiss ich wie hoch die Widerstände sein müssen.
    Und die werden dann zwischen 5V und den SCL und SDA gelegt, oder?
    mfg crowdy

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo crowdy!
    Genau, die pull-up Resistoren sollen der H Pegel auf den SCL und SDA Busletungen halten, wenn kein, von den an die I2C Bus angeschlossenen Modulen, sie auf L zieht. Du kannst von 4,7 kOhm ausgehen und abhängig von I2C Frequenz und Belastung durch angeschlossenen Module, dementsprechend ändern.
    MfG

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    04.02.2005
    Beiträge
    76
    Hi
    Danke für die Antwort, hab's gleich ausprobiert. Es hat aber nicht geklappt. Könnte es sein das der PCF vielleicht beschädigt ist und deshalb falsche Werte zurückliefert?
    Hab zwar eine IC Fassung benutzt, um sicher zu sein das der Baustein beim Löten nicht zu heiß geworden ist, aber vielleicht wurde er irgendwie anders beschädigt.
    Das wars erstmal morgen schreib ich noch was zur Schaltung und dem Programm
    mfg crowdy

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    29
    Beiträge
    194
    Wie sieht denn das Control-Byte aus das du ihm schickst?

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.02.2005
    Beiträge
    76
    Moin Moin
    Control-Byte?
    Nee ich sende gar keins, da beim auslesen der Spannung so wie ich es dem Datenblatt des PCF 8591 entommen habe kein Controlbyte gesendet werden muss (Auf Seite 9 Figure 9)

    Hier das DB


    Dann wollte ich auch noch etwas zur Schaltung schreiben und zwar wird das SCL-Signal durch einen NE555 Baustein erzeugt dessen Signal auf den PCF und die LPT Schnittstelle gegeben werden. Hier der Plan ich hoffe man kann alles erkennen! Die Pull-ups hab ich leider vergessen einzuzeichnen!



    Das Programm werde ich später nochmal einfügen, da ich im Moment noch dabei bin alles umzuschreiben.

    Bis denn!
    mfg crowdy

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    29
    Beiträge
    194
    Ich habe zwar den PCF8591 bis jetzt nur im D/A-Modus verwendet aber ich glaube, dass man ihm im A/D-Modus trotzdem zuerst ein Control Byte senden muss(zur Channel Auswahl, Auto-Increment, ...)
    Versuch einmal bevor du die A/D-Werte abrufst ihn ein Control-Byte zu senden indem du ihn zuerst mit der Write-Adresse aufrufst.

    Als Control-Byte müsste 00h gehen...

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    04.02.2005
    Beiträge
    76
    Nun hab ich auch mal mit einem Controlbyte probiert eine Spannung auszulesen. Es hat aber auch nicht funktioniert. Die Spannungen verhalten sich genause wie in der oberen Tabelle. Das Controlbyte hatte den Wert 0 und das Addressbyte den Wert 145.
    Bitte helft mir, ich versuche schon seit mehreren Wochenenden das teil zum laufen zubringen und ich biin am verzweifeln.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    29
    Beiträge
    194
    als du das Controlbyte gesendet hast, hast du da als Adressbyte 145 verwendet?
    Wenn du ihm etwas sendest, musst du ihn schon im WRITE-Mode aufrufen (Adressbyte 144)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •