mikrocontroller mit mehr als einem Quadrature-Decoder Timer

Sep 19, 2019 Last reply: 7 years ago 90 Replies

Hans-Peter Diettrich snipped-for-privacy@aol.com:

Gehen wir mal zum ursprünglichen Thema zurück: Abtastung eines Quadraturencoders. Den möchte ich so schnell wie eben möglich abtasten und da kommt man dann schon an seine Grenzen, wenn man sagt: ok Porzessortakt sind 8 MHz, er schafft es in 8 Takten einen Interrupt abzuarbeiten, also könnte er theoretisch mit 1 MHz ein Portpin abtasten. Damit wäre er zu 100% ausgelastet. Wenn er dann doch noch (wenige) andere Dinge tun soll, wären vermutlich maximal 500kHz sinnvoll. Wenn das Restprogramm komplex ist und etliche andere Interrupts laufen und womoeglich auch noch eine DMA den Speicher blockiert, dann ist man ganz schnell bei nur 20kHz angelangt, die das System noch schafft. ;-) Da ist eine integrierte Hardwarelösung für den Encoder doch _deutlich_ programmiererfreundlicher. :-) :-)

M.

--

Am 30.09.2019 um 11:04 schrieb Matthias Weingart:

Wieso hängt das davon ab, was Du möchtest? Der Encoder liefert Signale mit der ihm genehmen Frequenz, schnelleres Abtasten bringt keinerlei Gewinn.

Wie schnell willst Du dann mit Deinem langsamen System diese Hardwarelösung abfragen, das dauert doch auch seine Zeit? Wäre da nicht ein Encoder mit weniger Impulsen pro Umdrehung sinnvoller?

Dann stellt sich die (noch unbeantwortete) Frage, wozu der Encoder benutzt werden soll. Eine Drehzahlregelung kommt mit weniger Impulsen pro Umdrehung aus, ein Positioniersystem mit einer geringeren Impulsfrequenz, woher kommen dann die überzogenen Erwartungen bezüglich der Abtastrate?

Vielleicht kann man ja auch die eingebaute Hardwäre (Zähler) benutzen und einfach nur die Impulse zählen, wenn man die Drehrichtung eh schon kennt? Die lassen sich immer noch weit schneller abfragen als jede externe Hardware.

Kannst Du Deine tatsächlichen Anforderungen etwas mehr konkretisieren, damit wir nicht mit willkürlichen Frequenzen hantieren müssen, sondern mit dem für Deine Zwecke benötigten Encoder anfangen können?

DoDi

Hi Hans-Peter,

Am 30.09.19 um 14:06 schrieb Hans-Peter Diettrich:

Die zwei Sätze da oben kennzeichnen für mich das Dilemma:

  1. "So schnell, wie möglich" ist je nach Lesart total einfach. Entweder es ist trivial, weil von der gegebenen Hardware und den gegebenen Programmierkenntnissen abhängig, dann gehts eben nicht schneller uns ist per Definition gut. Oder man stellt fest, dass man mit beliebig (un-)endlichem Aufwand noch ein bisschen mehr Speed herauskitzeln kann. Nur wird das keiner bezahlen wollen. Vor allem: Der Job wird nie fertig. Die Erfahrung zeigt, dass es mit fortschreitender Zeit immer möglich sein wird, noch eine schnellere Lösung zu erarbeiten... Kurz: Die Anforderung ist unbestimmt, keiner weiss, was Matthias tatsächlich will.
  2. Wir haben keinen Plan, was Matthias eigentlich machen will. Wie soll Ihm da jemand helfen, wenn er nicht sagt, was er braucht.

Stochern im Trüben Wasser, aber das auf höchstem Niveau. Ich bin erstaunt, mit welchen 8 MHz-Prozessoren eine DMA-Geschichte im Hintergrund gehen soll...

Marte

snipped-for-privacy@gmx.de (Marte Schwarz) am 30.09.19 um 16:18:

Hey, DMA gab es schon für den Z-80!!!elf111

Rainer

Und fing mit 2,5MHz an :) Hab damals für ECB-Bus einen WD? Floppy controller gehabt und für meinen CP/M80 Kiste dazu das BIOS um einen IR gesteuerten DMA Treiber erweitert.

Jede Shuggart 8" Floppy hat mich 1000DM gekostet :)

Hab das ganze auf einem Mostek-Z80 Entwicklungssystem probiert und dann auf ECB transferiert.

Dazu ein Plessey PT-52 selber restauriert nach Sturzschaden (Gehäuse verzogen, Bild-Rohr kaputt) und aus dem Schrott bei meinem AG bekommen.

Saludos (an alle Vernünftigen, Rest sh. sig) Wolfgang

Hi Rainer,

Z80 als Mikrocontroller mit eingebauter DMA? Lass sehen!

Marte

HD64180? Vielleicht kein Microcontroller im engeren Sinne, aber ein Z80 mit DMS ist das schon.

Hanno

Hi Hanno,

