tl;dr: I want to read/write memory from a PIC MCU and an EEPROM, both of which are soldered to an experiment board. I would like to explore programming and debugging ARM in the near future. Which device makes the most sense for me to invest in that does both (if this is possible)?


I'm attempting to reproduce the exercises from an introductory hardware class I took recently before I take on something more advanced. The board in class used a PIC16(L)F1847 microcontroller and a 24AA512 EEPROM, both of which are soldered to the board.

As I'm starting to build my tool library, I'm interested in which device(s) would be best suited for me to:

  • Read/write memory to the 24AA512 I2C EEPROM
  • Read/write the existing code from the PIC16(L)F1847 MCU
  • Eventually transition to debugging/programming ARM MCUs

I'm looking at the MPLAB Starter Kit for Memory Products and the PICkit 3 Starter Kit as possible options. However, it's not clear to me whether I can read/write the code stored on the PIC16 (presumably this is in on-board memory) and of the detached EEPROM using either device.

From what I can tell, it appears the MPLAB Starter Kit for Memory Products simply read/writes memory and does not debug, while the PICkit 3 Starter Kit appears to program/debug PIC ICs and not EEPROMs.

Is that correct?


A friend suggested I skip PIC altogether, go straight to ARM, and pick up the J-Link EDU debugger. However, since I want to refresh the knowledge I learned in class, I'm curious:

  • Can this device be used to read/write memory stored on the chips above?

If so, it seems this would the right way to go considering my interest in starting with the PIC experiment and then moving on to ARM as suggested.

  • 1
    \$\begingroup\$ As of 2015 you should just go straight to ARM if that's the platform you're ultimately interested. Plenty of resources for beginners. As an aside, it's not really clear in the question why you want to read binaries off old microcontrollers. What does this help you to do? \$\endgroup\$ – Keegan Jay Dec 31 '15 at 1:32
  • 1
    \$\begingroup\$ The Segger J-Link doesn't support PIC16 segger.com/jlink-debug-probes.html#supported_cpus Do you know which debug tool was used in the class? \$\endgroup\$ – Keegan Jay Dec 31 '15 at 1:39
  • 1
    \$\begingroup\$ No it can't thats an I2C eeprom. Normally the way you use this is you write the microcontroller code to R/W the EEPROM directly. AFAIK it's not very common to combine in-circuit-debugging and standalone EEPROM programming into a single tool. \$\endgroup\$ – Keegan Jay Dec 31 '15 at 1:58
  • 1
    \$\begingroup\$ Your assumptions regarding the uses of the PICkit3 and MPLAB tools are correct. PICkit3 is only for the PIC16 and MPLAB is only for EEPROM. \$\endgroup\$ – Keegan Jay Dec 31 '15 at 2:15
  • 1
    \$\begingroup\$ Hi. Yes the microcontroller code is stored elsewhere (in flash program memory) which is 14 KB. In fact, the MPLAB tool can not read that particular EEPROM because it's internal to the MCU and accessed instead through registers, not a serial interface. \$\endgroup\$ – Keegan Jay Dec 31 '15 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.