Jaakko,

I have made some minor changes[¹] to hexfile.cc and picport.cc and now it
is possible to read/write a pic12f635. Alexander Zangerl, has confirmed that
this also works for him.

Off course, the changes made are probably not a good solution and I have not
tested if it breaks other things.

You can find the complete bug-report here
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=412778>


[¹]
--- ../picprog-1.8.3/hexfile.cc 2006-09-24 17:05:41.000000000 +0200
+++ hexfile.cc  2007-05-18 09:15:02.000000000 +0200
@@ -224,12 +224,15 @@
   {"pic12ce674", 2048, 1, 0, 1, 14, 0, 0, eprom,  16, eeprom, -1},
   {"pic12f629",  1024, 1, 0x3000, 1, 14, 0, 0, flash4, 128, eeprom, 0x0f80},
   {"pic12f675",  1024, 1, 0x3000, 1, 14, 0, 0, flash4, 128, eeprom, 0x0fc0},
 
   {"pic16c505",  1024, 1, 0, 1, 12, 0, 0, eprom,   0, rom, -1},
 
+  // 635: has 2 calibration words in 2008 and 2009, no osccal
+  {"pic12f635",  1024, 0, 0x3000, 3, 14, 0, 0, flash4, 128, eeprom, 0x0fa0},
+
   // 18f original series
   // Multi-panel writes
   // Write Buffer Size 8
   {"pic18f242",   16 * 1024, 0, 0, 14, 16, 8*1024, 8, flash18, 256, eeprom, 
0x0480},
   {"pic18f248",   16 * 1024, 0, 0, 14, 16, 8*1024, 8, flash18, 256, eeprom, 
0x0800},
   {"pic18f252",   32 * 1024, 0, 0, 14, 16, 8*1024, 8, flash18, 256, eeprom, 
0x0400},


--- ../picprog-1.8.3/picport.cc 2006-09-24 17:03:34.000000000 +0200
+++ picport.cc  2007-05-18 09:17:52.000000000 +0200
@@ -479,18 +479,18 @@
     tmp1 = p_in ();
     for (i = 0; i < 14; i++)
       shift |= p_in () << i;
     tmp2 = p_in ();
     set_clock_data (0, 0); // set data down
 
-    // Start and stop bits must be 1.
+    // Start and stop bits must be 1. ***(Disabled : test PIC12f635)***
 
-    if (!tmp1 || !tmp2) {
-      cerr << portname << ":PIC programmer missing or chip fault" << endl;
-      return -1;
-    }
+    // if (!tmp1 || !tmp2) {
+    //   cerr << portname << ":PIC programmer missing or chip fault" << endl;
+    //   return -1;
+    // }
 
     if (data_from_data == comm) {
 
       // Check that the leftover bits were valid, all 1's.
       // This detects if the programmer is not connected to the port.
       // Unfortunately later chips clear these bits, so we must


-- 
Met vriendelijke groetjes         - Jan Wagemakers -

... movl $1, %eax  ;  movl $0, %ebx  ;  int $0x80


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to