Archiv verlassen und diese Seite im Standarddesign anzeigen : Quadraturdecoder mit I²C Interface gesucht.
darxon69
06.03.2009, 14:23
Hallo zusammen.
Ich suche einen Quadratur Decoder mit nem I²C Interface. Ich habe zwar schon die hier gefunden http://www.lsicsi.com/encoders.htm aber die haben nur SPI. Da müsste ich nen extra Controller dazwischen machen und das wollte ich eigentlich vermeiden.
the_Ghost666
06.03.2009, 20:58
Ich fürchte, sowas kenn ich nicht als Fertig-Teil, aber ne günstige Lösung könnte sehr wohl ein PIC12F oder ein Attiny sein.
2Pins Versorgung, zwei Pins für I2C und dann noch 4 Pins für zwei Quadratur Encoder. Der interne Quarz spart noch ne Menge Platz und nochmal 30ct, man kann sogar ein Software-Debouncing hinzufügen, z.B. für Drehencoder auf mechanischen Prinzip. Wär ein interessantes Projekt für zwei Abende.
Insofern ist "nen extra Controller dazwischen machen" auch nur eingeschränkt ein Problem, da du ein kleineres IC wohl auch nicht finden könntest. Nur die Softwareentwicklung würdest du natürlich einsparen.
Ich denk mal drüber nach, sowas aufzubauen.
darxon69
07.03.2009, 09:07
Naja ich entwickle mit AVRco und da gibt es ne Prima Lösung für Encoder mittels des IncrPort8 Treibers http://www.e-lab.de/AVRco/DOC_de/DocuProfiDriver.pdf.
Das Problem ist allerdings die Geschwindigkeit. Ich verwende Encoder mit 20000Pulsen/umdr. Mit Quadratur komme ich auf 80000. Das Ganze soll für eine schnelle Positionierung ausgelegt sein mit einer Auflösung im Subbogensekundenbereich. Das bedeutet, daß da durchaus mehrere Millionen Pulse /Sek. zusammen kommen können. Damit dürfte dann ein AVR oder PIC überlastet sein.
Die oben beschriebene ICs schaffen das ja intern und man kann bequem die Werte auslesen, wenn man eine Positionsangabe braucht.
Allerdings bin ich der Meinung, daß es doch sowas auch mit I²C- Bus geben muss. Das ist doch ein Standard, der von fast allem unterstützt wird.
the_Ghost666
07.03.2009, 11:57
Ok, das ist natürlich ein Killerargument, selbst interruptgesteuert und in Assembler. Da würde mir auch nur der diskrete logische Aufbau mit Hardwarezählern einfallen, aber kein Fertig-IC, sorry.
hast du schon über einen FPGA nachgedacht? Bei der verarbeitungsgeschwindigkeit kommt nach meinem Kenntnisstand dann nur noch ein FPGA in Frage.
Jedoch musst du den dann in VHDL "Definieren" und anschließend synthetisieren.
ich weiß nicht ob dir der Aufwand wert ist, ein neues Gebiet inkl. Hardware zu beschreiten (sofern dir das gebiet unbekannt ist)...
the_Ghost666
07.03.2009, 21:33
Das Problem bei nem FPGA ist, dass du den Kram drumrum erstmal aufbauen musst. Also auch die Spannungsversorgung (meist ja 1,8V für den Kern, 3,3V für die Outputs, eventuell nötige Pegelanpassung für 5V Inputs), das Konfigurations-Flash. Dazu kommen hoher Preis, unhandliche Gehäuse und ne völlige Unterforderung für so ne einfache Aufgabe. Das ist nur sinnvoll, wenn man die komplette Auswertung auch noch auf dem FPGA realisiert. Dann aber sicher ne feine Sache, vielleicht mit nem integrierten Pico- oder Microblaze-Core, also ein Microcontroller im FPGA.
@BjörnC
Ich seh gerade in deinem Profil, dass du Osnabrück/Ostfriesland angegeben hast, ist das nicht doch noch etwas weit auseinander? Wohne momentan in Oldenburg und empfinde das noch nichtmal als Ostfriesland, erst ab Wilhelmshaven (Studium).
hehe nee ich bin unter der Woche in OS und am Wochenende in der nähe von Esens xD
PS: Wilhelmshaven ist kein Ostfriesland das ist dann Friesland :)
mit den FPGA ja das ist ein problem das diese schon sehr viel können und man noch sehr viel dazu drum herum bauen muss, aber damit kann man den Mikrocontroller sehr gut auch entlasten in dem man dann die Auswertung wie du schon gesagt hast in den FPGA auslagert, aber ich stimme dir zu FPGA sind ein bissl krass, aber ich kenne ehrlichgesagt kein zwischen Ding :)
the_Ghost666
08.03.2009, 00:01
Höchstens noch CPLDs, da gibts einige einfache XC9572 von Xilinx, die sind noch gut zu Handhaben, aber haben für das Vorhaben hier wohl zu viele Pins die ungenutzt bleiben und andererseits zu wenige Logikzellen und Flipflops für die Implementation größerer Zähler und ner I2C-Routine.
Sowas wollte ich immer mal ausprobieren, z.B. um nen großen Speicher und externe AD-Wandler anzuschließen, Messwerte zu Samplen und auf der anderen Seite einen Microcontroller dran zu hängen, der die Daten verarbeitet.
Mein Prof erzählte mir allerdings, dass es für die fpga-embedded Controller keinen guten C-Compiler gibt, am besten alles in Assembler machen. Das hat mich auch immer vor der Einarbeitung in Controller-Cores abgeschreckt.
darxon69
21.04.2009, 06:51
Ok, ich habe inzwischen 4 stck LS7633R von LSI bekommen. War gar nicht so einfach. Musste die in Großbritannien bestellen, da Deutschland irgendwie eine Servicewüste ist. In diesem Sinne ein kleiner Wink an Scantec und Co.
Ich habe an dei 4 Encoder, die über SPI angesprochen werden einen ATMEGA16 dran gehängt. Der arbeitet als I²C-Slave und der MainController holt sich bei Ihm die Daten. Geht richtig gut.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.