[AmpeROSE] Choosing AmpeROSE’s Brains

Hello, everyone!

As the time to start building AmpeROSE draws near, we chose the components for its digital part, including a very crucial one, the: microcontroller. We had some aspects in mind to direct us in choosing it:

  • It should have all the communication interfaces our architecture demands: 10/100 Ethernet, SPI and SDIO for the SD card, and USB.
  • It should preferably be an ARM-based processor of the STM32 line, to take advantage of the familiarity with developed with them and the arm-none-eabi toolchain over these past few months, as part of our courses.
  • It should meet our estimations for operations per second. These are not too constraining, as our sampling frequency is a relatively low 100KHz. For the main task of reading the different bits that compose a measurement (the output from the analog-to-digital converter, the GPIO from the device under test, the two bits describing the current calibration) and concatenating them into a 32-bit measurement word, we estimate 800 000 operations per second, including memory accesses, bitwise-or operations and shifts.

In the interest of building an affordable device, we looked at the two most basic processor families that met these requirements: the STM32F207 and the STM32F407. Searching through our component suppliers, it turned out favourite STM32F407 microcontroller, the STM32F407ZGT6, is available for just under three euros more than any available STM32F207 we could find.

Considering this small difference in price, we lean towards using the STM32F407ZGT6 to build our AmpeROSE prototype, as we have already worked with a development board containing them, which could be used to test some of our code. Furthermore, using this more capable processor ensures us some room should it turn out we underestimated the magnitude of the calculations needed, or to add more firmware functionalities further along in the project.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>