I decided to start this project on an STM32F4 DISCOVERY board. It is relatively cheap eval board. It has a FS USB with the connector, an ST-Link debugger integrated on it, so easy to start a development. There is an integrated I2S DAC on the board for the soundcard part. And the STM32 community likes this board.
I’d like this project to be easily followed by anybody. I’m not going post the complete source code, or maintain it int the web I think. If there will be a big interest, I might do it later. However I will paste codes and write deep details about the technical side, so it is a half open-source project at least 🙂
My intention was to make the code with open-source free tools. I choose CoCoox CoIDE for the project, which looks promising. Easy to install compared to Eclipse + OCD tools. It works with our integrated ST-LINK out of the box. I found a port of the ST example application ‘USB Audio Streaming’ demo with for Discovery board and with CoIDE project files. So this was another pro for CoIDE. I managed to compile it from source, but it does not work as expected. So I dropped it into the junk and decided to port the application myself.
I had problems with CoIDE during linking my own source. I tried to solve my C library linking problems but after few hours of googling and configuration I gave up. I decided to use Keil uVision instead, as I have more experience with this environment.
Another reason for using Keil is that ST has projects for its application examples as MDK-ARM project files. So I’ll go with it.
For the STM32 development I’m going to use the newest STM32CubeF4 Library. The current version is 1.3.0. I won’t use Free RTOS or any OS. That’s the plan for now.
I would like to start with the output stage. So to make the USB parts first, as it seems to be the most challanging part. And will be a go/no go thing for the rest of the project.
So now I have the Keil uVision IDE installed, downloaded the ST Library with the examples, and I have my Discovery board up and running with some LED blinking sample code.