Hallo, Ich habe mal eben eine Frage: Ich will einen PIC (SPI-Master) und einen Analog DSP über SPI verbinden. Der PIC erkennt die H-Ausgangspegel des DSPs als High, nur die H-Ausgangspegel des PICs sind für den DSP zu hoch...wie euch ja sicherlich bekannt ist... Wenn ich jetzt einen Levelshifter-IC verwende, reicht es ja, nur die Datenleitung (MOSI/PIC->DSP) und die Clock-Leitung zu shiften, oder? Aber was ist dann mit der Datenleitung vom DSP zum PIC....sind die minimalen Laufzeitunterschiede zwischen dem geshifteten Clock und der ungeshifteten Datenleitung(MISO) von Bedeutung? Bis zu welcher Übertragungsgeschwindigkeit ist der Laufzeitunterschied unbedenklich? Viele Grüße
deAnner schrieb: > H-Ausgangspegel des PICs sind für den DSP zu hoch...wie euch ja > sicherlich bekannt ist... Nö, ist mir nicht bekannt. Ich hätte jetzt echt erwartet, daß PICs an verschiedenen Spannungen laufen. AVRs laufen jedenfalls von 1,8 ... 5,5V. > Bis zu welcher Übertragungsgeschwindigkeit ist der Laufzeitunterschied > unbedenklich? Da nimmste einfach das Datenblatt Deines PIC und Deines DSP und schaust rein. Wir wissen ja nicht, welcher PIC und welcher DSP es sein soll. Peter
> H-Ausgangspegel des PICs sind für den DSP zu hoch...wie euch ja > sicherlich bekannt ist... Woher sollen wir wissen, ob das stimmt - wir wissen doch gar nicht, was Du für eine PIC/DSP benutzt, und welche Ub Du dafür vorgesehen hast Guck in DB des DSP, PIC, und anvisierten Levelshifter-IC, um zu sehen, wie viel zusätzliche Verzögerung Du dir leisten kannst, bzw. ob da programmtechnisch extra was kompensiert werden muß. Ich hatte z.B. mal den 74ALVC164245 verbaut (aber bis jetzt immer noch nicht getestet die ganze Leiterplatte :-(, der hat Verzögerungszeiten, die fallen bei üblichen Taktfrequenzen von paar 10MHz gar nicht auf (typ. unter 5ns, max. unter 10ns)
Jap...sorry stimmt...mein PIC läuft mit 5v...das ist so ein eval-board von unserer FH... Und ich habs nachgeschaut, der PIC packt die DSP Ausgangspegel nicht...die SPI-Pins des PICs haben "Schmitttrigger-Eingänge mit CMOS Pegeln" und diese wollen laut den "Electrical Characteristics" 0,8*VDD also 4V als High und der DSP briingt nur max. 3V3. Habs jetzt auch anders gelöst...Ich habe einen Analog ADG3304 4 Kanal bidirektional Levelshifter ohne Direction-Pin verwendet. Habe dafür eine Adapter-Platine gemacht, die auf das PIC-Board kommt. Ich habe mal ein Bild angehängt, wäre nett, wenn Ihr das mal betrachten könntet und mir sagen, ob das so tut...Ich bin da leider noch recht unerfahren...aber ich hab mein bestes mal versucht.. (verwendet: PIC18F4580 und Analog ADSP-21161N) Kurze Erklärung: 2 reihige Stiftleiste (oben rechts PIN1): - PIN1: +5V - PIN2: SPI_SCK - PIN3: SPI-SDI - PIN4: SPI_SDO - PIN5: SPI-CS Der IC im TSSOP14-Gehäuse ist der Levelshifter: - PIN1: VCC_A (3V3) - PIN2: I/O_A1 - PIN3: I/O_A2 - PIN4: I/O_A3 - PIN5: I/O_A4 - PIN6: NC - PIN7: GND - PIN8: EN (Enable High-aktiv) - PIN9: NC - PIN10: I/O_Y4 - PIN11: I/O_Y3 - PIN12: I/O_Y2 - PIN13: I/O_Y1 - PIN14: VCC_Y (5V) Der Levelshifter funktioniert bidirektional A1 <-> Y1, A2 <-> Y2, etc. Der Festspannungsregler wandelt die 5v vom PIC-Board in 3V3. C5 habe ich einfach mal so vorgesehen...damit der EN-PIN von Spannungsschwankungen, die möglicherweise von der Belastung der 3V3 Schiene durch den Shifter entstehen können, unberührt bleibt(weiß nicht, ob das der Fall sein kann...aber er stört da ja nicht...ich muss ihn ja nicht bestücken). Aber können da irgendwelche Störungen eingetragen werden, die ihn möglicher weiße zwischen !EN und EN toggeln lassen oder so? Die recht großen VIAs dienen dafür, dass ich mit Silberdraht durchkontaktieren kann. Wir haben keine Durchkontaktierungsanlage an der FH. Ich könnte auch Nieten verwenden, die sollten auch in die 0,9 Bohrungen passen. Der Wannenstecker unten...die vielen GND-Pins sind dafür da, dass ich die signale wie folgt über ein Flachbandkabel übertragen kann: (CS)-(GND)-(GND)-(SDI)-(GND)-(GND)-(SDO)-(GND)-(GND)-(SCL) Ich habe in dem Buch "Digitale Schnittstellen und Bussysteme" gelesen, dass das zu einer guten Signalintegrität beiträgt. So, ich hoffe, ich habe mich diesmal präziser ausgedrückt. Ich habe in den Datenblättern alles nachgeschaut. Das Level-Shiften ist notwendig. Ich will nicht, dass ihr mir hier die Arbeit abnehmt. Ich bin nur noch recht unerfahren und bin drum ganz glücklich, wenn jemand da mal drüber schaut, mir Tipps, Ratschläge und Verbesserungsvorschläge gibt.... Ach ja...maximal kann ich bei dem verwendeten PIC-Quarz bis 2Mbit/s übertragen. Was meint ihr, könnte man das mit meiner Schaltung erreichen? Bitte nicht immer gleich so "du willst dass man dir Arbeit abnimmt". Das will ich keines Falls. Es kann nur mal sein, da man als Newie nicht immer an alles denkt, dass man mal was vergisst zu beschreiben oder zu erwähnen... Danke bereits im Voraus für eure Antworten! Greets, deAnner
Ach ja...die Signal- und Clock-Leitungen zum und vom Levelshifter habe ich versucht, in der Länge anzupassen...laut Eagle habe ich auf den einzelnen Seiten einen maximalen Längenunterschied von 0,09mm!
Das geht bestimmt auch einseitig. Die Abstände auf Deiner Platine sind sehr klein gewählt. Setz mal isolation höher, z.B. auf 1,27 und mach einen DRC-Check. TSSOP, puh, Du willst per Hand löten? Da gibt es vielleicht andere, die im SOIC Gehäuse zu finden sind (z.B. TXB0104). 2 MBit/s könnte auch noch mit einem Spannungsteiler funktionieren (siehe SD-Karten Anbindung z.B. von Ulrich Radig).
Hallo Pete, Danke für deine Antwort. Ich kann das mit Isolate hochsetzen erst heut Abend machen, werd die Ergebnisse dann aber gleich posten. Nach einem anderen umschauen, möchte ich mich nicht. Den werde ich da schon drauf bekommen. Ich kanns auch an der FH reflowen. Denkst du, ich bekomme ein Problem mit der Größe (beim Handlöten/beim Reflowen)? Einseitig geht echt nicht. Der DSP kann ja maximal die Spannug raushauen, die er als VDD_ext (Spannungsversorgung für die I/O-Ausgangstreiber) bekommt und das sind 3V3. Das ist dem PIC zu niedrig, die SPI-Eingänge des Pic sind laut Datenblatt Schmitttrigger-Eingänge und da spucken die Electric Characteristics aus, dass die als Eingangs-highpegel min. 0,8xVDD benötigen. Da ich die Versorgungsspannung nicht runtersetzen möchte, da an den 5V auch noch ein LCD hängt passt es also nicht und kann auch nicht passend gemacht werden. Einseitig würde es also nur gehen, wenn ich am DSP Spannungsteiler anbringe und da trau ich irgendwie nicht ganz. Dann würde ja zudem auch noch mein eigentliches Problem wieder auftreten. Wenn ich in eine Richtung shifte und in die andere nicht, bekomme ich dann zwischen geshifteten Signalen und Ungeshifteten merkliche, störend wirkende zeitliche Verzögerungen? Das weiß ich halt nicht... Aber die Platine steht jetzt ja. Wie ist dein allgemeiner Eindruck? Wird das so tun, Isolate check ich nochmal etc... Nochmal ein ganz anderes Konzept möchte ich nicht unbedingt angehen....Zeit ist auch ein wenig Mangelware....Nur falls mein Ansatz gar nicht tut, dann muss ich wohl über eine andere Lösung nachdenken... Greets!
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.