On Feb 15, 2010, at 7:06 PM, Matt Callow wrote: > > On 16 February 2010 13:49, Jason Hsu wrote: >>> From what little I understand so far, I2C and SPI are standards for >> programming microcontrollers IN their target circuits. SPI and I2C are standards for short range serial communications. They're NOT directly "for" "In Circuit Programming" (Let's call it ICP) of microcontrollers, although they presumably COULD be used for such purposes. ICP of Atmel AVRs uses SPI, I believe, for example. I don't think that PIC ICP is either one, exactly... > > I2C and SPI are not generally used to program a PIC micro. For that > you would normally use ICSP (In-Circuit Serial Programming) (or > possibly JTAG). > See http://ww1.microchip.com/downloads/en/DeviceDoc/30277d.pdf for > info on ICSP. > Yeah. >> Is there a list of all of these in-circuit programming/emulating >> methods used for surface mount microcontrollers? How do you decide >> which standard to use? What type of connector/cable do you normally >> use to connect the computer to the embedded circuit? How do you >> recommend getting started? (So far, all of my experience has been >> with through hole microcontrollers programmed with the PICSTART >> PLUS.) For any particular microcontroller, you probably don't have a choice. You do whatever the manufacturer tells your to, generally using a manufacturer-specified connector (or two or three) and a manufacturer- provided programmer or compatible. For Microchip parts there are several programmers that support their ICSP protocol, including the ICD2, Pickit2, and pickit3. Plus programers form other vendors. You have to go out looking for a programmer than supports ICSP on your particular chip, rather than just one that supports a low-level protocol like SPI or I2C. BillW -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist