Forum: Mikrocontroller und Digitale Elektronik SHT75 mit Atmega32 am stk500


von Martin H. (Gast)


Angehängte Dateien:

Lesenswert?

Schönen Guten Morgen!

Ich möchte den SHT75 an meinem mikrocontroller atmega32 auf dem stk500 
anschließen. Soweit so gut! Arbeite mit dem AVR studio 6.

Habe dazu mir den Quellcode von mc-project besorgt und den mit einem 
funktionierenden LCD code zur Ausgabe der messwerte verbunden. Alle 
Dateien oben angefügt.

in der sht75_funzlcd ist die main drin.

Habe das Display an PORTD angeschlossen und es funktioniert.
Der SHT75 ist an PORTB angeschlossen CLK an PB1 Data an PB2 und VDD an 
VTG bei PORTB und GND an GND bei PORTB. Den 10kohm Widerstand habe ich 
auch zwischen Data und VDD.

Alles lässt sich kompilieren und bilden danach habe ich den 
microcontroller via ISP geflasht. Jetzt zeigt er mir nur immer bei 
temperatur -40C an also den Wert in der Formel und nichts anderes! Habe 
schon den Takt bei Board settings verändert von 3,686 MHz auf 60kHz aber 
hat leider auch nichts gebracht.

Vielleicht noch zur Info habe knapp 50cm leitung vom board bis zum 
Sensor.
Im Datenblatt steht, dass es für Version4 sensoren ist und das ekennt 
man am B2G was auf dem Sensor steht nur auf meinem sensor steht dv1 habe 
nur nicht gefunden was das bedeutet. Vielleicht spielt es ja eine Rolle! 
Wurde vor 2 Wochen gekauft (farnell).

Würde mich über Hilfe freuen ich habe keine Ahnung woran es liegen 
könnte und bin auch noch nicht so tief in der ganzen Materie aber 
gewillt dazu zulernen. Vielleicht sieht einer von euch direkt auf einen 
blick den Fehler oder kann mir anderweitig weiterhelfen alle anderen 
themen die es dazu gibt haben mich nicht weiter gebracht!


zur vollständigkeithalber hier die fuses (kenn ich mich gar nicht mit 
aus)

jtagen   haken
spien    haken
bootsz   2048w_3800
bootlevel 2v7
sut_cksel  intrcosc_1MHZ_6CK_64ms_default

alle anderen kein häkchen


Vielen Dank

Martin

von Martin H. (Gast)


Lesenswert?

So durch weitere Tests habe ich nun herausgefunden, dass er irgendwo in 
der funktion

measure_temperature_sht()

hängen bleibt, da auf dem Display nur das T angezeigt wird und alles was 
danach kommt wird nicht mehr gemacht!

Sobald ich die Zeile

double t = measure_temperature_sht();

weglasse bekomme ich TC Instrumentierung angezeigt!

Also bleibt er irgendwo in der ermittlung der temperaturfunktion hängen!

Nur wo?

Denke mal das liegt daran, dass die Zeiten nicht eingehalten werden! nur 
ich tu mich verdammt schwer das zu verstehen!

Oder weist das vielleicht daraufhin, dass der mittlerweile vielleicht 
kaput ist!

Habe zudem noch gelesen gehabt, dass viele Probleme mit zu langer 
leitungslänge haben und deshalb den 10kohm pullup auf der data gegen 
einen 7,5kohm ausgetauscht.

Würde mich über Hilfe freuen

Vielen Dank Martin

von Martin H. (Gast)


Lesenswert?

Keiner hat einen Rat für mich?

von Karsandra (Gast)


Lesenswert?

Hallo Martin,

nun, wenn Du nur -40°C siehst, dann wird der Sensor nicht ausgelesen. D. 
H. er erkält kein gültiges Kommando-Byte um irgendetwas zu tun.

wenn Du nur mit ISP Deinen Controler beatmest, dann wird es sehr 
schwierig werden, den Softwarefehler zu finden. Vorausgesetzt es ist 
einer.

Ich habe jetzt keine Zeit den Code durch zu gehen. Aber kannst Du 
messen?

Vielleicht sind nur SCL und SDATA vertauscht. Passiert mir manchmal 
auch.

Falls Du Deiner Meinung nach alles richtig gemacht hast, dann solltest 
Du im Code die Stelle suchen, wo der SHTxx den Acknoledge-Slot auf 
Logisch 0 ziehen muss. Da setze Dir mal eine Abfrage mit einer LED rein.

Wenn Du keine Möglichkeit hast, Signale aufzuzeichnen und anzeigen zu 
lassen. Dann baue Dir Tastenabhängige While-Schleifen in den Code und 
überprfüe so, ob die Pegel wirklich richtig gesetzt werden.

Der SHT ist statisch treibbar. Also brauchst Du keine 
Mindestgeschwindigkeit beachten.

So, mehr kann ich gerade nicht für Dich tun.

Viel Glück.

von Daniel B. (dbuergin)


Lesenswert?

Hallo

Ich vermute mal dein Kabel ist zu lang. Alles über 10cm bereitet
Probleme. Ich habe es 1 x mit 10m und zweimal mit 3m geschafft, aber
nur mit abgeschirmtem CAT-5 Kabel, den richtigen Litzen in dem
Kabel, und mehrstündigem justieren der Auslesegeschwindigkeit.
Seeeeeeeeehr mühsam ;-)

Ich würde mal mit einem ganz kurzen Kabel problieren 2-3cm.
Wenn es dann läuft, kannst Du das Kabel verlängern. Eventuell musst
Du dann mit einem Oszi ausemssen, was auf dem Kabel passiert.

Gruss

Daniel

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.