Content originally posted in LPCWare by MarcVonWindscooting on Fri Oct 18 09:41:07 MST 2013
Quote: Nathael
PS: your electronics page is empty :(
Yes, I know. This is in contradiction to my activities (I estimate 80% electronics, 20% software for this year), However, it always takes quite some time to publish things.
At the moment I don't modify mxli, because I do not know in what direction to move. I started the programmer for reasons similar to yours for a LPC1768 and it supported the LPC2100 family, too. That was a great tool and not too complicated in programming.
New LPC families LPC1800, LPC4300 and LPC800 introduced new features, that I find hard to implement in an easy to understand program. Some things are even ill-formed, like 64bit part IDs. mxli has one timeout and if that happens, the program terminates with an error message. That means, mxli never actually uses timing (delay) for the protocol. That's an implication of the design goal 'speed'. I don't sacrifice that for a few devices that might send another 32bit ID information. Not even for auto-detection. I made a list of the differences of the LPC families and it an impressive (hand-written though) DIN-A4 paper.
Way too much dissimilarities for one single program in my opinion. And I ran out of option characters because of those dissimilarities. Most probably I will split the program in two or even more. One that handles multiple flash banks and the typically more complex and bigger controllers. And another that handles the 'small' micros. Something like that.
Don't drop your program. This world needs alternatives!
-- EDIT--
I tried to program an LPC1110 FD20 today, but failed with mxli and lpcprog although both of them work fine with a LPC1114.
The interesting point is: both fail because of a checksum failure.
What I read from the manual is: RAM area 0x1000 0000 to 0x1000 017C -1 can be used for transfer. And this is the only region big enough to hold a block of 256 (minimum copy RAM to FLASH size). I believe, the BASE-ADDR + 0x300, size=0x100 is NOT allowed, see 'ISP RAM usage' and ISP stack requirements.
I tried lpc21isp 1.94 but it fails, too, because it tries to transfer 720 bytes (my program's size) to 0x1000 0000 + 768. LPC1110's memory RAM ends at 0x1000 0000 + 1023, however, so ISP reports correctly a (14) MEMORY_NOT_MAPPED.
Although it's a new PCB I hardly believe that this can be a PCB / serial transmission problem because there have been sent hundreds of bytes before successfully.
My USB-to-Serial converter is a PL2303, just for information.
[color=#f00]-- EDIT again:[/color]
See thread UART-ISP not working on LPC1110? in the lpc1100 forum for solution of this problem (a problem of documentation).