cancel
Showing results for 
Search instead for 
Did you mean: 

Making the STM32 platform more accessible for beginner and experienced developers alike

halherta2
Associate II
Posted on July 29, 2011 at 23:19

First I would like to say that I'm very impressed with what ST Micro is doing with the STM32 cortex-m3 Microcontroller products. From the introduction of the low cost ST-LINK programming and debugging tool to availability of free third party IDE's, the availiability of  Firmware and DSP Libraries and decent reference manuals and most important of all the ultra low cost Discovery boards . These things have made the STM32 platform very accessible. 

One thing that ST could do to make the STM32 even more accessible to aspiring embedded systems programmers and experienced firmware developers is to publish app-notes on how the peripheral library maps to the actual Peripheral hardware with possibly mini tutorials on how to setup each peripheral using the library's API (similar to those published by Energy Micro for its EFM32 product line.). Yes I realize that many examples do exist but they are not well documented. Besides, going through a bunch of examples is not enough on its own, as it does not  further the  understanding of how the code Library maps to the hardware. Nor does it explicitly outline how to setup a particular peripheral to perform a particular task.    

 This would go a long way to curb the learning curve associated with learning the STM32 microcontroller family and ultimately make the STM32 platform very attractive and enjoyable for beginners as well as allow experienced embedded programmers to reduce their time to market. 

9 REPLIES 9
Nickname12657_O
Associate III
Posted on July 30, 2011 at 02:33

Hi

0690X0000060MlbQAE.gif

Have a look on our pages dedicated for first discovery :

http://www.st.com/internet/evalboard/product/2508jsp

, then ''Design support''

AN3268 :

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00284pdf

Do you think is not enough, and we absolutely need an example or an appli Note by Peripehral ? It is simple with our products , no

0690X0000060MlcQAE.gif.... ?

Cheers,

STOne-

lizerd
Associate III
Posted on July 30, 2011 at 11:03

I agree with halherta in some way.

there's a lot of good examples.

one thing i found annoying was the usage and linking to the stm32_eval in many of the examples.

But there is some examples that i miss.

as an example,  the usage of the pwm, there is many examples when you configure the pwm, but none that shows you how to update it properly.

It took me a very long time before figuring this out.

so i to like the idea of more examples, by looking at the questions in the forum there should be a hint of what kind of examples

that are missing.

Otherwise i really love the STM32 capability's and i am only starting to scratch the surface of it´s wonders, no joke.

But it has been a bumpy road to obtaining the right knowledge and understanding on how the STM32 works.

I

really hope

that this forum

gets

a good

turn for the better

,

more users and

more people who

give

feedback

.

as it is now

, it's

a handful

that provide

feedback

as it seems.

I check the forum

every day

,

however

, my

knowledge

is usually not

sufficient to

provide answers

.

An active forum

is very

important because it will

attract

many

new users of

STM32

when you see

that there

is help available, and you know you need it as a beginner/starter on this platform

.

as

a

happy amateur

like me

:

)

i can add that i have been a 8bit user for 10 years, so i´m not a total beginner.

Posted on July 30, 2011 at 16:13

But there is some examples that i miss.

as an example,  the usage of the pwm, there is many examples when you configure the pwm, but none that shows you how to update it properly.

 

 

To expand on this sentiment a little. The examples are insufficiently thorough, they cherry pick one facet of the peripheral and try to demonstrate just that aspect. In the real world there is complex linkage, or configuration of the peripheral. The selection of examples needs to be a lot deeper, the simple ones need to remain to get confidence, the complex ones need to be added so some of the more complex modes can be investigated.

This is also not a job for an intern. As Andrew as previously noted the examples need to be programmed with a high level of refinement, and as I have noted they need to be correct, otherwise you'll just have people cut-n-paste bad code, or excerpt the wrong pieces, into everything, this occurred with Microsoft's Device Driver Kit (DDK) and resulted in a contagion of broken drivers.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
halherta2
Associate II
Posted on July 30, 2011 at 19:34

STOne-32

I think the AN3268 appnote is a great way to start!

The STM32 microcontroller is very powerful and flexible, but this obviously means that it will require a steeper learning curve and more time to learn. To mitigate this,

I would still like to see a more comprehensive version of   the AN3268 appnote for all peripherals and possibly for multiple configurations. 

Another way to go would be to update the peripheral library's documentation to include sections on how to use the API to configure the peripherals as opposed to just listing the various functions and structures in the API with references to some examples in a .chm file . This would eliminate some of the guesswork that might happen when using the API library, especially when trying to use the library for a specific initialization of a particular peripheral.

A third idea would be to have one of the leads on the STM32 design team write a book about the STM32 microcontroller and how to use it in conjunction with the API to build a few detailed and well-documented projects. I would pay serious money for such a book!.

These are just my ideas that I'm throwing out there. Thank you very much for listening, and for referring me to the appnote!. I will be dissecting it for the next few hours.

Nickname12657_O
Associate III
Posted on July 30, 2011 at 23:22

Dear all,

Thank you for your comments. I agree with you that Timers and PWM on our STM32need to have a dedicated app note due to theverstile modes and combinationsnot so easy for beginers and sometimes even for experienced...it is in our wish list and in pipe already, but needs to be pushed out

0690X0000060MldQAE.gif

In same context, we have one app note regarding ADC modes :

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00258pdf

http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/an3zip

That complements our Reference manual and Firmware Library examples. The timers one will be in the same spirit. We already have some app notes about : DAC, I2S, DMA and External Memory I/F (FSMC) , Let me know if you would like other topics to be addresed ?

Nice weekend to all

STOne-

Posted on July 30, 2011 at 23:51

There's no magic Vulcan Mind Meld to impart knowledge instantaneously. You have to read and digest the technical reference manuals, some people are better at doing this than others. ST does provide some fantastic documentation, it's not perfect, but but some of us here have worked with hardware for decades with far-far less. In an ideal world there would be more description of some of the internals, but realistically such information is clearly proprietary and unlikely to be shared without strong NDA's.

Having done some IC design, I can assure you that lead engineers aren't going to be falling over themselves to write tomes of technical documentation, especially at the beginner level. Writing books isn't hugely profitable for authors.

If you want others to digest technical documentation, and pay for it, they are called consultants and contractors.

Want a book that covers the Cortex-M3, with quite a lot of depth/breadth try the one written by Joseph Yiu, I haven't picked up the 2nd Edition, but the first was quite effective to transition between ARM7 and 9 architecture. Highly Recommend. Joseph also frequents the board here.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
halherta2
Associate II
Posted on July 31, 2011 at 01:59

Clive1, 

There's no magic Vulcan Mind Meld to impart knowledge instantaneously.You have to read and digest the technical reference manuals, some people are better at doing this than others. 

Agreed, I  already have a printed copy of the STM32F100XX ref manual and have been studying the sections on peripherals of interest. I do this for every microcontroller that I decide I want to learn. I also own a couple of VL-Discovery boards. I have no problems understanding the reference manual. But feel more can be done to connect or ''map'' the hardware described in the reference manual to the Peripheral Library API.  

Having done some IC design, I can assure you that lead engineers aren't going to be falling over themselves to write tomes of technical documentation, especially at the beginner level. Writing books isn't hugely profitable for authors.

 Writing books isn't hugely profitable no, but it does provide an quick and easy way for developers to hit the ground running without having to read hundreds of pages of reference manuals and API references. This can be a marketing strategy that ST Micro can use to get more people started with their micro, especially in the hobby market which has been getting quite big in the recent 5-10 years. Besides, books if written by good authors,are not as dry as reference manuals and reading them is much more enjoyable. The key here is to be ''customer-oriented''.  

If you want others to digest technical documentation, and pay for it, they are called 

consultants and contractors.

The days when consultants can make hundreds of dollars an hour imparting advice are numbered. With the fierce competition

 in the semiconductor industry, customers expect that their silicon providers provide not only cost effective parts with lots of functionality, but also ensure that the silicon is documented well enough that  

consultants and contractors

 are not needed. Reducing time to market and cost  are the names of the game. Instead of  having to pay a consultant to learn how to use a silicon part, chances are one will just choose another silicon provider offering similar products at the same cost but with better documentation and no need for consultants. This is especially true for small businesses and start-ups.

Want a book that covers the Cortex-M3, with quite a lot of depth/breadth try the one written by Joseph Yiu, I haven't picked up the 2nd Edition, but the first was quite effective to transition between ARM7 and 9 architecture. Highly Recommend. Joseph also frequents the board here.

I already have Mr Yiu's book and have read the first 6 Chapters. It is a great book that covers the Cortex-M3 architecture. But not the specifics of the STM32 peripherals and use of the STM32 peripheral library.

halherta2
Associate II
Posted on July 31, 2011 at 02:09

STOne-32,

Thank you for taking my comments into consideration. I will be looking at the appnotes that you listed in more detail and look forwards to reading the ones that will be published in the future.

Enjoy the rest of the weekend!

Posted on July 31, 2011 at 15:29

I can't say I've run into a UART/USART or external memory interface, that are profoundly different to each other in some material way in quite some time. Timer units can be a bit of a bugger, and why we're stuck with 16-bit ones and binary prescalers confuses me, beyond the obvious silicon size.

ST has FAE's that can work on specific problems/examples, availability is a function of the project/customer viability, but none of the vendors are going to staff projects. At some point we have to develop code, and the designers are already working on the next silicon designs. The costs of excessive documentation are borne by all purchasers of the chip to varying extents, the support available for those who buy 100's of chips will be different to those buying millions, and define where the effort goes.

As to examples, and consultants. There are huge armies of coders out there who can't write code from scratch, they cut-n-paste code from examples, Google solutions, plagiarize open-source, and request help of forums to do their work. In Europe the costs involved in hiring and firing an inept coder are huge, in the US it's different, but either way consultant's aren't employees, and don't get benefits or options. I don't see demand for people who know what they're doing to drop, finding and hiring them, well that's another matter. Perceived costs and actual costs are not the same. Startups or small shops expect self sufficient, fast learners, and 80 hours a week, this tends to limit the hiring pool. Hobbyist may be a better choice than recent CS or EE grads.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..