For that reason, I did some processing to make this info available in an easier form. First I converted the pin assignment tables in Excel worksheets, saved those in CSV files, and then converted them into HTML files. The results can be browsed at
http://htmlpreview.github.io/?https://g … tList.html
http://htmlpreview.github.io/?https://g … tName.html
http://htmlpreview.github.io/?https://g … igh64.html
http://htmlpreview.github.io/?https://g … gh100.html
http://htmlpreview.github.io/?https://g … gh144.html
http://htmlpreview.github.io/?https://g … Med48.html
http://htmlpreview.github.io/?https://g … Med64.html
http://htmlpreview.github.io/?https://g … ed100.html
Cheers, Ollie
Perhaps we can put this information in the Wiki.
BTW. At the moment if I click on those links, I can’t get back (back button just reloads the page again) – but this may be a Firefox only problem.
That is a challenge in GitHub that HTML pages are stored as text. To get then rendered, you have to copy the content in an external HTML editor and view them there. The htmlpreview.github.io is a crude workaround and could have restrictions – such as those you observed with Firefox.
I will store the CVS files in GitHub (https://github.com/OliviliK/STM32F103) as an alternative documentation. This could be quite popular for those who are designing their system wiring with Excel.
Soon, I will add the design tables for DMA allocations. In F1, this is still easy, but with F4 there are more challenges due to lack of available streams. In that sense, ST has not done as good job as some other Cortex M3/M4/M7 vendors, who have very little restrictions in DMA usage. In those cases, you can have DMA channels/streams in a pool where they are allocated on demand. With F4, I have been forced to do static DMA allocations. That is a robust method for real-time control, but causes some extra design effort.
When you are saying that we can add this info in Wiki, do you have a recommendation who will do it? I have done some Wiki development (http://www.emblocks.org/wiki/tutorials/f401_f429_disco) and could help, but before that I would like to learn about the style and practices used in wiki.stm32duino.
Cheers, Ollie
I found a page that website that converts HTML tables into Wiki format, but I’ve forgotten the URL. I will see if I can find it again
For that reason, I did some processing to make this info available in an easier form. First I converted the pin assignment tables in Excel worksheets, saved those in CSV files, and then converted them into HTML files. The results can be browsed at
http://htmlpreview.github.io/?https://g … tList.html
http://htmlpreview.github.io/?https://g … tName.html
http://htmlpreview.github.io/?https://g … igh64.html
http://htmlpreview.github.io/?https://g … gh100.html
http://htmlpreview.github.io/?https://g … gh144.html
http://htmlpreview.github.io/?https://g … Med48.html
http://htmlpreview.github.io/?https://g … Med64.html
http://htmlpreview.github.io/?https://g … ed100.html
Cheers, Ollie
Just one small thing (which I can change myself)…
On http://wiki.stm32duino.com/index.php?ti … F1xx_48pin
The last column, labeled “Baite”, should really be “Maple mini” as Baite are just the manufacturer, and they make other boards.
I think the Baite Maple mini follows the same pin arrangement as the original Maple mini and also is the same as the other Maple Mini clone (which seems to be made by another, unknown, Chinese company)
https://github.com/OliviliK/STM32F103/b … /README.md
For comments or questions, use this forum or post them in https://github.com/OliviliK/STM32F103/issues
Cheers, Ollie
Would it be Ok of I used some of the images and schematics etc in the wiki
wiki.stm32duino.com
Thanks
Roger
I can give you permission to use the F103 pictures I have taken. All the schematics are created by 3rd parties and I am just linking them in my repository. In that sense, I am not authorized to give a permission about their usage. I am not aware of anything that would prevent you to use them, just like I did.
Cheers, Ollie
PS. I have not yet started to do the essential parts of my F103 tutorial. I am still evaluating about the run-time model. A collection of cooperative tasks sharing a single stack and doing Run To Completion (RTC) actions based on external or internal events.
On other hand the popularity gained by Micrium µC/OS III could change my mind to do the tutorial with the classic multi stack model.
Any recommendations?
I can give you permission to use the F103 pictures I have taken. All the schematics are created by 3rd parties and I am just linking them in my repository. In that sense, I am not authorized to give a permission about their usage. I am not aware of anything that would prevent you to use them, just like I did.
Your earlier comments about my consideration to create another SPL replacement, helped me to decide to use libopencm3 as a proven and well documented library.
For the synchronization and task management, my conclusion is that a preemptive systems take too much resources and are creating a lot of bugs that are difficult to detect. The basic Adam Dunkels’ protothreads is preferred solution. The complete Contiki is proven solution for real life communication systems, but is way too large for a small F103.
Now I will continue with my Wiki at https://github.com/OliviliK/STM32F103/wiki using only a part of the Contiki core system. In https://github.com/contiki-os/contiki/t … r/core/sys are all the PT features and other useful library solutions for synchronization and task management.
Cheers, Ollie
libopencm3 is a good choice.
Having looked at the Cube and HAL recently, I can see the attraction of libopencm3, and I must find some time to get more acquainted with it myself.
If you are using Windows, there are some issues in LibOpenCM3 installation. I have written a Blog Post addressing those issues. Using the recommended steps, it takes around 10 minutes to install the library.
The post can be found at http://olliesworkshops.blogspot.com/201 … ation.html
Cheers, Ollie
Yes. I mainly use Windows 7.
I will remember to read your blog when I get around to installing it
It is sad to see very low activity around it lately… but for most of projects must be OK, at least for stm32 family.
Me and Vassilis we made a repo trying to make an arduino stm32 core based on opencm3, nothing is ready, nothing to announce, just a playground to make some tests, and to have fun with opencm3., https://github.com/Serasidis/arduino_opencm3
I will try it today.
Edit.
Perhaps you should post this to a new thread.
https://github.com/esden/stm32-datasheets
the files are dated at 1yr, so you’ll need to check latest version. the st document number is in the file name.
for the STM32F103x8-STM32F103xB-CD00161566.pdf, it’s rev 16, st is at rev 17
may be useful for a quick lookup?
stephen
This tutorial has the following demo programs
- Led driven by a button
- LED blinking speed controlled by button using DWT
- Using interchangeable macros to speed up I/O access by 18 fold
For the I/O configuration, there are detailed explanations of the configuration options and the illustrations of button bounce impacts on falling and rising edges.
For performance measurements, it shown how the nano second level measurements are done with DWT and how those are verified with logic analyzer. The GNU C Compiler optimization settings are described.
This tutorial has the following demo programs
- Led driven by a button
- LED blinking speed controlled by button using DWT
- Using interchangeable macros to speed up I/O access by 18 fold
For the I/O configuration, there are detailed explanations of the configuration options and the illustrations of button bounce impacts on falling and rising edges.
For performance measurements, it shown how the nano second level measurements are done with DWT and how those are verified with logic analyzer. The GNU C Compiler optimization settings are described.


