Max6675 & ATmega16 - bekomm ihn nicht zum laufen

Gast #785190
Lesenswert?

Hallo!

Ich quäle mich schon seit Wochen herum und bekomme einfach keine 
brauchbaren Daten ausgelesen.

Ich bin nun soweit, dass ich den Max6675 direkt an den µC gelötet habe:

Max -> AT16
----------------
SO -> MISO
SCK -> SCK
/CS -> PORTB.1

ATmega läuft mit 8MHz und Entwicklungsumgebung ist CodeWizardAVR 
V1.25.5.

Die gelesenen Bits lasse ich dann zu Diagnosezwecke auf einem LCD 
ausgeben.
Ergebnisse sind momentan endweder lauter einsen oder lauter nullen. Den 
Zustand kann ich lustiger weise durch herumfingern am MISO Pin 
beeinflussen (0/1 oder nen flimmern zwischen beidem).

Ich bin inzwischen mit meinem Latein am Ende, gibts da noch irgendetw. 
was ich übersehe? Irgendwelche Fuses die sich negativ auswirken können? 
Oder ist eine weitere Beschaltung notwendig um für saubere signalpegel 
auf den Datenleitungen zu sorgen?

Beispielquellcode liegt bei.

Vielen Dank schon einmal für eure Hilfe!
Max M.
Angehängte Dateien:
Gast #785233
Lesenswert?

Du musst die Select-Leitung auf High ziehen, 220ms warten (!), dann auf 
Low ziehen. Das aktiviert den SPI-Ausgang des IC. Erst dann kannst Du 
die Daten abholen. Danach Select wieder auf High. Ob man für ein IC, das 
4 Werte pro Sekunde liefert, wirklich Hardware-SPI machen muss, sei mal 
dahingestellt (der MISO-Pin ist damit unnötigerweise geopfert). PS: hat 
zufällig jemand MAX6675-Samples übrig?
#785253
Lesenswert?

fhMaGeek wrote:

> /CS -> PORTB.1
> DDRB=0xB0;

Also DDRB.1 = 0 (Eingang) !!!
/CS sollte aber schon Ausgang sein.


> Ergebnisse sind momentan endweder lauter einsen oder lauter nullen. Den
> Zustand kann ich lustiger weise durch herumfingern am MISO Pin
> beeinflussen (0/1 oder nen flimmern zwischen beidem).

Daß ohne /CS der MISO floated, is ja wohl klar wie Kloßbrühe.


Peter
Gast #785564
Lesenswert?

> 220ms warten (!)

ARGH Das wars!
Hatte bei meinen Früheren Projekten immer über Timer alle paar Sekunden 
den Wert aktuallisiert

Vielen lieben Dank für den Tipp! Hatte es schonmal mit einer Verzögerung 
von 100ms probiert, aber das war wohl knapp daneben...

Gruß!
Max

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren