micrcontrollers with FPUs?

Hi - I was wondering, what microcontrollers are there out there that have FPUs? I'm working with a board that uses an Atmel AT91SAM7X256 (Atmel ARM uC with ARM7TDMI core), and it is perfect except for the lack of a FPU and maybe the max speed of 55Mhz.

So what is available as a replacement? Ideally I'd like to see this:

32b FPU SPI (at least one) UART (at least two) TWI CAN timers plenty of GPIOs available in non-BGA package fast (100+Mhz)

Does such a beast exist? Thanks!

-Mike

Reply to
Mike Noone
Loading thread data ...

Is there a reason why you choose not to use fixed point?

-Isaac

Reply to
Isaac Bosompem

"Isaac Bosompem" wrote in news: snipped-for-privacy@e56g2000cwe.googlegroups.com:

I could deal with fixed point. All of the floating point stuff I'm doing is for navigation. So it has alot to do with calculating GPS coordinates, distances between coordinates, headings, and lots of trig. But C doesn't have built in support for fixed point. Is there some way to get around this limitation of C that I am not familiar with?

-Mike

Reply to
Mike Noone

Nah, I don't think so unless there is a 3rd party library I am unaware of. To evaluate trig functions in fixed point you would probably need use Taylor series which could become time consuming. I would assume for GPS these calculations need to be fast? Then forget I asked about fixed point :).

-Isaac

Reply to
Isaac Bosompem

A lot of the GPS modules out there (Ublox, etc.) use an ARM processor without FPU to do the gps calculation. At 1 to 4 GPS packets per second, you would have to be doing a LOT of calculations to run out of bandwidth for software floating point emulation. Until one project started involving extended Kalman filters with a few hundred to a few thousand multiplies per cycle, I was getting along fine with a 16MHz 68332.

Mark Borgerson

Reply to
Mark Borgerson

How often do you really need to perform these navigational calculations ? Once every second or once every millisecond ?

If once a second is enough, the C floating point emulation should be fast enough on practically any processor.

For very high dynamic vehicles you would need acceleration sensors anyway, so why not just calculate the GPS position, say, once a second and convert it to the final coordinate system and then use the data from the accelerator sensors to extrapolate the speed and position in the final coordinate system until the next GPS position is calculated.

Paul

Reply to
Paul Keinanen

In practice trigonometric functions are calculated by dividing the argument into segments and selecting a polynomial for the current segment. To calculate the sin() function to single precision a 3rd or

4th order polynomial is usually needed, for double precision a 6th to 8th degree polynomial is usually used, depending on the size of segment/sector. When using fixed point in the polynomial, you have to watch out for under/overflows.

Especially if there is room for a lot of constant tables, most calculations can be done with quite low order polynomials. In some cases it might help if the processor contains 32x32=64 and 64:32=32 bit integer multiply and division instructions.

Paul

Reply to
Paul Keinanen

Specifying an FPU is a silly requirement. All an FPU does is accelerate (some) floating point operations, as compared to doing it in software (using the standard C libraries). If you have a particular requirement regarding the speed you need (e.g., 100 MACs per millisecond), then say so - it is irrelevant whether this is done by FPU hardware or by fast integer units and software, since it uses the same source code and gives the same result in the same time.

Reply to
David Brown

Hi,

if you choose an Infineon TC1165 TRICORE or similar, almost all your requirements are fulfilled. It is just, that the speed is limited to 80 Mhz I don't know about the TWI.

I haven't used it yet, yet I'm planning on using it for doing some navigational calculations as well (some extended Kalman filter)and need almost the same specifications. And the tricore fits my bill as well, except maybe for the speed.

What is nice... It has 2 spi's, and for each ( at least if I remember correctly) has 6 chip select signals integrated.

GNU Linux should work on it as well.

Greetings B

Reply to
TricoreBeginner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.