2020/09/28 03:59:46
Hello @all,
Is there an easier way to identify the target hardware behind the pickit than trying the following call with different parameters and parsing the responses?
ipecmd -P{typestring} -TS{serialnumber} -G

where the words in brackets are variable parameters
serialnumber is for example:BUR202272227
and typestrings are: 32MX575F512H / 32MX575F256H / 32MX550F256H
after parsing response of the shown call, program has to decide if retry with next typestring an parsing answer again and so on until it got a hit. this takes time and resources.
2020/09/28 12:01:27
There are almost 2000 different PICs therefore the programmer would have to try dozens of different algorithms. Moreover, the algorithms may be harmful. For example, if you try to get Id from some older PIC16 which requires 13V on MCLR, it will, most definitely, kill PIC32.
However, if you only read the Id, all PIC32 should be the same. If you try to connect to a wrong one, you usually get "incorrect device id" error message which reveals the device id of the PIC.
2020/09/28 12:35:18
Thank you NorthGuy for your reply.
So i have always to know, which target is attached to the programmer or i have to use the way explained above to find out, if i understand correctly.
2020/09/28 15:58:19
If you only use PIC32, and you get the output with the device id, then you can use the device id to lookup the PIC.
2020/09/29 01:10:06
If you only use PIC32, and you get the output with the device id, then you can use the device id to lookup the PIC.


Hello NorthGuy,
thanks again.
I currently have Pickit 3/4 and ICD 3/4 available. In the future a Pickit 4 based solution is planned.
If I understand you correctly, my previous approach is almost correct. Only when I come across an Invalid Device Id, I should not try a list of possible devices, but use the given Target Device Id for a lookup to shorten the identification. Have I understood you correctly so far? If so, where can I find a database that tells me which ID belongs to which microcontroller?
2020/09/29 01:41:52
i think i found it, inclusive an possible typing error in the Errata-file* **, where two different PIC32 have the same Device ID.
PIC32MX775F512L 0x4307053
PIC32MX795F512L 0x4307053

*compiler found it and throws item exists exception while trying to add the values in reversed order to a dictionary 
** picture shows document properties of the file i downloaded, which seems to contains the typing error
(only attached if someone else stumbles across the same problem)
So now i run the request one time like this:
ipecmd -P{typestring} -TS{serialnumber} -G

then i parse the answer. if there is a string like "Target Device ID (0x4309053) is an Invalid Device ID."
I start an lookup for this ID in my lookuptable and set the correct values in my application in preparation of Burning process, without a doing new request. (if the lookuptable contains the ID)

Attached Image(s)

© 2021 APG vNext Commercial Version 4.5

Use My Existing Forum Account