Hallo, ich benutze zur zeit einen Atmega 1280 um auf vielen leitungen(14) digitale signale zu erfassen. Es geht mir um die Zeitdifferenz zwischen den positiven flanken von festen Leitungspaaren sowie das wieder auf null gehen. Nun habe ich überlegt, daß ich mit einem kleinen cpld einen wesentlich kleineren, billigeren und leichter zu lötenden Controller nehmen könnte. Ist das eine sinnvolle Idee? Dem stopwatch-beispielprojekt von xilinx entnehme ich, daß die Datenerfassung im cpld kein großes problem sein sollte, aber wie kann ich die Information an den Controller übertragen? Signale wären beispielsweie: anstieg in 2 ms auf kanal 2 nix nix anstien in 6.4 ms auf kanal 3 nix kanal 2 aus nix kanal 3 aus Ein einfaches serielles Protokoll braucht wohl einen fifo, kann man den im cpld realisieren? Block-ram gibts ja nicht. Viele Grüße, Hansi
Also sorry, der ATmega1280 besitzt max. 86(!) IOs. Da solltest Du uns mal erklären, warum das Optimieren von 14 IOs zu einem kleineren AVR führen kann!? Der Rest scheint ja benutzt zu sein?
Ein CPLD bzw. FPGA erlaubt zumindest eine wesentlich höhere Zeitauflösung, im sub-Mikrosekunden-Bereich statt im Millisekundenbereich den der Prozessor softwaretechnisch erlaubt. Aber die Daten müssen auch im schlechtesten Fall (rauschen an den Leitungen :-) vom CPLD an den Prozessor (bzw. zunaechst mal Speicher) weitergeleitet werden können. Daher verwenden die üblichen LogicAnalyzer-Ansätze ein CPLD welches autark die Daten in ein RAM schreibt. Statt dem enfachsten Fall, in dem das RAM mit der Abtastrate getaktet wird und genau die Bit reingeschrieben werden, die den Eingangsleitungen entsprechen, kann man mit mehr Bits (einem Zeitstempel) die Anzahl der Datensätze verringern (es werden nur noch bei Änderungen Datensätze geschrieben) und damit die Speicherdauer verlängern. Das CPLD macht es dabei mit Leichtigkeit, die Adressen zu erzeugen und die Pegeländerungen zu erkennen, und ggf. bei Überlauf des Zeitstempels einen Fortsetzungsdatensatz zu schreiben. Der Prozessor kann danach in Ruhe die Datensätze auswerten und z.B. daraus Diagramme zeichnen. Bei FPGAs gibt es ggf. ausreichend grossen internen Speicher, aber ob das die preiswertere Methode ist, mag ich bezweifeln, es ist vielliecht die schnellere.
Zwischen AVR und CPLD empfiehlt sich ein SPI Interface, oder falls es pressiert ein Paralleles plus ein paar Handshake lines.
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.