Hallo @ all Ich wille einen µP (Atmel Mega32) am FPGA anschließen. Der µP wird an eine Versorgungsspannung von 5V angeschlossen. Der µP steuert ein Display an, dass ebenfalls an der Versorgungsspannung von 5V angeschlossen ist. Ich weiß man hätte auch vom FPGA das Diplsay ansteuern können, aber mein Chef möchte es so haben. Nun zu meiner Frage: Wie bekomme ich die unterschiedlichen Spannungspegel in den Griff. Zwischen µP und Display gibt es keine Probleme, da beide mit 5V Pegeln laufen. Jedoch zwischen dem Spartan 3 (der Logikpegel von 3,3V für High) und dem µP können Probleme auftauchen. Der µP kann als minimalen Pegel 0,6 VCC erkennen. --> 0,6 *5V = 3V. Dies ist nicht besonders gut, denn wenn die 5V Versorgungsspannung nicht besonders stabil ist, dann kann es zu Problemen kommen, denn 0,6 * 4,5V = 3V. Ich benötige 14 Ports zwischen FPGA und µP. Was kann ich machen, damit es funktioniert? Grüsse Michael
Hast du immer Signalbündel? Wenn ja kannst du einen Bus Transceiver dazwischen schalten. Die Richtung könnte dann z.B. der FPGA bestimmen. Z.B. den 74LVC4245A Ich sehe nicht das Problem bei der High-Pegel erkennung. Sondern darin das der Spartan 3 offiziell keine 5 Volt an einem USER IO toleriert.
Der Spartan muss nur senden. Die 1 Handshakeleitung zum Spartan hint kann ich mit einem Transitor regelen. Wenn die Spannung am µP 5,2V ist, dann benötigt der µP als minimalen High-Pegel 3,12V (0,6 * 5,2V) Da der FPGA einen unter Worst Case einen minimalen High-Pegel von 3,0V ausgeben kann, wird der µP diesen dann nicht als High-Pegel erkennen. Ich weiß das kann nur unter absoluten schlimmen Bedingungen auftreten. Aber wir wollen unsere Geräte Weltweit verkaufen. Da kann man sich keine Fehler erlauben. In Thailand und Umgebung ist das Klima halt sehr extrem. Ich werde mir mal den Baustein anschauen
Hi, ganz einfach waere es so: µC (5V) -> --- R --- FPGA(3,3V) und dann noch einen Pull Up bzw. Pulldown mit ran. Eine andere Alternative waere ein 74LCV244 oder ST2378. Gruß, Dirk
Einen R würde ich da nicht nehmen, der bildet mit den Eingangskapazitäten einen tiefpass und verhindert hohe Datenübertragungsraten. Das Pegelproblem wird damit auch nur unzureichend gelöst. Ich würde einen Levelshifter nutzen. Ich hatte da mal einen bidirektionalen Bustreiber von TI im Einsatz. Der hiess CBT3245 oder so, wobei er sich verhält wie ei normaler "245" allerdings in beiden Richtungen mit verschiedenen Spannungen betrieben werden kann. An die 5V-Seite kommen dann eben die 5V und der uC und an die 3,3V-Seite die LV-Peripherie. Die Schltverzögerungen liegen im Bereich von nS und erlauben einen hohen Bustakt.´ Unidirektional würde ich einfach einen LV-Treiber nutzen und mit geringerer Spannung betreiben. Bei TTl-Pegeln HCT-Bausteine.
Ein bus-switch kann als Pegelwandler genommen werden. Gibt es z.b. als 8fach version. Einfach dazwischen schalten. Gruß Falk S.
> Ich benötige 14 Ports zwischen FPGA und µP. >Was kann ich machen, damit es funktioniert? Müssen die Ports bidirektional sein?
Hi, ich hatte letztens ein ähnliches Problem. Wenn Du auf Nummer sicher gehen willst, so würde ich Dir auch einen Pegelwandler mit 2 Versogungsspannungen empfehlen. Bei meiner Suche bin ich auf die TI Seite gestoßen. Auf der Website gab es recht viel. Ich hab mal ein "Voltage Translation Guide" angehängt, welches ich dort auch gefunden habe. Gruß, Thomas
Gutes Dok! Die von mir oben erwähnten Bausteine in CBT (cross bar technology) sind genau die empfohlenen für das 5.0 <-> 3.3 - Problem.
Nicht schlecht werde es mir mal am Montag durchlesen. Ich persönlich habe mich für den folgenden Baustein entschieden: http://focus.ti.com/docs/prod/folders/print/sn74alvc164245.html Dies ist ein IC von Texas Instrument (www.ti.com) Es ist ein Dual Supply Translater. Dual da es 2 mal 8 Ports hat, also insgesamt 16 Ports wandeln kann. Der Baustein ist bidirektional. Er besitzt 48 Pins und der Preis liegt bei 1,5. Grüsse Michael
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.