PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bussystem mittels pic16f84



msp
16.09.2005, 17:09
hi leute,

bin schon seit einiger zeit bei meine modellbahn mittels pc steuern zu wollen. ich habe schon ein programm geschrieben sowie eine schnittstelle gebastelt, die an den pc angeschlossen wird. diese schnittstelle steuert fertige baugruppen an, die ich auch gebastelt habe. den baugruppen werden insgesamt 5 bit uebergeben, d.h. 4 bit fuer einen multiplexer und 1 bit fuer die aktivierung der karte.
meine idee war es jetzt dieses moeglichst erweiterbar zu bauen und moeglichst wenige draehte dazu zu verwenden um es zu erweitern, sprich eine art bussystem. da ich einige pic16f84 da habe (ca 5 oder so) wuerde ich gern das bussystem ueber solche pics laufen lassen. die idee ist das jeder pic eine definierte adresse bekommt und mittels 8 bit zb 4 schaltungen direkt ansteuern kann usw.
meine frage ist ist es eine gute moeglichkeit/idee oder habt ihr andere vorschlaege?

gruss
msp

Spartacus
16.09.2005, 18:08
Warum willst du 5 PICs verwenden? In deinem Fall würde ich einen PIC verwenden und mit ihm über I2C(2-Draht-Bus) die anderen Komponenten steuern.

Gruss Sparta

Skilltronic
17.09.2005, 08:49
Hallo

Ich finde deine Idee im Prinzip gut. Da der 16F84 keine serielle oder I²C-Schnittstelle hat, hast du bei der Wahl eines Übertragungsprotokolls freie Auswahl. Die Adresse jeder Einheit könntest du entweder fest einprogrammieren oder per Jumper oder DIP-Schalter am PIC einstellen (kostet jedoch IO-Pins). Allerdings sind PICs - vor allem der teure 16F84 - dafür schon fast zu schade.

Es gibt auch einfache Porterweitrungsbausteine, die man hintereinanderschalten kann und die seriell angesprochen werden. Damit kannst du z.B. den COM-Port auf beliebig viele Ein- und Ausgangsleitungen erweitern. Wenn du dafür Schieberegister vom Typ 4094/4021 benutzt, brauchst du incl. einer Rückleitung um Daten zum PC zu senden vier Steuerleitungen als Bus. Die Schieberegister arbeiten nicht mit eigenen Adressen, sondern schieben die empfangenen Bits durch einen Übertrag zum jeweils nachfolgenden IC weiter. Wenn du also z.B. drei 8-Bit-Ausgangserweiterungen hast, schiebst du in den Eingang der ersten nacheinander die 24 Steuerbit rein, gesteuert über eine Taktleitung. Die Strobe- bzw. Übernahmeleitung regelt, wann die neuen Daten an die Ausgänge der ICs übernommen werden. Über eine vierte Leitungen können dazu parallel Bits von Eingangs-Schieberegistern eingelesen werden. Die Funktion dieser Bausteine kannst du natürlich auch einfach deine PICs einprogrammieren, wenn es die sein sollen. I²C braucht zwar nur zwei Leitungen, alles andere ist aber komplizierter. Wie programmierst du denn übrigens den PC?

Gruss
Skilltronic

msp
17.09.2005, 18:00
hallo,

ich habe ein programm geschrieben was auf einem pc laueft. es ist eine client-server anwendung. der server kann bis jetzt 5 clients bedienen. diese clients senden dann an den server einen zahlenwert, den der server dann verarbeitet und einen definierten wert an die parallele schnittstelle sendet. man koennte natuerlich auch ueber die serielle oder was weiss ich was senden.
meine idee war es eben die pics zu verwenden, da ich die habe. aber wenn es einfacher geht (wo ich sagen muss das es mit schieberegistern in meinem fall vielleicht nicht das richtige ist) bin ich natuerlich gern bereit an was anderes zu denken. was ich bisher fuer ein problem hatte war das wenn ich einen pic direkt an die parallele schnittstelle angeschlossen habe wurden mal bits vernuenftig uebertragen und mal nicht. das hab ich nicht verstanden wieso es so ist bzw anders ist. das programm auf dem pic sowie auf dem rechner war ok, nur etwas hat halt nicht gestimmt in der ansteuerung denke ich. meine idee die ich hatte war noch und-gatter zw. parallele schnittstelle und pic zu setzen um wirklich eine definierte 0 zu bekommen, moeglicherweise macht das die parallele schnittstelle ja nicht (sollte sie aber machen).
ich werde morgen oder am montag mal noch ein bild reinstellen, damit sieht man vielleicht genauer was ich moechte.

gruss und dank.
msp