| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- 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ühlack
- Kupferrohre 3x Durchmesser 12mm, Länge 40mm, Meterware Baumarkt
- Kupferrohre 2x L-Stü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
|