mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mit weniger Microcontrollerpins auskommen


Autor: Hans Mayer (hansilein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: woodchuck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ::: (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwischen AVR und CPLD empfiehlt sich ein SPI Interface, oder falls es 
pressiert ein Paralleles plus ein paar Handshake lines.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.