Home Navigationspfeil Selectrix Navigationspfeil Programmer

Empfänger mit Programmieranschluss

Bestückungsplan Layout Download Foto Stückliste

Diese Platine hat zum einen genau die selbe Funktion wie der Empfänger.
Zusätzlich dient sie zum Programmieren des PIC, und sollte somit zu mindestens einmal nachgebaut werden.
Wer nur selten PIC´s programmiert kann den Schalter S1 auch durch eine 3-polige Stiftleiste ersetzten, der entsprechende Kontakt muss dann über eine Steckbrücke erfolgen.

Schaltplan, Anklicken zum Vergrößern
Bestückungsplan
Bestückungsplan, Anklicken zum Vergrößern
Platinenlayout

Die Maße zum skalieren des Ausdrucks: Breite = 75 mm, Höhe = 65 mm.

Platinenlayout, Anklicken zum Vergrößern
und hier alle drei plus Target-File als ZIP. (97 kb)

Zum download des Programms hier klicken
Programm Version 8

Das ZIP-file enthält den Hexcode, der mit der entsprechenden Hard- und Software in den PIC geladen werden kann, z.B. NTPICprog.
Die Datei, mit der Endung asm, enthält den Quellcode, den ich mit MPLAB erstellt habe, man kann ihn auch mit jedem Texteditor bearbeiten.
Einen Link zu Microchip gibt es auf der Linkseite.

Zum Lesen hier anklicken
falls sich jemand den Quellcode mal ansehen will gibt es den hier zusehen.

Da ich ja keine Modellbahn mehr habe und somit auch keine neuen Programmänderungen vornehme, bin ich froh das sich Volker Kaiser dem angenommen hat. Er hat mir zusammen mit einer geänderten Programm Version folgendes geschrieben.

http://www.vk-fotoarchiv.de
Als wichtigstes ist wohl der Schutz des EEPROMs zu nennen. Bliebe man bei der ursprünglichen Programmierung kommt es beim FD alle 80ms zu einem Speichern der Ausgabe Daten im EEPROM. Rein rechnerisch wäre dieser breits nach ca. 10 Tagen Dauerlauf am Limit von 10.000.000 (Lebenszyklus laut Datenblatt 1 bis 10 Mill.)Schreibzugriffen angekommen. Wer seine Moba regelmäßig nutzt bräuchte jedes Jahr ein paar neue PICs...
Dies habe ich geändert, indem der Inhalt der EEPROM Zelle erst verglichen und nur bei einer Differenz geändert wird.
Desweiteren habe ich heute einige andere Veränderungen erfolgreich umgesetzt:
- Melder und FD funktionieren jetzt auch bei Zentrale AUS weiter, dazu mußte ich eine weitere Funktion hinzufügen die es möglich macht eine Unterscheidung zwischen Besetztmelder und Melder 8fach vor zu nehmen. Besetztmelderdaten werden bei ausgeschalteter Zentrale gespeichert und weiterhin gesendet ohne Veränderung, während ein Melder 8fach direkt weiter die Eingangsdaten sendet (z.B. als Eingang für ein Stellpult, das somit weiter funktioniert). Programmiert man Adresse 05 mit ---/---- entspricht das dem Melder 8fach, sonst bei -------- dem Besetztmelder), den Melder 32fach betraff das nicht, der funktioniert so oder so jetzt immer, kann ich allerdings nicht testen mangels desselbigen ;-)
- durch das Programmieren im Adressbereich 0-5 kam es beim Verlassen des Prog-Modus durch das Einschalten der Zentrale zum kurzzeitigen Anfahren (bis zu 1sec.) der Züge in diesem Adressbereich, da beim Prog-Ende erst die Daten ins EEPROM gespeichert wurden und dann erst die 5 Adressen "genullt", dies habe ich umgedreht, so daß die Loks nur noch sehr kurz zucken (kann man natürlich auch umgehen durch das Verlassen mittels Prog-Taster, aber manchmal je nach Anbringungsort recht unbequem
- als weiteres war mir aufgefallen das die unprogrammierten Bausteine beim Einschalten der Versorgungsspannung die Zentrale auf EIN stellen. Das beruht auf dem noch jungfräulichen Speicher dessen Werte nach dem Flashen des PICs "FF" beinhalten. So kommt es das nach der Initialisierung der Baustein als FD mit 16 Ausgängen und Adresse 127 seinen Dienst aufnimmt und in diese den Wert "FF" schreibt und somit die Zentrale einschaltet. Durch meine Änderung wartet der PIC mit einer Adresse größer 127 (also Bit 7 gesetzt) auf die Programmiertaste und schreibt nicht auf den Bus. Das kann man auch nutzen um gezielt einen Baustein außer Betrieb zu nehmen. Einfach das letzte Bit in der Adresse setzen! Das Problem hatte mich schon etwas genervt, vor allem wenn man mehrere unprogr. Bausteine auf einmal am Bus anschloß.
- Das gesamte Programm beinhaltet noch einige Fehler oder überflüssige Befehle, unter anderem wird das Programmieren per CALL aufgerufen, obwohl ein Verlassen des selbigen per GOTO zur INIT geschieht und es nie zu einem Return kommt. Das führt in diesem Fall nicht zu einem Problem nur zu einem Stack-Überlauf nach mehrmaligen Programmieren, was nicht weiter tragisch ist. Habs halt geändert. In der Hauptschleife werden bei der Ausgabe als FD 16fach die Ausgangsdaten vertauscht, was ich so belassen habe, da ich vorher "dummerweise" schon eine hardwaremäßige Korrektur durchgeführt hatte.
- Einige Kommentare habe ich korrigiert bzw. erweitert aber da könnte ich noch mehr machen.
Zum download des Programms hier klicken
Programm Version 8d von Volker Kaiser, von mir nicht getestet, da ich keine Modellbahn mehr habe.

PIC Programmierung

Um ein Programm in den PIC zuladen muss die Programmerplatine sowohl von der Anwendungsplatine als auch vom Selectrixsystem getrennt werden.
Des weiteren muss der Schalter S1 auf E stehen, falls der PIC sich nicht programmieren lässt kann man durch entfernen der Steckbrücke K5 den im Programmiermodus nicht benötigten Teil der Schaltung von der Versorgungsspannung trennt.
Über die SUB-D Buchse wird nun der Programmer mit einem COM-Anschluß des PC verbunden.
Am Programmer leuchtet jetzt die LED2 .
Nun muss man die Programmiersoftware z.B. NTPICprog starten, und den entsprechenden COM einstellen. Nach dem laden des Hex-files schaltet man die Schalter des Watchdog timers und Powerup timers auf aus, und den Schalter XT osc auf ein.
Jetzt startet man mit write den Schreibvorgang, während des Schreibens erlicht LED2 , nach dem Schreiben leuchtet sie wieder.
Nach dem Trennen der Verbindung zum PC, den Schalter S1 auf E stellen, die Steckbrücke K5 einsetzen und den Empfänger mit dem Selectrixsystem verbinden oder den PIC in einen anderen Empfänger einsetzen.
Als nächstes wird der Empfänger mindestens auf die Funktion (Adresse 5) programmiert, und dann mit der Anwendungsplatine verbunden.
Die Taste R dient zum Reset des PIC, falls er mal hängt, ist aber eigentlich nur für die Entwicklungsfase.
Taste EP ist die Taste des Empfängers und LED1 ist die LED des Empfängers, siehe dazu beim Empfänger.
Foto der Platine
Stückliste

mit den Artikelnummern der Fa. Reichelt aus dem Katalog 04/2002

Bauteilnr.

Anzahl

Artikel

Artikelnr.

Preis

Gesamt

C1,C2

2

15 pF

Kerko 15p

0,04 Euro

0,08 Euro

C3

1

10 nF

Kerko 10n

0,04 Euro

0,04 Euro

C4

1

100 nF

Kerko 100n

0,07 Euro

0,07 Euro

C5

1

10?F

rad 10/35

0,04 Euro

0,04 Euro

C6

1

47?F

rad 47/35

0,04 Euro

0,04 Euro

D1,D2

2

LED

LED 3mm ST RT

0,08 Euro

0,16 Euro

D3

1

ZPD5V6

ZD 5,6

0,06 Euro

0,06 Euro

D4

1

1N4148

1N 4148

0,02 Euro

0,02 Euro

IC1

1

PIC 16F84

PIC16F84A-04P

5,30 Euro

5,30 Euro

IC2

1

78L05

uA 78L05

0,15 Euro

0,15 Euro

K1

1

Stapelleiste

Stapelleiste 10

0,50 Euro

0,50 Euro

K2,K3

2

DIN-Buchse

MABP 5S

0,35 Euro

0,70 Euro

K4

1

D-SUB9

D-SUB BU 09EU

0,50 Euro

0,50 Euro

Q1

1

Quarz MHz 4

4-HC18

0,35 Euro

0,35 Euro

R1

1

270R

1/4W 270R

0,033 Euro

0,03 Euro

R11,R14

2

2,2k

1/4W 2,2k

0,033 Euro

0,07 Euro

R2-3,R9,R12

5

10k

1/4W 10k

0,033 Euro

0,17 Euro

R4-5,R10

3

22k

1/4W 22k

0,033 Euro

0,10 Euro

R6-7

2

100R

1/4W 100R

0,033 Euro

0,07 Euro

R8,R13

2

je nach LED

z.B.1/4W 680R

0,03 Euro

0,07 Euro

SW1,SW2

2

Taster

PHAP 3301

0,14 Euro

0,28 Euro

-

1

IC-Sockel

GS 18

0,05 Euro

0,05 Euro

S1

1

1xUM Print RM 2,54mm

AS 500APC

1,65 Euro

1,65 Euro

Summe Empfänger / Programmer

10,49 Euro

© CMBasic.de