Forum: Mikrocontroller und Digitale Elektronik Einstieg in PIC mit MPLAB X und Snap Adapter


von Markus (einfach_markus)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich bin neu hier im Forum und wollte mich mal im PIC programmieren 
versuchen. Ich habe keinerlei Vorkenntnisse und kann kaum Englisch. 
Verwenden möchte ich den PIC im RC-Modellbau um Funktionen zu steuern.

Mein Projekt:
Ich möchte einen einfachen 2-Kanal-Schalter aufbauen um über einen 
Steuerkanal am Sender 2 Funktionen unabhängig voneinander einzuschalten. 
Als PIC soll ein 12F629 zur Anwendung kommen.

Es handelt sich dabei um ein pulsweitenmoduliertes Singnal, welches eine 
Signallänge von 1-2ms hat. Bei 1,5ms ist die Neutralstellung und es soll 
nichts passieren. Zwischen ca 1-1,3ms soll Relais 1 anziehen und eine 
Funktion ansteuern, Relais 2 bleibt aus. Zwischen ca 1,8-2ms soll 
entsprechend Relais 2 anziehen und Relais 1 soll aus bleiben.

Schaltplan und Platine sind bereits fertig.

Wie weit ich gekommen bin:
Ich habe mir MPLAB X runtergeladen und installiert. Da bekam ich den 
ersten Frust. Laut Installationsmaske wurde ein Speicherplatz von 
4,irgendwas GB gebraucht. Ok, dafür war genug Platz auf der 
Festplattenpartition. Nach wenigen Minuten wurde die Installation wegen 
Fehler abgebrochen. Ursache Festplatte voll. Nach erfolgreicher 
installation auf einer größeren Partition dann das große OHO.. keine 
4,... sondern ganze 24GB.
Als PIC Brenner hatte ich mir das PicKit3 zugelegt, was auch nicht 
funktionierte. Nach einiger recherche...PicKit3 wird von dem neuen MPLAB 
X nicht mehr unterstützt. Jetzt wollte ich auch keine 80-100€ ausgeben 
also entschied ich mich für den MPLAB SNAP bei Reichelt. Da habe ich mir 
auch gerade die Bauteile für die Platine mitbestellt und ein 
Experimentalboard im Set mit Kabel und Energiemodul.
Als alles angekommen war, bekam ich keine Verbindung zwischen Snap und 
PC. Ein passendes USB-Kabel ist nicht im Lieferumfang und das was ich 
hatte war nur ein einfaches Ladekabel. Also noch ein Datenkabel besorgt 
und der PC erkannte ein neues Gerät. In der zwischenzeit hatte ich dann 
auch schon herausbekommen, dass der Snap nicht den PIC mit Spannung 
versorgen kann und zum Programmieren eine externe Spannung anliegen 
muss. Das war kein weiteres Problem, denn ich hab ja das Energiemodul 
für das Experimentalmodul. Das noch mit den Jumpern auf 5 V eingestellt 
wurde und gut.

Jetzt habe ich mir ein paar Videos angeschaut um das MPLAB X IDE zu 
verstehen und da fängt es jetzt bei mir an.
Wenn ich ein neues Projekt anlege komme ich bei Schritt 2 nicht mehr 
weiter. Gebe den PIC12F629 an und kann dann bei Tool nicht den Snap 
Adapter auswählen. Habe dann versucht über die Menüleiste - Debug - 
Hardware Tool Emergency Boot... den Snap Adapter zu konnekten. Das ging 
auch mit der Spielerei von Jumper brücken... (warum man da nicht 
wirklich einen kleinen Jumper oder Taster herstellerseitig verbaut ist 
mir Rätselhaft). Aber danach kann ich den Snap Adapter unter "neuem 
Projekt" immer noch nicht auswählen.

Mein nächstes Problem kommt dann, das ich die Programmiersprache C nicht 
kenne. Die groben Grundzüge sind soweit klar. Am PIC Ein- und Ausgänge 
definieren, dann einen Timer für das Signal auszuwerten und dann im 
Programm festlegen, was unter welchen Umständen passieren soll. Wie das 
aber in C formuliert wird hab ich noch keine Ahnung. Da das Programm 
aber nicht sonderlich umfangreich zu sein schien, habe ich das einfach 
mal mit einer KI versucht und wollte das testen.
Habe meine Beschreibung dort 2x eingegeben und die KI das 2x schreiben 
gelassen.
Bei der ersten Version passt der Anfang denke ich
/ ======================================
// PIC12F629: Pulsbreitenmessung an GP3
// Ausgänge:
// GP0 (Pin7),
// GP1 (Pin6)
// =====================================

Während bei Versuch 2 schon die Ausgänge falsch benannt sind
// ===========================================
// PIC12F629 – Pulsweitenmessung an GP3 (Pin 4)
// Ausgänge:
// GP1 (Pin 6) = Ausgang 1
// GP2 (Pin 7) = Ausgang 2
// ===========================================

Also fraglich wie es im gesamten abläuft.

Mir ist auch klar, dass mir hier keiner C beibringt, das wäre nicht 
möglich und viel zu umständlich.

Was ich mir jetzt erhoffe.
-Dass man mir helfen kann in MPLAB X weiter zu kommen bzw warum ich den 
SNAP Adapter nicht auswählen kann.
-Vielleicht auch, dass mir jemand für kleines Geld meine 3 ersten PIC´s 
brennen kann, damit ich in meinem Modellbauprojekt weiter komme.

Ach so, falls die Frage auftaucht, warum ich den Aufwand betreibe, 
obwohl man schon für kleines Geld solche Schalter fertig kaufen kann. 
Der Minimalismus schreitet soweit voran, dass man jetzt überall auch 
schon auf Befestigungslöcher verzichtet und ich möchte nicht alle 
Bauteile mit Klett- oder Klebeband ankleben. Schön sauber geschraubt 
gefällt mir besser. Zudem sind auch nur die Schaltkontakte ausgeführt. 
Ich gehe lieber mit der Versorgungsspannung (+ und -) zu meiner Platine 
und von dort zu meinen Verbrauchern, statt den Minus über den 
Schaltkontakt zu führen und jedem Verbraucher den Plus nochmal separat 
hinlegen zu müssen. Auch spare ich mir so gerne noch eine 
Verteilerplatine für den Plus.

Gruß Markus

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Markus schrieb:

> wollte mich mal im PIC programmieren
> versuchen.

Warum?

> Ich habe keinerlei Vorkenntnisse und kann kaum Englisch.

Um so schlimmer.

> Verwenden möchte ich den PIC im RC-Modellbau um Funktionen zu steuern.

Dann nimm einfach was, was einfacher zu programmieren ist und für das es 
deutsche Dokus gibt.

von Cartman E. (cartmaneric)


Lesenswert?

Für den 12F629, hätte es das MPLAB V8.92, XC8 V1.45 und ein
Pickit2 allemal auch getan. Da wären mir meine SSDs zu schade
für ein "-X".

Deutesch Dokus findet man bei sprut.de.

: Bearbeitet durch User
von Markus (einfach_markus)


Lesenswert?

Hallo Ob S.

Deine Antwort ist ja mal absolut nicht hilfreich aber ich gebe mal 
Antwort.

Warum PIC?
PIC war das erste wo ich drauf gestoßen bin. Hatte vor Jahren mal einen 
Arbeitskollegen (leider keinen Kontakt mehr) der hatte mit PIC´s 
hobbymäßig zu tun. Er hatte mir davon erzählt und ich fand die Sache 
damals wie heute interessant.

Zu meinen Vorkentnissen.
In der Schule vor ca 25 Jahren hatte ich mal kurz in Informatik mit 
Pascal zu tun und in der Lehre ein bisschen mit Siemens Simatic S5 und 
S7. Dachte das vom Programmieren das ganze etwas ähnlich sein wird, da 
ja immer der Zustand abgefragt wird auf den dann eine Reaktion passieren 
soll. Aber C ist da doch ganz anders.

Du sagst ich soll was anderes nehmen. Was?

__________________________________________________

Cartman E.

Danke für deine Antwort.
Ich habe gegooglet, was man zum PIC programmieren braucht und habe 
darauf halt einfach die aktuellste Version von MPLAB runter geladen. Da 
sind auch die ganzen aktuellen Compiler drin und wusste auch, das es auf 
meinem Rechner läuft. Bei älteren Versionen kann es ja zu 
kompatibilitätsproblemen kommen und wollte da nachher nicht noch ewig 
nach Patches oder irgendeinem Kram suchen müssen. Hätte ich gewusst, 
dass eine ältere Version läuft und der XC 8 Compiler für meinen PIC 
reicht hätte ich mich sicher erstmal für die Version entschieden.
Werde mich mal durch sprut.de durchlesen. Die Seite ist gut gegliedert 
wird aber sicher etwas dauern.
_______________________________________________________

