Thank you all for the responses. i'm still going over them and looking at documentation but in general it is becoming more clear.
Thank you for the idea, and it does make sense for an engineering oriented end-user. However, the firmware upgrade method i would like to implement on my board is one in which the (non-technical) end user doesn't need to buy extra cables or equipment and doesn't need to take the final product apart in order to reprogram the LPC935 microcontroller. It should be done transparently through the USB microcontroller interface (acting as a bridge) along with the proper PC-based software. Thus i would like to find a minimal cost way (in terms of BOM cost) to make the firmware update as easy and transparent as possible, as well as robust and error-immune as possible. This means i should do all the hard work at the beginning in the design phase so that the end user will not really have to work so hard or be technically inclined in order to upgrade or update the firmware. It should be extremely simple and foolproof.
As i see it at this moment in time, although the ISP method is the easiest and the LPC935 chips come already preloaded with the ISP bootloader from the factory, and even though if i implement the NoTouch method, there is still that slightest of possibilities that if there is a power failure at the end-user's location during firmware update, the LPC935 will be dead and the end user will need to ship the product back for rework, which is not a pleasant thought and is expensive. Therefore, it seems that the most robust way of doing things is to use ICP and the extra hardware.
Since i can use the USB micro as an ISP-ICP bridge, all i need to do, theoretically, is to implement the Vdd powerdown of the LPC935, because the Reset pulsing and any other pin toggling on the target LPC935 can be done strictly via firmware in the bridge micro (plus some very minimal external components), instead of using all the external gates and other logic shown typically in something like the MCB900 schematic. Is this correct? All the literature i've seen so far regarding ICP programming always includes external circuitry attached to an RS232 level converter (eg: MAX232) to generate the proper ICP hardware timings via the host's serial port. This implies (i haven't investigated it yet) that Flash Magic creates the basic timings in the COM port signals which are massaged further by the on-board ICP programming logic. Is this also correct? Then my next question would be: would ISP-ICP bridge firmware do all of the signal conversion needed in the brdge micro's firmware only, by toggling some pins, without resorting to any RS232 level converter chip?
Finally, i haven't been able to figure out if Flash Magic can be used with USB. i assume it can, since Flash Magic has an "interface" setting and one of those is FDI USB. Am i correct or is it more complicated than that?
Does it look something like:
Flash Magic -> PC USB (FDI?) -> USB micro bridge firmware and pins -> LPC935 (with external power control component only, no other logic) ?
Is there any bridge micro firmware available for this particular architecture? Is there a Flash Magic DLL that i can get that i can incorporate into my own PC software?
Thank you for your patience. i know i've asked too many questions already...
Quote from: erikm on December 21, 2006, 01:30:00 PM
2) the "fiddle the pins" can be implemented as an external circuit, then you do not need copy it on each and every board you make.
Thank you for the idea, and it does make sense for an engineering oriented end-user. However, the firmware upgrade method i would like to implement on my board is one in which the (non-technical) end user doesn't need to buy extra cables or equipment and doesn't need to take the final product apart in order to reprogram the LPC935 microcontroller. It should be done transparently through the USB microcontroller interface (acting as a bridge) along with the proper PC-based software. Thus i would like to find a minimal cost way (in terms of BOM cost) to make the firmware update as easy and transparent as possible, as well as robust and error-immune as possible. This means i should do all the hard work at the beginning in the design phase so that the end user will not really have to work so hard or be technically inclined in order to upgrade or update the firmware. It should be extremely simple and foolproof.
As i see it at this moment in time, although the ISP method is the easiest and the LPC935 chips come already preloaded with the ISP bootloader from the factory, and even though if i implement the NoTouch method, there is still that slightest of possibilities that if there is a power failure at the end-user's location during firmware update, the LPC935 will be dead and the end user will need to ship the product back for rework, which is not a pleasant thought and is expensive. Therefore, it seems that the most robust way of doing things is to use ICP and the extra hardware.
Since i can use the USB micro as an ISP-ICP bridge, all i need to do, theoretically, is to implement the Vdd powerdown of the LPC935, because the Reset pulsing and any other pin toggling on the target LPC935 can be done strictly via firmware in the bridge micro (plus some very minimal external components), instead of using all the external gates and other logic shown typically in something like the MCB900 schematic. Is this correct? All the literature i've seen so far regarding ICP programming always includes external circuitry attached to an RS232 level converter (eg: MAX232) to generate the proper ICP hardware timings via the host's serial port. This implies (i haven't investigated it yet) that Flash Magic creates the basic timings in the COM port signals which are massaged further by the on-board ICP programming logic. Is this also correct? Then my next question would be: would ISP-ICP bridge firmware do all of the signal conversion needed in the brdge micro's firmware only, by toggling some pins, without resorting to any RS232 level converter chip?
Finally, i haven't been able to figure out if Flash Magic can be used with USB. i assume it can, since Flash Magic has an "interface" setting and one of those is FDI USB. Am i correct or is it more complicated than that?
Does it look something like:
Flash Magic -> PC USB (FDI?) -> USB micro bridge firmware and pins -> LPC935 (with external power control component only, no other logic) ?
Is there any bridge micro firmware available for this particular architecture? Is there a Flash Magic DLL that i can get that i can incorporate into my own PC software?
Thank you for your patience. i know i've asked too many questions already...