Guten Tag,
ich wollte fragen ob man soetwas mit einem µC realisiren kann.
Diese Logig möchte ich gerne mehrmals in ein µC bringen. Könnten dieser
auch parralel laufen also das diese funktion im gleichen moment
passiert??
Ich wäre froh wenn jemand mir helfen könnte.
MfG
Lars
Logic:
if Eingang1=1
(
Ausgang2=1
Zeit ein paar µs
Ausgang3=1
Zeit ein paar µs
Ausgang1=1
)
if Eingang1=0
(
Ausang2=0
Zeit ein paar µs
Ausgang3=0
Zeit ein paar µs
Ausgang1=0
)
Dies ist problemlos möglich, jedoch ist die Auflösung ca. 1-10uS, bei
mehreren solcher Logiken in parallel. 1 (vielleicht auch bis zu 0.125uS)
bei Verwendung von einem externen Quarz, bis zu 10uS bei dem internen
Osc.
Das hört sich doch schon mal echt gut an.
Was empfelen sie mir denn für einen Controller? Ich kenne mich auf dem
µC Gebiet überhaupt noch nicht aus.
Ich würde gerne 8 Logiken im einem µC unterbringen.
diese logig ist wie erwähnt recht einfach mit einem µController zu
lösen...
parallel kann das nicht passieren, allerding kann das im µS bereich
passieren
eine andere möglichkeit wäre es, das prorgamm mit einer programmierbaren
logig zu realisieren, dann würden die reaktionen in nano-sekunden
bereich statt finden.
für dieses einfache programm kann man fast jeden µController benutzen,
der auf dem markt vorhanden ist. empfehlen könnte ich einen 8051 z.B.
den Atmel 8252
Soweit ich dich verstehe, 4(io)x8(logic)=24 pins.
Weiters ist es noch eine Preisfrage (inkl Layoutfläche), sowie ev. was
du sonst noch machen möchtest, mit dem Micro.
Am wichtigsten ist mir eigendlich das ich die Wartezeit auch länger (1s)
machen kann und trotz dessen die anderen logiken weiter funktionieren,
also paraller betrieb.
Und kostengünstig muss es sein da ich es in einem Modelbahnverein
einsetzten möchte.
MfG
Lars
Bei längeren Zeiten (Bereich einige 10 µsec bis beliebig lang), so daß
etwas Zeit zum Rechnen dazwischen übrigbleibt, gehts natürlich schon mit
dem Parallelisieren.
Die Ausgangstripel haben ja jeweils 5 Zustände:
0 - Ausgänge aus
1 - Ausgang 2 ist gesetzt, Timer abwarten
2 - Ausgang 3 ist gesetzt, Timer abwarten
3 - Ausgänge ein
4 - Ausgang 2 ist gelöscht, Timer abwarten
5 - Ausgang 3 ist gelöscht, Timer abwarten
Übergangsbedingungen sind jeweils die positiven/negativen Flanken der
Eingänge (bewirken Setzen/Löschen von Ausgang 2 und Übergang in Zustand
1 bzw. 4) sowie das Ablaufen der Zeitintervalle (bewirken die Übergänge
1->2, 2->3, 4->5 und 5->0).
Array über 8 char-Variablen, darin wird jeweils der aktuelle Zustand
gemerkt. Dann in einer Endlosschleife jeweils Übergangsbedingung
abgefragt, daraufhin der Zustand gewechselt oder nicht, und dann sofort
um den nächsten Ausgang gekümmert. Nur mit der Mehrfachnutzung der Timer
mußt du kreativ sein. Wenn die Anforderungen an die Genauigkeit Timing
nicht zu hoch sind (Modellbahn), kann man hier aber auch was basteln
(z.B. Timer in recht schneller Folge Interrupt auslösen lassen, darin 8
Software-Timer, falls diese gerade laufen sollen, weiterzählen und auf
Ablauf des Zeitintervalls prüfen).
Wegen Micro, kostenguenstig wuerde ich dir folgendes Empfehlen
Pic12f505 fuer jeweils 3x logic (12 IO).
Einer kostet ein Euro und braucht keinen externen Quarz, nur einen
Entkoppelungskondensator (Preis Farnell)
Sonst, ein Mega16, kostet 2.95 Euro oder ein ATMEGA8535, kostet 2.75
Euro,
beide brauchen ein Quarz, sowie 3 Kondensatoren, also unter 4 Euro, und
haben 32 I/O's. (Preis Pollin). Ich wuerde den Mega16 Empfehlen.
TTL-IC geht, das weiss ich, kostet dich aber mehr, als mit einem Micro,
und du bist nicht so flexibel, beim Micro kannst du die Zeit einfach
aendern, oder SW-Entprellung machen, nicht so einfach, bei der HW was
umzustellen.
Der Mega16, mit Quarz kann eine Auflösung von 1uS haben, für 8 logiken
gleichzeitig, der pic hat eine von 10uS, ohne Quarz für 3 logiken.
Ob 3 oder 8 logiken, der Algorithmus ist der gleiche, und threading
braucht
es auch nicht. Threading können beide, würde ich aber nicht verwenden.
Zum Programmieren des AVR braucht man ein paar dioden, normale + Zener.
Beim Pic braucht man eine 12V Spannung, sowie 2xWiederstände+
und eine Diode.
Die AVR werden über Jtag programmiert, da müßtest du als FPGA Entwickler
eigentlich schon die nötige HW haben.
SW kannst du z.B. hier runterladen.
http://elm-chan.org/works/avrx/report_e.html
Saft für ein normales Relais hat er nicht, eventuell für ein
reed-relais.
Dazu wird gerne ein ULN2001/3 oder ein ULN2801/3 genommen. Dieses
Bauteil
hat auch die Schutzdiode schon integriert. die 2001/3 hat 7 Darlington
driver, der 2801/3 8. Kostenpunkt,aus dem Kopf ca.
0.4(2001/3)-0.8(2801/3) Euro.