im Markt thread http://www.mikrocontroller.net/topic/goto_post/2115983 wurde von David ... (volatile) folgende Frage gestellt: Hm, interessantes Teil :) Was macht ihr damit so? Waer nett wenn ein Benutzer nen neuen Thread aufmacht (dass wir den hier nicht kapern) und berichtet :) Ich nutze diese Winzlinge um LEDs über einen 2-Draht-Power-Bus anzusteuern. Die 6 Pins des PIC sind von hausaus als 2 Versorgungspins, 1 Input und 3 In/Out designed. Es lassen sich also 3 LEDs direkt oder über Multi- und Charlieplexing bis zu 6 LEDs ansteuern. Der Powerbus ist so designed, dass die Versorgungsspannung vom Sender, das kann irgendein uC mit Transistor hintendran sein, ich nutze hier idR AVRs, kurzzeitig gepulst wird, um die Information zu übertragen. Am Mini-PIC ist die Versorgungsleitung direkt auf den Input Pin gelegt. von dort geht eine Diode an den Mini-PIC Versorgungspin. An den Versorgungspins hängt noch ein >= 100nF Kerko, um die Lücken in der Versorgungsspannung zur Informationsübertragung zu überbrücken. Um kein Missverständnis aufkommen zu lassen. die Versorgungsleitung des 2-Drahtbusses hängt nur über die Diode an dem Versorgungspin, also nicht direkt. GND geht natürlich direkt dran. Sollte man nicht alle drei Ausgänge des PICs benötigen, nimmt man einen anderen Pin als Eingang, dann kann man die Diode weglassen, weil sie intern im PIC dann schon als Überspannungsschutzdiode vorhanden ist. Nur an dem Only-Inpin ist keine Diode drin, weil dieser Pin bei der Porgammierung die höhere Programmierspannung abbekommt. Im PIC Programm schalte ich die LEDs für die Dauer der Infromationsübertragung dunkel, um den Stromverbrauch zu senken, damit der Kerko nicht den Strom für die LEDs puffern muss. Den Beginn der Informationsübertragung erkennt man daran, dass der Inpin auf GND gezogen wird. die = / 1 Übertragung ist durch unterschiedlich lange GND Pulse definiert. Das is ganz easy im Programm zu detektieren. Aktiv auf 0 am Inpin warten, der PIC hat ja sonst nix zu tun, 3 mal Däumchen drehn und den am INpin anliegenden Wert als bit einlesen und in eine Variable schieben. Dann warten, dass am Inpin eine 1 anliegt (ist eigentlich nur bei einer 0 nötig) und los gehts zur Runde fürs nächste Bit, also auf eine 0 warten. Wozu ist der Aufwand gut? Sehr simple Verkabelung. Es gehn eben nur zwei Drähte zur Anzeigeplatine und durch geeignete Addressierung kann man an den einen Zweidraht-Powerbus gleich mehrere Anzeigeplatinchen dranhängen. Einziger wirklicher Nanchteil dieser Lösung: der Mini-PIC hat kein EEprom, das hat der inzwischen in diesem Gehäuse erhältliche AVR Tiny4/5 übrigens auch nicht. da sind sich die Dinger auffallend ähnlich. Dieser PIC hat aber ein paar Vorteile (und ich bevorzuge sonst AVRs !!!!): 1) er ist billiger als der ensprechende AVR 2) es gibt von Microchip einen Header-Adapter AC162059, kostet so um die 15EURO. Auf diesem Adapter befindet sich ein 20Pin DIP PIC-xyz-IDC der sich an sechs Pins genau wie der Mini-PIC verhält und einige der zusätzlichen Pins zum realtime in-circuit debuggen benutzt. Mit einem MCD2 oder 3 development tool von Microchip oder Chinas weisse Ware kann man dadurch für diese Winzlinge seinen Code in realtime in der Schaltung debuggen. Das ist echt cool und Klasse. Zum Prommen habe ich mir so einen chinesischen Testsockel mit Adapter auf DIP8 zugelegt. Den steckt man in den ZIF Sockel des Prommers, Deckel des Sokkels aufklappen, Winzling mit Pinzette einlegen, Klappe zu und Program reinschiessen. geht wies Brezelbacken. Also lasst mal hören, was ihr so damit anstellt oder einfach nur Kommentare. so long Remo
Also mir wuerde jetzt der Modellbau als ein wesentlicher Anwendungsbereich einfallen....
Mir fällt gerade ein, ich hab auch mal den ELV FS20 Code in einen solchen Mini-PIC gepackt. Taste, FS20 Senderplatinchen und eine 3Volt Knopfzelle dran und fertig ist der FS20 Sender.
Eine gute Idee ist es, den PIC als gemeinen "Clone-Schutz" in Schaltungen einzusetzen, vorzugsweise dort plaziert, wo ihn ein potentieller Nachbauer nicht weiter beachtet, z.b. auf einer Platine wo sonst nur das Display ist. Antwortet der kleine PIC nicht richtig oder ist garnicht vorhanden macht der Hauptcontroller komische Fehler. Die Leiterbahn am besten in einen Innenlayer routen. Noch fieser ist es, den PIC unter einen Sockel zu plazieren ;) Ich nutze die 10F-PICs als Protokoll-Converter, also z.b. RS232 auf 1 Wire usw.
Für power sequencing wird er gerne hergenommen, ebenso für Sensoraufgaben (Linearisation, Kalibration, Protokollanbindung). Für Schaltungen in geringer Auflage ist das einzige Problem die in circuit programmierung, welche bei diesen Bausteinen schwierig ist.
@ Remo@ Te wo hattest du das Protokoll für den FS20 Code her? Ich benutze diese PICs im Modellbaubereich (Blaulichter, Schweißlichter, usw. Außerdem hauche ich defekten Billigfunkempfängern damit neues Leben ein. (Harzkleckschip abfräsen, die benötigten Leiterbahnen mit dem PIC verbinden und der Fantasie freien Lauf lassen ;-) )
@Erhard Den Code für den FS20 Sender hatte ich in Assembler selbst geschrieben. Ist nicht sonderlich aufwendig. Das FS20 Protokoll ist eigentlich ganz einfach 0 bit = 400µs High, 400µs Low 1 bit = 600µs High, 600µs Low diesen Ablauf 3 mal wiederholen send synchronization 0000000000001 (12* 0, 1* 1) send HouseCode1 byte send parity bit for HC1 send HouseCode2 byte send parity bit for HC1 send Adress byte send parity bit for Adress send Data byte send parity bit for Data send QuerSumme byte ; calculate Quersumme as 0x06+HC1+HC2+Adr+Dat send parity bit for QuerSumme send 0 bit to terminate transmission wait 10ms Ich hatte das Gefühl das Timing sei relativ unproblematisch, auf ein paar us hin oder her scheint es nicht anzukommen. Die parity bits hatte ich der Einfachheit halber nicht zur Laufzeit ausgerechnet sondern als Konstanten abgelegt. Ich hatte mir nicht die Mühe gemacht den Hauscode oder die Adresse einstellbar zu machen, die hab ich einfach als Konstanten festgelegt und reingebrannt. Das macht den Code eben so kurz und einfach. Ausserdem hätte der PIC eh kein EEProm gehabt, wo man die Adressen ablegen hätte können. Um die Frage vorwegzunehmen, nein ich finde den Code gerade nicht, Komisch sowas verschwindet doch nicht....das wäre ärgerlich, hab das gleiche aber auch für einen AVR programmiert und dort habe die obige Zeiten und den Ablauf rauskopiert. Also posten is leider nicht, zumindest nicht auf die Schnelle. Gruß Remo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.