|
|
View previous topic :: View next topic |
Author |
Message |
vinniewryan
Joined: 29 Jul 2009 Posts: 154 Location: at work
|
USB firmware update support on PIC |
Posted: Mon Jan 20, 2014 11:39 am |
|
|
Hello,
I'm trying to get some input from the community, as there are a few ways to go about this. I'm building a PCB which will use a PIC micro. I haven't yet chosen which PIC, but it will likely be a PIC18F or PIC32. This circuit needs to support USB re-programming of the PIC. Basically, once I send the prototype to the client, they will need to be able to plug it in to the USB port, then load an updated firmware file (which I'll email to them), and burn it to the PIC.
Option A, is to build an ICSP with a second PIC, dedicated to USB and reprogramming the main PIC. This option seems to be a little complicated for what I need, but I've seen many people in the DIY industry do it.
Option B, is to use an EEPROM with USB connectivity, then set up the PIC for code shadowing off the ROM. This seems to be the 'manufactured' choice in many products.
Option C (theoretical), would be to use the USB peripheral built into a PIC32 to re-program itself, with no external circuitry, but I don't know that this is even possible yet. Every device I've seen requires the typical "Drive MCLR, use DAT, CLK pins for programming".
Thank you for suggestions. I've never been confronted with this requirement in a circuit, and have always been comfortable using the CCS ICSP, which pertains to option A. _________________ Vinnie Ryan |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19535
|
|
Posted: Mon Jan 20, 2014 12:47 pm |
|
|
Any chip that can write it's own flash memory, can use a USB bootloader and reprogram the rest of the chip with this.
Downside is that it is fairly bulky.
Microchip do such a bootloader, and a PC program to talk to this. There is the code to allow this to be used with CCS, in the code library.
With the compiler, there is ex_usb_bootloader.c, which does a similar bootloader.
Best Wishes |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9240 Location: Greensville,Ontario
|
|
Posted: Mon Jan 20, 2014 1:20 pm |
|
|
maybe another option,others will know for sure, is to use a USB<>TTL module on the PICs UART port.
my thinking is that the USB code is inside a $2 module making the bootloader look as a 'serial port' instead of a complicated USB device? You need the USB connector anyway..so cost is really minimal, especially for something that works 'out of the box'.
just an idea....
jay |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19535
|
|
Posted: Tue Jan 21, 2014 2:22 am |
|
|
Agreed.
The other way is to include the USB to serial on the board. The classic module for this, is the Polulu. The big advantage is that the bootloader shrinks from perhaps 1/10th the ROM, to only a few hundred bytes. It depends massively on the numbers involved, and how much of the chip's ROM space you can afford to loose.... |
|
|
vinniewryan
Joined: 29 Jul 2009 Posts: 154 Location: at work
|
|
Posted: Wed Jan 22, 2014 10:05 am |
|
|
I'm thinking for the sake of less components on-board, the extra ROM use won't be a huge concern. I will look into the USB bootloader, thank you all for the suggestions, this has been very helpful. _________________ Vinnie Ryan |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|