- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Bussystem mittels pic16f84

  1. #1

    Bussystem mittels pic16f84

    Anzeige

    Praxistest und DIY Projekte
    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

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    22.07.2005
    Beiträge
    17
    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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.02.2005
    Ort
    Köln
    Beiträge
    132
    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

  4. #4
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen