PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welcher PIC ist für folgende Aufgabe geeignet



VisionGuru
28.03.2006, 13:23
Hallo Leute,

ich brauche Hilfe. Ich habe zwei TTL Signale die von einem Encoder kommen und um 90 grad phasenverschoben sind. Max 30KHz. Was ich gerne tun will ist aus dem folgenden Diagram zu ersehen.

Ich habe
******______******* ______********
A ____I***** I______I******I______I
****_____*******______******* ______
B**I*****I______I******I______I******I

Ich benötige
*******_**_**_**_**_**_**_
A'**___III_III_III__III_III_III_III_

********_**_**_**_**_**_**_
B'***___III_III_III__III_III_III_III_

Also bei jedem Zustandswechsel der Eingangssignale A/B ein Impuls auf A und 90 Grad phasenverschoben auf B. Dies enstpricht einer Vervierfachung der Frequenz. Die Eingangssignale A/B haben keine feste Frequenz, sondern können zwischen 0-30kHz wandern.

Wer kann mir den Anstoß geben welchen PIC oder anderenden ich nehmen kann dafür, und was ich alles an Tools benötige um dies umzusetzen.

Danke für Eure Hilfe.

Gruß

Thomas alias VisionGuru

kalledom
28.03.2006, 13:37
Hallo Thomas,
das dürfte für einen PIC etwas eng werden:
Abfrage Signal A mit 30kHz
Abfrage Signal B mit 30kHz
Ausgabe Signal A' mit 4 * 30 = 120kHz
Ausgabe Signal B' mit 4 * 30 = 120kHz
Das macht in der Summe 300kHz
Jetzt die andere Seite:
Ein PIC benötigt bei 20MHz = 200ns für jeden Befehl = 5 Millionen Befehle pro Sekunde.
5.000.000 Befehle / 300.000kHz = 16,7 Befehle stehen somit zu Verfügung; ob Du die oben beschriebenen Aktionen mit nur 16,7 Befehlen hin bekommst ? Also in C mit Sicherheit nicht :-)

VisionGuru
28.03.2006, 13:42
Hallo Karl-Heinz,

das war ja eine schnelle Antwort. Ich sehe, wo das Problem ist. Könnten man 2 PICs nehmen, einen für A' und einen für B'?

Was ist der schnellste? Ich habe früher viel in Assembler programmiert und FPGA gemacht (lange her)? Wie vergleicht sich der PIC assemberl mit z.B. 6502,68000?

Gruß

Thomas

kalledom
28.03.2006, 13:53
Wenn Du die Aktionen auf 2 PIC's aufteilst, kommst Du auf 33 Befehle. Dabei geht der Zusammenhang der beiden Signale verloren. Keine gute Lösung.
Ein FPGA ist um ein Vielfaches schneller, weil es mit Gattern und Logik arbeitet und keine Befehle ausführt.
Für PIC-Assembler schau Dir mal einige Beispiele an, dann erkennst Du den Unterschied: http://www.domnick-elektronik.de/picasm.htm

PICture
28.03.2006, 14:04
Hallo VisionGuru!

Um Deine Frage zu beantworten, brauche ich noch folgendes:

- sind die Ausgangimpulse immer gleich lang oder dauern sie von Änderung zu Änderung der Eigangssignäle ?

- ist die vierfache Frequenz (die als Basis für die Eigangssignale wahrscheinlich irgendwo exstiert) verfügbar ?

- kann es auch ohne MC rein hardwaremässig realisiert werden ?

MfG

VisionGuru
28.03.2006, 14:10
Hallo Ohne Namen,

ja, man könnte einen Oszillator mit fixer Frequenz z.B. 120Khz verwenden um die Impulse zu erzeugen.

Ich hatte nach einer PIC Lösung gesucht, weil ich dachte diese wäre relativ einfach zu machen. Theoretisch könnte man es auch mit einem PAL/GAL machen. Ich weiß aber nicht was der aktuelle Tool Stand ist und außerdem habe ich leider keinen Logicanalyzer um zu debuggen.

Hast Du eine andere Lösung parat?

Grüße

Thomas

kalledom
28.03.2006, 15:46
Bedeutet das, wenn eine Flanke kommt, reicht es aus, wenn mit einer fixen Frequenz von 120kHz 4 Impulse mit gleichem Flanken-Anfang erzeugt werden ?
Dann kannst Du mit einer Flanke einen Zähler 'anstoßen', der mit 120kHz bis 4 zählt.