Last Thursday we had a quick meeting with our teacher, when we discussed about the general status of our project. One of the topics was the micro controller choice. They suggested we checked the STM32 low power and connectivity lines, so we did a little research on it today.
We wanted to eliminate JTAG programing interface and program directly by USB or Zigbee (by UART/USART). The STM32 have boot mode that starts a embedded boot loader which is capable of receiving an image by a communication interface, and loading it in flash. The difference between the STMs is from where they can get this image. They all can get it from USART, but only some of them can get it from USB. The one we had chosen before can get it only from USART, so we need to change.
Having that in mind, we got to two possibilities;
- A STM32F105 or F107, from the connectivity line, allows flashing from USB, USART and CAN.
- A STM32L151/152 with flash size of 384kB, from the low power line, allows flashing from USB and USART. For example the STM32L151VD.
With the low power devices, we have the following inconveniences:
- The datasheets and reference manuals say we can flash from USB, but the system boot loader manual says nothing about them. The only information we have from this manual is that the low power medium density F151/152xx devices can’t flash from USB, only from USART.
- The low power devices with the 384kB memory seem to be difficult to find. We couldn’t find them at Digikey or Farnell (Radiospares is offline today). So we know nothing about the price now. The lower memory versions are availlable but don’t allow flashing from USB.
With the connectivity line devices:
- They consume a little more than the low power devices (obviously). While the low power needs a supply current of 230 µA per MHz, the connectivity line needs 393 µA per MHz.
- One option is STM32F105RB, featuring 128kB flash, 64 pins. It is available at Digikey for 7,50 €. There is also the F105RC, for 8,60 €, featuring 256kB flash, 64 pins.
To choose memory size, we checked our communication challenge’s program size, imagining we would have for our robot something at least this complex. Its about 100kB, so we thought that 128kB might not be enough.
Having all this in mind we are deciding for the F105RC. It’s only one euro more for double the flash of the F105RB, and we have clear documentation about the system boot mode for USB programming. Also, if we use a clock as low as the low-power’s , we won’t be consuming so much more current.
If you have any suggestions don’t hesitate to leave a comment =)