Forum: Mikrocontroller und Digitale Elektronik benötige Hex-Datei für PIC16F628A


von Roland G. (roland_g)


Lesenswert?

Hallo
ich bin neu hier und Neuling mit Hex Programmierung.
Ich habe ein PIC16F628A und benötige hierfür einen Hex-Code für folgende 
Anwendung:
PIC
8 Taster Eingänge (PIN 1-4; 6-9)
8x Ausgang (PIN 10-13; 15-18)
sobald ein Highsignal an Pin ankommt dauerhaftes Highsignal am Ausgang.
Diese Steuerung soll als Tastenaggregat funktionieren.

von Harry L. (mysth)


Lesenswert?

Morgen ist doch erst Freitag...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, du verwechselst das Forum irgendwie mit einem Dienstleister. Aber 
selbst für den wäre dein "Lastenheft" vermutlich etwas dürftig.

Das Forum ist Hilfe zur Selbsthilfe. Wenn du also deine 
"Hex-Programmierung" (was auch immer das sei) angefangen hast und nicht 
mehr weiter kommst, kannst du hier dein Problem und deine bereits 
unternommenen Schritte schildern, dann können andere dir zeigen, wo's 
klemmt und wie du weiter kommst.

von Oliver S. (oliverso)


Lesenswert?

Kauf dir 8 Relais, und google nach dem Begriff "Selbsthaltung". Das 
funktioniert ganz ohne Hex.

Oliver

von Andras H. (kyrk)


Lesenswert?

Wird dafür auch etwas bezahlt?

von H. H. (Gast)


Lesenswert?

Oliver S. schrieb:
> Kauf dir 8 Relais, und google nach dem Begriff "Selbsthaltung". Das
> funktioniert ganz ohne Hex.

Er will das wohl mit gegenseitiger Auslösung.

Beitrag "Tastensatz mit gegenseitiger Auslösung - Digital"

von Rainer W. (rawi)


Lesenswert?

Roland G. schrieb:
> Ich habe ein PIC16F628A und benötige hierfür einen Hex-Code

Kaum einer schreibt heutzutage noch Programme als Hexcode. Das überlässt 
man  Compiler und Linker.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

H. H. schrieb:
> Er will das wohl mit gegenseitiger Auslösung.

Naja, und dann noch eine ordentliche Entprellung dazu. Vielleicht auch 
noch mehr, was da noch nicht geschrieben ist? (Selbst die gegenseitige 
Auslösung ist ja nicht klipp und klar dokumentiert worden.)

Daher schrieb ich ja, dass das "Lastenheft" da oben (nennen wir es mal 
so) eher dürftig ist.

: Bearbeitet durch Moderator
von Roland G. (roland_g)


Angehängte Dateien:

Lesenswert?

Sorry,
aber mein Problem ist, ich habe mir vor 6 Jahren eine Pumpenstation mit 
16 Pumpen zusammengebastelt und hierfür über das Internet 3 
Tastenaggregate (PIC16F628A) gekauft. Leider ist eins davon jetzt defekt 
und ich bekomme dieses Tastenaggregat nicht mehr.
Wenn ich an einen Taster drücke (hi-Impuls an Pin Eingang 1) soll am 
Ausgang Pin 18 ein Hi Pegel sein und die anderen Ausgänge Lo-Pegel.
Eingänge Pin 1-4, 6-9
Ausgänge Pin 10-13, 15-18
Siehe Bild

von Gerald B. (gerald_b)


Lesenswert?

Frag mal Chat GPT. Schlimmer wie hier, wirds nicht mehr :-)

von Peter D. (peda)


Lesenswert?

Roland G. schrieb:
> Leider ist eins davon jetzt defekt
> und ich bekomme dieses Tastenaggregat nicht mehr.

Ja das ist da Risiko, wenn man nicht das Hex oder den Quellcode bekommt.
Die funktionierenden werden vermutlich gegen Auslesen gesperrt sein.
Man kann mal probieren, ob da 0x00 ausgelesen wird oder der Code.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Roland G. schrieb:
> Wenn ich an einen Taster drücke (hi-Impuls an Pin Eingang 1) soll am
> Ausgang Pin 18 ein Hi Pegel sein und die anderen Ausgänge Lo-Pegel.
> Eingänge Pin 1-4, 6-9
> Ausgänge Pin 10-13, 15-18
> Siehe Bild

Das ist zumindest schon mal eine konkretere Beschreibung als in der 
Einleitung. ;-)

Peter D. schrieb:
> Man kann mal probieren, ob da 0x00 ausgelesen wird oder der Code.

Wenn man die existierenden auslesen könnte, wäre es natürlich der 
einfachste Weg. Da stellt sich natürlich sofort die nächste Frage, ob 
Roland denn überhaupt ein Programmiergerät besitzt …

von H. H. (Gast)


Lesenswert?

Jörg W. schrieb:
> Da stellt sich natürlich sofort die nächste Frage, ob
> Roland denn überhaupt ein Programmiergerät besitzt …

Die paar Zeilen Code zu schreiben wäre ja kein Problem, und es kämen 
auch viele andere 18-polige PICs in Frage.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

H. H. schrieb:
> Die paar Zeilen Code zu schreiben wäre ja kein Problem

Wobei es natürlich sinnvoll jemand tun sollte, der es auch testen kann.

von Georg M. (g_m)


Lesenswert?

"Fehleingaben (z.B. mehrere Taster gleichzeitig) werden nicht akzeptiert 
und beeinflussen auch nicht den aktuellen Zustand der Ausgänge.
Alle Eingänge sind softwareseitig entprellt (Bounce-Delay 25 ms)."

http://friedel-herrmann.blogspot.com/search/label/Tastenaggregat

von Mario M. (thelonging)


Lesenswert?

OK. Wer fühlt sich auch verarscht?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gut, Erkennung von Mehrfach-Tastendruck wäre nochmal etwas mehr, aber 
nicht viel. Ist eh fraglich: eine der beiden Tasten war ja immer vor der 
anderen da, ist also nur eine Frage, innerhalb welcher Zeit man das als 
"2 Tasten gedrückt" auswertet.

Aber vielleicht gibt er ja auch die originale Hexdatei heraus, wenn er 
die Dinger schon nicht mehr vertreibt?

von Roland G. (roland_g)


Lesenswert?

Ja da war ich auch schon aber keine weitere Hilfe bekommen

von Roland G. (roland_g)


Lesenswert?

Ja habe mir ein Pickit3 gekauft und wollte den Code der funktionierenden 
PIC auslesen leider gesperrt

Beitrag #7542687 wurde vom Autor gelöscht.
von Roland G. (roland_g)


Lesenswert?

Jörg W. schrieb:
> Gut, Erkennung von Mehrfach-Tastendruck wäre nochmal etwas mehr,
> aber
> nicht viel. Ist eh fraglich: eine der beiden Tasten war ja immer vor der
> anderen da, ist also nur eine Frage, innerhalb welcher Zeit man das als
> "2 Tasten gedrückt" auswertet.
>
> Aber vielleicht gibt er ja auch die originale Hexdatei heraus, wenn er
> die Dinger schon nicht mehr vertreibt?

Nein wurde wegen Todesfall eingestellt

von Peter D. (peda)


Lesenswert?

H. H. schrieb:
> Die paar Zeilen Code zu schreiben wäre ja kein Problem

Etwas tricky ist, daß die Pins nicht logisch zugeordnet sind, also 
RA0->RB0, RA1->RB1 usw., sondern wild durcheinander.

von Roland G. (roland_g)


Lesenswert?

Roland G. schrieb:
> Ja habe mir ein Pickit3 gekauft und wollte den Code der funktionierenden
> PIC auslesen leider gesperrt

H. H. schrieb:
> Die paar Zeilen Code zu schreiben wäre ja kein Problem, und es kämen
> auch viele andere 18-polige PICs in Frage.

Könnte mir jemand für ein Entgeld einen funktionierenden Code schreiben

von H. H. (Gast)


Lesenswert?

Peter D. schrieb:
> H. H. schrieb:
>> Die paar Zeilen Code zu schreiben wäre ja kein Problem
>
> Etwas tricky ist, daß die Pins nicht logisch zugeordnet sind, also
> RA0->RB0, RA1->RB1 usw., sondern wild durcheinander.

Da sehe ich kein Problem, man würde eh die 8 Eingänge sequentiell 
abfragen, ganz ohne besonderen Algorithmus.

von Peter D. (peda)


Lesenswert?

H. H. schrieb:
> man würde eh die 8 Eingänge sequentiell
> abfragen, ganz ohne besonderen Algorithmus.

Ich würde die Eingänge in ein Byte sortieren, dann verarbeiten und dann 
auf die Ausgänge umsortieren.
Damit ist garantiert, daß die Verarbeitung exakt gleich erfolgt. Fehler 
sind nur noch bei den Sortierungen möglich.

von H. H. (Gast)


Lesenswert?

Peter D. schrieb:
> H. H. schrieb:
>> man würde eh die 8 Eingänge sequentiell
>> abfragen, ganz ohne besonderen Algorithmus.
>
> Ich würde die Eingänge in ein Byte sortieren, dann verarbeiten und dann
> auf die Ausgänge umsortieren.
> Damit ist garantiert, daß die Verarbeitung exakt gleich erfolgt. Fehler
> sind nur noch bei den Sortierungen möglich.

Es geht da um ein paar Pumpen!

von Wastl (hartundweichware)


Lesenswert?

H. H. schrieb:
> Es geht da um ein paar Pumpen!

Die müssen auf die Mikrosekunde gleich bedient werden.

von Martin S. (mmaddin)


Lesenswert?

Eigentlich die perfekte Aufgabe für PIC ASM.

von Roland G. (roland_g)


Lesenswert?

Ja über den angesteuerten PIC-Ausgang habe ich über einen Transistor 
(mit Widerstand) die jeweilige Pumpe mit 12V geschaltet. Ich benötige 
wirklich nur ein Hi-Signal am jeweiligen Ausgang.

von Peter D. (peda)


Lesenswert?

Wastl schrieb:
> Die müssen auf die Mikrosekunde gleich bedient werden.

Wer fordert das?

Ich habe keinen PIC-Compiler.
Auf einem AVR (ATtiny261) könnte das komplette Programm so aussehen.
1
#include <avr\io.h>
2
3
int main(void)
4
{
5
  DDRA = 0xFF;                  // Port A = 8 Outputs
6
  uint8_t mask = 0b10000000;
7
  do
8
  {
9
    if (mask == PINB )          // Port B = 8 Inputs
10
      PORTA = mask;
11
    if ( mask >>= 1 )           // rotate 1-Bit
12
      continue;
13
    mask = 0b10000000;
14
  }
15
  while(1);
16
}

von Stephan S. (uxdx)


Lesenswert?

Roland G. schrieb:
> Wenn ich an einen Taster drücke (hi-Impuls an Pin Eingang 1) soll am
> Ausgang Pin 18 ein Hi Pegel sein und die anderen Ausgänge Lo-Pegel.

d.h eine Pumpe läuft immer, da es keinen Reset für alle gibt.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Peter D. schrieb:
> Port A = 8 Outputs

Schon verloren.

von Stephan S. (uxdx)


Lesenswert?

Jörg W. schrieb:
> Gut, Erkennung von Mehrfach-Tastendruck wäre nochmal etwas mehr, aber
> nicht viel. Ist eh fraglich: eine der beiden Tasten war ja immer vor der
> anderen da, ist also nur eine Frage, innerhalb welcher Zeit man das als
> "2 Tasten gedrückt" auswertet.

Oder eher: das Programm akzeptiert einen Tastendruck nur, wenn nicht 
bereits eine andere Taste gedrückt ist.

von Stephan S. (uxdx)


Lesenswert?

H. H. schrieb:
> Peter D. schrieb:
>> Port A = 8 Outputs
>
> Schon verloren.

Die Zuordnung ist wirklich tricky:
1
A2 -> A1
2
A2 -> A0
3
A4 -> A7
4
A5 -> A6
5
6
B0 -> B7
7
B1 -> B6
8
B2 -> B5
9
B3 -> B4

Das würde ich in ASM mit BTFSS oder BTFSC für jeden einzelnen Eingang 
machen und vorher die anderen Eingänge abfragen.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Stephan S. schrieb:
> Das würde ich in ASM mit BTFSS für jeden einzelnen Eingang machen und
> vorher die anderen Eingänge abfragen.

ACK.

von Peter D. (peda)


Lesenswert?

Stephan S. schrieb:
> Die Zuordnung ist wirklich tricky:

Daher mein Vorschlag mit dem ATtiny261, da sind alle gleichwertigen Pins 
schön gegenüber.
Es stören nur die zusätzlichen GND/VCC. Mit 2 Leitungen durchkratzen und 
4 Drahtbrücken ist das aber zu lösen.

Mit dem PIC braucht man eben noch 2 Mapping Funktionen zusätzlich.

von Stephan S. (uxdx)


Lesenswert?

Peter D. schrieb:
> Daher mein Vorschlag mit dem ATtiny261, da sind alle gleichwertigen Pins
> schön gegenüber.
> Es stören nur die zusätzlichen GND/VCC. Mit 2 Leitungen durchkratzen und
> 4 Drahtbrücken ist das aber zu lösen.

Problem: wie bringst Du einen 20-poligen IC in 18 Löcher 0auf dem PCB? 
Da brauchts noch eine Zwischenplatine. Das geht mit einem PIC schneller 
und einfacher.

> Es stören nur die zusätzlichen GND/VCC. Mit 2 Leitungen durchkratzen und
> 4 Drahtbrücken ist das aber zu lösen.

Es müssen 10 Leitungen durchgekratzt und 8 Brücken gesetzt werden.

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


Lesenswert?

Hallo
Kann ich dir machen.
Alles weitere über EMail wenn Interesse besteht.
Kontakt über das Forum hier per Mail.

Peter

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stephan S. schrieb:
> Das würde ich in ASM mit BTFSS oder BTFSC für jeden einzelnen Eingang
> machen und vorher die anderen Eingänge abfragen.

Und die Entprellung?

von Jochen-paul S. (picfan)


Lesenswert?

Roland G. schrieb:
> Hallo
> ich bin neu hier und Neuling mit Hex Programmierung.
> Ich habe ein PIC16F628A und benötige hierfür einen Hex-Code für folgende
> Anwendung:
> PIC
> 8 Taster Eingänge (PIN 1-4; 6-9)
> 8x Ausgang (PIN 10-13; 15-18)
> sobald ein Highsignal an Pin ankommt dauerhaftes Highsignal am Ausgang.
> Diese Steuerung soll als Tastenaggregat funktionieren.

Also z.B. Taste 1 wurde gedrückt, Ausgang nur Pin18 hat jetzt dauerhaft 
+5V?
Dann läuft die entsprechende Pumpe, wie kann mann man diese wieder 
ausschalten?

von Peter D. (peda)


Lesenswert?

Stephan S. schrieb:
> Das geht mit einem PIC schneller
> und einfacher.

Kannst Du ja gerne machen.
Ich wollte nur schnell eine einfache Lösung präsentieren.

Stephan S. schrieb:
> Es müssen 10 Leitungen durchgekratzt und 8 Brücken gesetzt werden.

Überleg nochmal, die Bitreihenfolge ist egal.
Du mußt nur VCC/GND und die beiden äußeren neu verbinden. Bzw. GND ist 
intern verbunden, 3 Brücken reichen schon.

von Stephan S. (uxdx)


Lesenswert?

Peter D. schrieb:
> Überleg nochmal, die Bitreihenfolge ist egal.
> Du mußt nur VCC/GND und die beiden äußeren neu verbinden. Bzw. GND ist
> intern verbunden, 3 Brücken reichen schon.

Ich gehe davon aus, dass der PIC in einer Platine oder einer Fassung 
sitzt.
Die Ports bei den Pins 7-10 und 11-14 sind um je 1 versetzt (die sind 
beim PIC an 6-9 und 10-12) und nur VCC an der richtigen Stelle ist.

von H. H. (Gast)


Lesenswert?

Jörg W. schrieb:
> Stephan S. schrieb:
>> Das würde ich in ASM mit BTFSS oder BTFSC für jeden einzelnen Eingang
>> machen und vorher die anderen Eingänge abfragen.
>
> Und die Entprellung?

Braucht man eigentlich nicht.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Eine Lösung in TTL-Logik könnte einen 74xx148 oder 147 enthalten
https://www.ti.com/lit/ds/symlink/sn74hc148.pdf
8-Line to 3-Line Priority Encoder
Allerdings fehlt noch die Entprellung, der Zwischenspeicher und ein 
3-zu-8 Decoder. Der Mikrocontroller ist wirklich die einfachere Lösung.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Stephan S. schrieb:
> Die Ports bei den Pins 7-10 und 11-14 sind um je 1 versetzt (die sind
> beim PIC an 6-9 und 10-12) und nur VCC an der richtigen Stelle ist.

Hier die 4 Brücken.

von H. H. (Gast)


Lesenswert?

Und wie soll der TE den AVR mit seinem PICKIT-3 brennen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

H. H. schrieb:
> Jörg W. schrieb:
>> Stephan S. schrieb:
>>> Das würde ich in ASM mit BTFSS oder BTFSC für jeden einzelnen Eingang
>>> machen und vorher die anderen Eingänge abfragen.
>>
>> Und die Entprellung?
>
> Braucht man eigentlich nicht.

Hoffentlich laufen die Pumpen dann nicht Amok, wenn jemand in der Nähe 
den Staubsauger anschaltet …

von Stephan S. (uxdx)


Lesenswert?

Peter D. schrieb:
> Stephan S. schrieb:
>> Die Ports bei den Pins 7-10 und 11-14 sind um je 1 versetzt (die sind
>> beim PIC an 6-9 und 10-12) und nur VCC an der richtigen Stelle ist.
>
> Hier die 4 Brücken.

Das funktioniert nur, wenn der IC mit freien Drähten angeschlossen wäre. 
Er steckt aber in einem PCB oder einer Fassung.

von Martin S. (mmaddin)


Lesenswert?

Christoph db1uq K. schrieb:
> Allerdings fehlt noch die Entprellung

Brauchst du nicht bei einer Radiobutton-Funktion.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin S. schrieb:
> Christoph db1uq K. schrieb:
>> Allerdings fehlt noch die Entprellung
>
> Brauchst du nicht bei einer Radiobutton-Funktion.

Siehe oben. Wenn der Staubsauger dann die Tasten reihum "auslöst", 
könnte sich diese Meinung schnell ändern. ;-)

von Martin S. (mmaddin)


Lesenswert?

Joah, ich meinte auch eher dass nicht jede Taste einzeln entprellt 
werden muss.

Das ganze Konstrukt des Radiobuttons sollte aber einem sinnvollen Timing 
unterliegen und natürlich fängt man ja sowieso unlogische Zustände ab. 
Wenn man das macht, dann wird da nichts klappern was nicht auch bei 
einer Einzeltastenentprellung auch klappern würde...

von Peter D. (peda)


Lesenswert?

Stephan S. schrieb:
> Das funktioniert nur, wenn der IC mit freien Drähten angeschlossen wäre.
> Er steckt aber in einem PCB oder einer Fassung.

Man kann sich aber auch umständlich anstellen.
Einfach 2 Fassungen ineinander stecken, die zu trennenden Pins abknipsen 
und die Drahtbrücken löten. Gedrehte Fassungen lassen sich gut 
ineinander stecken.

Und wenn Peter K. ihm ein funktionierendes Programm schreibt, ist doch 
das Ziel erreicht. Mein Vorschlag war nur für den Fall, das sich sonst 
keiner findet. Auch wollte ich mich nicht mit dem nötigen Pin-Mapping 
rumärgern.

von Roland G. (roland_g)


Lesenswert?

Jochen-paul S. schrieb:
> Also z.B. Taste 1 wurde gedrückt, Ausgang nur Pin18 hat jetzt dauerhaft
> +5V?
> Dann läuft die entsprechende Pumpe, wie kann mann man diese wieder
> ausschalten?

Pumpe muss man nicht über PIC abschalten da automatische Abschaltung 
wenn voll, oder ich andere Pumpe wähle.

von Mario M. (thelonging)


Lesenswert?

Jochen-paul S. schrieb:
> Also z.B. Taste 1 wurde gedrückt, Ausgang nur Pin18 hat jetzt dauerhaft
> +5V?
> Dann läuft die entsprechende Pumpe, wie kann mann man diese wieder
> ausschalten?

Wie beim Röhrenradio. Eine andere Taste nur halb drücken. 😂

von Jochen-paul S. (picfan)


Angehängte Dateien:

Lesenswert?

Hallo, hier mal die .C-Datei für MPLABX, wenn du selber compilieren und 
verändern magst und noch das fertige .hex- file für den Programmer.
Gruss J.P.S

von H. H. (Gast)


Lesenswert?

Jochen-paul S. schrieb:
> Hallo, hier mal die .C-Datei für MPLABX,

Muss man nicht auch CMCON, VRCON und OPTION passend initialisieren?

von Jochen-paul S. (picfan)


Angehängte Dateien:

Lesenswert?

Hab die Schaltung schnell auf das Steckbrett gebracht, hatte noch einen 
Fehler, der Taster-Eingang wird ja mit 5V hochgezogen der Taster geht 
auf GND, anbei noch die neue .C-Datei und das neue Hex-File, sorry.
Die Schaltung funktioniert jetzt.
J.P.S

von H. H. (Gast)


Lesenswert?

Jochen-paul S. schrieb:
> der Taster-Eingang wird ja mit 5V hochgezogen der Taster geht
> auf GND,

Gerade anders rum.

Beitrag "Re: benötige Hex-Datei für PIC16F628A"

von Jochen-paul S. (picfan)


Angehängte Dateien:

Lesenswert?

H. H. schrieb:
> Jochen-paul S. schrieb:
>> der Taster-Eingang wird ja mit 5V hochgezogen der Taster geht
>> auf GND,
>
> Gerade anders rum.
>
> Beitrag "Re: benötige Hex-Datei für PIC16F628A"

Oh weh, ich habs verschlimmbessert.
Habe es jetzt korrigiert, und noch Pin 18&17 getauscht, jetzt gilts 
definitiv, jetzt alles nochmal.

von Stephan S. (uxdx)


Lesenswert?

und wie wird verhindert, dass 2 Tasten gleichzeitig gedrückt 2 Pumpen 
einschalten?

von Mario M. (thelonging)


Lesenswert?

Gar nicht. Und wenn man alle Tasten gleichzeitig drückt, hat man ein 
schönes Lauflicht.

von H. H. (Gast)


Lesenswert?

Stephan S. schrieb:
> und wie wird verhindert, dass 2 Tasten gleichzeitig gedrückt 2
> Pumpen
> einschalten?

Durch Hirn.

von Martin S. (mmaddin)


Lesenswert?

Jochen-paul S. schrieb:
> Hallo, hier mal die .C-Datei für MPLABX

Tolle Geste.

Besser als so was:

Andras H. schrieb:
> Wird dafür auch etwas bezahlt?

oder das

Mario M. schrieb:
> OK. Wer fühlt sich auch verarscht?

Mario M. schrieb:
> Wie beim Röhrenradio. Eine andere Taste nur halb drücken. 😂

Lustig, aber selbst absolut nichts auf die Kette kriegen - herrlich...

: Bearbeitet durch User
von Jochen-paul S. (picfan)


Lesenswert?

Mario M. schrieb:
> Gar nicht. Und wenn man alle Tasten gleichzeitig drückt, hat man
> ein
> schönes Lauflicht.

Das habe ich nicht probiert, aber wenn man mehrere Taster gleichzeitig 
drückt, hätte man sowieso nicht die Pumpe aktiviert, welche man 
eigentlich wollte....

von Roland G. (roland_g)


Lesenswert?

Hallo
erst mal vielen Dank! Komme leider übers Wochenende nicht mehr dazu es 
zu testen. Wenn es funktioniert werde ich mich bei dir Jochen-Paul 
erkenntlich zeigen

von Roland G. (roland_g)


Angehängte Dateien:

Lesenswert?

Hallo zusammen
ich habe den PIC in ein Steckboard gesetzt
Vom PICit3 habe ich
PIN 1 (MCLR) auf PIN 4 des PIC gelegt
PIN 2 (VCC) auf PIN 14 des PIC gelegt
PIN 3 (GND) auf PIN 5 des PIC gelegt
PIN 4 (Data) auf PIN 13 des PIC gelegt
PIN 5 (Clock) auf PIN 12 des PIC gelegt
und dann versucht die hex-Datei einzulesen.
Habe PIC eingebaut
wenn ich einen Taster drücke machen alle Relais für die Pumpen nur einen 
kurzen Impuls und dann nichts mehr auch nicht wenn ich weiteren Taster 
betätige.

was mache ich nur Falsch?
oder passt an der Hex Datei von Jochen Paul etwas nicht
habe versucht den PIC auszulesen (siehe Hex-Datei)

Jochen-paul S. schrieb:
>> Gerade anders rum.
>>
>> Beitrag "Re: benötige Hex-Datei für PIC16F628A"
>
> Oh weh, ich habs verschlimmbessert.
> Habe es jetzt korrigiert, und noch Pin 18&17 getauscht, jetzt gilts
> definitiv, jetzt alles nochmal.

von H. H. (Gast)


Lesenswert?

Mit welcher Software bedienst du den Programmer?

Hast du die Versorgung über den Pickit3 eingeschaltet?

von Roland G. (roland_g)


Lesenswert?

H. H. schrieb:
> Mit welcher Software bedienst du den Programmer?
>
> Hast du die Versorgung über den Pickit3 eingeschaltet?

Ich habe mir das PICkit3 Version 3.10.00 runter geladen.
und mit "Auto Import Hex & Write Device" die Hex Datei geladen und 
hoffentlich auch auf den PIC geschrieben

habe am PICkit 3 VDD on Häkchen gesetzt

von Stephan S. (uxdx)


Lesenswert?

Roland G. schrieb:
> Ich habe mir das PICkit3 Version 3.10.00 runter geladen.
> und mit "Auto Import Hex & Write Device" die Hex Datei geladen und
> hoffentlich auch auf den PIC geschrieben

Die Software meldet doch, ob der Flashvorgang erfolgreich war. Mach mal 
ne Hardcopy unmittelbar nach dem Schreiben

von H. H. (Gast)


Lesenswert?

Roland G. schrieb:
> und hoffentlich auch auf den PIC geschrieben

Offensichtlich nicht.

von Roland G. (roland_g)


Angehängte Dateien:

Lesenswert?

Stephan S. schrieb:
> Die Software meldet doch, ob der Flashvorgang erfolgreich war. Mach mal
> ne Hardcopy unmittelbar nach dem Schreiben

hallo siehe Bild
diese Antwort kommt kurz und dann kommt
Selected device not detected

von H. H. (Gast)


Lesenswert?

Zeig deinen Steckbrettaufbau mit Programmer.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das Hex-File sieht recht seltsam aus

Das Programm srecord
https://srecord.sourceforge.net/
gibt diese Info aus:

srec_info Tasteraggregat.hex -Intel
Format: Intel Hexadecimal (MCS-86)
srec_info: Tasteraggregat.hex: 274: warning: data records not in 
strictly
    ascending order (expected >= 0x4300, got 0x400E)
Data:   0000 - 0FFF
        4000 - 4007
        400E - 400F
        4200 - 42FF

von H. H. (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> data records not in
> strictly ascending order

Bei PICs ganz normal.

von Obelix X. (obelix)


Lesenswert?

Kann ChatGPT ein solches Programm schreiben?

von Roland G. (roland_g)


Angehängte Dateien:

Lesenswert?

H. H. schrieb:
> Zeig deinen Steckbrettaufbau mit Programmer.

Hier der Aufbau

von Jochen-paul S. (picfan)


Lesenswert?

Roland G. schrieb:
> Hallo zusammen
> ich habe den PIC in ein Steckboard gesetzt
> Vom PICit3 habe ich

Hallo Roland, Du hast heute, um 11:42 Tasteraggregat.hex datei gepostet.
Dieses hex habe ich in meinen Pic16f628a gebrannt. Auf meinem Steckbrett 
mit 8 LED funktioniert es Wunschgemäss. Hast du alle Eingänge auch mit 
5K-Widerständen auf GND gezogen?

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Roland G. schrieb:
> Hier der Aufbau
1. Braucht dieser PIC so gar keinen Blockkondensator wie z.B. dort 
beschrieben: 
https://microchipdeveloper.com/xwiki/bin/view/products/mcu-mpu/8bit-pic/design-recommendations/
2. Hast du mal die reale Versorgungsspannung am µC gemessen?

: Bearbeitet durch Moderator
von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

Roland G. schrieb:
> diese Antwort kommt kurz und dann kommt
> Selected device not detected

d.h. das PICkit3 sieht den PIC nicht, überprüfe Deine Verkabelung und 
mache einen 100nF-Kondensator zwischen Vdd und Vss

Du musst folgendes Bild sehen, bei Device muss PIC16F628A stehen (ich 
hatte gerade nur einen PIC16F88 zur Hand, der hat das gleiche 
Pin-Layout), das PICkit3 muss den PIC automatisch erkennen.

: Bearbeitet durch User
von Hans (piaggio)


Lesenswert?

Zum Programmieren würde ich die Verbindungen zum "Rest" der Schaltung 
trennen.  Nur Pickit mit Pic über kurze Kabel verbinden.

Bei LVP (Low Voltage Programming) oder HVP (High Voltage.....) ist auch 
das PGM-Pin entsprechend zu verschalten.
Möglicherweise gibt's Probleme weil einer deiner Widerstände einen 
falschen Pegel erzeugt.
https://www.sprut.de/electronic/pic/icsp/icsp.htm#lvp

von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

nach erfolgreicher Programmierung sieht das dann so aus (halt mit 
PIC16F628A statt PIC16F88)

: Bearbeitet durch User
von Jochen-paul S. (picfan)


Lesenswert?

"hex file sucessefully imported" heist, dass die hex Datei nun in den 
Programmer geladen wurde. Nun muss es mit einer neuen Aktion in den Pic 
geflasht weden(wie schon richtig beschrieben, sollte danach ein grünes 
Fenster im Fenster erscheinen).
Das mit dem Blockkondensator versteht sich von selbst, ich nehme an, 
dass auf der vorhandenen alten Platine eine ist.-
Ich gebe zu, dass ich auf meinem Steckbrett keinen habe, funzt trotzdem.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Roland G. schrieb:
> H. H. schrieb:
>> Zeig deinen Steckbrettaufbau mit Programmer.
>
> Hier der Aufbau

Nicht gut zu sehen, aber ich denke du hast die Reihenfolge der Pins am 
Pickit falschrum.

von Stephan S. (uxdx)


Lesenswert?

Es sieht so aus, als ob das türkisfarbene Kabel von Pin 6 des PICkit 
über das eine orange Kabel an Pin 12 des PIC geht, prüft das nochmal 
nach. Pin 6 des PICkit wird normalerweise gar nicht verwendet, nur 1-5

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Hier nochmals erklärt:

https://youtu.be/mUhzqDD6dg4?t=317

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Steckbrett und Pinbelegung nebeneinander. LVP scheint mit PGM identisch 
zu sein. Der muss an Pin 10 nicht 1

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> LVP

Wird hier gar nicht benötigt, bleibt unbeschaltet.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Aber was ist an Pin 1 angeschlossen?

von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

hier weiss man nicht genau, wo was hingeht

von H. H. (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> Aber was ist an Pin 1 angeschlossen?

Offensichtlich ein Taster.

von Stephan S. (uxdx)


Lesenswert?

Christoph db1uq K. schrieb:
> Aber was ist an Pin 1 angeschlossen?

geht zum Taster

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Pics habe ich fast nur mit dem BeeProg der Firma programmiert, da kenne 
ich keine Einzelheiten. Zu Hause ganz am Anfang mal den 16F84, weiß 
nicht mehr wie.
LVP: Low-Voltage Programming Enable bit
1 = RB4/PGM pin has PGM function, low-voltage programming enabled
0 = RB4/PGM is digital I/O, HV on MCLR must be used for programming

https://ww1.microchip.com/downloads/en/devicedoc/40044e.pdf
Datenblatt Seite 98 von 178

von H. H. (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> LVP: Low-Voltage Programming Enable bit

Nochmals: hier unbeschaltet!

von Jochen-paul S. (picfan)


Lesenswert?

Noch etwas, du hast geschrieben, dass du über 12V die Transistoren für 
die Pumpen benützt. Hast du parallel zu den Pumpen je eine Diode 
geschaltet? Wenn nicht, könnte es die Ursache sein für den Defekt.

von Stephan S. (uxdx)


Lesenswert?

Jochen-paul S. schrieb:
> Noch etwas, du hast geschrieben, dass du über 12V die Transistoren für
> die Pumpen benützt. Hast du parallel zu den Pumpen je eine Diode
> geschaltet? Wenn nicht, könnte es die Ursache sein für den Defekt.

Beitrag "Re: benötige Hex-Datei für PIC16F628A"

von Roland G. (roland_g)


Lesenswert?

Christoph db1uq K. schrieb:
> Aber was ist an Pin 1 angeschlossen?

nur zum Test der Taster für 5V Eingang im Moment nicht im Betrieb

von Roland G. (roland_g)


Angehängte Dateien:

Lesenswert?

Stephan S. schrieb:
> nach erfolgreicher Programmierung sieht das dann so aus (halt mit
> PIC16F628A statt PIC16F88)

HJabe jetzt den PIC erhalten.
Habe die VDD Direkt mit dem PICKIT3 verbunden dies funktioniert jetzt.
Habe aber jetzt noch diese Fehlermeldung beim Einlesen der Hex-Datei 
siehe Bild

von Stephan S. (uxdx)


Lesenswert?

Mach mal die beiden Häckchen bei On und MCLR weg, die werden für die 
Programmierung nicht benötigt.

Was passiert, wenn Du

1. die Datei über 'File - Import Hex' erst mal lädst

2. und dann über 'Write' in den PIC programmierst?

: Bearbeitet durch User
von Roland G. (roland_g)


Lesenswert?

Roland G. schrieb:
> HJabe jetzt den PIC erhalten.
> Habe die VDD Direkt mit dem PICKIT3 verbunden dies funktioniert jetzt.
> Habe aber jetzt noch diese Fehlermeldung beim Einlesen der Hex-Datei
> siehe Bild

Hurra - vielen Dank
habe jetzt mein Problem gefunden.
VDD muss genauso wie VSS direkt an den PIC
Hatte beide oben an der Steckerleise da kamen die Fehlermeldungen -
Direkt am PIC funktioniert alles!!!
Vielen Dank

Jochen-paul wie kann ich mich für die Programmierung erkenntlich zeigen

von H. H. (Gast)


Lesenswert?

Stephan S. schrieb:
> Mach mal die beiden Häckchen bei On und MCLR weg, die werden für die
> Programmierung nicht benötigt.

Er will ohne externe Versorgung brennen.

von Roland G. (roland_g)


Lesenswert?

H. H. schrieb:
> Er will ohne externe Versorgung brennen.

Ja genau aber da war auch das Problem,
da ich längere Leitungswege hatte waren die Fehler da
Danke für Eure Unterstützung

von H. H. (Gast)


Lesenswert?

Roland G. schrieb:
> längere Leitungsweg

Die Strippen auch noch magnetisch?

von Hans (piaggio)


Lesenswert?

H. H. schrieb:
> Roland G. schrieb:
>> längere Leitungsweg
>
> Die Strippen auch noch magnetisch?

Das Programmierkabel ist wirklich wichtig.
Wurde auch schon hier gut beschrieben:
https://www.sprut.de/electronic/pic/icsp/icsp.htm#kabel

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.