Forum: Mikrocontroller und Digitale Elektronik PIC18LF2423-I/SP selber programmieren


von Thomas A. (thomas_a540)


Lesenswert?

Sehr geehrte Elektronik Gemeinde

Da ich selber keinerlei Programmierkenntnisse für oben angegebenen 
Bauteil besitze muss ich diesen immer von einer Firma, nach meinen 
Wünschen, programmieren lassen. Dies ist nicht wirklich günstig.
Da meine Experimente mit diesem Bauteil immer umfangreicher werden bin 
ich stark am überlegen mir diese Kenntnisse selbst anzueignen. Dadurch 
ist es mir natürlich auch möglich sehr viel schneller und flexibler 
reagieren zu können.

Meine Frage nun an euch:
Um welche Programmiersprache handelt es sich dabei.
Welche Hardware benötige ich dafür (PC ist vorhanden)?
Habe ich etwas vergessen zu bedenken?

Ich werde mir dann eine entsprechende Weiterbildung suchen (Wifi oder 
ähnliches) um es von der Pike auf zu lernen.
Umfangreiche PC Kenntnisse und elektrotechnische/elektronische 
Kenntnisse sind vorhanden.

Ich danke euch schon mal für eure, immer wieder tollen, Infos.
LG
Thomas

von Stefan (Gast)


Lesenswert?

Da mußt du schon die Firma fragen in
welcher Sprache sie programmieren.
Suche dir eine Sprache aus und lerne sie. Dann
brauchst du keine Firma mehr.

von Volker S. (vloki)


Lesenswert?

Ausser einem PC brauchst du noch ein Programmiergerät z.B. ein PICkit3. 
Ein Klon aus China für ~10€ tut bisher bei mir das gleiche wie das 5-6 
Mal so teure Original.

IDE und Compiler kannst du bei MCHP runter laden. Sprache wird dann C 
oder Assembler sein.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Sprut hat ne gute Seite für Anfänger.
http://www.sprut.de/electronic/pic/

von Thomas A. (thomas_a540)


Lesenswert?

Echt SUPER von euch und danke für den Link.

Habe mich da gerade eingelesen und meine Neugier zu PIC Programmierung 
ist weiter gestiegen.

Hätte noch eine Frage bezüglich PIC Kopien an euch:
Da ich von dieser oben angesprochen Firma immer nur ein Stk. des neue 
programmierten PIC bekomme würde ich mir diesem gerne kopieren denn es 
kam schon vor das ich einen zerstört hab und dann wieder einen bestellen 
mußte. Das ist nicht nur finanziell aufwendig sondern verzögert immer 
auch das weiter entwickeln.

Kennt ihr ein einfaches Kopiergeräte für diese PIC´s ? Möglicherweise 
ohne PC?

LG
Thomas

von Volker S. (vloki)


Lesenswert?

D

Thomas A. schrieb:
> Da ich von dieser oben angesprochen Firma immer nur ein Stk. des neue
> programmierten PIC bekomme würde ich mir diesem gerne kopieren...

Das geht nur (für Normalsterbliche), wenn "die Firma" keinen 
Kopierschutz aktiviert hat. Dann könnte man das Programm einfach mit 
einem PICkit oder was ähnlichem auslesen. Das ausgelesene Programm ist 
allerdings nur ein Binärfile, kein Sourcecode...

von Thomas A. (thomas_a540)


Lesenswert?

... danke
Nein Kopierschutz ist keiner drauf, habe ich extra so in Auftrag 
gegeben.
Das mit "Binärfile, kein Sourcecode" ist mir nicht ganz klar.
... ich google mal nach PICkit ...

von Grober Klotz (Gast)


Lesenswert?

Hallo Thomas

Anbei mal je ein Beispiel zur grundsaetzlichen, evtl. sogar 
anschaulichen Erklaerung von Sourcecode und Binaerfile.

Das ist z.B. ein Assembler-Programmcode (Sourcecode), wie man ihn "von 
Hand" schreiben kann.

Bin16_Dez2:
   rlf      INDF0,f        ;Shift Carry into bcd digit
   movlw    D'10'          ;Subtract ten from digit then
   subwf    INDF0,w        ; check and adjust for decimal overflow
   btfsc    STATUS,C       ;If Carry=1 (result >= 0)
   movwf    INDF0          ; adjust for decimal overflow
   decf     FSR0,f         ;Point to next bcd digit
   decfsz   cntDig,f       ;Decrement digit counter
   GOTO     Bin16_Dez2  ; - go if cntDig > 0
   decfsz   cntBit,f       ;Decrement bit counter
   GOTO     Bin16_Dez1  ; - go if cntBit > 0
   RETURN

Das ist der Hexcode (binaercode) den man mit dem Programmiergeraet z.B. 
Pikkit3 in den Prozessor uebertraegt.

:020000040000FA
:020000002728AF
:0800080088019110CC0A4C089C
:10001000143A031D0D285417CC01CB0A4B08C83ADB
:10002000031D2628CB01D416D10A51083C3A031DE2
:100030002628D101D20A52083C3A031D2628D201B3
:10004000D30A5308183A031D2628D30109002000BB
:100050008C0122008C01230003308C00210003302E
:100060008C00240000308D0020008E0122008E01C3

mfG

Grober Klotz

von Volker S. (vloki)


Lesenswert?

Den "Binärcode" kann man dann schon wieder als Assemblercode darstellen.
Natürlich sind dann aber keine Kommentare mehr da und Sprungadressen und 
Variablennamen sind nur noch Zahlen (Adressen)

von Thomas Autark (Gast)


Lesenswert?

Wieder einmal ein herzliches Danken für eure Hilfe und Unterstützung.

Wie ich in anderen Foren gelesen habe könnte man leicht davon ausgehen 
das es sich bei meinem Vorhaben um "Raubkopien" handeln könnte ... dies 
ist nicht der Fall und widerspricht vollkommen meiner Einstellung.

Ich entwickle und baue ganz spezielle Akku-Ladegeräte mit denen es 
möglich ist alte, schwache Akkus zu regenerieren sodass sie wieder ihre 
ursprüngliche Kapazität  (Ah) erreichen.

Während dieses Ladevorgangs müssen immer wieder unterschiedliche 
Zustände des Akkus überprüft werden und die Ladung dementsprechend 
angepasst werden. Dies lässt sich am besten mit einem programmierten 
PIC´s bewerkstelligen.

Ich kopiere weder irgendwelche Playstation Chips oder machen sonst 
irgendwelche illegalen Sachen. Ich habe ein Europaweites Patent für 
meine Ladegeräte. Die Ladung/Entladung mit ein PIC zu steuern und zu 
überwachen ist einfach eine Weiterentwicklung meiner Ladegeräte.

Danke für eure Hilfe.
Thomas

von Volker S. (vloki)


Lesenswert?

Thomas A. schrieb:
> Habe mich da gerade eingelesen und meine Neugier zu PIC Programmierung
> ist weiter gestiegen.

Kleiner Hinweis noch zur Seite von Sprut. Die kommt langsam in die 
Jahre. Alles Grundlagenzeug gilt selbstverständlich immer noch. Nur 
Controller gibt es inzwischen viele Typen, die mehr können und dabei 
deutlich weniger kosten.

Auch dein PIC18F2423 ist nicht mehr der allerneueste. Wird der wegen dem 
12Bit ADC verwendet?

Die Entwicklungswerkzeuge (IDE und Compiler) sehen inzwischen natürlich 
auch ganz anders aus. Die "alten" kann man aber immer noch verwenden.

Komm bloß nicht auf die Idee einen der Brenner selber zu bauen. 
Günstiger wie ein PICkit-Klon wird der nicht und außerdem kann man damit 
nicht debuggen. (mit dem PICkit3 schon)

von Thomas Autark (Gast)


Lesenswert?

Danke Volker

Ja ich denke der PIC18F2423 wird wegen den 12bit ADC verwendet.
Dieses Ladegerät wird mit 230AC versorgt und gibt auf der Ausgangsseite 
dementsprechend die Ladung an den Akku ab.

Hatte nicht vor mir eine Platine selber zu bauen obwohl das Löten mein 
tägliches Handwerk ist aber um von vornherein Fehler auszuschließen 
würde ich mir den PICkit3 besorgen.

LG
Thomas

von Thomas Autark (Gast)


