Hallo zusammen, ich habe ein kleines Problem bei der Implementierung eines SPI Slaves. Ich habe ein Gerät mit einem SPI(-Master)-Interface. Jedoch sind hier die Pegel nicht einfach 0V und VCC. Der High-Pegel ist 3.3V bzw. 5V und der Low-Pegel ist 2.2V. Im inaktiven Zustand ist der Pegel 0V. Das gilt sowohl für SCK, MISO als auch MOSI. (siehe angehängtes Bild von SCK und MISO). Der Clock beträgt 200kHz. Das SCK und MOSI Signal ist kein Problem, das schicke ich einfach über 3 Komparatoren (einen extra für Active/Inactive), nur wie kann ich die gewünschten Pegel über den Hardware-SPI eines µCs am einfachsten ausgeben? Ich hatte schon darüber nachgedacht den "GND" des µC auf 2.2V zu legen, dann müsste ich den Eingang nur vor der negativen Spannung schützen nur beim Ausgang auf 0V zu bringen wäre dann nicht mehr ganz so einfach. Eine weitere Überlegung war einen Spannungsteiler zu machen und den "oberen" Widerstand mit einen Transistor bzw. P-MOSFET zu überbrücken wenn ich 2.2V haben will. Aber gibts da nicht eine sauberere/elegantere Lösung? Gibts vielleicht sogar ICs?
Bist du sicher, dass die Pegel "Pflicht" sind und nicht einfach nur ein (Mess-)fehler irgendwo in deiner Schaltung. Die 0V bei Z klingen so als ob dein Oszi einfach die (hochohmige) Rail auf seinen Referenz-Gnd (da wo du Masse angeklemmt hast) zieht. Der "nicht nullige" low sieht aus wie eine Verschiebung deiner Messwerte weil du nicht die Gleiche Masse wie das SPI-Interface verwendest...
Max D. schrieb: > Bist du sicher, dass die Pegel "Pflicht" sind und nicht einfach nur ein > (Mess-)fehler irgendwo in deiner Schaltung. Die 0V bei Z klingen so als > ob dein Oszi einfach die (hochohmige) Rail auf seinen Referenz-Gnd (da > wo du Masse angeklemmt hast) zieht. Ja die >3V für High und 2.2V für Low sind Pflicht. Die 0V für "inaktiv" auch. Das "Z" habe ich jetzt einfach mal genommen um den Titel kurz zu halten, eigentlich ist es nur der inaktive Status und nicht Hochohmig. Die 0V werden aktiv getrieben, mir würde es aber reichen wenn der CS auf auf High geht dass der Ausgang auf 0V geht.
Für die Erzeugung von 3,3 V und 2,2 V reicht ein Spannungsteiler mit zwei widerständen in serie gegen Masse von denen einer mit nem Mosfet kurzgeschlossen wird und für 0 V ziehst du einfach deinen Anschlusspunkt (also "über" dem 2. R auf Masse) -> fertig. Das MISO wird hald vorher einmal invertiert NPN-Transe + paar Kohm nach Vcc. Den "inactive" Transistor musst du hald mit dem CS treiben und fertig is die Laube :D
Ja das habe ich mir ja auch schon überlegt, wie im Ausgangspost beschrieben. Aber irgendwie erscheint mir das etwas unsauber, zumal ich nicht genau weiß ob der MISO beim Master immer "so" hochohmig ist. Das würde bedeuten dass ich den Spannungsteiler profilaktisch recht niederohmig machen würde was wiederum zu einer erhöhten Stromaufnahme führen würde.
Wenn du Ärger vorbeugen willst schalt hald zwischen den Pin vom Master und den Spannungsteiler noch nen (nicht zu großen) R, bei richtiger Dimensionierung verwischt der das Signal nur unwesentlich und begrenzt den KurzschlussStrom trotzdem auf ein für alle Partner erträgliches Niveau (AVRs halten laut db z.b. 40 mA aus)...
Max D. schrieb: > Wenn du Ärger vorbeugen willst schalt hald zwischen den Pin vom Master > und den Spannungsteiler noch nen (nicht zu großen) R, bei richtiger > Dimensionierung verwischt der das Signal nur unwesentlich und begrenzt > den KurzschlussStrom trotzdem auf ein für alle Partner erträgliches > Niveau (AVRs halten laut db z.b. 40 mA aus)... Ja nur die Batterie hält dann nicht so lange. Wollte da so ein 30-50mAh Lipo reinhauen und die Kapa wollte ich eigentlich nicht für den SPI verballern.
ich dachte die fehlende Hochohmigkeit bei dem Master wäre nur in einem "unsauberen" fall zu finden (reset, aufgehängt oder so), wenn der immer an dem MISO rumzerrt dann würde ich über einen wechsel des Host-interfaces nachdenken. PS: der Spannungsteiler zur Erzeugung der 2,2 und 3,3 V lässt sich zur not sehr hochohmig aufbauen und mit nem µA opamp puffern...
Ja hochohmig würde man bei einem normalen SPI MISO erwarten. Aber ich weiß nicht wie das generell aussieht. Ich glaube ich werde es einfach mal ausprobieren müssen. Evtl. hat der Master sogar einen Pulldown der bei "Z" des Slaves auf 0V zieht. Ich weiß nur nicht inwieweit ich mich darauf verlassen kann, da das halt alles nicht so richtig SPI ist, bis auf die Kommunikation ansich. Aber das mit Spannungsteiler und OPV ist schonmal eine gute Idee... Danke erstmal für deine Hilfe.
Was ist das überhaupt für ein komisches Gerät? Vlt. hat da ja schonmal jemand dran rumgefummelt, google liefert vlt. hilfreiche Ergebnisse ...
"Der Gerät" ist ein Canon ETTL-Blitz"gerät" ;) Bisher haben sich die meisten nur mit dem "Sniffen" nicht aber mit der aktiven Kommunikation beschäftigt. Gibts auch einige Seiten (Bill Grundmann und http://81.216.246.116/e/ettl/, die es leider nicht mehr gibt). Aber wie gesagt, die haben alle nur gesnifft, ich will noch etwas mehr als nur sniffen.
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.