-
-
Neuer Benutzer
Öfters hier
Porterweiterungen und synchrones Setzen
Hallo Ihr,
ich habe ein großes Problem, ich möchte über meinen ATMega mehrere Digitale Ein- und Ausgänge realisieren. Ich möchte nämlich eine Steuerkarte für ein Experiment in meiner Masterthesis bauen, wo sehr genaues Timing notwendig ist. So müssen zum gleichen Zeitpunkt Ausgänge gesetzt und gelesen werden können. Ich möchte dabei einen Puls mit meinem Controller ausgeben, welches dann alle Ausgänge setzt und alle Eingänge speichert.
Für die Realisierung der Eingänge hatte ich an PIPO-Latches gedacht (PIPO=parallel in, parallel out), da könnte ich dann alle Set/Store-Pins mit einander verbinden und so gleichzeitig alle Eingänge speichern und dann getrennt über Output Enable auslesen.
Für die Ausgänge ist allerdings ein Latch nicht geeignet, ich bräuchte einen Baustein der zwei latches besitzt, wo ich zuerst meine Daten hineinladen kann und dann später am Ausgang setzen kann. Eine serielle Eingabe der Daten kommt allerdings aus Zeitgründen nicht in Frage, da die Ausgänge alle 10ys aktualisiert werden sollen. Kennt Ihr einen solchen CHIP ?
Vielen Dank schon einmal im Vorraus für Eure Hilfe
drylemon
-
Erfahrener Benutzer
Roboter Genie
Hallo,
um gleich im Vorfeld unsinnge Vorschläge zu vermeiden: wieviele Ein- und Ausgänge brauchst du denn für dein Experiment?
Gruß MeckPommER
-
Erfahrener Benutzer
Roboter Experte
Hallo,
ich habe sowas mit dem 4094 gelöst. Ist seriell in, da sparst du dir Pins. Der hat 8 "gelatchte" Ausgänge plus zusätzlich den letzten im Schieberegister nicht "gelatcht". Somit brauchst du nur 3 Leitungen: Data, Clock und Latch. Du schiebst einfach alle Eingänge durch die Register und setzt dann alle Ausgänge mit parallel geschaltetem Latch-Impuls.
Viele Grüße
Andreas
-
Erfahrener Benutzer
Fleißiges Mitglied
klingt nach einer aufgabe für CPLDs .. z.B. Xilinx xc 9572 oder xc95144
da könnte man die benötigten latches drin realisieren. die dinger muß man natürlich auch erst wieder "programmieren" .. aber das ist nicht ganz so furchtbar wenn man das prinzip einmal durchschaut hat..
-
Neuer Benutzer
Öfters hier
Danke für eure Antworten
Es wäre schön, wenn ich einen IC hätte, der 8 Ausgänge/Eingänge hätte, damit ich diese leicht über einen Port des Atmega ansteuern kann. Insgesamt sollte das relativ flexibel gehalten werden. Ich plane aber 16 oder 32 Eingänge und 16 oder 32 Ausgänge (@ MeckPommER).
Da ich meinen Atmega nur mit max 16 Mhz tackten kann, aber alle 10ys neue Ausgangszustände realisieren möchte, kann ich nicht auf eine serielle Datenübertragung zurückgreifen, da ich zum Aktualisieren nur 160 Tacktzyklen habe und ich den seriellen Port nicht mit 16 Mhz tackten kann (@ Bumbum)
Das mit den CPLDs hört sich toll an, allerdings habe ich da noch nie was damit gemacht. Ich habe gehört, dass man die jetzt auch mit C++ programmieren kann, gibts da was kostenloses ? Brauche ich spezielle Programmierhardware ? Mit was programmierst Du die denn und was für Schaltungen kann ich damit realisieren ? (@ _werwurm_)
Aber vielleicht hat ja einer von euch noch eine Idee für einen paralell in und parallel out IC mit doppeltem latch ?
Vielen Dank schon mal im Voraus für Eure Hilfe
Viele Grüße - Joost
-
Erfahrener Benutzer
Fleißiges Mitglied
also CPLDs wären dafür optimal glaube ich da flexibel, schnell und jede menge io-leitungen möglich
programmiert werden die in einer hardwarebeschreibungssprache z.B. VHDL oder bei Xilinx kann man auch mit der kostenlosen software sich vorgefertigte latches oder register zusammenklicken (wie bei schematic software zum schaltplanerstellen) und das dann kompilieren lassen.. ist meist nicht genauso optimal wie in VHDL geschrieben aber schnell und einfach.
mit cpld kann man nur relativ einfache sachen wie latches und logische verknüpfungen und vielleicht noch nen zähler machen .. bei zu komplexen sachen reicht es dann nicht mehr aber für einfache porterweiterungen sind die optimal
programmierhardware kann man leicht selber zusammensetzen wenn ein parallelport am rechner vorhanden ist. das geht auch schon mal auf lochraster oder breadboard
http://www.fischl.de/thomas/elektronik/cpld/index.html
http://www.seas.upenn.edu/~ese201/fo...chCapFinal.GIF
http://de.wikipedia.org/wiki/CPLD
ich selber kenne nur Xilinx - gibt natürlich auch andere wie Altera und Lattice
-
Erfahrener Benutzer
Robotik Visionär
Ein CPLD hört sich einfach an, die Programmierung daert aber etwas bis man sich eingearbeitet hat. Mit normalen TTL D-Latches oder auch schieberegistern sollte das auch gehen.
Die Schieberegister kann man mit der Hardware SPI Schnittstelle verbinden und dann fast so schnell wie parallele Daten ansprechen (16 Zyken je Byte). Zum Ausgeben 74 HC595 zum einlesen HC166 ?. Alternativ natürlich eine schnellere low voltage version.
-
Neuer Benutzer
Öfters hier
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen