Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

ARM Cortex

Status
Not open for further replies.
Jason: there's where I am not fully comprehending this whole jtag thing.

it seems to me that some arm chips (lpc for example) have internal bootloader that once up on reset can receive data on its own. so why do we need such an expensive device?

also, some of the schematics I have seen about jtag seems to suggest that it is taking signals from a db25 connector (rst, tms, tdi, tdo and tck), buffer them through a dual 232 chip and then dump them onto the same pins on the chip, with the rst signal reversed. that doesn't seem to be too difficult to wire up by oneself; and why do they need that buffering (for speed?)? so it seems to me the simplest thing would be to wire everything straight and then invert the rst signal (with a transistor). or if you are really cheap, program a dip8 pic to buffer it.

then there seems to be some compatibility issues as to certain cables are compatible with certain chips but not others so I am not sure where to begin.

The bootloaders, like SAMBA for the SAM7 chips. Are pretty basic. No debugging, and you load up a precompiled binary file into memory. I tried it once. I wont be using it again.

I think you are thinking of the FT232 JTAG setups. The buffers are used for level shifting as JTAG has to be able to handle a range of voltages. You can leave off the buffers if all you care about is 3.3V operations. ...and the FT232 has special JTAG functionality, it doesn't just operate as a RS232 level shifter. I started making my own, but in cases like this, I think it's just better to pay the $50 for a ready made product. For me, it's not worth playing around with details rather than just getting everything up and running.

I have the Olimex USB JTAG TINY. It's nice enough and works on the SAM and LPC chips. Only issue is only 2 hardware breakpoints which is inconvenient.

Even if you could get the chips at a dollar a pop, there are some inconveniences that make it not so worth it for small projects.

- 20 pin JTAG is a serious pain. I'm thinking of trying to minimize it to a 10pin header, but for someone who uses an 8bit micro with single pin debug/programming pin, even 10pins seems like a big hassle.
- you need both a PLL and an external crystal.
- the ARM cores run at 1.8V, so they have an onboard regulator that still requires you run traces from the internal regulator pins to the core power pins. It just makes routing boards for them complicated.

I never liked those development boards with all of the stuff attached to them. A simple header board is just more useful to me, especially if you already have stuff you can wire to it.

EDIT: It looks like routing core power isn't needed on the Cortex-M3 chips that I've looked at datasheets for. Now, I'm interested in these things. Looks like only Luminary Micro and ST have decent supplies out, at least available on Digikey. The prices aren't that fabulous, but they have a range of chips from small 20Mhz to large 72Mhz all in the same family.
 
Last edited:
THis one:
**broken link removed**

Is there an IDE and development tool there? I see what looks like the hardware programmer, plus the flashing tools. How is this better than a $50 FTDI based device and OpenOCD?
 
Last edited:
No. You need to get a compiler separately. I'm looking at Crossworks right now. It's all dependent on the level of integration you want and whether you want to use an FTDI chip or not.
 
Last edited:
I am actually thinking about just inverting the rest signal and directly apply the rest. as power supply, i thought the luminary chips are 5-v tolerant (on gpio) so it should handle anything this side of 5v. wouldn't that make level shifting less necessary?

i also don't understand how a cable, which in theory, can be straight-through, can cause all those compatibility issues.
 
luminary is by far the largest cortex-m3 supplier. they are now part of TI - hopefully the support will continue.
 
Last edited:
I used mdk3.70 demo. free for download from Keil. so far, it has been great - I did have some issues with it not compiling correctly but a few uninstall / install fixed it. one limitation it has is 32k of code size but that's more than enough for me anyway.
 
yeah thats what im using also. lol i dont even own a LPC yet but that demo and Isis(proteus) together works great...

Millwood im running Isis separately from the uVision is there a way to set it as the debugger from within?
 
yeah. but you will need to do some tweaking.

1) on the isis side, it needs to be set up for remote debugger - it is that way by default, under Debug.
2) you will need to download a dll from labcenter, vdmagdi.exe: **broken link removed**, and install it.
3) you will need to update tools.ini in uvision. it is under Options for Targets, and one of the debug tabs should have a drop down menu. if it doesn't have "Proteus VSM Debugger", you will have to manually add it by editing tools.ini. one of those lines will be TDRV0/1/2, .... just add one for you proteus VSM and have it pointed to VDMARM.dll installed in step 2).
4) the system will ask you for the ip address, type in 127.0.0.1 (your own machine), and 8000 is the port to use.

then you are in.

I have to tell you though that I don't use it myself. I find it easier to step through the C myself.
 
Jason, yes, labcenter does suggest that Proteus supports axf/elf file but I never saw any info on how that can be done.
 
i lol i believe its just the IDE:

The uVision4 Beta v3.0 may be installed as add-on to the following products:

Keil C51 Version 8.18
Keil C166 Version 6.18
Keil C251 Version 4.61
Keil MDK-ARM Version 3.70
 
Last edited:
Hey millwood how would you use 8 pins on a ARM for parallel data.

For example on a PIC you would:

LATA = 0x03;

How would i accomplish the same on a ARM, if for instance i want to use P0.0:p0.7
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top