Lesenswert?

Ich habe mich gerade bezüglich Weiterbildung umgesehen ...
Es werden bei uns (AT) unterschiedliche Kurse zur C Programmierung 
angeboten (C, C+, C++, C#.NET ... usw)
Welcher würde für meine Anforderung am ehesten passen?
Danke
Thomas

von Volker S. (vloki)


Lesenswert?

C, aber eigentlich sollte der Kurs dann meiner persönlichen Meinung nach 
auch speziell für uC ausgelegt sein.
Ich finde das Programmieren eines uC unterscheidet sich doch sehr von 
der Programmierung auf einem PC. Beim (kleinen PIC ;-) uC steht für mich 
die Hardware absolut im Vordergrund. Das bedeutet, dass ich 
hauptsächlich die vorhandenen Peripheriemodule benutzen/konfigurieren 
will.

Es gibt sehr viel Material im Netz anhand dem man sich C selber 
beibringen kann, bzw zumindest erst mal einen Überblick gewinnen kann, 
was man eigentlich braucht. Schau doch mal da rein -> 
http://microchipdeveloper.com/tls2101:start

Wenn du viel Zeit hast, dann kannst du auch noch da: 
https://pic-projekte.de/blog/category/elektrotechnik/mikrocontroller/ 
oder auch hier 
http://www.hs-ulm.de/users/vschilli/Mikrocontroller/uCQ/_downloads/uCquick-X.pdf 
drüber fliegen.

von Stefan (Gast)


Lesenswert?

Wenn dann C.
Aber wenn dann für Mikrocontroller und nicht
für den PC. Wenn du C für den Computer lernst,
dann kannst du noch lange nicht einen Mikrocontroller
programmieren. Die Grundlagen sind zwar dann da,
aber dann brauchst du doch noch einen Kurs für
Mikrocontroller. Deshalb direkt C für Mikrocontroller
lernen.
Wenn du auf Kurse bestehst. Die meisten lernen es
über das Internet. Gibt ja genug Seiten dafür.
Aber wenn du es über einen Kurs machen willst, dann
wie oben beschrieben, den richtigen Kurs nehmen.

von Stefan (Gast)


Lesenswert?

Bekommst du denn den Quellcode von der Firma ?
Sonst bringt dir das ganze ja nichts oder
willst du alles neu programmieren ?

von Thomas Autark (Gast)


Lesenswert?

Stefan schrieb:
> Bekommst du denn den Quellcode von der Firma ?

Danke Stefan für deine Antworten.

JA wenn das Projekt abgeschlossen ist und alles so funktioniert bekomme 
ich alle Daten und kann damit machen was ich will.
Wenn ich dann kleinere Änderungen benötige dann würde ich diese gerne 
selber vornehmen, erspart Zeit und Kosten.
Deshalb auch meine Interesse dies von der Picke auf zu lernen.

Ich habe mir jetzt schon einiges über den PICkit3 durchgelesen, kenne 
aber die Software noch nicht ...

Ich kann mit diesem Teil schon auch 1:1 Kopien von meinem (nicht 
geschütztem) PIC18F2423 anfertigen ohne Kenntnisse vom programmieren zu 
haben?

Aus oben angeführtem Grund ... da ich immer nur einen PIC mit der neuen 
Programmierung erhalte und wenn ich diesen zerstöre immer warten/zahlen 
muss bis der neue fertig ist.

Weiters kann ich mir dann Kopien anfertigen um die neuen Einstellungen 
an mehreren Akkus gleichzeitig auszuprobieren. Bis lange konnte ich das 
immer nur hintereinander machen und wenn man einen 100-200 Ah Akku 
regenerieren möchte dann dauert das einige Tage. Wenn ich mehrere 
gleichzeitig betreibe dann verringert sich natürlich die Wartezeit auf 
Endergebnisse erheblich.

LG
Thomas

von Volker S. (vloki)


Lesenswert?

Thomas Autark schrieb:
> Ich kann mit diesem Teil schon auch 1:1 Kopien von meinem (nicht
> geschütztem) PIC18F2423 anfertigen ohne Kenntnisse vom programmieren zu
> haben?

Ja. Da gibt es eine extra kleine Software dafür. Nennt sich IPE. 
http://microchipdeveloper.com/ipe:launching-ipe-application

Welche Bauform hast du denn? DIP? Dann hol dir am besten so was:
http://www.ebay.de/itm/PICKIT3-Programmer-Debugger-Adapter-Development-Controller-Emulator-TE465-/122362586667?hash=item1c7d60e62b:g:EAEAAOSwTuJYqfAw

Wenn du auch ein paar Wochen warten kannst, dann bei AliExpress. Kostet 
nur die Hälfte. 
https://www.aliexpress.com/wholesale?catId=0&initiative_id=AS_20170228021039&SearchText=PICkit3


Thomas Autark schrieb:
> JA wenn das Projekt abgeschlossen ist und alles so funktioniert bekomme
> ich alle Daten und kann damit machen was ich will.
Bis dahin ist vielleicht auch der PIC18F24K42 überall verfügbar und 
nicht nur bei Microchip Direct. Kostet weniger als die Hälfte ;-)

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

Bist du denn sicher das das Programm in C
geschrieben ist ? Und du must wissen, mit
welchem Compiler es geschrieben worden ist.
Wenn du Glück hast, dann ist es ein gängiger Compiler
und du kannst es ändern. Wenn nicht dann must du das
Programm anpassen auf den Compiler den du verwenden
willst. Also zuerst einmal alles abklären, bevor du einen
Kurs belegst, mit dem du nachher nichts anfangen kannst.

von Volker S. (vloki)


Lesenswert?

Stefan schrieb:
> Also zuerst einmal alles abklären, bevor du einen
> Kurs belegst, mit dem du nachher nichts anfangen kannst.

Yo, besser ist das...

von Thomas Autark (Gast)


Lesenswert?

Stefan schrieb:
> Bist du denn sicher das das Programm in C
> geschrieben ist ? Und du must wissen, mit
> welchem Compiler es geschrieben worden ist.

Nein, das weiß ich im Moment noch nicht.
Ich gehe davon aus das man das erkennt wenn man den Inhalt auslesen 
kann? Wenn nicht lässt sich das sicher erfragen beim Programmierer. Ich 
gehe bei Fragen immer sehr vorsichtig mit dieser Firma um, denn wenn sie 
merken das ich im "Hintergrund" eigentlich gegen sie arbeite (will in 
Zukunft das ja alles selber machen) sind sie möglicherweise nicht mehr 
so hilfsbereit.

Die Programmierung der Firma ist eine, von mir vorgegebene, 
"Standardprogrammierung" mit welcher man Akkus gut laden und überwachen 
kann. Sie bauen mir sozusagen das funktionierende Grundgerüst.
Meine "Geheimnisse" für meine spezielle Akkuladung möchte ich erst 
DANACH einbauen bzw. diverse Parameter am Grundgerüst ändern denn diese 
"Geheimnisse" gebe ich nicht aus der Hand.

Deshalb vorhin auch die Frage nach dem einfach 1:1 kopieren des PIC auf 
welchem sich das Grundgerüst befindet. Dadurch kann ich selber 
experimentieren ohne mir das Grundgerüst zu zerstören und einen neuen 
bestellen zu müssen.

Volker S. schrieb:
> Ja. Da gibt es eine extra kleine Software dafür. Nennt sich IPE.
> http://microchipdeveloper.com/ipe:launching-ipe-application
>
> Welche Bauform hast du denn? DIP? Dann hol dir am besten so was:
> Ebay-Artikel Nr. 122362586667

Danke Volker, das sieht gut aus, genau das was ich brauche, habe mir das 
Teil bestellt. Ja die Bauform ist ein DIP.

Herzlichen Dank
Thomas

von Volker S. (vloki)


Lesenswert?

Thomas Autark schrieb:
> Nein, das weiß ich im Moment noch nicht. Ich gehe davon aus das man das
> erkennt wenn man den Inhalt auslesen kann?
Nein, das sollte doch weiter oben schon klar geworden sein.


> Wenn nicht lässt sich das sicher erfragen beim Programmierer. Ich
> gehe bei Fragen immer sehr vorsichtig mit dieser Firma um, denn wenn sie
> merken das ich im "Hintergrund" eigentlich gegen sie arbeite...
Na dann ist es ja eine wunderbare Idee hier im Forum öffentlich, unter 
echtem Namen... Ich wäre so eigentlich davon ausgegangen, dass das denen 
klar ist, oder du das demnächst entsprechend kommunizierst.


> Deshalb vorhin auch die Frage nach dem einfach 1:1 kopieren des PIC auf
> welchem sich das Grundgerüst befindet. Dadurch kann ich selber
> experimentieren ohne mir das Grundgerüst zu zerstören und einen neuen
> bestellen zu müssen.
Nein, das wird erst was, wenn du den Code bekommst! Mit dem ausgelesenen 
Code kannst du gar nix machen außer ihn genau so wieder auf einen 
anderen PIC zu brennen. Siehe weiter oben...

: Bearbeitet durch User
von Thomas Autark (Gast)


Lesenswert?

Hallo Volker

Da hast du etwas falsch verstanden...

Volker S. schrieb:
> Na dann ist es ja eine wunderbare Idee hier im Forum öffentlich, unter
> echtem Namen... Ich wäre so eigentlich davon ausgegangen, dass das denen
> klar ist, oder du das demnächst entsprechend kommunizierst.

Ich bekomme nach dem fertig stellen ALLE Daten und was dazu gehört, die 
Firma besitz keinerlei Rechte auf irgendetwas in der Programmierung und 
dafür bezahle ich auch.
Ich möchte aber nicht alle Infos aus der Hand geben und das 
"Grundgerüst" im nachhinein bearbeiten können. Alles legal usw. Sollte 
sich die Firma, nach abgeschlossener Arbeit die Daten wirklich behalten 
dann haben sie "nur" ein Akku-Ladegerät, mehr nicht.

Ich werde der Firma aber nicht mitteilen WELCHE nachträglichen 
Änderungen ich am Grundgerüst machen werde.

Selbst wenn die hier mitlesen wird keine Vereinbarung verletzt, ich 
denke sie spekulieren darauf das sie nach fertig Stellung 1000 oder mehr 
PIC´s für mich herstellen sollen bzw. sogar das ganze Ladegerät, dies 
habe ich ihnen aber nie zugesichert und auch nicht vor. Würde ich 
irgendwelche Vetragsverletzungen begehen dann würde ich hier auch nicht 
so öffentlich schreiben und genau erklären worum es geht ... ganz blöd 
bin ich auch nicht ;-)

Meine "Geheimnisse" muss ich einfach nachträglich selber einbauen, 
deshalb mein Interesse am PIC programmieren.

LG
Thomas

von Volker S. (vloki)


Lesenswert?

Thomas Autark schrieb:
> Da hast du etwas falsch verstanden...

Thomas Autark schrieb:
> Ich gehe bei Fragen immer sehr vorsichtig mit dieser Firma um, *denn wenn*
> sie merken das ich im "Hintergrund" eigentlich gegen sie arbeite

Ich glaub da hast du was falsch verstanden ;-) Ich wollte keine 
Verletzungen irgendwelcher Vereinbarungen andeuten. Deine Formulierung 
deutete für mich aber darauf hin, dass du es nicht unbedingt jetzt schon 
an die große Glocke hängen willst was du vor hast.

von Route_66 H. (route_66)


Lesenswert?

Thomas Autark schrieb:
> Ich bekomme nach dem fertig stellen ALLE Daten und was dazu gehört,

Dann zeig doch mal ein Stück der Software. Kannst ja deine "Geheimnisse" 
(lach) raus lassen. Dann wissen wir endlich, mit welcher 
Programmiersprache und evtl. in welchem Umfeld die Firma für dich 
gearbeitet hat!

von Thomas Autark (Gast)


Lesenswert?

Route 6. schrieb:
> Kannst ja deine "Geheimnisse"
> (lach) raus lassen.

Ich werte dein, in Klammer gesetztes "LACH" mal als ein freundliches in 
die Runde lächeln.

Ich habe mir bis jetzt noch nichts geben lassen da ich selber ohnehin 
noch nichts damit anfangen kann ... deshalb ja meine Anfrage hier.

@volker ...
ok, habe ich wohl falsch verstanden ... danke. ;-)

Guten Abend
Thomas

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.