If you have the space for a header, that's probably the best option, and the slightly staggered pins Majenko recommends is a good way to hold a connector in place without adding complexity.
But here's an alternative approach, for boards where you don't have space to fit a header, or the standard header doesn't accomplish all your programming/setup/board ...
I would suggest always including a header in that kind of quantity (small). If you get to larger quantities you can consider pads for pogo pins (you'd have to make a fixture to hold the PCB in alignment) or, in your quantities, you could use one of the Tag Connect cables which require only holes and unpopulated pads (they snap onto the board).
As well as ...
You'll need to isolate the microcontroller from the st-link portion of the board. To do this just remove the jumpers on the CN3 pins.
Then, to use your external st-link, make the following connections to the microconroller pin headers:
SWDIO -> PA13
SWCLK -> PA14
GND -> GND
VAPP -> 3V/VDD
Do not connect the USB cable
Program it in SW mode.
Not sure why ...
I always add space for an ICSP header, even if it's not populated. I have three ways of doing it at the moment depending on situation.
One of my designs has a very fine pitch header for which I have built an adapter (0.6mm solid core wire is perfect for it):
I use this connector when space is at an absolute premium. (Sorry it's blurred, my phone's camera ...
The stm32F0 and stm32L0 line have discovery boards running about $10, and Keil will provide a full function IDE for this line at zero cost.
The Keil free pro MDK install instructions are HERE
Also, ARM has a white sheet on migrating to Cortex M3 from PIC that you might find helpful
No, you don't need to, in fact you can't, use SPI, UART, or I2C to program the PIC. The only way to get a new program into a PIC that doesn't have special code loaded for that purpose (a bootloader) is to use the external hardware programming interface. Electrically, this means connecting to Vss, MCLR, PGC, and PGD. It can be useful to have the programmer ...
There is a nice comparison between the PICKit 3, ICD 3, and Real ICE here.
The big difference between the PICkit 3 and ICD 3 is speed -- the PICKit run at USB 1.1/Full Speed (12 Mbs), and the ICD runs at USB 2.0/High Speed (480 Mbs) as does the Real ICE. This really does make a difference.
Otherwise, the PICKit and ICD are similar in features, except the ...
Easiest way- shell out >$10K USD for a full-functioned Keil Pro compiler, buy their JLINK debugger (another $1K maybe- there are cheaper ones with some limitations). IAR is another expensive possibility (examples are provided for STM32F7 Cortex M7 processor that work on the 30-day IAR demo)
Cheapest way- download and install a (free) GCC-ARM + Eclipse ...
Right below Figure 10 of AN2586 it mentions:
Resistor values are given only as a typical example.
These pins can be tied directly to VDD or GND, but it is common practice to use resistors for a few reasons.
Series resistors can provide some current-limiting protection to the microcontroller pins.
Putting at least one resistor between the pin and VDD/GND ...
You can only check if the PC can communicate to the programmer. You can't check if the programmer can interface with an (unconnected) microcontroller.
I don't have such a programmer to verify the exact workings, but the concept should be a bit like this:
Execute this command:
avrdude -p attiny13 -c usbasp -P usb -v -U flash:r:/dev/null:i
It will ...
If one is using a processor which can be reprogrammed in circuit, I would highly recommend that boards be designed in such a way as to allow its use, even if actually using the feature would require making building a fixture for that specific purpose and one doesn't plan on having to build one. If a firmware problem is discovered after manufacturing a large ...
Microchip's "production programmer" distinction is largely only meaningful for old chips. The old flash parts, like the 16F877 for example, had to be checked at both Vdd limits after programming. Microchip defined such programmers as "production". Note that this required the programmer to have variable Vdd.
Microchip dropped the double verify requirement ...
Here's what I use:
STM32F103 "minimum system board" (see e.g. here, Cortex-M3 core), runs on 3.3V or USB power without any external components, clones come for about US$3 each. This fits nicely your request to "get straight into it with a cheap generic break-out pcb, and on a breadboard".
ST-Link V2 USB programmer clone (looks like this one), starts at ...
It says that you can use an Arduino for HVPP with additional hardware. Similar hardware (a shield or hat or pants or whatever Raspberry Pi calls it) could be developed for the Raspberry Pi, but you can't do it "out of the box".
I was pulling my hair out as I had received 20 Atmega328P's and the first one I was able to get programmed with my USBasp Programmer, but swapping the processors I was not able to program on breadboard or within an UNO.
Thanks to some posts I felt confident it was a fuse setting where it was speaking too fast. I have an external 16MHz crystal in my setup so ...
CMSIS is the generic name for ARM-specified infrastructure around Cortex processors. The project we know today as DAPLink actually started as mbedmicro/CMSIS-DAP, we can find multiple references of the rename in the project history. "CMSIS-DAP" name became ambiguous as it was both the name for the spec and Mbed's implementation.
So today, CMSIS-DAP is the ...
The AT32UCxxx series microcontrollers do not have simple SPI In-System Programming like the smaller 8bit Atmel microcontrollers do. They require ICE-JTAG to be programmed. You can make a AVR Jtag Ice clone. Not sure how compatible that would be with any given Arduino or the Arduino Bootloader though.
But the other way of programming the AT32UCxxx series is.....
I would say that you lose your PICs in the basement. They are "C" devices and do not have Flash. This means that they may be erasable by UV (Quartz Window) or totally non-erasable OTP devices.
You should start with some new generation PIC microcontrollers which require less elaborate setup than the older series.
Here is a PIC tutorial to get you started.
I haven't really solved the problem, but I've found a rather ugly workaround that is just barely better than nothing.
I've written the following python-script to reset the USB-port. This gets the ICD 3 working again when it stops working, without having to unplug and plug it again.
lsusb=os.popen("lsusb -d 04d8:...
There is no magic sauce, it's all just clocks and data lines going up and down in voltage in the right succession. Sometimes the programming voltages are a bit higher than the normal interface voltages, but that's not hard to reproduce. As you noticed, your arduino can do that too, if you know how the protocol works. And that's where the problem lies.
Problem here is that the PIC18F1220 and 18F1320 require that the MCLR pin to be connected at least to Vdd through 1-10kOhm resistor. This enables the POR as the datasheet states. If the MCLR pin is left unconnected the POR will not be generated and the pic will stay in reset state. This is why there won't be any clock output (and no program executed). Debug ...
The easiest start probably is one of the third-party clone boards. Random example from ST. That requires a programmer using the 'SWD' protocol. ST make 'ST-LINK' branded ones, I'm not sure if you have to use ST-LINK ones with ST devices or if it's really generic.
Some combination of SWD and JTAG plays the role of ICSP on ARM systems, giving you programming ...
It's not 'floating' in the second circuit, that particular PIC has an internal pull-up.
You should read the datasheet for the particular processor you are using. It's only 404 pages, a trifle compared to more modern processors.
If there was no pullup- what would happen: Bad things- it would float around and might reset the micro or not depending ...
Pin 4 of the PL2303 or FT232R SOIC package is VDD_325/VCCIO, the Serial level voltage input. If you inject 1.8V there, the serial UART pins will be at 1.8V TTL levels.
The UARTSBee V4 uses the FT232R or a clone.
While there are some exceptions, typically the following applies:
The 'F' within the part number PIC16F877A indicates it is a flash based device and is reprogrammable using ICSP techniques.
Whereas the presence of a 'C' instead of the 'F' indicate a EPROM based device which are typically One Time Programmable (OTP) devices. However, some 'C' models do ...
You can use Arduino as ISP programmer. Check the Arduino IDE \$\Rightarrow\$ File \$\Rightarrow\$ Examples \$\Rightarrow\$ ArduinoISP and refer to ArduinoISP documentation.
I personally use Linux and a Makefile to run all the required commands.
In short these are the commands required (Linux, but Windows is pretty similar when the toolchain is installed [...
Unfortunately, there is no single programmer that will program all PICs.
If you go to the in the installation directory for MPLABX (on my machine it is "C:\Program Files (x86)\Microchip\MPLABX\docs"), there should be a file called DeviceSupport.htm. It lists all of the PICs supported by each debugger, along with the associated compilers too. Here is the ...
All these Programmers are based on USBASP which is not professional programmer/debugger tools and many parameters e.g. USB cable length make some problems at writing speed and performance. I had same problems with USBASP too. I think the best answer is to say change your programmer and buy a professional one(or a clone version of professional programmers).