AT91SAM9G20 and floating point co-processor?

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?

Thanks for any answers :slight_smile:

datasheet for AT91SG20: http://www.keil.com/dd/docs/datashts/at … g20_ds.pdf

Floating Point Co-Processor http://www.sparkfun.com/commerce/produc … ts_id=8129

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.

That was very helpful, thanks!

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.

We found this board using the LPC3250 http://www.phytec.com/products/sbc/ARM- … ml#pricing

Here is a LPC3180 candidate http://www.phytec.com/products/sbc/ARM- … C3180.html

Any further suggestions are very welcome :slight_smile:

Embedded Artists advertise an LPC3250 OEM board:

http://www.embeddedartists.com/products … 50_oem.php

and a developer’s kit:

http://www.embeddedartists.com/products … 50_kit.php

Arrow has a LPC3250 module, but I don’t know anything about its price or availability:

http://www.embedded-platform.com/defaul … age#g_proc

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:

Here is another candidate that popped up. http://elmicro.com/en/cobra5485.html

We’re worried it may be to slow though, but it looks ok.

So ARM9 is not a hard requirement?

Get a [Beagle Board! … or some other Cortex-A8 board.

What are your other requirements?

  • - connectors on board?
  • - memories?
  • - SD card?
  • - WiFi/Bluetooth/GPS?
  • - power supply?
  • - JTAG accessible?
  • - size?
  • ](http://beagleboard.org/)

    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 :stuck_out_tongue:

    weight: <100g

    Thats about what we know. Did it bring you any ideas?

    The beagle board sure is powerful. But it seems to lack HW FPU.

    Is it so that the DSP can be used for this?

    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 :stuck_out_tongue:

    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.

    vermeer:
    The beagle board sure is powerful. But it seems to lack HW FPU.

    It does have a VFP FPU inside the NEON block. All Cortex-A8 processors do.

    This is not always the case with Cortex-A9. There NEON and VFP are optional extensions.

    The DSP in OMAP processors can be used in parallel. It executes completely asynchronous to the ARM core.

    We have now submitted some suggestions to our mentor.

    That gumstix board looks to good to be true hehe :slight_smile: