Suche IC zur Auswertung von inkrementalen Drehgebern

OP #2466481
Lesenswert?

Hallo,

um einen inkrementalen Drehgeber auszuwerten, suche ich einen IC.
Verwendet wird der Tricore TC1797. Da der Drehgeber zur 
Motordrehzahlmessung gedacht ist und 1024 Striche hat, ist der Prozessor 
bei einer hohen Motordrehzahl alleine etwas zu langsam dafür.

Das Signal des ICs wollte ich dann über die SSC-Schnittstelle einlesen.

Welchen IC empfehlt ihr?
Was muss ich beachten?
Es ist mir wichtiger, dass ich das schnell hinkrieg als dass es eine 
super tolle Lösung ist.
Gast #2466505
Lesenswert?

Minty Mint schrieb:
> ist der Prozessor
> bei einer hohen Motordrehzahl alleine etwas zu langsam dafür.

Du hast einen Porsche der dir immer noch zu langsam ist?????

wenn es dir nur um die Drehzahl und nicht die Position geht:
warum nimmst du dann keine Prescaler-zelle um die Drehzahl zu bestimmen?

Ansonsten 1800U/min = 30U/sek * 1024 = 30kHz. Da lacht das mit 20 Mhz 
getaktete Timer-Array nur.

Gruß Anja
OP #2466542
Lesenswert?

Danke für die Antwort.
Da hast du Recht. Aber ich müsste wegen Niquist dann mit mehr als 60 kHz 
abtasten.
Ich weiß nicht, ob das dann viel ausmacht und die CPU überlastet, wenn 
ich noch 3 andere Sensoren(keine TTL-Signale, sondern analoge 
Spannungswerte) langsamer abtasten will. Beispielsweise liefert ein 
Drehgeber eine lineare Ausgangsspannung, die in Verhältnis zur Drehzahl 
steht. Das mache ich per FADC und dessen Channel-Timern. Zudem werden 
noch Signale per CAN-Bus empfangen und die Sensorwerte werden auch per 
CAN gesendet.

Die Prescaler-Zelle und das GPTA hab ich noch angeschaut. Hab mich 
bisher davor gedrückt, da mich die Komplexität und die über 300 Seiten 
im Manual einschüchtern ^^ :/
Führt wohl doch kein Weg daran vorbei...

Das ist für meine Bachelorarbeit und ich hatte davor sehr wenig mit 
Microcontrollern zu tun.

@Daniel V: Doch, hat er. Was nutzt mir das? Deswegen muss ich doch auch 
so schnell abtasten, um den Puls zu erwischen, oder?
Gast #2466561
Lesenswert?

Minty Mint schrieb:
> Da hast du Recht. Aber ich müsste wegen Niquist dann mit mehr als 60 kHz
> abtasten.

?????? Die Timer-Unit tastet mindestens mit 20 MHz ab.


Minty Mint schrieb:
> Führt wohl doch kein Weg daran vorbei...

Mit einer der beiden PDL-Units kannst Du sogar die Position und nicht 
nur die Drehzahl erfassen.

Ansonsten: für schnelle Ergebnisse ist "DAVE" dein Freund.

Gruß Anja
#2466573
Lesenswert?

Minty Mint schrieb:

> @Daniel V: Doch, hat er. Was nutzt mir das? Deswegen muss ich doch auch
> so schnell abtasten, um den Puls zu erwischen, oder?

Ich dachte eher an einen TimerInterrupt, aber nachdem ich das Datenblatt 
vom TC1797 kurz überflogen habe, denke ich, ist Anja eher dein 
Ansprechpartner. Dass dein Controller zu langsam ist, dazu brauchst du 
dir keine Sorgen zu machen.
OP #2466618
Lesenswert?

Ok.
Dave verwende ich schon, aber da muss man trotzdem Ergänzungen machen. 
Zudem ist es gerade bei dem GPTA nicht alles selbsterklärend, sondern 
für mich verdammt komplex.

Als ich mittels FADC und dessen Channel Timern 4 Sensoren mit eigenen 
Interrupts abgetastet und das Ergebnis sofort per CAN weitergeschickt 
habe, gab es Probleme wenn ich das mit über 25kHz gemacht habe. Dann ist 
der Interrupt für den Sensor mit der niedrigsten Priorität z.B. nur noch 
halb so oft aufgerufen worden.
Weiß nicht, woran das lag. Die Baudrate beim CAN war 500kBaud.
OP #2466679
Lesenswert?