Auf Grund keiner weiteren Antworten auf mein Problem sehe ich mein 
Projekt für mich als sehr schwierig an... klar, alles in Englisch und 
kann kein Englisch und kein "C".

Wäre mir dann eventuell jemand in soweit hilfreich mir ein Programm zu 
schreiben und auf meine 3 schon gekauften PIC´s zu brennen? So landen 
sie wenigstens nicht unnötig im Müll.


Gruß Markus

von Nemopuk (nemopuk)


Lesenswert?

Markus schrieb:
> So landen sie wenigstens nicht unnötig im Müll.

Da soll also jemand einen Tag seiner Freizeit opfern, damit deine 
Mikrocontroller im Wert von 5€ nicht in den Müll wandern? Erzähle doch 
lieber mal, wie viel Geld dir diese selbstlose Rettungsaktion wert ist.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Markus schrieb:

> Was ich mir jetzt erhoffe.
> -Dass man mir helfen kann in MPLAB X weiter zu kommen bzw warum ich den
> SNAP Adapter nicht auswählen kann.

Du hast zu billig gekauft. Sorry. Der MPLAB Snap wird Deinen PIC nicht 
programmieren können, und das MPLABX weiß das auch. Der Grund dafür ist, 
dass das Snap zu billig ist. Dein konkreter PIC braucht am MCLR Pin eine 
Programmierspannung von 9 bis 12 V (den genauen Wert müsste ich 
nachschauen), um in den Programmiermodus zu wechseln. Die normalen 
PICKITs (2, 3, 4, 5, aber nicht der BASIC!) haben dafür einen 
DC-DC-Wandler, der die erforderliche Spannung aus den 5V des USB-Ports 
erzeugt. Der Snap sollte aber billig sein, und deswegen hat man diesen 
etwas aufwändigen Schaltungsteil dort weggelassen. Moderne PICs brauchen 
diese hohe Programmierspannung auch nicht mehr, aber Deiner ist ein sehr 
alter Typ. Das erkennt man daran, das hinter dem F in der 
Typenbezeichnung nur drei Ziffern folgen. Neuere PICs haben 4 oder 5 
Ziffern hinter den F.

Du hast jetzt folgende Möglichkeiten:
1. Du besorgst Dir ein PICKIT5. Das kann alles, was Du brauchst. Ist 
halt nicht ganz billig.
2. Du deinstallierst Dein MPLABX 6.25 und installierst die 6.20. Die 
kommt dann auch mit Deinem PICKIT3 klar.
3. Du nimmst einfach einen zeitgemäßen PIC. Wenn Du unbedingt einen 
8-Pinner haben willst, wäre der PIC16F18313 beispielsweise geeignet. Aus 
der gleichen Serie gibts auch den PIC16F18324 mit 14 Pins. Die können 
Low Voltage Programming und funktionieren dann auch mit Deinem SNAP.

Ich persönlich würde 3. wählen und dann zu einem 14-Pinner greifen.

fchk

PS: nachgeschaut: Dieser hier braucht 12V Programmierspannung. Andere 
brauchen 9.5V. Der DC-DC-Wandler im PICKIT muss in der Lage sein, eine 
variable Programmierspannung zwischen 6.5 und 13.5V zu erzeugen, und 
diesen AUfwand (und Kosten) hat man sich beim MPLAB Snap und beim PICKIT 
Basic gespart.

: Bearbeitet durch User
von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Am besten fängt man mit einem ganz
kleinen Projekt an. Z.B lass eine LED blinken.
Klingt einfach aber wird es nicht für dich sein.
Wenn es läuft hast du schon eine ganze Menge gelernt.
Und nicht gleich aufgeben sowas braucht Zeit und
viel Übung.

von Cartman E. (cartmaneric)


Lesenswert?

MPLAB V8.92 und der XC8 laufen auch ohne Probleme auf aktuellen
64 bit Windows Versionen. Die Sorge ist also unbegründet.
Statt zig GB braucht das MPLAB+XC8 hier ca. 1,5 GB und ca. 500 MB,
wenn man für den Ordner die Kompression einschaltet.

Die Versionen bei Microchip aufzustöbern, überlasse ich allerdings
dir. ☺

P.S.:
Wenn du diesen Weg einschlägst, solltest du statt MPLAB-Assemblers
gleich mit dem XC8-Assembler arbeiten. Spätestens wenn du soweit
bist, und C und Assembler zusammen benutzen willst, nützt dir der
alte MPLAB-Assembler nichts mehr.

Für weitere Projekte solltest du den 12F683/16F684 ins Auge fassen.
Mit denen lassen sich auch batteriebetriebene Projekte sehr viel
besser umsetzen.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Peter K. schrieb:
> Am besten fängt man mit einem ganz
> kleinen Projekt an. Z.B lass eine LED blinken.

Das ist ohne das passende Programmiergerät bzw. ohne die zum 
Programmiergerät passende Entwicklungsumgebung erstaunlich schwierig.

Hier hat sich der Threadstarter etwas selbst ein Bein gestellt, in dem 
er eine fossile und nur umständlich programmierbare 
Microcontrollerfamilie ausgesucht hat.

von Karl K. (leluno)


Lesenswert?

Markus schrieb:
> Hatte vor Jahren mal einen
> Arbeitskollegen (leider keinen Kontakt mehr) der hatte mit PIC´s

Ist Jahre her. Möglicherweise längst veraltet - so als ob du dir ein 
15Jahre altes Pedelec mit NiCd-Akku zulegen wolltest.

Wenn du mit so einem anspruchsvollen Hobby neu anfängst, nimm das, was 
alle machen. Das dürfte Ardurino sein. Einfacher zu handhaben und mehr 
Leute die du fragen kannst.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Ist das ein Fehler?

von Nemopuk (nemopuk)


Lesenswert?

Georg M. schrieb:
> Ist das ein Fehler?

Vermulich nicht. Warum fragst du? Schon ins Datenblatt der Rekais 
geschaut?

von Cartman E. (cartmaneric)


Lesenswert?

Harald K. schrieb:
> ... nur umständlich programmierbare
> Microcontrollerfamilie ausgesucht hat.

Ich würde behaupten, dass weitaus mehr 8 Bit AVRs wegen falsch
gesetzter Fuses in den Müll geflogen sind.
Die kaputte Ja ist Nein und Nein ist Ja-Logik hat da ihre Tücken.

Und umständlich ist die (ICSP-)Programmierung auch nicht.
Wenn man in der Lage ist, die richtige Familie auszuwählen, kann
kaum etwas schiefgehen.

Und ob "Ardurino"s nun unbedingt modellbautauglich sind?

@TO:
Das Pickit3 was du ja schon hast, wird natürlich auch vom
MPLAB V8.92 unterstützt.

von Nemopuk (nemopuk)


Lesenswert?

Cartman E. schrieb:
> Ich würde behaupten, dass weitaus mehr 8 Bit AVRs wegen falsch
> gesetzter Fuses in den Müll geflogen sind.

Also ich habe den Fehler nur 2x begangen, danach konnte ich es richtig.

Cartman E. schrieb:
> Und ob "Ardurino"s nun unbedingt modellbautauglich sind?

Warum nicht? Was machen andere generische (z.B auf PIC basierte) 
Mikrocontroller Boards diesbezüglich besser?

von Cartman E. (cartmaneric)


Lesenswert?

Nemopuk schrieb:
> Cartman E. schrieb:
>> Ich würde behaupten, dass weitaus mehr 8 Bit AVRs wegen falsch
>> gesetzter Fuses in den Müll geflogen sind.
>
> Also ich habe den Fehler nur 2x begangen, danach konnte ich es richtig.

Schon zwei zuviel.
Es gibt bei PICs keinen Programmierzustand, in dem sie nicht
per ICSP neu programmiert werden könnten.
PIC-ICSP erfordert auch keine Taktquelle für den Controller.

> Cartman E. schrieb:
>> Und ob "Ardurino"s nun unbedingt modellbautauglich sind?
>
> Warum nicht? Was machen andere generische (z.B auf PIC basierte)
> Mikrocontroller Boards diesbezüglich besser?

Die schleppen keinen Bootlader mit sich herum, und sind bei
vernünftiger Wahl des Controllertyps energetisch ausgesprochen
sparsam. Das was der TO als Problem lösen will, ist ein gutes
Beispiel für einfache Anwendungen, bei denen auch ein einfacher
Controller einsetzbar ist.

