habe ein Design mit einem M4A5-32 unter Abel bzw. IspLever-Classic. Die Sache funktioniert wie beabsichtigt, aber in bestimmten Betreibsfällen gibt es auf der Ausgangsleitung wilde Schwingungen (ca. 100Mhz) welche durch "Handauflegen" der Schaltung wieder verschwinden. Nun habe ich Verdacht auf offene Eingänge am Chip die übersprchen. Viele Leitungen sind nicht programmiert, nicht beschaltet, leider auch kein Pullup. Das sind IO pins, reine Input bzw. Clock pins und JTAG pins. Im Constraint File habe ich schon langsame Ausgänge eingestellt-> keine Änderung. Was ist mit offenen Eingängen zu tun, bzw. kann man hier irgenwie Pullups programmieren ? An welcher Pinsorte ist ein HW Pullup oder GND nötig?
Offene CMOS-Eingangspins sind generell schlecht, weil sich dort dann eine Spannung im Bereich um Vcc/2 einstellt und beide Transistoren des Eingangstreibers "halb" leiten. Dadurch hat das IC eine erhöhte Stromaufnahme und ist sehr sensibel für Einkopplungen. Und wenn dann noch eine wacklige Versorgung (Entkopplung ungünstig) dazukommt, dann kann das Ganze sogar zu schwingen beginnen... Abhilfe: Pullups/Pulldowns einbauen oder die nicht benötigten Pins als Ausgang definieren.
Gast
#3147311
Die Eingänge M4A5 haben entweder einen weak Pullup, oder einen Keeper (Bus friendly laut Datenblatt). Default ist Pullup. In beiden Fällen liegt bei einem unbeschalteten Eingang ein definierter Pegel an. Das kann also nicht die Ursache sein.
Gast
#3148135
Die Ursache war ein nachgeschalteter RS422 Differentialtreiber. Ich habe dort ein ca. 10cm langes Kabel eingesteckt mit einem unbekannten Sub-D Stecker aus der Grabbelkiste (mit integrierten Entstör-L). Der Bustreiber fängt mit etwa 100 Mhz an zu klingeln. Schliesst man die Treiberleitung korrekt ab oder hängt eine Last dran, ist alles wieder im grünen Bereich.
Gast
#3151195
Lattice User schrieb: > Die Eingänge M4A5 haben entweder einen weak Pullup ist das bei denen standardmässig so oder wurde das von dir so programmiert?
Gast
#3151212
Matthias schrieb: > ist das bei denen standardmässig so oder wurde das von dir so > programmiert? Das "programmiert" man nicht, sondern gibt es im Constraintfile vor. Das Constraintfile kann über den "Constraint Editor" modifiziert werden. Dort findest du unter dem Reiter "Global Constraints" den Punkt "PULLUP". Hier kann entweder "UP" oder "HOLD" eingestellt werden.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.