Hi all, hat schon einmal jemand zuverlässig mit der Temp-Sensor-Reihe von Maxim MAX66xx (genau hab ich den MAX6630) die Temp ausgelesen? Ich bekomme von dem Teil hier aufm Schreibtisch 0011001000010000 zurück, das währen dann stolze 100,125 Grad ?!? Jemand Erfahrungen mit den Teilen? Gruß Micha, PS: Wenn jetzt jemand nach Quellcode fragen sollte, selbst mit dem Funktionsgenerator bringt er den Müll auf DO raus! Ja, mit dem Oszi sehe ich das, ...das gleiche! :)
Hallo Micha, Wie wir das Problem lösen können, weiß ich noch nicht. Bei mir läuft ein (bzw. zwei) MAX6630 problemlos über SPI an einem MSP430F149. Was würde Dir evtl. weiterhelfen? MfG Wolfgang
Hallo Wolfgang, vielen Dank für deine schnelle Antwort. ja, wie das Problem zu lösen ist, ist echt eine gute Frage. Ich habe alles nochmals durchgeschaut und auch das Timing bestimmt hundert mal kontrolliert. Nix! Ich hab das Timing zu Fuss Programmiert auf einem AVR. CS Low, Tcss sicher verstreichen lassen und dann Clock für Clock... laut Datenblatt halt. Mit den Patterngeneratur macht er das gleiche. Wobei man sagen muss, bei den Timing kann man auch nicht viel falsch machen! :) Kann du vielleicht mal dein Quellcodeschnippsel posten, soweit es nicht Gehiem ist? :) Hier mal mein Part in C (Assembler's bin ich aber auch Mächtig!) [C-CODE START] void GetTempMAX6630( void ){ volatile unsigned char i; cbi( PORTF, Bitmask_TempCS ); asm( "nop" ); for ( i = 0; i < 16; i++ ){ sbi( PORTF, Bitmask_TempSCK ); asm("nop"); // Sample Bit auf TempSO temp = inp( PINF ); if( temp & Mask_TempSO ){ StreamBufferTEMP[ i ] = HIGH; asm( "nop" ); } else{ StreamBufferTEMP[ i ] = LOW; asm( "nop" ); } cbi( PORTF, Bitmask_TempSCK ); asm("nop"); } sbi( PORTF, Bitmask_TempCS ); asm( "nop" ); TempReceiveFlag = TRUE; } [C-CODE ENDE] Sag mir jetzt bitte, ich hab was Übersehen, dann wäre ich Froh! Dank&Gruß Micha,
Leider versteh ich Dein Programmteil nicht, da: a) meine Programmierkünste zu unterentwickelt sind b) keine Verdrahtung angeben ist c) zu viel englisch (ist mein Problem) d) nichts kommentiert ist vermutlich wird CS\ nicht richtig gesteuert bzw. die Wandlungszeit wird nicht eingehalten dazu kann ich im Programm nichts erkennen (aber s.o.) als Anhang einige Ausschnitt aus meinem Programm; da ist nichts geheim, aber der Programmierstil ist noch verbesserungsbedürftig MfG Wolfgang
Hallo Wolfgang, vielen Dank für deine Hilfe, zwischenzeitlich hat sich das Problem geklärt. Es war versehentlich der MAX6629 draufgelötet, nicht der MAX6630! Beide haben unterschiedliche Pinouts! Naja, zum Glück alles mit einer Lötbrück behebbar, jetzt tut das Teil Einwandfrei! Gruß&Dank Micha,
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.