Auch vom Platzbedarf her: Den 12F629 gibt es auch in SO8.

von Nemopuk (nemopuk)


Lesenswert?

Cartman E. schrieb:
> Die schleppen keinen Bootlader mit sich herum, und sind bei
> vernünftiger Wahl des Controllertyps energetisch ausgesprochen
> sparsam.

Beides halte ich bei einer Modelleisenbahm für irrelevant.

von Cartman E. (cartmaneric)


Lesenswert?

Nemopuk schrieb:
> Cartman E. schrieb:
>> Die schleppen keinen Bootlader mit sich herum, und sind bei
>> vernünftiger Wahl des Controllertyps energetisch ausgesprochen
>> sparsam.
>
> Beides halte ich bei einer Modelleisenbahm für irrelevant.

> Warum nicht? Was machen andere generische (z.B auf PIC basierte)
> Mikrocontroller Boards diesbezüglich besser?

Für mich sind Boards nicht relevant.

Eine 100er Stange 12Fxyz kann man übrigens für ca. 8 Euro kaufen.
Wie viele "Boards" bekommst du dafür?

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Cartman E. schrieb:
> Ich würde behaupten, dass weitaus mehr 8 Bit AVRs wegen falsch
> gesetzter Fuses in den Müll geflogen sind.

Heute ist das kein Thema mehr.

Und übrigens gerade die AVRs sind für solche Aufgaben schon quasi 
vorgefertigt.

von Nemopuk (nemopuk)


Lesenswert?

Cartman E. schrieb:
> Für mich sind Boards nicht relevant.

Du hast nach "Arduinos" gefragt, das sind Boards. Es gibt von Arduino 
nur Boards. Aber OK, ich spiele dein Spiel mit und passe meine Frage an:

Cartman E. schrieb:
> Und ob "Ardurino"s nun unbedingt modellbautauglich sind?

Warum nicht? Was machen andere Mikrocontroller beim Modellbau besser, 
als die bei Arduino verwendeten? Zum Beispiel der hier genannte 
PIC12F629 versus ATtiny85. Oder nenne andere Beispiele, wenn du magst. 
Aber vergleiche dabei nicht Ruderboote mit Schlachtschiffen.

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Ich habe weder das Thema Arduino hier einfliessen lassen,

Karl K. schrieb:
> Wenn du mit so einem anspruchsvollen Hobby neu anfängst, nimm das, was
> alle machen. Das dürfte Ardurino sein. Einfacher zu handhaben und mehr
> Leute die du fragen kannst.

noch habe ich nach Arduinos gefragt.
Ich gedenke dieses Thema hier auch nicht weiterzuverfolgen.

Wenn dein gedankliches Spektrum nur von ATTINY85 bis Arduino reicht,
ist mir das egal.

Aber du darfst mir ja gerne erklären, was sie den nun besonders
modellbautauglich macht.

von Nemopuk (nemopuk)


Lesenswert?

Cartman E. schrieb:
> Aber du darfst mir ja gerne erklären, was sie den nun besonders
> modellbautauglich macht.

Ich habe nicht gesagt, daß sie besonders Modellbautauglich seien. Ich 
habe das im Gegensatz zu dir aber auch nicht angezweifelt.

Du magst Arduinos nicht im Modellbau. OK, akzeptiert. Was empfiehlst du 
denn nun stattdessen, und warum?

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Nemopuk schrieb:
> Was empfiehlst du denn nun stattdessen, und warum?

Er scheint PICs zu bevorzugen. Stockholm?

von Cartman E. (cartmaneric)


Lesenswert?

Ich bevorzuge Massanfertigung.

Versuch den TO doch mal zu überzeugen, dass er statt des
8 Pinners, der dem Problem vollinhaltlich gewachsen wäre,
plötzlich ein "Board" braucht.

Das der TO noch gewisse Startschwierigkeiten hat, wird sich
sicher bald geben.

von Nemopuk (nemopuk)


Lesenswert?

Für die Anwendung ist das gewählte Format des uC gut. In dem Fall ist 
halt nur blöd, daß er keinen passenden Programmieradapter hat. Aber es 
gibt ja passende PIC Modelle.

Ich würde den bereits genannten ATtiny85 nehmen, weil ich ihn kenne und 
dazu passende Programmieradapter habe.

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Nemopuk schrieb:
> Für die Anwendung ist das gewählte Format des uC gut. In dem Fall ist
> halt nur blöd, daß er keinen passenden Programmieradapter hat. Aber es
> gibt ja passende PIC Modelle.

Flasch. Hat er ja. Pickit3.
Er hat sich nur bei der Software bislang vergriffen.

> Ich würde den bereits genannten ATtiny85 nehmen, weil ich ihn kenne und
> dazu passende Programmieradapter habe.

Ich müsste welche kaufen. Würde ich aber nicht.
Statt des 12F629 hätte ich den 12F675.
Bei dem muss man nur den AD-Wandler nicht einschalten,
und die AD-Pins auf digital stellen.

Wie viele ATTINY85 bekmmt man eigentlich für 6 Euro?

von Nemopuk (nemopuk)


Lesenswert?

Cartman E. schrieb:
> Wie viele ATTINY85 bekmmt man eigentlich für 6 Euro?

Nicht viele, ca. 4 Stück. Sie liegen preislich auf ähnlichem Niveau wie 
die genannten PIC.

: Bearbeitet durch User
von Georg M. (g_m)


Lesenswert?

Wo sind denn alle PIC-Programmierer hier? Warum wollen sie nicht helfen?

von Frank K. (fchk)


Lesenswert?

Georg M. schrieb:
> Wo sind denn alle PIC-Programmierer hier? Warum wollen sie nicht helfen?

Ich hab ihm doch geschrieben, was genau das Problem ist. Seinen 
Allerwertesten hochbekommen muss er selber. Er hat sich hier auch nicht 
mehr gemeldet.

fchk

von Klaus F. (klaus27f)


Lesenswert?

Markus schrieb:
> Du sagst ich soll was anderes nehmen. Was?

Hmmm,
deine Vorkenntnisse sind für die gewählte Architektur nicht gerade 
schnell zielführend; das hast du wohl selbst schon erkannt.

Falls du überhaupt bei PIC bleiben willst,
würde ich empfehlen, einen "neueren" Typ 8-Pin zu verwenden,
denn der 12F629 ist schon verdammt alt.

Der 12F1822 , 12F1840 bzw. 12F1572 sind einiges neuer,
und die dürften für deine geplante Anwendung kompatibel sein zur 
"bereits fertigen" Platine.

Und vermutlich auch mit dem SNAP besser verwendbar.

Ich habe genannte Typen mit PicKit3 und dem MPLAB-X v 6.05 in Betrieb.
Update auf neue Version mache ich mich Bedacht momentan nicht.

: Bearbeitet durch User
von Jobst M. (jobstens-de)


Lesenswert?

Cartman E. schrieb:
> Das Pickit3 was du ja schon hast, wird natürlich auch vom
> MPLAB V8.92 unterstützt.

Nein, wird es nicht mehr!
Die haben den ganzen alten Kram rausgeworfen.

Gruß
Jobst

von Hans (piaggio)


Lesenswert?

Die älteren Versionen von MPLAB X sind auch verfügbar:
https://www.microchip.com/en-us/tools-resources/archives/mplab-ecosystem

Ich verwende MPLAB X IDE v5.10 und da ist pickit3 angeführt.
(nicht getestet weil ich kein pickit3 habe - sondern die hex-files mit 
einem "sprut"-brenner programmiere.)

Es spricht absolut nichts dagegen, pickit3 mit einer älteren Version von 
MPLAB X zu verwenden.
Auch der 12F629 ist für diese Aufgabe völlig ausreichend.

Wie bereits empfohlen: Deutsche Seite mit umfangreichen Erklärungen: 
sprut.de

Programmieren in ASM ist rasch erlernt und für die ganz kleinen PIC's 
gut geeignet. Da hat man auch absolute Kontrolle über die tatsächlichen 
Ausführungszeiten des Codes.

Anmerkung zum snap-programmer: Nur Low-voltage-programming möglich.
Da "verliert" man aber einen Pin!
Wechseln zwischen low- und hi-voltage-programmung kann mit dem snap auch 
nicht funktionieren - es fehlt die Programmierspannung.

von Cartman E. (cartmaneric)


Lesenswert?

Jobst M. schrieb:
> Cartman E. schrieb:
>> Das Pickit3 was du ja schon hast, wird natürlich auch vom
>> MPLAB V8.92 unterstützt.
>
> Nein, wird es nicht mehr!
> Die haben den ganzen alten Kram rausgeworfen.