Dauert es echt 200µs, eine CAN-Botschaft zu senden? Oder hast du 
irgendwas in deinem Post verdreht, Anja?
Wenn das so ist, dann mach ich das ja schon die ganze Zeit falsch. Aber 
es werden alle Prioritäten von Interrupts gleich oft ausgeführt. Außer 
wenn ich die Grenze überschreite, die bei 20 bis 25 kBaud liegt. 
Außerdem zeigt mir das Programm zum Empfangen der CAN-Nachrichten grob 
die richtige Zykluszeit an.
Gast #2466695
Lesenswert?

Minty Mint schrieb:
> Dauert es echt 200µs, eine CAN-Botschaft zu senden?

Wenn alle 8 Bytes im Puffer belegt sind dann ja.
Wenn nicht dann etwas kürzer. Allerdings ist der Overhead durch Bus 
Idle, Botschafts-ID und Checksumme relativ hoch. Unter 100us wirds wohl
auch bei 2 Bytes Nutzdaten und 500kBit/s nicht gehen.

Gruß Anja
Gast #2466799
Lesenswert?

1800 upm und 1024 Striche benötigen 16us Reaktionszeit.
Das schafft dein 150MHz Infineon Luxus Prozessor nicht ?
Erbärmlich.

Aber so schlimm ist er nicht, nutzt man seine I/O-Module
sinnvoll und schreibt effektive (tabellengesteuerte)
Programme, kann der TC1797 sogar Inkrementalgeber bis zu
45 MHz auswerten statt deiner schlaffen 61kHz, bei
moderater CPU Belastung.

Dennoch gibt es natürlich extern Chips, falls einem die
pogrammierung zu viel Arbeit ist:
 http://www.lsicsi.com/ (LS7083/7084/7166/7266)
 http://www.avagotech.com/docs/5988-5895EN 
(HCTL2000/2016/2020/2022/2032)
 http://lost-contact.mit.edu/afs/eos.ncsu.edu/dist/xact_step/online/onlindb/xapp012.pdf
oder sonstige Arten es in Hardware zu machen
 http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29
Gast #2467228
Lesenswert?

Der TC1797 hat einen sog. "PCP", das ist einer der drei Cores, die dem 
TriCore seinen Namen geben. Der PCP ist so eine Art Microcontroller im 
Microcontroller und für ganz genau solche Sachen angedacht. Für den PCP 
sollte ein Drehgeber kein Problem sein.
#2467381
Lesenswert?

Jungs, er kennt sich doch mit dem Prozessor nicht so gut aus (ich auch 
nicht), aber:

Minty Mint schrieb:
> Ok.
> Als ich mittels FADC und dessen Channel Timern 4 Sensoren mit eigenen
> Interrupts abgetastet und das Ergebnis sofort per CAN weitergeschickt
> habe, gab es Probleme wenn ich das mit über 25kHz gemacht habe. Dann ist
> der Interrupt für den Sensor mit der niedrigsten Priorität z.B. nur noch
> halb so oft aufgerufen worden.
> Weiß nicht, woran das lag. Die Baudrate beim CAN war 500kBaud.

Das liegt mit 100% an der Programmierung, wenn ein Interrupt nicht mehr 
funktioniert. Wahrscheinlich schickst du in der ADC-Interruptroutine 
deine AD-Daten an den CAN-Bus.
Gast #2467467
Lesenswert?

Dosmo schrieb:
> Für den PCP
> sollte ein Drehgeber kein Problem sein.

Wie kannst Du jemandem der sich nicht traut sich mit dem Kapitel GPTA zu 
beschäftigen den PCP (mit notwendiger Assembler Programmierung) 
empfehlen?

Für ein bischen Frequenzauswertung reichen 2 GTC oder 3 LTC-Zellen und 
eventuell eine FPC-Zelle zur Erhöhung der Genauigkeit (Mittelwertbildung 
über mehrere Perioden) vollkommen aus. Bei Verwendung LTC braucht noch 
nicht mal einen Interrupt hierfür.
Falls doch eine Positionsbestimmung erforderlich sein sollte nimmt man 
halt eine PDL-Zelle.

Den PCP braucht man ausschließlich nur wenn der Hauptprozessor dermaßen 
stark ausgelastet ist daß Laufzeitprobleme auftreten. Das kann ich mir 
bei 4 analogen Sensoren einer Drehzahlspur und ein bischen CAN bei 180 
Mips nicht vorstellen.


Gruß Anja
Gast #2467719
Lesenswert?

Anja schrieb:
>Wie kannst Du jemandem der sich nicht traut sich mit dem Kapitel GPTA zu
>beschäftigen den PCP (mit notwendiger Assembler Programmierung)
>empfehlen?

Naja, ich dachte, wenn er schon so verzweifelt ist, daß er nach einem 
externen IC fragt, sollte man ihm wenigstens sagen, daß er bereits einen 
geeigneten "internen IC" hat.
Aber Du hast schon Recht, der PCP ist etwas anspruchsvoll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren