Forum: Mikrocontroller und Digitale Elektronik PIC - "Lock Bits" - wird beim Auslesen der Speicher gelöscht?


von Paul B. (paule201)


Lesenswert?

Hallo zusammen,

mein Kumpel hat eine alte NC Drehbank gekauft. Alles relativ altes Zeug, 
THT Bauteile, alles verteilt auf mehrere Platinen, Flachbandkabel als 
Verbinder.

Auf einer Platine werkelt ein PIC (genaue Bezeichnung bekomm ich erst 
noch), der vergisst nach dem Abschalten der Spannung via Hauptschalter 
immer einige Werte, die normalerweise auch über die "spannungslose Zeit" 
hinweg gespeichert bleiben sollten.

Meine Vermutung: Die Werte werden ins EEPROM geschrieben, welches aber 
seine Zyklen mittlerweile erreicht hat und daher etwas "vergesslich" 
ist.

Die Idee: Den PIC auslesen, die SW auf einen neuen brennen und einbauen.

Unklar: Ich komme aus der AVR Welt und bin mit PICs wenig vertrauet:
Wenn die Lock Bits gesetzt sind und ich auslesen will, gibt es dann nur 
einen Abbruch und der Code bleibt wie er ist oder wird beim 
Ausleseversuch der Code komplett gelöscht?
Wenn beides möglich ist, kann ich wenigstens vorab rausbekommen ob die 
Lock Bits gesetzt sind?

Danke!

von Teo D. (teoderix)


Lesenswert?

Keine Panik, dem Pic passiert nichts.

von Frank K. (fchk)


Lesenswert?

Die MPLABX IPE löscht beim Auslesen grundsätzlich nichts.

Zur Ursache:

Wenn der PIC in der Typenbezeichnung ein C hat (z.B. PIC16C54), dann ist 
das ein EPROM-basierter Chip. Den kann man dann genau einmal 
programmieren, und wenn der kein Keramikgehäuse mit Fenster hat (wie ein 
EPROM), dann kannst Du den auch nicht mehr löschen. Und die üblichen 
PicKits und Brenner können die Teile auch nicht programmieren oder 
auslesen. Diese Teile haben kein EEPROM eingebaut.

PICs mit F in der Bezeichnung sind flash-basiert. Die lassen sich wie 
gewohnt per ICSP programmieren, auslesen und löschen. Nicht alle haben 
ein EEPROM. Deswegen solltest Du auch noch nach einem 8-pin Chip schauen 
mit der Nummer 24xx, 25xx oder 93xx. Das wäre dann ein externes EEPROM. 
Oder nach einer Batterie für ein externes RAM - das wurde früher, bevor 
es EEPROMs gab, auch häufig gemacht.

So, bevor Du jetzt nicht die Nummer des PICs und ggf weiterer 8-Pinner 
rausrückst, ist das hier alles nur Raterei.

fchk

von H. H. (hhinz)


Lesenswert?

Frank K. schrieb:
> Wenn der PIC in der Typenbezeichnung ein C hat (z.B. PIC16C54), dann ist
> das ein EPROM-basierter Chip. Den kann man dann genau einmal
> programmieren,

Ausnahme ist der PIC16C84.

von Andras H. (kyrk)


Lesenswert?

Welche PIC?

Sonst wenn der CP gesetzt ist, wird das mit dem auslesen nix. Da kommt 
dann nur Müll raus.

Ohne CP, einfach auslesen und happy sein.

von Paul B. (paule201)


Lesenswert?

Erstmal danke für eure Antworten, dass klingt erstmal beruhigend. Ich 
will nur vermeiden das ich eventuell den Speicher platt mache und dann 
stehen wir blöd da.

Frank K. schrieb:
> So, bevor Du jetzt nicht die Nummer des PICs und ggf weiterer 8-Pinner
> rausrückst, ist das hier alles nur Raterei.

Es gibt keine externen EEPROMs, lediglich einen ULN2803, ein 
Widerstandsnetzwerk, einen 4-fach OPV und einen paar Transistoren. Alles 
recht unspektakulär.
Die Maschine ist noch auf der Reise, sobald sie steht kann ich die Info 
liefern.

Was wäre denn eine günstiges Programmiergerät für die PIC Serien? Gibts 
es da "das Programmiergerät" wie z.B. bei STM den ST-Link?
Bei STM gibts den "CUBE Programmer", eine kleine Software die nur zum 
auslesen und beschreiben der Chips dient.
Gibts sowas bei Mikrochip auch oder muss ich zwangsläufig die komplette 
IDE installieren?

von H. H. (hhinz)


Lesenswert?

Paul B. schrieb:
> Was wäre denn eine günstiges Programmiergerät für die PIC Serien?

PICkit3

von H. H. (hhinz)


Lesenswert?

Paul B. schrieb:
> muss ich zwangsläufig die komplette
> IDE installieren?

Du kannst eine ältere Version nehmen, die ist nicht so aufgebläht.

von H. H. (hhinz)


Lesenswert?

H. H. schrieb:
> Paul B. schrieb:
>> Was wäre denn eine günstiges Programmiergerät für die PIC Serien?
>
> PICkit3

Oder der K150. Bei dem aber prüfen ob die Software auch unter 
64Bit-Windows läuft.

: Bearbeitet durch User
von Gerald B. (gerald_b)


Lesenswert?

Auch etliche "Allesprogrammiergeräte", wie z.B. der GALEP 4, die 
manchmal für kleines Geld angeboten werden, können PICs auslesen (wenn 
sie nicht geschützt sind) und neu beschreiben.
Du hast dann zwar keine Unterstützung der Entwicklungssoftware des 
Chipherstellers, aber wenn du nur brennen willst, ist das völlig 
ausreichend. Nur mußt du im Vorfeld Eigenheiten und Befindlichkeiten des 
Programmers und seiner Software in Erfahrung bringen.
Teils haben derartige Programmiergeräte einen Parallelportanschluss, 
laufen nur unter Windows XP usw.
Aber wenn man noch einen Rechner hat, der die Voraussetzungen dafür 
erfüllt, warum nicht? Wenn man diesen Rechner nichts ins Internet lässt, 
sondern nur per Datenträger zum Brennen verwendet, ist das Riskiko sehr 
überschaubar.

von Rainer W. (rawi)


Lesenswert?

Paul B. schrieb:
> Auf einer Platine werkelt ein PIC (genaue Bezeichnung bekomm ich erst
> noch), der vergisst nach dem Abschalten der Spannung via Hauptschalter
> immer einige Werte, die normalerweise auch über die "spannungslose Zeit"
> hinweg gespeichert bleiben sollten.

Und du bist sicher, dass die Werte nicht in einem batteriegestützten 
SRAM, z.B. auch in einer RTC, aufbewahrt werden?

von Frank K. (fchk)


Lesenswert?

Paul B. schrieb:

> Was wäre denn eine günstiges Programmiergerät für die PIC Serien? Gibts
> es da "das Programmiergerät" wie z.B. bei STM den ST-Link?

Ja. Vorausgesetzt es ist kein UART-PIC mit EPROM, sondern einer mit 
Flash, dann entweder einen PICKIT3-Nachbau vom Chinesen (die Originale 
werden seit 5-6 Jahren nicht mehr hergestellt), ein PICKIT4 (wird auch 
nicht mehr hergestellt) oder ein PICKIT5 (die aktuelle Version). Der 
Snap funktioniert bei Dir nicht, weil Dein PIC 9, 12 oder mehr V an MCLR 
beim Programmieren haben will, und das kann der Snap nicht liefern.

Der PICKIT5 geht auch mit AVRs und Atmel/Microchip ARMs, d.h. der kann 
so ziemlich alles programmieren, was Microchip aktuell so im Programm 
hat (Ausnahme 8051-basierte Chips).

> Bei STM gibts den "CUBE Programmer", eine kleine Software die nur zum
> auslesen und beschreiben der Chips dient.
> Gibts sowas bei Mikrochip auch oder muss ich zwangsläufig die komplette
> IDE installieren?

Das nennt sich bei Microchip IPE (Integrated Programming Environment). 
Das andere ist die IDE (Integrated Development Environment). Beim 
Installieren vom MPLABX wirst Du gefragt, was Du installieren willst.

fchk

von Jens M. (schuchkleisser)


Lesenswert?

Frank K. schrieb:
> Das nennt sich bei Microchip IPE (Integrated Programming Environment).
> Das andere ist die IDE (Integrated Development Environment). Beim
> Installieren vom MPLABX wirst Du gefragt, was Du installieren willst.

Nur so als Nebeninfo: Das Programm ist als Installer gepflegte 880MB 
groß und bläst sich bei der Installation auf so 6 oder 7 GB auf.
Und ja, ich hab auch nur den IPE für den PicKit 5 "installiert". 
Vermutlich fehlen mir nur die Icons im Startmenü, bei der Größe. 
Wahnsinn. Vollkommen bekloppt.
Und das nur um den Pickit5 in den Standalonemodus zu bringen, d.h. der 
programmiert die Hexdatei auf der Speicherkarte ohne PC, nur mit 
Tastendruck.

Das funktioniert im Gegensatz zu der IPE-Software und der 
Bluetooth-Verbindung zur Android-App zumindest bei mir einwandfrei, aber 
bis man das eingestellt hat hat man schon so ein oder zweiundzwanzig 
Abstürze hinter sich, und die App macht genau gar nichts außer das Gerät 
zu finden, einmal. Danach nicht mehr, und machen kann man auch nix 
damit.
PC ist Windows 11, relativ frisch installiert, Android ein 11er.

von Bernd M. (berndmm)


Lesenswert?

Eine weitere Möglichkeit für die Vergesslichkeit: Manchmal wird die 
Betriebsspannung vor dem Spannungsregler überwacht. Beginnt diese 
abzusinken, werden die Werte in den EEPROM gespeichert. Dazu bracht der 
PIC einige Millisekunden. Lässt die Kapazität der Siebelkos durch 
Alterung nach, sinkt die Spannung zu schnell, so dass dem PIC nicht 
ausreichend Zeit bleibt, die Werte zu speichern.

Bernd

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.