PersonalVotingMachine/basic-setup/components/u8g2/sys/arm/stm32l031x6/info.txt
2020-12-22 14:30:09 +02:00

292 lines
9.8 KiB
Plaintext
Raw Permalink Blame History

STM32L0 Cortex-M0/M0+
STM32L011 access line 2K RAM 2x Timer
STM32L031 access line 8K RAM 3x Timer
STM32L0x1 access line
STM32L0x1K access line, 32 Pins (LQFP)
STM32L0x1F access line, 20 Pins (TSSOP20)
STM32L0x1F3 8KB Flash
STM32L0x1F4 16KB Flash
STM32L011F4P6
STM32L0x1F6 32KB Flash
STM32L0x2 USB+DAC
STM32L1 Cortex-M3
STM32L4 Cortex-M4
http://www.st.com/en/microcontrollers/stm32l031f6.html
=========
http://www.st.com/en/embedded-software/stm32cube-embedded-software.html
zip file: ~/Downloads/en.stm32cubel0.zip
this contains the lib,
STM32Cube_FW_L0_V1.8.0/Drivers/STM32L0xx_HAL_Driver
however the lib requires a config file.
example is here:
STM32Cube_FW_L0_V1.8.0/Projects/STM32L011K4-Nucleo/Examples/GPIO/GPIO_IOToggle/Inc
startup code (.s files)
STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/gcc
register definitions:
STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Include
STM32L031xNyM
3: RAM size? 8KB
x: K=32 pins, F=20 pins
N: 4=16KB, 6=32KB
y: T=LQFP?
M: temperature range
STM32L031F6P6 TSSOP20, 32K Flash --> available
STM32L052K8T6 LQFP32, 64K Flash, USB --> available
--> ld file for example here:
./STM32Cube_FW_L0_V1.8.0/Projects/STM32L031K6-Nucleo/Templates_LL/SW4STM32/STM32L031K6_NUCLEO/STM32L031K6Tx_FLASH.ld
however newly created and derived from nokeep.ld script
library/hal/CMSIS
kchmviewer STM32Cube_FW_L0_V1.8.0/Drivers/STM32L0xx_HAL_Driver/STM32L073xx_User_Manual.chm
doxygen seiten der hal treiber.... leider wie üblich nicht besonders übersichtlich
Code Source
startup_stm32l031xx.s STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/gcc
startup code, which will also call SystemInit and main()
system_stm32l0xx.c STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates
Contains the SystemInit() and SystemCoreClockUpdate() function.
system_stm32l0xx.h STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Include
Contains the global defs for system_stm32l0xx.c. It is placed in the common/inc
stm32l0xx/inc various include files copied from
STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Include/
STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Include/
Documentation
PM0223 STM32L0 Series Cortex ® -M0+ programming manual DM01004451.pdf 110 pages
RM0377 STM32L0x1 Reference manual DM01008282.pdf 882 pages
- Section 3.3.2: BOOT0 Pin (0=user, 1=bootloader)
STM32L031x4 STM32L031x6 Datasheet DM00140359.pdf 118 pages
AN2606 Bootloader description CD00167594.pdf
USART2 configuration is: 8-bits, even parity and 1 Stop bit, RX/TX on PA9/PA10 or PA2/PA3
Die doku ist da nicht ganz eindeutig. PA10 und PA3 sind die UART2_RX pins, PA9 und PA2 die TX
AN3155 USART protocol used in the STM32™ bootloader
External tools (Ubuntu Linux)
arm-none-eabi-gcc sudo apt install gcc-arm-none-eabi
stm32flash sudo apt install stm32flash
stm32flash: There seems to be a problem with ch340/ch341 devices
https://sourceforge.net/p/stm32flash/tickets/81/?limit=25&page=1#7106
also mentioned here:
https://sourceforge.net/p/stm32flash/wiki/Hints/
I think this got solved in the kernel by a commit on Oct 24, 2016:
https://github.com/torvalds/linux/commit/ba781bdf86621b71aa79a1ac0ad584f1e8aac307#diff-27cbcff3aa65aa3cda4aef10b416dd24
modinfo ch341 --> 4.4.0-62-generic
https://github.com/torvalds/linux/blob/v4.4/drivers/usb/serial/ch341.c --> Tag 4.4
looks like this moved to the kernel with the 4.10 tag
Ubuntu kernel version ermitteln: cat /proc/version
Ubuntu 17.04 may use 4.10 and might be there at 13 Apr 2017
ok, i will be using a cp21xx driver here...
Conclution: Support of CH340 usb-serial converter for ubuntu linux will be there with Ubunutz 17.04
===========
steampunk
http://www.rattlebrained.org/articles/diy-pvc-train-whistle
Kupferrohre:
https://www.bengs-modellbau.de/zubehoerteile/flasche-und-fittings/
90 grad fitting
Auch nicht schlecht:
https://knupfer.info/shop/index.php/deutsch/profile-rohre/kupferrohr.html
kupferrohrflöte, obertonflöte
http://www.spiritsoundart.de/shop/obertonfloeten-aus-kupfer/
http://www.maxbrumbergflutes.eu/floeten/obertonfloeten/
englisch
https://en.wikipedia.org/wiki/Overtone_flute
Didgeridoo
===========
TODO, 17 Apr 2017
- Pullups an die buttons und die tamper pullups deaktivieren.
Grund: Ansonsten kann man nicht mehr per reset booten und flashen
--> DONE (es gibt einen menü eintrag)
- Es wird ja ständig das power interface sowie RTC activiert und deaktiviert.
Das sollte man vermutlich dauerhaft aktiviert lassen. --> DONE
9. Mai 17
Irgendwie funktioniert das warm startup nicht. Der uC stürzt ab, wenn man
das u8x8_InitDisplay() nicht ausführt, aber warum? Was habe ich vergessen?
--> pointer fehler
todo
- load/save values to backup register --> DONE
- configuration of the standby delay value --> DONE
- display off option for standby --> DONE
- if the alarm is confirmed within the same minute, then the alarm will apear again.
--> Fixed (checked for the is_equal flag)
- Auto detect für den externen oszillator oder quarz
============
Holzbearbeitung
redwood 15x60x60 (dictum.com)
Linse 35,5mm (astromedia.de, OM7a)
32mm Holzbohrer
Fach für 2xAAA Halterung:
Von unten mit 32mm Holzbohrer aufbohren: Achtung nicht durchbohren
Dann mit 4x 14mm Holzbohrer weiterbohren (an den Rändern des vorherigen Lochs).
Achtung nicht durchbohren
Bedienknöpfe:
Löcher mit dem Durchmesser der Knöpfe bohren (Rote Buttons hatten 12mm)
Display und uC Gehäuse:
Von unten mit 32mm Holzbohrer aufbohren: Achtung nicht durchbohren
Dann mit einem kleineren Bohrer (6mm?) entlang der Front mehrere Löcher Bohren
Auch hier: Nicht durchbohren
Mit der Stichsäge Die Bohrungen weiter aufsägen.
Display Front:
Löcher bohren, mit der Stichsäge aufbohren, dann mit der Feile quadratisch machen.
Display Abdeckung
M30: Aussendurchmesser 56mm, Innen31
Derzeit: Aussen 52, Innen 32
https://www.befestigungsfuchs.de/Befestigungstechnik/Unterlegscheiben/DIN-125/Form-A/50-Unterlegscheiben-DIN-125-Form-A-Kunststoff-Polyamid-fuer-M30?action_ms=1
50 Stück, 13€ + 5€ Versand
Buchescheiben 50mm, aber ca. 15€ Versand und Mindermengenzuschlag
http://www.rundstab.de/product_info.php?info=p2934_buchenscheiben-50-mm.html&no_boost=1
10 Stück 5€ + 15€ Versand
Buchescheiben 50mm, aber sortiert im set mit 35 anderen
http://www.rakuten.de/produkt/holzscheiben-35-stueck-15-5-cm-349163036.html
2 Stück für 2,60 +5€ Versand
Im Englischen heisst das wohl "flat washer"
--> Bei E-Bay bestellt Innen 33mm aussen 42mm... naja mal sehen wie das mit der Linse wird.
===============
steampunk t-shirts
--> https://www.redbubble.com
https://www.redbubble.com/people/grimdork/works/14821398-steampunk-gears?grid_pos=88&p=t-shirt&rbs=8ebda8e5-4144-46a9-ac4a-844d84359fa5&ref=products_grid&style=mens
https://www.redbubble.com/people/melaniem68/works/8073180-steampunk-play?grid_pos=207&p=t-shirt&rbs=562932c0-5414-48ae-a967-336e2ea35256&ref=products_grid&style=mens
https://www.redbubble.com/people/amadeus-ch/works/11341440-mechanical-heart-steampunk?grid_pos=244&p=t-shirt&rbs=562932c0-5414-48ae-a967-336e2ea35256&ref=products_grid&style=mens
https://www.redbubble.com/people/interarte/works/7300455-steampunk?p=t-shirt&style=mens&body_color=black&print_location=front
https://www.redbubble.com/people/reubsaet/works/23847501-steampunk-art?grid_pos=384&p=mens-graphic-t-shirt&rbs=d5842963-a112-4003-a60e-06ecd20a4e42&ref=products_grid
FITTI20
---------------
todo
- uptime counter --> done
- bessere voltanzeige --> nicht umgesetzt, aber optional
- winterzeit: Muss direkt auf der hardware gemacht werden, alles andere ist zu kompliziert
---------------
extras
obertonflöte: schwierig, vor allem wegen der luft
fliehkraftregler (governor): kann man wohl praktisch nicht kaufen
http://www.hilltop-cottage.info/blogs/adam/model-watt-governor-cad-plans-and-construction-notes/
http://www.stuartmodels.com/products/fittings--tools---accessories/governor---spring-belt ... teuer
Alles zu teuer.
Glocke mit servo dran...
---------------
A) short description of the STM32L0 RTC
- date/time register
- CR register with special DST features (BKP, SUB1H and ADD1H flags)
- two step write protection:
PWR->CR |= PWR_CR_DBP;
RTC->WPR = 0x0ca; /* disable RTC write protection */
RTC->WPR = 0x053;
B) algorithm
- basic idea
- special case for winter time change (double hour)
C) Date calculation
D) Code
---------------
Bauteile Steampunk Clock mit MKR Zero
Gold-Spr<70>hlack
Kupferrohre 3x Durchmesser 12mm, L<>nge 40mm, Meterware Baumarkt
Kupferrohre 2x L-St<53>ck, 12mm, Baumarkt
Steckernetzteil 5V, 2.1mm Hohlstecker (z.B. Reichelt SNT 1000 5V)
Einbaukupplung, 2.0mm Stift (z.B. Reichelt LUM NEBJ 21C)
Buzzer, Durchmesser 10mm
--> Achtung: Den CAD Plan noch ändern.
---------------
Bugs
Man scheint die zeit nicht immer vorzeitig ausschalten zu können. Warum?
Erneutes eingeben der alarmzeit behebt das problem.
Manchmal erscheit die nächste zeit gar nicht im display. Auch hier
behebt das erneute eingeben der alarmzeit das problem.
Es sieht so aus: man schaltet die zeit vorzeitig ab, dann erscheint das menü
für den übernächsten tag nicht (für den folgenden tag hatte man es ja abgeschaltet).
17. Sep 2017: einen bug in uint32_t get_u32_by_alarm_data(gui_alarm_t *alarm) behoben
---------------
MKR Zero
Processor: SAMD21G18
---------------
Ausgabe, ob gerade winter oder sommerzeit aktiv ist.
========================0
https://stackoverflow.com/questions/50151897/arm-gcc-conflicting-cpu-architectures
ARM GCC: Conflicting CPU architectures
So you should remove gcc-arm-none-eabi and binutils-arm-none-eabi:
sudo apt-get remove binutils-arm-none-eabi
sudo apt-get remove gcc-arm-none-eabi
Now install from the PPA:
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded