-         

Ergebnis 1 bis 10 von 10

Thema: Pcf8591

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.06.2010
    Ort
    Schleswig Holstein
    Alter
    23
    Beiträge
    18

    Pcf8591

    Anzeige

    Ich habe mir die AD-Wandler erweiterung gekauft und nach folgender Seite angeschlossen und programmiert:
    AsuroWiki - I2C Analog Porterweiterung
    AGND habe ich am Kondensator an GND geschlossen

    Nun habe ich erstmal einen Lichtsensor auf AIN1 angeschlossen und die anderen erstmal leer gelassen

    Wenn ich jetzt versuche Irgendetwas auszulesen hört das Programm hier auf:
    PHP-Code:
    read_pcf8591_adc(unsigned char adc)
    {
    unsigned char ret;  
    unsigned char byte 0;
    i2c_start(0x90);  //<--wird nicht vollendet
    ...

    Ich vermute mal der PCF8591 sendet kein Acknowledge, aber ich weiß nicht warum =/
    Adresse stimmt
    Schaltung sollte auch stimmen. (Es sei den im Datenblatt wir bei der Pinbelegung der Controller von unten gezeigt)

    Ich hoffe ihr könnt mir irgendwie helfen

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hast du an die PullUps an SDA und SCL gedacht? R1 und R2 bei der LCD-Erweiterung per I2C:

    http://www.asurowiki.de/pmwiki/pmwik...LCDErweiterung
    Geändert von radbruch (09.04.2011 um 22:37 Uhr) Grund: Link zum LCD-Schaltplan eingefügt.

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    21.06.2010
    Ort
    Schleswig Holstein
    Alter
    23
    Beiträge
    18
    Sind die nicht auf der ASURO-Platine mit R14 - 15 vorhanden?
    Ne, seh grad die sind beim LCD dran.
    Vielen Dank, ich versuch das einmal.
    Gibt es Probleme, wenn ich später die LCD-Erweiterung zusätzlich am Bus habe und dann 2 Pull-Ups sind je Leitung sind?

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Wie du in dem Quellcode sehen kannst auf die Wiki seite, ist i2c_start ein Funktion der die Acknowledge bit zuruck geben soll.

    ...
    //liest einen ADC Wert vom PCF8591
    unsigned char read_pcf8591_adc(unsigned char adc)
    {
    unsigned char ret;
    unsigned char byte = 0;

    ret = i2c_start(pcf8591_address+I2C_WRITE); // Sende Start Condition
    if (ret == 0)
    ret = i2c_write(adc); // Senden des Control Bytes startet die A/D Wandlung
    i2c_stop(); // Sende Stop Condition, Bus freigeben
    ...
    Auf Basis der Zuruckgegeben wert kannst du zbs. ein LED leuchten lassen, den Wert uber UART senden, oder was sonnst damit Asuro dich mit teilt "etwas is schief!".

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    R14 und R15 (je 20k) ziehen die Pins gegen GND. Beim I2C werden die Pins aber als OpenCollector betrieben, ein High wird durch einen hochohmigen Ausgang in Verbindung mit dem PullUp (der gegen 5V geschaltet wird) erzeugt. So kann bei Bedarf ein auf High stehender Pin durch ein Low vom Bus beeinflußt werden, ohne das der High-Pin durchbrennt.

    Pro Bussystem benötigt man die PullUps jeweils nur einmal. Wenn du später die LCD-Erweiterung dazubaust, mußt du deren PullUps nicht einbauen.
    Geändert von radbruch (09.04.2011 um 23:04 Uhr) Grund: Link zum Open Collector eingefügt

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    21.06.2010
    Ort
    Schleswig Holstein
    Alter
    23
    Beiträge
    18
    Es passiert gar nichts.
    Das Programm hört definitiv auf zu laufen.
    Ich schau mal morgen ob ich noch 2 wiederstände habe und probier es damit mal aus

    @ radbruch danke nochmal ich nehm die beim Display raus und benutze diese; klappt schon =D

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Zitat Zitat von red13 Beitrag anzeigen
    ..
    Gibt es Probleme, wenn ich später die LCD-Erweiterung zusätzlich am Bus habe und dann 2 Pull-Ups sind je Leitung sind?
    Ich erkundige mich auch seit kurz in i2C. Den 2 Pull-ups pro Leitung stehen dann quasi im Parallel-schaltung. 2 sind dann immer starker als eins. Die Faust-regel der ich gefunden habe ist das die Pull-ups minimal (Vcc-0.4v)/3mamp sein sollte. Was schief geht wenn der beiden gesamt weniger Widerstand haben weiss ich nicht.

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Bei meinen ersten Versuchen mit I2C (RP6, arm64 und zwei PCF8574) hatte ich erst Erfolg nachdem ich zu den serienmässigen 4k7-PullUps des RP6 (R32, R33) noch jeweils einen 1k dazugeschaltet hatte. Grenze sind wohl die 20mA pro Pin, also ca. 250 Ohm Gesamtwiderstand:

    http://www.roboternetz.de/community/...l=1#post488207

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Dieses Artikel hat mir viel Erklärt:

    http://www.dsscircuits.com/articles/...resistors.html

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    21.06.2010
    Ort
    Schleswig Holstein
    Alter
    23
    Beiträge
    18
    hab jetzt nur einmal 4k7 und das klappt super
    danke euch

Ähnliche Themen

  1. Projekt PCF8591
    Von stechmach im Forum Asuro
    Antworten: 23
    Letzter Beitrag: 07.03.2010, 17:19
  2. PCF8591 mit I2C Bus
    Von bedboy27 im Forum Robby CCRP5
    Antworten: 1
    Letzter Beitrag: 23.10.2007, 21:37
  3. PCF8591
    Von dagrato im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 25.06.2006, 23:05
  4. PCF8591
    Von War-Tux im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 08.06.2006, 15:58
  5. Problem mit I2c - bus und PCF8591
    Von stefan1275 im Forum C - Programmierung (GCC u.a.)
    Antworten: 15
    Letzter Beitrag: 22.11.2005, 18:40

Berechtigungen

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