Es geht um das MPLAB V8.92. Da ist kein "Kram rausgeworfen",
und das Pickit3 ist drin! Ahnungsloser Honk!
1
14/12/16  16:24       116,318,137 MPLAB_IDE_8_92.zip
2
17/12/09  14:36       104,917,632 xc8-v1.45-full-install-windows-installer.exe

von Markus (einfach_markus)


Lesenswert?

So ich versuche mich jetzt mal der Reihe nach durchzuarbeiten.

Nemopuk schrieb:
> Da soll also jemand einen Tag seiner Freizeit opfern, damit deine
> Mikrocontroller im Wert von 5€ nicht in den Müll wandern? Erzähle doch
> lieber mal, wie viel Geld dir diese selbstlose Rettungsaktion wert ist.

Also für jemanden der das programmieren beherrscht dachte ich, dass es 
nicht so viel Zeit in anspruch nimmt. Ein Eingang, zwei Ausgänge ein 
Timer. Einmal programmieren und das Programm 3x brennen. Es geht dabei 
nicht nur um die 3 PICs sondern auch um den Rest... 3x Platine, 6x 
Relais....
Da ich selbst jetzt so nach etwa 1 Monat damit beschäftigt bin und noch 
nicht mal das Programm im griff habe, lasse ich mich da auch gerne eines 
besseren belehren was die Programmierzeit bzw den Aufwand anbelangt.
_____________________________________________________________

Frank K.
Vielen Dank. Wirklich. Die erste Antwort, die mich weiterbringt. Ich 
hatte das so verstanden, dass der SNAP die 5 V Versorgungsspannung für 
den PIC nicht liefern kann. Aber wenn er die 12V am MCLR nicht kann ok.
Ich würde gerne bei den 8 Pin bleiben mit 14 Pins wird die Platine 
größer und brauche dort die Pins auch nicht.

Ich denke werde es erstmal mit dem PICKit3 und meinen vorhandenen PICs 
sowie einer älteren Version von MPLAB versuchen. Glaube man kann bei 
Microchip ein paar ältere Versionen noch runterladen.
_____________________________________________________________

Peter K. schrieb:
> Am besten fängt man mit einem ganz kleinen Projekt an.

Ja, das werde ich wohl wirklich so angehen müssen.
_______________________________________________________________

Karl K. schrieb:
> Ist Jahre her. Möglicherweise längst veraltet - so als ob du dir ein
> 15Jahre altes Pedelec mit NiCd-Akku zulegen wolltest.

Stimmt ist schon lange her...aber was mal im Kopf ist...
_______________________________________________________________

Georg M. schrieb:
> Ist das ein Fehler?

Die Relais haben eine Spulenspannung von 5V. Das passt.
_______________________________________________________________

Ihr bringt noch das Arduino ins Spiel. Das wird auch im Modellbau 
eingesetzt. Da gibt es wohl auch tolle vorgefertigte Sensoren und so. 
Ich schätze das wird Geschmachssache sein wer was einsetzt. Das verwirrt 
das ganze jetzt aber auch etwas. Aber danke für das aufzeigen der 
Alternative.
________________________________________________________________

Cartman E. schrieb:
> Nemopuk schrieb:
>> Cartman E. schrieb:
>>> Ich würde behaupten, dass weitaus mehr 8 Bit AVRs wegen falsch
>>> gesetzter Fuses in den Müll geflogen sind.
>>
>> Also ich habe den Fehler nur 2x begangen, danach konnte ich es richtig.
>
> Schon zwei zuviel.
> Es gibt bei PICs keinen Programmierzustand, in dem sie nicht
> per ICSP neu programmiert werden könnten.
> PIC-ICSP erfordert auch keine Taktquelle für den Controller.

Hier kann ich jetzt mal gar nicht folgen. Setzt man da beim 
Programmieren irgendwelche Sicherungen? Und was ist PIC-ICSP?
_________________________________________________________

Nemopuk schrieb:
> Beides halte ich bei einer Modelleisenbahm für irrelevant.

Nur am Rande, es geht um ein Modell-U-Boot. Platz ist da weniger als bei 
einer Modelleisenbahn. Hätte das auch ganz gerne in SMD aufgebaut 
allerdings nahm ich die DIP Bauform um den PIC in dem Experimentierboard 
einfach einstecken zu können.
___________________________________________________________


Cartman E. schrieb:
> Versuch den TO doch mal zu überzeugen, dass er statt des
> 8 Pinners, der dem Problem vollinhaltlich gewachsen wäre,
> plötzlich ein "Board" braucht.

Also ich habe die PIC´s ja jetzt, das PicKit 3 und die anderen Bauteile 
sowie Platinen. Da werde ich jetzt ungern alles über den Haufen werfen.
___________________________________________________________

Frank K. schrieb:
> Ich hab ihm doch geschrieben, was genau das Problem ist. Seinen
> Allerwertesten hochbekommen muss er selber. Er hat sich hier auch nicht
> mehr gemeldet.

Man hat am Tag auch noch andere Sachen zu tun.
Ich werde mich jetzt als nächstes auf jeden fall erstmal nach einer 
älteren MPLAB Version umsehen und es damit versuchen.
____________________________________________________________
Klaus F. schrieb:
> Ich habe genannte Typen mit PicKit3 und dem MPLAB-X v 6.05 in Betrieb.
> Update auf neue Version mache ich mich Bedacht momentan nicht.

Jobst M. schrieb:
> Cartman E. schrieb:
>> Das Pickit3 was du ja schon hast, wird natürlich auch vom
>> MPLAB V8.92 unterstützt.
>
> Nein, wird es nicht mehr!
> Die haben den ganzen alten Kram rausgeworfen.

Klaus du benutzt V6.05 mit PicKit3 und Jobst schreibt PicKit3 wird bei 
V8.92 nicht mehr unterstützt?
Meine aktuelle Version ist 6.25 und da wird es definitiv nicht mehr 
unterstützt.

Jobst, benutzt du eventuell ein anderes Betriebssystem wegen der höheren 
Versionsnr?
________________________________________________________________

Klaus F. schrieb:
> Falls du überhaupt bei PIC bleiben willst,
> würde ich empfehlen, einen "neueren" Typ 8-Pin zu verwenden,

Das werde ich mir für das nächste mal merken, falls sie bis dahin dann 
auch nicht schon alt sind...haha
______________________________________________________________

Hans schrieb:
> Programmieren in ASM ist rasch erlernt und für die ganz kleinen PIC's
> gut geeignet. Da hat man auch absolute Kontrolle über die tatsächlichen
> Ausführungszeiten des Codes.

ASM habe ich noch nicht gehört. Werde ich mir auf jeden fall ankucken. 
Danke für den Tipp.

von H. H. (Gast)


Lesenswert?

Markus schrieb:
> ASM habe ich noch nicht gehört.

Abkürzung für Assembler.

von Cartman E. (cartmaneric)


Lesenswert?

MPLAB != MPLAB-X

ICSP ist das Programmierverfahren für PICs.
Fuses sind Optionen die den Controller konfigurieren.
Beim PIC sind sie Bestandteil der ICSP-Programmierung, und
können beim Programmieren immer wieder neu gesetzt werden.
Bei AVRs werden die Fuses getrennt programmiert, und können
wenn falsch gesetzt, eine weitere serielle Programmierung
verhindern. Dann hat man sich ausgesperrrrrrt, ☺ und braucht
einen HV-Programmierer.

Neuere PICs haben zum Teil schlechtere Spezifikationen als
alte Typen. Man hat recht wenig eigenen Gewinn vom Neu.
Man darf die alten Typen also noch gerne, und eine Weile verwenden.
Für deine Aufgabenstellung, würde sogar der Urvater aller PICs,
der 16C50, geeignet sein. Neu spielt nur eine sehr untergeordnete
Rolle.

Für SMD (SO8/SO14) gibt es Adapter mit einem Nullkraftsockel.
In den SO14 passen auch SO8. Das spielt also überhaupt keine Rolle.

Ach ja: Ich schreibe hier nichts zweimal. Lies einfach aufmerksam.

: Bearbeitet durch User
von Jobst M. (jobstens-de)


Lesenswert?

Markus schrieb:
> Jobst, benutzt du eventuell ein anderes Betriebssystem wegen der höheren
> Versionsnr?

Nein, könnte aber an diesem liegen:

Cartman E. schrieb:
> MPLAB != MPLAB-X

Aber generell sagt auch Microchip selbst:
https://www.microchip.com/en-us/about/media-center/blog/2024/discontinued-ide-support-for-gen3-tools

Mit dem Problem hatte ich selbst zu kämpfen.

Cartman E. schrieb:
> Ahnungsloser Honk!

Was bringst Du hier auch für altes Zeug ins Spiel. Selber Honk!
Mit MPLAB X V6.20 geht es auch noch.

Gruß
Jobst

von Cartman E. (cartmaneric)


Lesenswert?

Jobst M. schrieb:

> Was bringst Du hier auch für altes Zeug ins Spiel. Selber Honk!
> Mit MPLAB X V6.20 geht es auch noch.

Statt hier frech zu werden, solltest du deine ja offensichtlich
faktenfreie Fehlaussage korrigieren:

Jobst M. schrieb:
> Nein, wird es nicht mehr!
> Die haben den ganzen alten Kram rausgeworfen.

Entscheidend ist, was herauskommt:

Cartman E. schrieb:
> MPLAB V8.92 und der XC8 laufen auch ohne Probleme auf aktuellen
> 64 bit Windows Versionen. Die Sorge ist also unbegründet.
> Das Pickit3 was du ja schon hast, wird natürlich auch vom
> MPLAB V8.92 unterstützt.

MPLAB X V6.20 ist genauso ein (GB-)Müllhaufen wie die aktuelle Version.

von Klaus F. (klaus27f)


Lesenswert?

Markus schrieb:
> Also ich habe die PIC´s ja jetzt, das PicKit 3 und die anderen Bauteile
> sowie Platinen. Da werde ich jetzt ungern alles über den Haufen werfen.

Naja, das wäre wohl verwendbar,
wenn man den etwas neueren PIC12F1572 oder PIC16F18313 nimmt.

Ganz alte SW oder Tools würde ich abraten,
da kann dir niemand richtig helfen weil die Experten in Rente sind.


Unbedingt musst du dich schlaumachen bzgl. Servosignal detektieren,
das ist leider nicht so trivial wie es dir erscheinen mag.

GOOGLE:
erfassung messung servo signal "pic" microchip

von Rahul D. (rahul)


Lesenswert?

Klaus F. schrieb:
> Unbedingt musst du dich schlaumachen bzgl. Servosignal detektieren,
> das ist leider nicht so trivial wie es dir erscheinen mag.

Vielleicht bei einem PIC. Viele (andere) haben eine InpuCatureUnit, die 
man genau dafür programmieren kann. Einzig um die Fehlerbehandlung (zu 
lange oder zu kurze Impulsmessungen) muss man sich selber kümmern.
Wieso sollte es nicht trivial sein?

Mit einem PIC (AFAIR den ersten mit FLASH und der Möglichkeit sie über 
Ludipipo zu programmieren) habe ich vor zig Jahren mal einen 
Servo-Encoder programmiert. Ob ich auch die Decoder-Seite gemacht habe, 
weiß ich nicht mehr - AVR sind mir lieber.
Aber soooo kompliziert ist das auch nicht.

von Klaus F. (klaus27f)


Lesenswert?

Rahul D. schrieb:
> Wieso sollte es nicht trivial sein?

Den Eingangspost mit den aktuellen Kenntnissen des TE hast du gelesen?

von Rahul D. (rahul)


Lesenswert?

Klaus F. schrieb:
> Den Eingangspost mit den aktuellen Kenntnissen des TE hast du gelesen?

Nö, aber irgendwann (je nach Lernwillen) ist es trivial.
Andere sind dazu übergegangen, das Signal per RC-Glied zu 
"analogisieren" und dann per AD-Wandler des 80535 zu messen.
1..2 ms sind doch für einen µC Äonen. Und wenn man ein konkretes Projekt 
hat, wird man sich auch entsprechend engagiert damit beschäftigen - 
notfalls im Forum fragen (früher gab es auch ein auf PIC spezialisiertes 
Forum: "Sprut", oder so?).

Er will ja (noch) keine Brushless-Vektorsteuerung programmieren.

Markus schrieb:
> Ich möchte einen einfachen 2-Kanal-Schalter aufbauen um über einen
> Steuerkanal am Sender 2 Funktionen unabhängig voneinander einzuschalten.

Gab es von Conrad als Bausatz mit CMOS-Bausteinen.

[noch mehr Offtopic]
Mit einem AVR-basierten Arduino-Board (z.B. UNO mit steckbarem AVR) wäre 
mMn der Einstieg inzwischen wesentlich einfacher.
Damals (2005) gab es die noch nicht. Da war es auch verpöhnt, solche 
Entwicklungsumgebungen zu verwenden - "all from scratch"...
[/noch mehr Offtopic]

von Klaus F. (klaus27f)


Lesenswert?

Rahul D. schrieb:
> (früher gab es auch ein auf PIC spezialisiertes
> Forum: "Sprut", oder so?)

Jaja,
https://www.sprut.de/electronic/pic/config/config.htm
"
Autor: sprut
letzte Änderung: 19.01.2010
"
Und sprut kennt nur Assembler.

Das ist so, als würde man bei einem geplanten Hausneubau
sich nach Steinmetz-Handwerkern mit Kupferwerkzeug informieren.

von Teo D. (teoderix)


Lesenswert?

Rahul D. schrieb:
> Vielleicht bei einem PIC. Viele (andere) haben eine InpuCatureUnit

Natürlich gibst bei den PICs Capture/Compare/PWM Module... ?-O

von Claus P. (claus_p846)


Angehängte Dateien:

Lesenswert?

Ich würde dir auch empfehlen, für den alten PIC die alte MPLAB-IDE 8.x 
zu installieren und das PICKIT 3 zum Flashen zu verwenden. Ich habe PICs 
immer in Assembler programmiert, als Modellbauer hat man ja eine gewisse 
Liebe zum Detail.

