Pic - K150 ICSP Programmer (HCDVBD0002)
Re: Pic - K150 ICSP Programmer (HCDVBD0002)
Try upping the program delay time. You can find this setting in the chipdata.cid file in mircobrn. Just open it up with a text editor and then find the ProgramDelay setting for your device. Note, you'll need to restart microbrn every time you change it.
Comments made by this poster do not necessarily reflect the views of Hobby Components Ltd.
Re: Pic - K150 ICSP Programmer (HCDVBD0002)
Hi,
I have tried adjusting the program delay value in increments of 10 all the way up to 120 and all this does is slow down the programming time.
I have, as an experiment, pared back the code (Removed about 50% of the functionality) so that it fits on a 16F876 chip.
When I load this into the programmer the EEPROM contents are displaying correctly (see attachment) and indeed the chip programs correctly. I noticed that in the HEX file for the 16F876 the EEPROM contents are 16 bits wide:-
:1042000000000000000000000000000000000000AE
:10421000000000000000000000000000000000009E
:10422000000000000000000000000000000000008E
:10423000000000000000000000000000000000007E
:10424000000000000100000050000000000000001D
:1042500021000C00220003002400050034000200AD
:104260000C000C00140003002400050026000200CE
:10427000000000000000000000000000000000003E
:10428000000000000000000000000000000000002E
:10429000000000000000000000000000000000001E
:1042A000000000000000000000000000000000000E
:1042B00000000000000000000000000000000000FE
:1042C00060006100620063006400650066006700D2
:1042D00000000000000000000000000000000000DE
:1042E00000000000000000000000000000000000CE
:1042F00000000000000000000000000000000000BE
:1043000000000000000000000000000000000000AD
:10431000000000000000000000000000000000009D
:1043200090009100920093009400950096009700F1
:10433000000000000000000000000000000000007D
:10434000000000000000000000000000000000006D
:10435000000000000000000000000000000000005D
:10436000000000000000000000000000000000004D
:10437000000000000000000000000000000000003D
:10438000000000000000000000000000000000002D
:10439000000000000000000000000000000000001D
:1043A000000000000000000000000000000000000D
:1043B00000000000000000000000000000000000FD
:1043C00000000000000000000000000000000000ED
:1043D00000000000000000000000000000000000DD
:1043E00000000000000000000000000000000000CD
:1043F00000000000000000000000000000000000BD
whereas for the 2550 they are only 8 bits wide:-
:1000000003000000000000000000000100000000EC
:10001000C0030000000000000000000022000000FB
:1000200000000000000000000000000000000000D0
:1000300000000000000000000000000000000000C0
:1000400000000000000000000000000000000000B0
:1000500000000000000000000000000000000000A0
:100060000000000000000000000000000000000090
:100070000000000000000000000000000000000080
:10008000000102030405060708090A0B0C0D0E0FF8
:10009000101112131415161718191A1B1C1D1E1FE8
:1000A0000000000000000000000000000000000050
:1000B0000000000000000000000000000000000040
:1000C0000000000000000000000000000000000030
:1000D0000000000000000000000000000000000020
:1000E000E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF98
:1000F000F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF88
The programmer is reading the HEX file correctly as it was 16 bit words but missing out every other byte.
I am now suspecting the XC8 compiler is screwing around with the data rather than the K150.
I'll let you know what I come up with unless you have any ideas.
I have tried adjusting the program delay value in increments of 10 all the way up to 120 and all this does is slow down the programming time.
I have, as an experiment, pared back the code (Removed about 50% of the functionality) so that it fits on a 16F876 chip.
When I load this into the programmer the EEPROM contents are displaying correctly (see attachment) and indeed the chip programs correctly. I noticed that in the HEX file for the 16F876 the EEPROM contents are 16 bits wide:-
:1042000000000000000000000000000000000000AE
:10421000000000000000000000000000000000009E
:10422000000000000000000000000000000000008E
:10423000000000000000000000000000000000007E
:10424000000000000100000050000000000000001D
:1042500021000C00220003002400050034000200AD
:104260000C000C00140003002400050026000200CE
:10427000000000000000000000000000000000003E
:10428000000000000000000000000000000000002E
:10429000000000000000000000000000000000001E
:1042A000000000000000000000000000000000000E
:1042B00000000000000000000000000000000000FE
:1042C00060006100620063006400650066006700D2
:1042D00000000000000000000000000000000000DE
:1042E00000000000000000000000000000000000CE
:1042F00000000000000000000000000000000000BE
:1043000000000000000000000000000000000000AD
:10431000000000000000000000000000000000009D
:1043200090009100920093009400950096009700F1
:10433000000000000000000000000000000000007D
:10434000000000000000000000000000000000006D
:10435000000000000000000000000000000000005D
:10436000000000000000000000000000000000004D
:10437000000000000000000000000000000000003D
:10438000000000000000000000000000000000002D
:10439000000000000000000000000000000000001D
:1043A000000000000000000000000000000000000D
:1043B00000000000000000000000000000000000FD
:1043C00000000000000000000000000000000000ED
:1043D00000000000000000000000000000000000DD
:1043E00000000000000000000000000000000000CD
:1043F00000000000000000000000000000000000BD
whereas for the 2550 they are only 8 bits wide:-
:1000000003000000000000000000000100000000EC
:10001000C0030000000000000000000022000000FB
:1000200000000000000000000000000000000000D0
:1000300000000000000000000000000000000000C0
:1000400000000000000000000000000000000000B0
:1000500000000000000000000000000000000000A0
:100060000000000000000000000000000000000090
:100070000000000000000000000000000000000080
:10008000000102030405060708090A0B0C0D0E0FF8
:10009000101112131415161718191A1B1C1D1E1FE8
:1000A0000000000000000000000000000000000050
:1000B0000000000000000000000000000000000040
:1000C0000000000000000000000000000000000030
:1000D0000000000000000000000000000000000020
:1000E000E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF98
:1000F000F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF88
The programmer is reading the HEX file correctly as it was 16 bit words but missing out every other byte.
I am now suspecting the XC8 compiler is screwing around with the data rather than the K150.
I'll let you know what I come up with unless you have any ideas.
Re: Pic - K150 ICSP Programmer (HCDVBD0002)
Hi Andrew,
Would it be possible to send you a HEX file and see if you can get it to load properly. It wont be anything complicated and huge a short piece of code 'Hello world' type thing. But it will have embedded in it the EEPROM coding that is being generated by XC8. It seems to use 'delta=1' for the eeprom_data PSECT in the pic18.h file but for the 16f876 it uses 'delta=2'.
It is the single byte encoding in the HEX file that is not being read correctly by my version of Microbrn and just wondered if you got the same results. You can tell by simply looking at the EEPROM contents in the viewer.
You don't need to burn anything I just want to know if my K150/Microbrn combination is foobar in some way. If that is the case I can order one from you guys if I know it is going to work properly.
Would it be possible to send you a HEX file and see if you can get it to load properly. It wont be anything complicated and huge a short piece of code 'Hello world' type thing. But it will have embedded in it the EEPROM coding that is being generated by XC8. It seems to use 'delta=1' for the eeprom_data PSECT in the pic18.h file but for the 16f876 it uses 'delta=2'.
It is the single byte encoding in the HEX file that is not being read correctly by my version of Microbrn and just wondered if you got the same results. You can tell by simply looking at the EEPROM contents in the viewer.
You don't need to burn anything I just want to know if my K150/Microbrn combination is foobar in some way. If that is the case I can order one from you guys if I know it is going to work properly.
Re: Pic - K150 ICSP Programmer (HCDVBD0002)
Sorry for missing your last post. Please send it me and I'll take a look.
Comments made by this poster do not necessarily reflect the views of Hobby Components Ltd.