Von denen gabs wohl tatsächlich auch mal µCs. Whow. Verwendet sowas heute noch jemand?

Marte

Am 30.09.2019 um 23:24 schrieb Wolfgang Allinger: CP/M80 Kiste dazu das BIOS um einen IR gesteuerten DMA Treiber erweitert.

Meine drei Remex nur je 800...

Butzo

snipped-for-privacy@gmx.de (Marte Schwarz) am 01.10.19 um 10:45:

Ich schrub nicht von "eingebaut". Und du nicht von "Controller".

Rainer

Remex? Nie gehört.

Saludos (an alle Vernünftigen, Rest sh. sig) Wolfgang

Am 01.10.2019 um 22:40 schrieb Klaus Butzmann:

Meine erste 8" Doppelfloppy-Station hat über 5000DM gekostet, mehr als die dazu gehörende LSI-11. Wer bietet mehr? ;-)

Die nächste Station kostete nur noch 200DM, da war 8" schon wieder out.

DoDi

Am 02.10.2019 um 00:19 schrieb Rainer Knaepper:

DMA *in* einer CPU wäre ja auch ziemlich witzlos. Die hat ohnehin immer "DMA".

Ich erinnere mich noch gut an den riesigen Intel ICE für einen 80188, der die Softwarehänger eindeutig mit "Memory access timed out because co-processor on bus" einem (ebenfalls hängenden) DMA-Transfer in die Schuhe schob :) Und die Ursache war dann auch irgendwann klar, das war eine Race condition im Interrupt, der den DMA-Käfer mit mehreren Kanälen neu programmiert.

Bernd

Deine? Respekt! Oder die Deines AG?

Aha, klingt nach gebrauchter. Nicht abwertend gemeint.

Saludos (an alle Vernünftigen, Rest sh. sig) Wolfgang

Am 02.10.2019 um 00:24 schrieb Wolfgang Allinger:

Das war ein Markenname der Ex-Cell-O aus Irvine,CA.

Und die haben in Lizenz von Shugart produziert.

Hi Rainer,

Doch. Der Betreff schreibt von einem "mikrocontroller mit...". Hier geht es explizit nicht um irgendwelche Prozessorsysteme, sondern um klassische µCs mit mehreren Quadraturencoder als Bedienelemente / Sensoren.

Irgendwelche Abschweife zu anderen Themenfeldern führen da nicht wirklich zum Ziel.

Marte

Hi Bernd,

Du hast entweder nicht begriffen, wozu man eine DMA braucht und was dessen Sinn ist, oder ich verstehe nicht, was Du damit meinst, dass ein µC immer DMA hätte. Selbstverständlich gibt es viele µC ohne DMA. Bei fast allen läuft jeglicher Verkehr zum RAM direkt über die CPU. Es gibt aber in der Tat µCs, bei denen z.B. der AD-Wandler völlig ohne Beteiligung der CPU eben via DMA timergesteuert in einen zugewiesenen Speicherbereich schreibt, während die CPU mit höherwertigen Dingen beschäftigt wird, und sei es mit Schlafen alias Stromsparen.

Einem ATMEGA kann das nicht passieren.

Marte

Am 02.10.2019 um 10:08 schrieb Wolfgang Allinger:

Meine, ich habe sie heute noch. Dazu ein Terminal gebastelt, mit Baudraten-Umschalter, parallelem Druckerport, mit 6809 und FORTH. Den Druckerport mit einem Schieberegister im Centronics-Stecker, quasi SPI :-)

Auf der LSI habe ich meine Dissertation getippt, gut unterstützt von meinem Bildschirmeditor und Tastaturmakros in FORTH. Mein nächstgrößeres Projekt war ein Autorouter, in Fortran.

Weiß nicht, der Zustand war sehr gut, einschließlich Gehäuse. Im Gehäuse aber keinerlei Spur von Elektronik oder Steckern, sah sehr jungfräulich aus. AFAIR hatten die Laufwerke volle Höhe des 19" Gehäuses, mit recht großen Motoren. Ich habe sie dann an mein 6809 System angeschlossen, mit DMA, um beim aktuellen Thema zu bleiben :-) Diesem System hatte ich auch eine interruptgesteuerte System/User Umschaltung mit 128K Memory Management verpaßt. Das war dann auch mein letztes und teuerstes DIY Projekt, danach kam der Atari ST mit wenig Bastelpotential, außer einer 256K Speichererweiterung.

DoDi

Am 02.10.2019 um 00:24 schrieb Wolfgang Allinger:

Ex-Cell-O corporation remex

formatting link
DS/DD und mit Lock Magnet konnte die Öffnungsklappe verriegelt werden.

Butzo

Am 02.10.2019 um 07:34 schrieb Hans-Peter Diettrich:

Ich hab mich immer auf "Datei bitte auf Standardfloppy" gefreut, statt der erwarteten HD 3,5" eine Standard!-Floppy abgeliefert und mir vorher die Frage hard- oder softsektoriert verkniffen.

Butzo

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required