Hallo, ich würde gerne einen Bourns EM14 Encoder an einem STM32F4x verwenden. Der EM14 läuft auf 5V, der STM32 auf 3.3V. Laut Datenblatt ist der STM32 aber FT auf allen GPIO. Nun gibt es aus meiner Sicht ein paar Optionen, die einfachsten wären Spannungsteiler, Pegelwandler (AND Gatter oder Buffer) oder direkt dran, wobei das natürlich am einfachsten wäre. Das Datenblatt des EM14 sagt aber dass der Encoder bis zu 25mA bei LOW sinken kann, was wohl an einem Pin vom STM32 nicht optimal ist. Dazu kommt ein Pullup auf der Datenlinie. - Kann ich trotzdem den EM14 direkt an der STM32 hängen, unter Beachtung der externen Beschaltung laut EM14 Datenblatt (2 Pullups, 2 C)? - Ist es empfehlenswert, einen Reihenwiderstand vor der GPIO zu machen, der einen Strom begrenzt, z.B. 1k? Wobei das ja dann eine gewisse zeitliche Dämpfung gibt... - Ist eine Trennung per IC, der dann bis zu 25mA liefern kann, die saubere Lösung?
MPunkt E. schrieb: > Das Datenblatt des EM14 sagt aber dass der Encoder bis zu 25mA bei LOW > sinken kann, was wohl an einem Pin vom STM32 nicht optimal ist. Das tut dem µC nichts, wenn er nicht grade ein High ausgibt. Aber der µC ist da ja sowieso Eingang. Und gibt gar nichts aus. > dass der Encoder bis zu 25mA bei LOW sinken kann "Sinken" bedeutet "Strom nach GND fließen lassen". Die max 25mA sagen aus, dass der Encoder kaputtgeht wenn du da mehr als 25mA reinprügelst. > Dazu kommt ein Pullup auf der Datenlinie. Was ist die "Datenlinie"? Der hat doch nur A und B sowie zwei Schalterausgänge. > Laut Datenblatt ist der STM32 aber FT auf allen GPIO. FT? Nicht alle STM32 sind auf allen Pins 5V tolerant. > laut EM14 Datenblatt (2 Pullups, 2 C)? Welches hast du da? Auf dem bei Bourns ist nichts drin: - https://www.bourns.com/pdfs/EM14.pdf
:
Bearbeitet durch Moderator
>> Dazu kommt ein Pullup auf der Datenlinie. > Was ist die "Datenlinie"? > Der hat doch nur A und B sowie zwei Schalterausgänge. Genau A, B meinte ich, siehe Datenblatt Encoder. Dazu auch der Kommentar unten, ich möchte den verwenden: https://www.mouser.de/ProductDetail/Bourns/EM14R0D-M20-L064S?qs=CrTVAl0CcnLShMqPEt46xw%3D%3D Der soll laut Datenblatt 2 Pullups und 2 C bekommen. >> Laut Datenblatt ist der STM32 aber FT auf allen GPIO. > FT? Nicht alle STM32 sind auf allen Pins 5V tolerant. FT habe ich bei STM öfters für Five-(Volt-)Tolerant gesehen, im Gegensatz zu Three-(Volt-)Tolerant TT. Schlimme Abkürzung... Der STM32F401RCT6 den ich im Blick habe sagt im Datenblatt: ... Up to 81 I/O ports with interrupt capability – All IO ports 5 V tolerant – Up to 78 fast I/Os up to 42 MHz ...
MPunkt E. schrieb: > - Kann ich trotzdem den EM14 direkt an der STM32 hängen, unter Beachtung > der externen Beschaltung laut EM14 Datenblatt (2 Pullups, 2 C)? > - Ist es empfehlenswert, einen Reihenwiderstand vor der GPIO zu machen, > der einen Strom begrenzt, z.B. 1k? Wobei das ja dann eine gewisse > zeitliche Dämpfung gibt... Da der EM14 ein Signal ausgibt, benötigst Du nicht mal ein pullup. DaBla sagt mind. 4V, daher ein simpler Reihenwiderstand zum portpin des STM32 (sofern Du da Eingänge nutzt die nur 3.3V vertragen, sind es welche die 5V kompatible sind ist auch kein Widerstand nötig)). 1k passt,mit einer geschätzt angenommnen Kapazität (pin+Leiterbahn) von 15 pF ist der delay vernachlässigbar.
MPunkt E. schrieb: > Genau A, B meinte ich, siehe Datenblatt Encoder. Dazu auch der Kommentar > unten, ich möchte den verwenden: > > https://www.mouser.de/ProductDetail/Bourns/EM14R0D-M20-L064S?qs=CrTVAl0CcnLShMqPEt46xw%3D%3D Nun, da müssen die Leitung schon SEHR lang (z.B. 3m ) sein wenn Du 22nF vorsiehst. Auf dem PCB ist das nicht so hochkapazitiv nötig. Siehe oben.
MPunkt E. schrieb: > Der STM32F401RCT6 den ich im Blick habe sagt im Datenblatt: > – All IO ports 5 V tolerant Also: schließ den Geber einfach direkt an. Du kannst natürlich auch die zusätzliche Angstbeschaltung mit irgendwelchen zusätzlichen Pullups und nF-Kondensatoren mit einbauen... EDIT:
1 | *External pull-up resistors (1K ohms) and filter caps (22 nF) recommended for proper operation. |
2 | Utilization of a filter circuit will yield a typical rise time of 50 microseconds. See schematic. |
Das kam wohl bei neuen Datenblattversionen dazu, damit die Reklamationen wegen schlecht implementierter Abfrageroutinen nicht überhand nehmen.
1 | a typical rise time of 50 microseconds. |
Das bedeutet also, dass pro Sekunde höchstens rechnerisch 20000 Flanken und damit 5000 Vollschritte drin sind. Und mit viel Reserve sind das dann 500 Schritte und bei 64 Schritten/Umdrehung knapp 8-9 Umdrehungen pro Sekunde. Das dürfte auch der schnellste Dreher nicht hinbekommen.
:
Bearbeitet durch Moderator
Alles klar, dann ohne Angstbeschaltung. Vielleicht mach ich die Pads auf die PCB und lasse sie frei ;) Danke für die Infos!
MPunkt E. schrieb: > Das Datenblatt des EM14 sagt > aber dass der Encoder bis zu 25mA bei LOW sinken kann Da eine Stromangabe NUR für "sink" zu finden ist "schmeckt" das nach einem open-Collector-/open-Drain-Ausgang. Lothar M. schrieb: > MPunkt E. schrieb: >> dass der Encoder bis zu 25mA bei LOW sinken kann > "Sinken" bedeutet "Strom nach GND fließen lassen". Die max 25mA sagen > aus, dass der Encoder kaputtgeht wenn du da mehr als 25mA reinprügelst. Ich erlaube mir zu korrigieren: BOURNS garantiert eine maximale Spannung am Pin bei einem Strom von 25mA (eine Angabe von "Absolute Maximum Ratings" ist im Datenblatt nicht zu finden). >> Dazu kommt ein Pullup auf der Datenlinie. > Was ist die "Datenlinie"? Diese Frage ploppte bei mir auch auf... > Der hat doch nur A und B sowie zwei Schalterausgänge. Korrektur: Zwei Pins, welche mit einem (optionalen) Taster verbunden sind.
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.