Im Anhang das Programm eines 2-Kanal Schalters für den PIC 12F629, wie 
ich ihn seit Jahren selbst verwende (Assembler Source-Code, das ist noch 
in MPASM geschrieben (die MPLAB-X IDE unterstützt nur noch pic-asm). 
Heute würde ich das anders schreiben, das Ding ist ein Frühwerk von mir 
... läuft aber.

Allerdings habe ich noch eine einstellbare Memory-Funktion über Jumper, 
eine Fehlererkennung mit Abschaltung der Ausgänge (falls das 
Empfänger-Signal mal ausbleibt oder ungültig wird) und einen 
Nullpunkt-Abgleich beim Einschalten implementiert. Wahrscheinlich musst 
du die IO-Ports an deine Leiterplatte anpassen, aber das geht relativ 
einfach, schreib mir, falls du da Hilfe brauchst.

Du kannst den Source-Code mit der MPLAB-IDE laden und übersetzen. Die 
.hex Datei kannst du dann mit dem PICKIT 3 flashen. Vielleicht kommst du 
so mit deinem Projekt voran. Die Details der Programmierung kannst du 
dir bei Interesse ja auch mal später ansehen.

Hope this helps,
Claus

von Rahul D. (rahul)


Lesenswert?

Klaus F. schrieb:
> Und sprut kennt nur Assembler.

So wie PICs für Bastler zu der Zeit. Ein C-Compiler musste teuer gekauft 
werden.

Teo D. schrieb:
> Natürlich gibst bei den PICs Capture/Compare/PWM Module... ?-O

ja, es gibt auch welche mit USB-Host-Funktion.
Trotzdem ist PIC für mich gestorben, da es andere Controller gibt, die 
das auch alles können, und nicht untereinander inkompatibel sind.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?


von Nick (b620ys)


Lesenswert?

@TO
Nachdem Dein Zeil eine eigene Platine ist, würde ich mich an Deiner 
Stelle nicht auf ein Board einlassen.
Such Dir einen halbwegs aktuellen 8-Biter raus. Deine Aufgabe ist so 
einfach, dass Du keine Besonderheiten brauchst. Nachdem ich einfach 
immer die aktuelle Version von MPlab-X hab und auch einen passenden 
Programmer (Pickit4) kann ich dir nur empfehlen, die Tips der Anderen zu 
lesen. Ist natürlich ein haufen "Müll" was MCHP ausliefert, insbesondere 
wenn man einfach alles nimmt (8 bit, 16 bit und 32 bit). Deine drei 
bereits gekauften PIC solltest Du wohl lieber wegwerfen, statt weitere 
Hürden aufzubauen.

Ich persönlich würde zu C greifen, Asm mach ich seit Dekaden nicht mehr.

Du kannst auch dein Programm simulieren (wobei ich das auch schon ewig 
nicht mehr gemacht hab).

Dein Problem ist so einfach, dass sich das ohne große Verrenkungen 
linear runterprogrammieren lässt, sogar ohne timer (die nur wieder zu 
einer Baustelle werden, insbesondere in Assembler).

Was an Deiner Platine fehlt ist eine ICSP-Schnittstelle.

So, dann leg los! Und frag! So ganz intuitiv wird es nicht für dich 
werden, also bis Freitag wirst Du damit nicht fertig. Aber danach wirst 
Du die Grundlage geschaffen haben, um weitere "Basteleien" für die 
Fernsteuerung hinzubekommen.

von Klaus F. (klaus27f)


Lesenswert?

Nick schrieb:
> Dein Problem ist so einfach

Dann kannst du ihm ja sicher die Lösung in 1/2 Stunde liefern

von Nick (b620ys)


Lesenswert?

Klaus F. schrieb:
> Dann kannst du ihm ja sicher die Lösung in 1/2 Stunde liefern

Ich gehe davon aus, dass der TO sich die Lösung -evtl. mit etwas 
Mithilfe- selbst erarbeiten möchte.
Irgendwas in Richtung Auftragsarbeit konnte ich jedenfalls nicht lesen.

von Klaus F. (klaus27f)


Lesenswert?

Nick schrieb:
> so einfach

da braucht es keinen Antrag für "Auftragsarbeit".
Profis wie du schütteln das in 3 Minuten aus'm Ärmel!

von Rahul D. (rahul)


Lesenswert?

Klaus F. schrieb:
> Profis wie du schütteln das in 3 Minuten aus'm Ärmel!

Bei der passenden Controller-Famile guckt man einfach ins hauseigene 
Archiv.
Manche Controller werden auch derart von Bibliotheken unterstützt, dass 
z.B. eine "PulseIn"-Funktion schon vorgefertigt gibt (Arduino...).
Das wäre für ein einmaliges Projekt (oder als Einstieg) die einfachste 
Lösung.

von Klaus F. (klaus27f)


Lesenswert?

Rahul D. schrieb:
> Wieso sollte es nicht trivial sein?

Rahul D. schrieb:
> guckt man einfach ins hauseigene Archiv

Also noch immer nicht registriert, daß der TE ein blutiger Anfänger ist.

Daß PIC auch Captureeinheit hat, wurde ja schon geklärt.

Und Dank KI kann man mit GOOGLE was herbeizaubern, wenn --und das ist 
die Hürde-- man ein paar  englische  Fachbegriffe zu 'ner Art Frage 
formuliert:

  detect frequency with pic12 microchip xc8 using ccp module capture

Das Ergebnis ist gar nicht schlecht.
Aber natürlich fehlt einiges drumrum, z.B. Hysteresewerte für die 
Frequenzen, jede Menge Zeitbedingungen und evtl. Fehlerbehandlung.

Für den Kenntnisstand des TE wird die Lernkurve trotzdem recht steil 
sein, und ohne direkte Hilfe (vorort) eher schwierig.
Einen Monat hat er ja bereits investiert, bevor dieser Thread gestartet 
wurde.

von Rahul D. (rahul)


Lesenswert?

Klaus F. schrieb:
> Also noch immer nicht registriert, daß der TE ein blutiger Anfänger ist.

Doch. Für denjenigen, dem die Aussage zu hoch ist:

Klaus F. schrieb:
> Profis wie du schütteln das in 3 Minuten aus'm Ärmel!

Es war ein "Profi" gemeint, der sowas vielleicht sogar schon in seinem 
Archiv vorliegen hat. Da braucht man nichts extra "aus dem Ärmel 
schütteln".

Ich behaupte mal, dass es heute einfachere Wege gibt, in die 
µControllerei einzusteigen. Manche Dinge (aka Arduino) wurden extra für 
Anfänger und Menschewn ohne direkten Technikbezug entwickelt.
Bevor man sich was kauft, weil man das vor zig Jahren im Vorbeigehen, 
kennen gelernt hat, sollte man sich mal mit aktuellen 
"µC-Einstiegsdrogen" beschäftigen. Das ist aber ein gern gemachter 
Fehler.

von Adam P. (adamap)


Lesenswert?

Ich finde es ja bemerkenswert, dass sich der TO direkt an MPLAB + PIC 
traut, doch durch die ganzen Hindernisse könnte es evtl. in Frust enden.

Bzgl. keiner C Kenntnisse und ebenso in Englisch, wundert es mich, dass 
noch niemand von euch Arduino erwähnt hat, da hätte er eine deutsche 
Community.

Und wenn er dann doch mal weitergehen möchte könnte er sich ein 
Programmiergerät kaufen, auf den Bootloader verzichten und trotzdem 
Arduino verwenden. Oder halt auf Microchip Produkte umsteigen.

War gerade so meine Idee, als ich mir die ganzen Probleme durchgelesen 
habe.

von Nick (b620ys)


Lesenswert?

Klaus F. schrieb:
> Für den Kenntnisstand des TE wird die Lernkurve trotzdem recht steil
> sein,

Also kurz.
Steile Lernkurve: Viel Erkenntnis in kurzer Zeit.
Flache Lernkurve: Viel Zeitaufwand um zum gleichen Kenntnisstand zu 
kommen.

Die X-Achse ist die Zeit, die Y-Achse das erarbeitete Wissen.
Der intelektuelle Aufwand ist die Fläche unter der Kurve.

von Markus (einfach_markus)


Lesenswert?

Vielen Dank für eure weiteren Antworten, Bemühungen, Lösungsansätze usw.
Da kann ich wieder einiges mitnehmen. Leider bin ich jetzt noch nicht 
dazu gekommen mich weiter intensiv damit auseinander zu setzen. Das wird 
jetzt auch sicher noch ein paar Tage dauern. Muss da auch den Kopf für 
haben um mich in Ruhe an den PC setzen zu können. Aber ich werde 
berichten wie es weiter gegangen ist.

von Markus (einfach_markus)


Lesenswert?

Adam P. schrieb:
> Bzgl. keiner C Kenntnisse und ebenso in Englisch, wundert es mich, dass
> noch niemand von euch Arduino erwähnt hat, da hätte er eine deutsche
> Community.

Weiter oben wurde bereits Arduino erwähnt. Aber es steht bereits die 
Platine, Pic und PICKit3 sind vorhanden...

Werde sehen was raus kommt.

von Teo D. (teoderix)


Lesenswert?

Klaus F. schrieb:
> Und Dank KI kann man mit GOOGLE was herbeizaubern

Wozu, da hats doch schon ein paar Varianten an Codekonfiguratoren für 
MPLAB-X.

von Rahul D. (rahul)


Lesenswert?

Markus schrieb:
> Weiter oben wurde bereits Arduino erwähnt. Aber es steht bereits die
> Platine, Pic und PICKit3 sind vorhanden...
Übrigens basierten diverse Bausätze von Conrad auf PIC (z.B. der 
Mehrkanal-Schalter für einen Kreuzknüppel).
Das war die Ära nach dem 68H...

> Werde sehen was raus kommt.
Lass wieder von dir lesen!
Es können dir vermutlich auch diejenigen helfen, die nicht so PIC-affin 
sind.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

> Es handelt sich dabei um ein pulsweitenmoduliertes Signal, welches eine
> Signallänge von 1-2ms hat. Bei 1,5ms ist die Neutralstellung und es soll
> nichts passieren. Zwischen ca 1-1,3ms soll Relais 1 anziehen und eine
> Funktion ansteuern, Relais 2 bleibt aus. Zwischen ca 1,8-2ms soll
> entsprechend Relais 2 anziehen und Relais 1 soll aus bleiben.

Was ist Signallänge?

von Adam P. (adamap)


Lesenswert?

Was die C Programmierung betrifft, gibt es schon einiges zu finden:
"pic mikrocontroller programmierung tutorial"

Auch auf Deutsch, sogar Videos auf Youtube oder aber auch Bücher.

z.B.:
https://beckassets.blob.core.windows.net/product/readingsample/11042046/9783645650694_excerpt_001.pdf

Bei solchen Tutorials muss man sich halt das heraussuchen was auf einen 
passt, da es ja meist um andere PIC geht.
Aber die ersten Infos sollte man so sammeln können.

Viel Erfolg!

von Nemopuk (nemopuk)


Lesenswert?

Adam P. schrieb:
> wundert es mich, dass noch niemand von euch Arduino erwähnt hat

Mich wundert, dass du schreiben kannst, obwohl du offenbar nicht lesen 
kannst.

von Rahul D. (rahul)


Lesenswert?

Georg M. schrieb:
> Was ist Signallänge?

Die Länge eines Signals. SCNR

Die ist bei RC-Signalen aber eher unwichtig, da es kein PWM-Signal im 
herkömmlichen Sinne ist, sondern nur die Pulslänge interessiert.
Bei klassischen Fernsteuerungen wiederholen sich die Signale alle 20ms.
Das ist heute nicht mehr unbedingt so.

Die Pulslänge sollte 1-2ms betragen. Die kann aber auch wieder etwas je 
nach Hersteller variieren.

von Nemopuk (nemopuk)


Lesenswert?

Nachtrag:

Der ATtiny85 ist nicht mehr für Arduino geeignet. Die entsprechenden 
Plugins (cores) sind veraltet und funktionieren nicht mehr bzw. lassen 
sich nicht mehr installieren.

von Volker S. (vloki)


Lesenswert?

Markus schrieb:
> Aber es steht bereits die
> Platine, Pic und PICKit3 sind vorhanden...
>
> Werde sehen was raus kommt.

Falls du den Rat an nimmst, den Uralt PIC in die Tonne zu werfen, der 
kann eigentlich ohne Änderung der Platine
durch jeden PIC12 oder PIC16 mit 8 Pins ersetzt werden. Vergiss die 
blödsinnigen Behauptungen, die wären nicht kompatibel ;-)

Am einfachsten findet man solche PICs damit:
https://www.microchip.com/maps/Microcontroller.aspx

- dritte Zeile CPU Type -> 8bit PIC MCU
- achte Zeile Pin Count -> 8/8
- strg[F] CCP -> 1/-    (wurde ja weiter oben schon erwähnt, dass ein 
CaptureComparePWM Modul nicht schlecht wäre)

Die Treffer kann man dann rechts z.B. nach Preis sortieren. Die neueren 
sind wesentlich günstiger, als die Dinos.

Ich hätte hier noch ein paar 16F15214 rumgammeln, von denen ich nicht 
mal weiß, wofür die mal waren.
Sind SO8 SMD Gehäuse, aber einer ist schon auf einen DIP-Sockel 
aufgelötet.

Ob der ausgewählte PIC mit deinem Equipment kompatibel ist, kannst du 
oft auch rechts im Tab „Dev Tools“ sehen.
Ansonsten im Installationsverzeichnis von MPLAB-X unter 
…/MPLABX/v6.20/docs/DeviceSupport.htm

von Volker S. (vloki)


Lesenswert?

Volker S. schrieb:
> eigentlich ohne Änderung der Platine

Ok, da das Eingangssignal auf einen CCP Eingang gelegt werden sollte, 
müsste man das noch von Pin4 nach Pin2 brücken, falls die Platine 
wirklich schon fertig ist.
Ansonsten noch ändern. Die Ausgänge gleich auch weg von den 
Programmier/Debug Pins6/7 und eine passende Stiftleiste für den SNAP 
ergänzen.

------------------------------------------------------------------
<EDIT> Uups, der 16F15214 hat ja sogar PPS (Peripheral Pin Select).
Somit könnte der CCP1 Eingang intern auf PIN4 gelegt werden.

Für einen absoluten Anfänger könnte es Sinn machen, den Einstieg gleich 
mit
dem in MPLABX integrierten MCC (Mplab Code Configurator) zu versuchen.
Generiert zwar evtl. eine Menge unnötigen Code, aber zumindest die 
Initialisierung müsste damit recht schnell gehen. (selber keine 
Erfahrung)

: Bearbeitet durch User
von Hans (piaggio)


Lesenswert?

Wenn die neuen Versionen von MPLAB X IDE nicht mehr mit dem Pickit3 
arbeiten können:
Die Programme kann man trotzdem erstellen und ein HEX erzeugen.
Das pickit 3 verwendet man dann mit der software
"PICkit 3 Stand-Alone Programmer App v1.0 "
(zu finden hier: 
https://www.microchip.com/en-us/tools-resources/archives/mplab-ecosystem)
um das hex zu brennen.
Hab das nicht getestet (kein pickit3 vorhanden) aber ich arbeite schon 
lange mit einem sprut-brenner und verwende das erzeugte hex-file mit 
einer zum Brenner passenden Software.

von Volker S. (vloki)


Lesenswert?

Hans schrieb:
> Wenn die neuen Versionen von MPLAB X IDE nicht mehr mit dem Pickit3
> arbeiten können:

... dann ist das gar nicht schlimm, wenn man nicht nur ein PICkit3 hat, 
sondern auch noch einen SNAP ;-)

Das größte Problem des TO dürfte eher "kann kaum Englisch" sein.
Hier mal ein Link zu einem MCC Video das offensichtlich automatisch auf 
deutsch übersetzt wurde: https://www.youtube.com/watch?v=wzomxIs-Nzg

(die Aussprache ist oft gruselig, aber man sollte zumindest einen 
Eindruck bekommen, wofür MCC gut ist)

: Bearbeitet durch User
von Hans (piaggio)


Lesenswert?

Ein Nachteil des SNAP ist, dass nur low voltage programming möglich ist.
In dieser Konfiguration ist MCLR automatisch immer aktiv und kann daher 
nicht als digitaler Eingang benutzt werden. -Dann muss man eventuell 
einen PIC mit grösserem Gehäuse wählen.
Originaltext:
"If LVP is enabled (LVP = 1), the MCLR pin is automatically enabled and 
cannot be disabled"

von Chris S. (schris)


Lesenswert?

Man braucht halt ein einstellbares Netzteil oder eine 9v Batterie mit 
3.3V supply rail, um daraus einen HV programmer zu machen.
Sollte keine grosse Aktion sein.

von Volker S. (vloki)


Lesenswert?

Hans schrieb:
> "If LVP is enabled (LVP = 1), the MCLR pin is automatically enabled and
> cannot be disabled"

Guter Punkt, dann müsste das Eingangssignal bei Verwendung eines SNAP 
auf jeden Fall von /MCLR Pin weg. (Habe ich bisher noch nie drauf achten 
müssen, weil ich mir die zum Debuggen benötigten Pins immer frei halte)

von Roland E. (roland0815)


Lesenswert?

Volker S. schrieb:
> Markus schrieb:
>> Aber es steht bereits die
>> Platine, Pic und PICKit3 sind vorhanden...
>>
>> Werde sehen was raus kommt.
>
> Falls du den Rat an nimmst, den Uralt PIC in die Tonne zu werfen, der
> ...

Wozu sollte er das tun? Er hat doch alles da, was er braucht.

Ich verbastel die Reststange 12F675 hier mit dem PicKit2 und ner alten 
MPLAB-X. Der letzten für W7 und mit Assembler. Das funktioniert super. 
Flashen muss man das Hex halt mit der PicKit-Software, weil MPLab sich 
zu fein fürs 2er Kit ist. Naund? Debuggen geht ohne Zusatzhardware eh' 
nicht bei dem Zwerg, und für den Rest gibts die Simulation im Lab.

Wie weiter oben angemerkt macht es Sinn, nach der Installation das 
Recourcenverzeichnis mit den Headern zu komprimieren. Spart massig Platz 
und Ladezeiten.

: Bearbeitet durch User
von Volker S. (vloki)


Lesenswert?

Roland E. schrieb:
> Wozu sollte er das tun? Er hat doch alles da, was er braucht.
Darum "falls" (es gibt ja mehrere Möglichkeiten unpassende Kombinationen 
von MPLABX Version, den vorhandenen PICs und Programmiertools zu 
umgehen)

Roland E. schrieb:
> Ich verbastel die Reststange 12F675 hier
Ich hätte noch ein paar Tausend 16F688. (Würde ich gerne einige abgeben)

Roland E. schrieb:
> Debuggen geht ohne Zusatzhardware eh'
> nicht bei dem Zwerg
Warum sollte das nicht gehen? (Pins wären noch ausreichend da - bei 
einem aktuellen 8Pin PIC)

: Bearbeitet durch User
von Georg M. (g_m)


Lesenswert?

Rahul D. schrieb:
> Die ist bei RC-Signalen aber eher unwichtig, da es kein PWM-Signal im
> herkömmlichen Sinne ist, sondern nur die Pulslänge interessiert.
> Bei klassischen Fernsteuerungen wiederholen sich die Signale alle 20ms.

Das macht die Aufgabe noch einfacher.

Für AVR könnte der Code z.B. so aussehen:
1
                   tinyAVR®
2
 
3
              VDD 1|‾‾‾‾‾‾‾|8 GND 
4
              PA6 2|       |7 PA3 ---- channel A
5
              PA7 3|       |6 UPDI 
6
    input --- PA1 4|_______|5 PA2 ---- channel B
7
8
      1.0ms - 1.3ms: PA3 (channel A)
9
      1.8ms - 2.0ms: PA2 (channel B)
1
#include <avr/io.h>
2
3
uint16_t pl;                   // pulse length
4
uint8_t chA;                   // channel A flag
5
uint8_t chB;                   // channel B flag
6
uint8_t cnt;                   // timeout counter
7
8
int main(void)
9
{
10
   PORTA.DIRSET = PIN3_bm;                              // PA3 output
11
   PORTA.DIRSET = PIN2_bm;                              // PA2 output 
12
13
  _PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, CLKCTRL_PDIV_10X_gc | CLKCTRL_PEN_bm); // 2 MHz Main Clock
14
15
  RTC.CLKSEL = RTC_CLKSEL_INT1K_gc;                     // 1024 Hz from OSCULP32K
16
  while(RTC.PITSTATUS > 0) {}                           // wait for synchronization
17
  RTC.PITCTRLA = RTC_PERIOD_CYC64_gc | RTC_PITEN_bm;    // 62ms period, enable PIT
18
19
  EVSYS.ASYNCCH0 = EVSYS_ASYNCCH0_PORTA_PIN1_gc;        // PA1 as event generator
20
  EVSYS.ASYNCUSER0 = EVSYS_ASYNCUSER0_ASYNCCH0_gc;      // TCB as event user
21
22
  TCB0.CTRLB = TCB_CNTMODE_PW_gc;                       // pulse-width measurement
23
  TCB0.EVCTRL = TCB_CAPTEI_bm;                          // enable input capture event
24
  TCB0.CTRLA = TCB_CLKSEL_CLKDIV2_gc | TCB_ENABLE_bm;   // 1 MHz, enable TCB
25
26
  while(1)
27
  {
28
    if(TCB0.INTFLAGS)
29
    {
30
      TCB0.INTFLAGS = TCB_CAPT_bm;               // clear TCB0 interrupt flag
31
      pl = TCB0.CCMP;                            // ascertained pulse length
32
      cnt = 0;                                   // clear timeout counter
33
      if(pl > 1000 && pl < 1300)
34
      {
35
        PORTA.OUTCLR = PIN2_bm;                  // channel B off
36
        chB = 0;                                 // clear channel B flag
37
        if(chA)
38
          PORTA.OUTSET = PIN3_bm;                // channel A on
39
        else
40
          chA = 1;                               // set channel A flag
41
      }
42
      else if(pl > 1800 && pl < 2000)
43
      {
44
        PORTA.OUTCLR = PIN3_bm;                  // channel A off
45
        chA = 0;                                 // clear channel A flag
46
        if(chB)
47
          PORTA.OUTSET = PIN2_bm;                // channel B on
48
        else
49
          chB = 1;                               // set channel B flag
50
      }
51
      else
52
      {
53
        PORTA.OUTCLR = PIN3_bm;                  // channel A off
54
        PORTA.OUTCLR = PIN2_bm;                  // channel B off
55
        chA = 0;                                 // clear channel A flag
56
        chB = 0;                                 // clear channel B flag
57
      }
58
    }
59
    if(RTC.PITINTFLAGS)                          // monitoring
60
    {
61
      RTC.PITINTFLAGS = RTC_PI_bm;               // clear PIT flag
62
      cnt++;                                     // increment
63
      if(cnt > 2)                                // timeout (no input pulses)
64
      {
65
        PORTA.OUTCLR = PIN3_bm;                  // channel A off
66
        PORTA.OUTCLR = PIN2_bm;                  // channel B off
67
        chA = 0;                                 // clear channel A flag
68
        chB = 0;                                 // clear channel B flag
69
      }  
70
    }
71
  }
72
}

von Cartman E. (cartmaneric)


Lesenswert?

Volker S. schrieb:
> Ich hätte noch ein paar Tausend 16F688. (Würde ich gerne einige abgeben)

Welches Package?
Amgedachter Preis per 10/50/100?

> Roland E. schrieb:
>> Debuggen geht ohne Zusatzhardware eh'
>> nicht bei dem Zwerg
> Warum sollte das nicht gehen? (Pins wären noch ausreichend da - bei
> einem aktuellen 8Pin PIC)

Manchen fehlt ganz schlicht die Hardware dafür.
Siehe Microchip "Header Board Specification".
ICSP können sie deswegen natürlich immer noch.

von Volker S. (vloki)


Lesenswert?

Cartman E. schrieb:
> Volker S. schrieb:
>> Ich hätte noch ein paar Tausend 16F688. (Würde ich gerne einige abgeben)
>
> Welches Package?
> Amgedachter Preis per 10/50/100?
Im SO-14 Gehäuse.Sind größtenteils nicht mehr im Band, hat mal irgendwer 
hier angeschleppt. Würde ich in Bastlermengen verschenken, bzw. gegen 
Portokosten abgeben.



>> Roland E. schrieb:
>>> Debuggen geht ohne Zusatzhardware eh'
>>> nicht bei dem Zwerg
>> Warum sollte das nicht gehen? (Pins wären noch ausreichend da - bei
>> einem aktuellen 8Pin PIC)
>
> Manchen fehlt ganz schlicht die Hardware dafür.
> Siehe Microchip "Header Board Specification".
> ICSP können sie deswegen natürlich immer noch.
Braucht man das denn bei den aktuellen PICs noch? (beim 12F629 oder 
16F688 natürlich schon)

von Cartman E. (cartmaneric)


Lesenswert?

Volker S. schrieb:
> Cartman E. schrieb:
>> Welches Package?
>> Amgedachter Preis per 10/50/100?
> Im SO-14 Gehäuse.Sind größtenteils nicht mehr im Band, hat mal irgendwer
> hier angeschleppt. Würde ich in Bastlermengen verschenken, bzw. gegen
> Portokosten abgeben.

Ja, das klingt nett, wäre mir aber zu wenig fasslich.
Ich betreibe keinen gewerblichen Handel mit meiner Bastelkiste.
Beim Chinesen mit MOQ 100 Stck bekomme ich die kleinen Midramge-PICs
je nach Typ für 6 bis 9 Euro + PP, und ich würde mir die tendenziell
dann eher dort bestellen. Die sind eventuell auch Schüttgut. ☺
Liefert er dann nur schön bedruchke Leergehäuse, könnte ich beim
Händler oder bei Paypal mein Glück versuchen.
Du könntest also schon einen Preis (inkl. PP) für 50 Stück ansagen.

>>> Roland E. schrieb:
>>>> Debuggen geht ohne Zusatzhardware eh'
>>>> nicht bei dem Zwerg

Der erste (8-bit) PIC der mit zugelaufen ist, war ein 16F819.
Den konnte man mit dem MPLAB und einem Pickit2-Clone debuggen.
Das habe ich zufrieden registriert, aber dann doch viel lieber
den Simulator benutzt.
Der liefert auch im Fall von Silicon- oder Designerrata immer
exakte Ergebnisse. Man denke nur an den Timer0. ☺

Die Peripherie ist zwischen den 8/14-Pinnern und dem 16F819
hinreichend ähnlich/gleich, dass man auch auf dem entwickeln
kann, und dann final den 8/14-Pinner benutzt.
Ich vermisse es also nicht besonders.

von Volker S. (vloki)


Lesenswert?

Cartman E. schrieb:
> Du könntest also schon einen Preis (inkl. PP) für 50 Stück ansagen.

50 Stück, lasse ich noch als Bastlermenge durchgehen,
damit sich das Porto bei den alten Dingern überhaupt lohnt ;-)

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Volker S. schrieb:

> damit sich das Porto bei den alten Dingern überhaupt lohnt ;-)

Gut erkannt.

von Max M. (neuername01)


Angehängte Dateien:

Lesenswert?

Meine gööte, welch ein Theater! Eine Woche Diskussion. TO längst 
verschollen.

Es geht doch nur darum, abhängig von der Kanalimpulslänge, eines von 2 
Relais zu schalten. Also vor 50 Jahren war das, wenn auch nicht ganz 
optimal, noch recht einfach zu bewerkstelligen. ;-)

von Cartman E. (cartmaneric)


Lesenswert?

Max M. schrieb:

> ... Also vor 50 Jahren war das, wenn auch nicht ganz
> optimal, noch recht einfach zu bewerkstelligen. ;-)

Die traurige Bilanz heute: Manche müss(t)en das immer noch so
aufbauen, weil sie die 35 Befehle nicht in das Organ zwischen
ihren Ohren gespeichert bekommen.
Hat Mann diese Hürde allerdubgs gemeistert, steht einem die ganze
Welt offen.

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
Noch kein Account? Hier anmelden.