Hallo,
ich versuche momentan den Programmieralgorithmus für einen PIC 16F74 zu implementieren. Das Programmieren und Loeschen des Controllers funktioniert bereits, bis auf ein Problem: ich kann das Konfigurationswort nicht schreiben.
Nach dem Loeschen liefert mir das Auslesen der 8 Worte ab
0x2000 folgende Werte:2000: ff 3f ff 3f ff 3f ff 3f ff 3f ff 3f 21 06 ff 3f
Der Wert an 0x2006 codiert korrekt den PIC-Typ:
00 0110 0010 0001 = PIC16F74 Rev. 1Versuche ich dann den Wert 0x3ff2 in das Konfigurationswort an 0x2007 (und testweise auch in die vier ID-Locations) zu schreiben, erhalte ich nach dem zurücklesen
2000: f2 3f f2 3f f2 3f f2 3f ff 3f ff 3f 21 06 ff 3fDas heisst die vier ID-Locations werden korrekt geschrieben, aber das Konfigurationswort nicht. Ich verwende folgende Sequenz (jeweils von LSB nach MSB, wie in der Programmier- Spezifikation des PIC):
Load Configuration 000000 0 0000 0000 0000 00 0 Load Data 010000 0 0100 1111 1111 11 0 Begin Programming 000100 (Delay 1 msec) End Programming 011100 Increment Address 011000
Das ganze insgesamt vier Mal für die vier ID-Locations, dann
Increment Address 011000 Increment Address 011000 Increment Address 011000 Load Data 010000 0 0100 1111 1111 11 0 Begin Programming 000100 (Delay 1 msec) End Programming 011100
Diesen letzten Programmiervorgang scheint der PIC aber nicht auszufuehren.
Gibt es für das Konfigurationswort irgendwelche Besonderheiten zu beachten? Irgendwelche Timing-Parameter die beim Schreiben des Konfigurationswortes kritischer sind als bei den anderen Zellen? Oder habe ich bei der noetigen Programmiersequenz (trotz mindestens 50-maligem Vergleichen mit der Spezifikation ...) noch etwas falsch gemacht????
Ich bin für jeden Hinweis dankbar :-)
Besten Dank schon mal und schöne Grüße,
Andreas