Ich habe hier eine Anwendung mit einer SD-Card über SPI. Der Takt beträgt knapp 12MHz. Alles ist auf der gleichen Platine (13x10cm). Der Host läuft mit 5V und ich verwende Pegelwandler. Alles funktioniert. Nur leider ist die SD-Card sehr schwer zugänglich wenn die Platine eingebaut ist. Daher möchte für die nächste Version zwischen dem Host und der SD-Card eine Verlängerung, Flachbandkabel, einsetzen. Ideal wären so etwa 30cm. Frage, wo kommen die Pegelwandler hin, welche Leitungen sollte ich wo abschliessen und wie beschalte ich das Kabel am sinnvollsten? Und ist das überhaupt realistisch, respektive welche Taktfrequenz ist mit 30cm noch machbar? Gruss Peter
30cm bei 12MHz halte ich schon für arg optimistisch evtl möchtest du differenzielle Leitungstreiber verwenden.
Kommst Du denn überhaupt an die Software ran? Rund um die SD-Kartenleserei wird fast immer mit dem maximal möglichen Takt, auf dem Bus gearbeitet. Vor allem, bei einer Länge von 30 cm, wirst Du da Probleme bekommen. Die Geschwindigkeit wird aber immer vom Rechner (Master) vorgegeben. Diese wird aber fast immer - so sie denn variabel ist - wärend dessen Initialisierung (Software) festgelegt.
Ich habe Zugriff auf Alles, ich habe die Schaltung entworfen und die Software geschrieben. Ich weiss 12MHz und 30cm ist optimistisch. Ist aber kein need-to-have sondern nur ein nice-to-have. Also anders gefragt, was ist mit 30cm noch machbar ohne dass man auf aufwändige Schaltungen zurückgreift. Eben wo gehören die Pegelwandler hin, wie und wo schliesse ich die Leitungen ab und wie beschalte ich das Flachbandkabel.
Peter S. schrieb: > Also anders gefragt, was ist mit 30cm noch machbar ohne dass man auf > aufwändige Schaltungen zurückgreift. 12MHz sollten durchaus noch recht problemlos machbar sein. Nur mal zur Erinnerung: PATA lief mit bis zu 133MHz an bis zu 40cm langen Flachbandkabeln... Der Trick war einfach nur: jede zweite Ader im Kabel ist GND und es gibt eine (passive) Busterminierung, sprich: zwei (bei PATA auch: drei) Widerstände pro Signalstrippe. Im Falle von SPI mit einem Master und einem Slave fallen also drei Widerstände als Aufwand an (weil SCK nur unidirektional ist). Das hört sich für mich jetzt irgendwie noch nicht wie eine wirklich "aufwendige Schaltung" an...
Was für ein Prozessor ist es denn? Zusätzlich von den chater genannten Terminierungen bei PATA sollte der Ausgangstreiber dann auch nicht auf Vollgas gestellt werden, sondern so dasses grade reicht von der Anstiegszeit her. Nicht die Frequenz ist das Problem, sondern die Steilheit der Signalflanke.
Mw E. schrieb: > Zusätzlich von den chater genannten Terminierungen bei PATA sollte der > Ausgangstreiber dann auch nicht auf Vollgas gestellt werden, sondern so > dasses grade reicht von der Anstiegszeit her. Öhm, naja. Wenn zuviel Power vom Treiber kommt, macht man einfach die Widerständer größer. Bezüglich der Signale selber spielt das keine Rolle, bezüglich der eingehenden EM-Gülle ist es sogar besser, es erhöht das SNR. Nur bezüglich der abgestrahlten EM ist es natürlich schlechter. Aber so lange man nicht ein kommerzielles Produkt durch die EMV-Prüfung bringen muss... Who cares?
Meine Erfahrung mit SPI zeigt, dass vor allem der Clock mit den Daten synchron sein muss. D.h. bei der entsprechenden Flanke muss MISO stabil und richtig sein. Ich setzte übrigens einen Atmega ein. Der DS90LV019 ist schön, man kann ich mit 3 und 5V betreiben. Vielleicht sind differenzielle Leitungstreiber eh die einfachste Lösung.
Das ist immer so bei synchronen Bussen. Daher auch die Terminierung, damit keine Reflektion so stark wird, dass die Taktflanke verschliffen wird oder eine zweite erkannt werden kann. Welchen Atmega quälste denn mit 24MHz für 12MHz SPI Takt? Die gehn doch nur bis 20MHz. Mit LVDS baue ich auch demnächst was, aber das ist dann ein SPI mit 42MHz über 2m CAT5 RJ45. Da hab ich die TX/RX hier genutzt: https://www.mouser.de/ProductDetail/512-FIN1027AMX https://www.mouser.de/ProductDetail/926-D90LV012ATMFXNPB Die könn aber nur 3,3V, also dann eher für die SD Seite um ein paar Kosten zu sparen. (Der DS90LV019 ist doch recht teuer)
Ok ich geb's zu ich quäle den Atmega1284P, nicht ganz mit 24MHz sondern "nur" mit einem 22.1184MHz Baudratenquartz. Ich könnte natürlich auch nett sein und einen 19.6608MHz Bauratenquartz nehmen. Hatte ich aber als ich den Prototypen aufgebaut hatte gerade nicht zur Hand. Wie gesagt läuft es einwandfrei. Aber das ändert nichts an meinem Problem. Ich kann mir nicht vorstellen, dass es mit 10MHz SPI einfacher wird.
Peter S. schrieb: > welche Leitungen sollte ich wo abschliessen Serienterminierung immer direkt nach dem Treiber und 30cm sind kein Problem. Siehe dazu auch den Beitrag "Re: Serienwiderstand bei Hochfrequenz"
Peter S. schrieb: > SD-Card eine Verlängerung, Flachbandkabel, einsetzen. Ideal wären so > etwa 30cm. Kann man machen. > Frage, wo kommen die Pegelwandler hin, Naja, ist nicht so kritisch. Die kann man an den 5V Host oder die SD-Karte setzen. > welche Leitungen > sollte ich wo abschliessen Da bei SPI alles unidirektional ist, nimmt man Serienterminierung an den jeweiligen Ausgängen. Siehe Wellenwiderstand. > und wie beschalte ich das Kabel am > sinnvollsten? Im Idealfall legt man jede 2. Ader auf GND, siehe Artikel Wellenwiderstand. > Und ist das überhaupt realistisch, JA! > respektive welche > Taktfrequenz ist mit 30cm noch machbar? Wenn es sein muss 50 MHz oder mehr, wenn man weiß was man tut.
Arduino Fanboy D. schrieb: > 30cm bei 12MHz halte ich schon für arg optimistisch Ja, das "halten" ist so eine Tätigkeit. Ebenso wie das "meinen". > evtl möchtest du differenzielle Leitungstreiber verwenden. Quark^2.
Peter S. schrieb: > Ich weiss 12MHz und 30cm ist optimistisch. Ist aber kein need-to-have > sondern nur ein nice-to-have. Unfug! Das ist HF-mäßig bestenfalls Lehrlingsniveau!
Also einfach mal ausprobieren würde ich sagen. Serienterminierung und jede zweite Ader auf GND scheint wohl das Minimum zu sein. Ich mache mal sicher auch einen Aufbau mit differenziellen Leitungstreiber. Auf der Host Seite 5V Versionen und auf der SD-Card Seite 3V Versionen, der Mehraufwand zu den normalen Pegelwandler die ich eh benötige hält sich ja in Grenzen. Falls es jemanden interessiert es geht um einen RLV12 Emulator für eine PDP-11. Der Prototyp läuft wie gesagt einwandfrei. Aber eben die SD-Karte ist sehr schlecht zugänglich wenn der Einschub im Bus steckt. Ideal wäre eine Verlängerung bis zum Breakout Panel, das ist je nach Position 25-80cm entfernt.
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.