My custom stm32f411 board

If you made your own board, post here, unless you built a Maple or Maple mini clone etc
Post Reply
racemaniac
Posts: 622
Joined: Sat Nov 07, 2015 9:09 am

My custom stm32f411 board

Post by racemaniac » Sun Apr 02, 2017 6:52 pm

As mentioned before, for my lightsaber project, i've made my own custom pcb :).
SaberBoard front.png
SaberBoard front.png (233.49 KiB) Viewed 604 times
SaberBoard back.png
SaberBoard back.png (242.58 KiB) Viewed 604 times
It's a small board based on the stm32f411CEU6, and also has an mpu6050 (motion sensor), a tda1387 (I2S dac), and a micro SD slot on board. There is also an AMS1117 voltage regulator so i can connect it directly to a Lion battery. Besides that, the datapin of an SPI has been broken out for generating neopixel signals, the SWD pins (incl reset pin) is broken out for programming, one of the USARTS is broken out, and besides that 3 more pins for whatever other reason i need pins :). It's got a 24Mhz crystal, i chose that value because it allows me to generate a perfect I2S clock for getting 44.1khz sound. I don't think i found any other crystal values that would allow this. And of course a little led so i can give some easy feedback when it's working :D.
To keep the board simple & compact, things like an amplifier for after the dac, or a big mosfet for switching on/off my neopixels are not on the board.

The board is a bit smaller than a maple mini :)

So far i've only found 1 issue with this first version of my board: i thought the heat sink tab of the ams1117 was supposed to be connected to ground, it isn't XD. so in the picture you can see it's wrapped with some heat shrink. As the board doesn't really draw that much power, i think it'll manage. But to be fixed in the second revision :p.

How far i've gotten in testing it:
- Besides the heat tab thingy, the voltage regulator part is working :).
- the programmer header works, and i can program the board nicely using an st link
- the mpu is responding to I2C, but haven't done anything useful with it yet
- the detection of an SD card being present works, i can also intialize the SD card. It's supposed to also work in 4 Bit mode (so with 4 data pins in stead of one, still to be tested)
- the mcu seems stable @96Mhz (had it blinking the led for 24 hours without crashing). Without the proper capacitors this would crash the mcu.
- the led of course works
- the crystal works and the board runs fine using it :).
Last edited by racemaniac on Sun Apr 02, 2017 7:13 pm, edited 2 times in total.

racemaniac
Posts: 622
Joined: Sat Nov 07, 2015 9:09 am

Re: My custom stm32f411 board

Post by racemaniac » Sun Apr 02, 2017 6:58 pm

Btw, a first question: does anybody know if it's really required to pull the boot0 pin to ground? When testing the board after just having soldered the stm32 on it, it already worked very well, even without the pull down resistor for boot0 present. Any resistor i don't need is nice to know about XD. I tryed to look for it in the manual, but couldn't rally find anything >_<.
For the reset pin, it's nicely documented that it has an internal pullup, so you don't need to add your own, but for the boot0 pin, i don't find much in the documentation.

User avatar
martinayotte
Posts: 1229
Joined: Mon Apr 27, 2015 1:45 pm

Re: My custom stm32f411 board

Post by martinayotte » Sun Apr 02, 2017 7:14 pm

Leaving pins such boot0 floating is not a good practice. The fact that is already working is simply because a floating pin is a bit like a GPIO input without pullup, a read will return 0, considering that floating is almost like a 0V input.
But it is not a good practice because in harsh environment, the pin act like an antenna, when something there is enough RF energy around to consider input state as a HIGH, therefore your STM32 won't boot properly once in awhile.

racemaniac
Posts: 622
Joined: Sat Nov 07, 2015 9:09 am

Re: My custom stm32f411 board

Post by racemaniac » Sun Apr 02, 2017 7:17 pm

martinayotte wrote:Leaving pins such boot0 floating is not a good practice. The fact that is already working is simply because a floating pin is a bit like a GPIO input without pullup, a read will return 0, considering that floating is almost like a 0V input.
But it is not a good practice because in harsh environment, the pin act like an antenna, when something there is enough RF energy around to consider input state as a HIGH, therefore your STM32 won't boot properly once in awhile.
That's why i'm askin if it's got an internal pull down or not XD.
You could say the same of the reset pin, but the reset pin does have an internal pull up inside the stm32. So if you leave it disconnected, it won't be floating :). Of course, unless i can find some documentation or test that confirms that there is an internal pull down for the boot0 pin, i'll keep the resistor on my board, but if it's not needed, that would be nice XD.

Post Reply