Forum: FPGA, VHDL & Co. Kommunikation Mikrocontroller <-> FPGA


von Koblenzer (Gast)


Lesenswert?

Habe hier gerade mehrere beispiele gelesen, dass ich meine IC's
zerstören kann, wenn z.B. zwei miteinander verbundene Pins wegen
Programmierfehler einen Kurzschlüss machen (beide als Ausgang, "0" und 
"1").
Deswegen habe ich zwischen FPGA und Mikrocontroller 470 ohm Widerstände
gesetzt. Jetzt habe ich aber sehr viele Probleme mit meiner Schaltung:
Signale von FPGA zum Kontroller werden nicht richtig bzw. zu Spät 
erkannt.
Hat jemand paar Tipps für mich??

Wie wird's sowas in der Regel gemacht???

p.S. Spartan-3AN und ATMega32L, beide 3.3V
Pins am Spartan als LVTTL definiert.

von Jens Oliver (Gast)


Lesenswert?

470 Ohm sind ein bischen fett für hohe Frequenzen. 50 Ohm sind eher 
passend. Meist ist das aber nicht nötig. Natürlich sollte dafür Sorge 
getragen werden, daß die Pins richtig gegeneinander verschaltet sind und 
sich vertragen.

von Koblenzer (Gast)


Lesenswert?

Bringt's was, wenn ich zwischen FPGA und Mikrocontroller einen 
3-state-buffer (74HC245) einsetze für 8-bit bidirectional Bus.
Das ganze läuft mit 14MHz Takt. BUS-Richtungsänderung muss innerhalb 2-3 
Takten erfolgen.

von Falk B. (falk)


Lesenswert?

@ Koblenzer (Gast)

>Bringt's was, wenn ich zwischen FPGA und Mikrocontroller einen
>3-state-buffer (74HC245) einsetze für 8-bit bidirectional Bus.

Nein. Lass den Mist einfach weg und mach es direkt. So schnell stirbt 
kein FPGA. Und wenn doch, dann nennt man das Lehrgeld. Mussten wir alle 
zahlen.

MFG
Falk

von Artur Funk (Gast)


Lesenswert?

@ Falk:
Lehrgeld, das Wort muss ich mir merken :)

@  Koblenzer:
schaue dir diesen Beitrag: 
Beitrag "Bidirektionale Pins in Quartus II (Altera)"
Da gehts prinzipiell um das gleiche Problem. Und wenn du alles richtig 
machst, kannst du nichts kaputt machen. Würde an deiner Stelle inout-Bus 
durchsimulieren und schauen, dass du keine undefinierten Zustände hast.
Die Pins von einem Virtex z.B. haben alle clamp dioden, da kannst du wie 
Falk schon sagte nicht so schnell was kaputt machen.

Die 470 Ohm sind sicherlich zu groß ausgelegt, eigentlich läuft meine 
Schaltung auch prima ohne die Widerstände.

> Signale von FPGA zum Kontroller werden nicht richtig bzw. zu Spät erkannt.
Hast die Die Masse des FPGAs mit der Masse vom Atmega verbunden? Das 
kann auch eine Ursache für gestörte Übertragung sein, wenn die keine 
gemeinsame Masse haben.

von Koblenzer (Gast)


Lesenswert?

Danke!

Und noch'ne Frage:
wie muss ich im .ucf FPGA-Pins konfigurieren?? LVTTL oder LVCMOS???
Gibt's da welche Unterschiede für Kommunikation mit Mikrocontroller???

von Koblenzer (Gast)


Angehängte Dateien:

Lesenswert?

Das Bild noch :)

von Artur Funk (Gast)


Lesenswert?

LVTTL, wenn dein Atmega im L-Package ist.

von Artur Funk (Gast)


Lesenswert?

HHmm, habe mir das Bild angeschaut, scheint ein ein Atmega im DIP zu 
sein. Sicher, dass der mit 3,3 Volt und nicht mit 5 V läuft?

von Koblenzer (Gast)


Lesenswert?

Laut Datenblatt ist ATMega32L von 2.7V bis 5.5V lauffähig.
Wenn ich alles soweit hab, kriegt die fertige Platine einen ATMega256...

von Falk B. (falk)


Lesenswert?

@ Koblenzer (Gast)

>wie muss ich im .ucf FPGA-Pins konfigurieren?? LVTTL oder LVCMOS???
>Gibt's da welche Unterschiede für Kommunikation mit Mikrocontroller???

Die Unterschiede sind bei 3,3V minimal (1,4V vs. 1,65V Schaltschwelle).

MFG
Falk

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
Noch kein Account? Hier anmelden.