We are using the AT91SAM9G20 for a school project. We bumped into a problem as we need to support hardware floating point, and the AT91SAM9G20 does not.
However, we know that the processor in the microcontroller (ARM926EJ-S) does support a floating point co-processor.
Also, in the AT91SG20 datasheet it says that it supports SPI co-processor. Has anyone here used this chip or done something similar? Would it be safe for us to order the uM-FPU v3.1 here at Sparkfun and assume that it will work?
The SPI co-processor sold by sparkfun is targeted at slow microcontrollers with little memory.
According to the data sheet it takes 9µs minimum to perform a single precision addition.
A G20 running at 400MHz should easily outperform that co-processor with soft-float routines.
You also need to think about the time it takes to perform the SPI transfers.
If you use a multitasking OS like Linux on your G20, you will have nearly one interrupt per transferred byte as you need to insert delays between bytes.
Calls to this co-processor are not transparent to the programmer unless you replace the perfectly good soft-float library of your compiler with code that performs SPI transfers. It will be horribly slow as each mathematical operation will transfer operands to and results from the co-processor, waiting in-between for the calculation to be done.
If you really can’t do without a hardware fpu, use a LPC32x0/LPC3180.
Now we are looking for a replacement for the Fox Board G20 we where supposed to use. But it’s difficult to find something with ~300 mhz and floating point in a ready to go prototype board.
These replies are much appreciated! :mrgreen: We feel overwhelmed and don’t know where to look. To keep on schedule we have to order a module within June :shock:
The details about the project are kind of unclear. We know the module will be improved/added upon by other students after our project, so it’s important to have room for extensions.
For now we know we need at least a few UART and SPI ports.
I don’t think we need a large amount of data to be stored on board. We don’t need GPS and i don’t think we need WiFi or Bluetooth. We can add these externally if the need comes.
Size: preferably credit card size.
Power: ~5w
cpu: ~300-400 Mhz (hardware floating point is a must)
JTAG: yes please
weight: <100g
Thats about what we know. Did it bring you any ideas?
vermeer:
The details about the project are kind of unclear. We know the module will be improved/added upon by other students after our project, so it’s important to have room for extensions.
For now we know we need at least a few UART and SPI ports.
I don’t think we need a large amount of data to be stored on board. We don’t need GPS and i don’t think we need WiFi or Bluetooth. We can add these externally if the need comes.
Size: preferably credit card size.
Power: ~5w
cpu: ~300-400 Mhz (hardware floating point is a must)
JTAG: yes please
weight: <100g
Thats about what we know. Did it bring you any ideas?
Try a Gumstix Overo. 600MHz Cortex-A8 with a floating point unit.
Quite why you need hardware FP at that speed is beyond me.