mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2148 und SHT11


Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ihr alle,
hab mir einen sht11 zugelegt und will den nun mit meinem lpc2148 
auslesen.

hab den code von der sensiron seite genommen und entsprechend auf den 
lpc2148 gemappt, aber irgendwie geht's nicht. er liefert mit immer die 
fehlernummer 2.

was kann ich noch machen???

schonmal danke im vorraus!!!

Gruß

Jessica

Autor: Jessi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
man sollte den anhang schon mit dranhängen!!!

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist Einiges im Argen:

(1) Sensirion Beispielcode ist für 8051 mit open-collector Ausgängen. 
Mit Ausnahme der "I2C Pins" sind beim LPC2k die Ausgänge Push/Pull. Bei 
"DATA_HIGH //release DATA-line" entspricht Anweisung nicht Kommentar 
falls keine "I2C-Pins" verwendet werden also eben kein "bus release". 
IO1DIR für push/pull wäre Pin als Eingang konfigurieren (IO1DIR) 
(+externer Pullup)

(2) if (IOSET & DATA) zur Abfrage des Zustands an Data-Pin: LPC2k User's 
Manual nochmal zu Gemüte führen und Unterschied zwischen IO1SET und 
IO1PIN nachvollziehen

(3) Werden die Maximalfrequenzen/Wartezeiten eingehalten? vgl. SHT 
Datenblatt. Im Zweifel mit Scope testen.

(x) komische Makroverwendung mit ;

Martin Thomas

Autor: Gerhard. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das bei einer AVR Portierung(CV) so gemacht dass ich den PIN 
input output modus entsprechend dem jeweiligen I2C Befehl immer 
umgeschalten habe und das hat auf Anhieb funktioniert.

Die Funktion sht11_handler() wird durch Timer Interrupt alle 5ms im 
Hintergrund aufgerufen und die SHT11 Werte sind automatisch immer auf 
den neuesten Stand.

Hoffe es hilft Dir weiter,

Gerhard

P.S: Habe vor diesen SHT11 code auch auf ARM2148 umzuportieren

Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich danke euch schon mal sehr für eure antworten und werde gleich mal 
eure vorschläge ausprobieren!!!

ein dickes danke an euch!!!

Jessica

Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ mthomas

zu (1) das was du da schreibst verstehe ich nicht so ganz, kannst du mir 
das vielleicht nochmal genauer erklören??

zu (2) oohh, mein fehler, nach gelesen und geändert

zu (3) timings sind ok. habe ich mit Scope überprüft.

zu (x) ja ich weiss ist ja auch nur testweise so


@ Gerhard.
habe mir deinen code noch nicht genau angeguckt werde dies aber gleich 
tun. hast vielleicht zufällig schon den code auf den lpc portiert??



vielen vielen Dank für eure bisherige Hilfe

Jessica

Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir denn keiner helfen???

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>zu (1) das was du da schreibst verstehe ich nicht so ganz, kannst du mir
>das vielleicht nochmal genauer erklören??

Ich "erklör" doch gern, ist aber bei so unspezifischen Fragen nicht so 
einfach und kostet Zeit. Was ist nicht zu verstehen?

Des geht einfach darum, dass die Data-Leitung beim Lesen nicht vom LPC 
'festgenagelt' sein darf, sondern der Sensor diese beim Senden auf low 
ziehen kann.

Am einfachsten dürfte es sein, einen der I2C-Pins des LPC2k für Data zu 
nutzen (externen Pull-Up nicht vergessen), diese sind 
open-collector/open-drain und man braucht dann nicht viel anzupassen.

Ansonsten bei anderem Pin ebenfalls externen Pull-Up-Widerstand an Data 
(vgl. SHT Datenblatt/Appnote) Alternativ: Pins an Port1 von LPC213x/4x 
z.B. haben interen Pull-Ups. Im Prinzip:
- Data Ausgabe high : iodir=0 (Eingang), der pull-up 'zieht auf high'
- Data Ausgabe low: ioclr / iodir=1 (Ausgang)
- Data Eingabe: iodir=0 (Eingang) / iopin lesen
(Lässt sich optimieren: Ausgangsregister kann meist 'set' bleiben und 
geschaltet wird nur per iodir.)

> zu (3) timings sind ok. habe ich mit Scope überprüft.
Und wie sah das auf dem "Scope" aus, als der SHT auf der Data-Line 
antworten sollte?


Martin Thomas
(und nein, ich habe keinen fertigen LPC2k-Code für SHTs)

Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, super, vielen Dank. Jetzt hab ichs besser verstanden. Also schließe 
ich am besten die DATA-Leitung an P0.3 (SDA0 I2C0) an und die 
CLK-Leitung an irgendeinen anderen Port. Muss ich dann P0.3 im PINSEL0 
Register als SDA0 definieren oder normal als GPIO??

Zur Scope-Sache:
Am Scope konnte man sehen, dass vom SHT kein Acknowledge kam.

vielen vielen Dank.

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Muss ich dann P0.3 im PINSEL0 Register als SDA0 definieren oder
> normal als GPIO??
Letzteres. Der Beispielcode "schaltet" den Pin und nutzt keine I2C 
Hardware (SHTxx sind ohnehin keine "richtigen" I2C devices)

Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das heisst also, wenn ich die daten- und clockleitung an die io-pins mit 
den open-kollektor-ausgängen (i2c-pins) angeschlossen hab, muss ist der 
port durch ein  IOSET auf HIGH gezogen (durch die pull-ups) und durch 
ein IOCLR auf LOW gezogen!? Und das IODIR bleibt die ganze zeit auf "0" 
???

richtig???

ich danke dir vielmals für deine bisherige Hilfe

Gruß

Jessica

Autor: Jessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich weiss, es ist nervig, aber kann mir keiner helfen!

ich wäre euch so dankbar!!

Gruß

Jessica

Autor: Gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kein schöner Code aber es geht :-)
Code ist aber füe einen 87C196

Gruß
   Ich

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.