Hello,
I have since received and populated my new design with the bare minimum of components needed to connedt the target chip (LPC4337JBD144) to a JTAG programming interface. As of yet I still have not yet gotten it to be recognized as a JTAG traget. My previous design had many errors mostly with the JTAG connector (usign 10 pin Cortex Debug connector) lacking pullups on each pin as well as ESD protection the abscense of jumperable boot select pins, added bypass caps to all voltage inputs on all devices, and the absence of jumperable DBGEN and TRST pins with the option to pull either pin high or low. When I assembled my new design I was careful to solder at a low temperature (260C) keeping the board under heat for the shortest time periods I could possibly allow while still make sure everything reflowed together correctly. When assembling the board I did it in stages, I first assembled the power supply and got it functioning without shorts before proceeding with further assembly. After the powersupply was assembled I proceeded to populated the rest of the PCB, I added all the bypass capacitors, JTAG connector circuitry, boot jumpers, and lastly the LPC4337JBD144 itself. Before powering on the board I manually used a hot air reflow reworking station and a fine tip soldering iron to manually remove all excess solder from all coponents, this was done to eliminate short circuits and to ensure that every single component was secured in the correct orientation to the pads on the PCB. I should note that all soldering was done at 260C for the shortest possible time that could be allowed. Lastly I fluxed down all solder points of the PCB and gave it a once over with the hot air gun to make sure everything was attached and secured to the PCB. When I powered it on for the first time everything went well no short circuits or anything.
I have since been attempting to program it with LPCXpresso 4.3 on Mac OS X 10.8.3 using an LPC-Link and a sample project made for the LPC4337JBD144 that an NXP tech support representative gave me to use for testing. My protocol for programming the target is to compile the LPC4337 project using the included library project (NOTE: I made sure paths and symbols are configured correctly, and the correct target is selected for both the sample project and the library project) I then use the JTAG/Debug download tool (chip symbol in the top tool bar) to attempt a download tot he target, I have the correct flash driver selected and the right memory address configured. I have not been able to successfully program the chip with the JTAG programmer, considering that the hardware configuration is correct I am running out of ideas as to how I can get the chip to program. Does anyone know anyting I could be doojgn wrong? Doing a little investigation into the reference boards and the specification in the datasheet for the LPC43xx family I have discovered that they are all using conflicting JTAG header configurations for the 10 pin cortex header. Some designs have pullups on each of the data pins for the JTAG connector, the schematic provided by an NXP rep has all pins pulled down, the Hitex and Keil boards have a combination of pulling pins low and high and they are both different. Fortunately the design of my PCB will allot me to cleanly modifiy the pullups I currently have on the JTAG connecotr into pulldowns or any combination of pullups and pulldowns very easily what I would like to know what is the correct configuration because the three sources which I consider official (NXP, Keil/ARM,Hitex) are all completely different from eachother.
Here is a link to the schematic and board printouts for my design
https://www.dropbox.com/s/qb9ptr67v6msmh0/Abstract%20Hardware%20Device.pdf
I don't know about LPCXpresso but in Keil I had to use a user command to add a flash header to the program file
<span style="font-size: 10px;">You can read more here (bavarian's reply at the end of the post)</span>
<a href="http://www.lpcware.com/content/forum/how-start-debugging-apps-lp4357">http://www.lpcware.com/content/forum/how-start-debugging-apps-lp4357</a>
Degub mode works fine and I have messing around with the GPIO function library with great results! But when I build for Release and try to download I get the error I posted before. I guess I will try making a new project when I'm done testing everything with Debug builds
I can only suggest to create a new 'blank' project using the default settings. Try to download that program to your microcontroller.
Got it communicating with the LPC-Link! My reset switch and my ISP (UART Program switch) were wired wrong. After removing them I was able to connect with LPCXpresso 5.1.2 with two available JTAG options! But when i try to flash my .axf file I get the invalid argument error with the following output:
crt_emu_lpc18_43_nxp -g -2 -vendor=NXP -pLPC4337 -s250 -load-base=0x1a000000 -flash-load-exec="/Volumes/Storage HDD/Users/adam/LPC_workspace/NXP_LPC43xx_DriverLib_M4/Release/NXP_LPC43xx_DriverLib_M4.axf" -scan=/var/folders/gs/tj6rf3ld0c7_c15hkklbqmbm0000gn/T/JtagDiscovery5373800510469080549.jtag -wire=winUSBjtag -flash-driver=LPC18x7_43x7_2x512_BootA.cfx
Ea: Invalid argument: HDD/Users/adam/LPC_workspace/NXP_LPC43xx_DriverLib_M4/Release/NXP_LPC43xx_DriverLib_M4.axf"
What is wrong with my compiled flash file? What do I need to change in my project settings to download to the flash?
Yes, it's P2[7] if I remember correctly.
To do that do you hold the ISP programming pin low? Like the one that enables programming over UART?
JTAG on LPC43xx often stops working on my board. All I need to do is to enable the bootloader mode and reset the CPU. You can try that.
I soldered everything under a stereo microscope one part at a time at 260C nothing has a short and nothing is damaged from heat. The datasheet says the VBAT should be tied to the 3.3v supply if it is not tied to a battery. Everything else about my hardware configuration is 100% correct except for the VBAT pin. I did use a scope and the signals are reaching the appropriate pins.
Another observation is that when I flash my LPC4330-Xplorer board with an empty main program is still gets warm after running for a few minuts. THe LPC4337 on my board stays the same temp and does not warm up after running for several minutes, I have reason to believe the chip is not even starting up period. The only thing I have left to try is to tied the VBAT to 3.3v. The chips I'm using are straight from NXP is there anything I need to do to them first before I can program them with the LPC-Link?
I don't see how that would help - Vbat is the RTC supply.
I can't tell what happens if VBAT is floating. Connect it to 3.3V and see if that helps.
Did you use a scope to probe the JTAG signals or a multimeter to check continuity? It may something as simple as a short circuit somewhere on your board.
All JTAG signals are reaching the appropriate pins both jumpers are on and functioning correctly. Still nothing. BUT I think I might have found the problem, the VBAT pin was left disconnected and floating, could that prevent the LPC4337JBD144 from being programmed?
Can you probe the JTAG signals with a scope? That could help to find out why JTAG isn't working for you.
You should also check the reset signal and make sure that both TRST and DBUG jumpers on your board are on.
The 100nF capacitor at reset signal may be a bit too much, too. Remove it to see if that makes any difference.
I have the same evaluation board from when I was choosing an ARM Cortex M4 for my project, I have no problems interfaceing with the LPC4330-Xplorer board on my mac with LPCXpresso 4.3.0 what so ever. I should be able to interface with my custom design easily considering that the hardware configuration is correct and the IDE/JTAG work just fine with my Xplorer eval board.
The LPXpresso you are using is very old. Go download the Ver 5 of LPXpresso.
I was able to talk to a NGX LPC4330 Xploerer board uisng LPXpresso 5.1.2.2065 with OS X 10.8.2 using the LPC-Link.
You need to use a scope to probe JTAG signals to make sure your debug interface to uC connection is good.
Can you do that?
Also, make sure the TRST jumper is on.