Forum: Mikrocontroller und Digitale Elektronik Max6675 & ATmega16 - bekomm ihn nicht zum laufen


von fhMaGeek (Gast)


Angehängte Dateien:

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.

von Falk B. (falk)


Lesenswert?

@ fhMaGeek (Gast)

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

Und was ist mit SS am AVR?. Das MUSS als Ausgang geschaltet werden, wenn 
das SPI-Modul verwendet wird.

AVR-Tutorial: Schieberegister

MfG
Falk

von fhMaGeek (Gast)


Lesenswert?

confused
Sollte schon als Ausgang definiert sein:

DDRB=0xB0;

Habe jetzt SS spaßeshalber noch als ChipSelect probiert, bringt auch 
keine Änderung.

Gruß
Max

von Dietmar E (Gast)


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?

von Peter D. (peda)


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

von fhMaGeek (Gast)


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

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.