Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ clk Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ clk Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ
ΠΡΠ΄ΡΡ Π»ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ½Ρ?
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ CLK, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ(Π΄Π°Π»Π΅Π΅ SPL), ΠΏΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ SDCC.
Π Π΅Π³ΠΈΡΡΡΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ S-ΡΠ΅ΡΠΈΠΈ, Π² SPL ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΠΎΠΉ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ S-ΡΠ΅ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π·Π΄Π΅ΡΡ: ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ STM8. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ CLK ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΠ»Ρ S-ΡΠ΅ΡΠΈΠΈ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ»Ρ L-ΡΠ΅ΡΠΈΠΈ ΠΎΠ½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ L-ΡΠ΅ΡΠΈΠΈ:
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ Π² Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
Π SPL examples Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ·ΡΠ² Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΈΡ , Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°, Π΄Π»Ρ ΠΎΠΏΡΠΎΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ ΡΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ²Π°ΡΡ. ΠΠ° ΠΏΠ»Π°ΡΡ Ρ stm8s103f3p6 ΠΊΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΠΏΠΈΠ½Ρ A1:A2. ΠΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ, ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΊΠ²Π°ΡΡΠ°.
Π ΡΠΌΠ΅Π½Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Ρ HSI Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ²Π°ΡΡ(HSE), ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠ΄ΠΈΡΡ ΠΏΠΎ ΠΌΠΈΠ³Π°ΡΡΠ΅ΠΌΡ Π·Π΅Π»Π΅Π½ΠΎΠΌΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Ρ Π½Π° ΠΏΠ»Π°ΡΠ΅. ΠΡΠ°Π²Π΄Π° Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΊΠ²Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π° 16 MHz ΡΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Ρ.ΠΊ. ΡΠ°ΡΡΠΎΡΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ°Π²Π½Π° 16 MHz. Π Π°Π·Π½ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΎΡ ΠΊΠ²Π°ΡΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅, Π²ΡΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΌΠ°ΠΊΠ΅ΡΠΊΠΈ. Π’ΠΎΠ³Π΄Π° ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ. Π― ΡΡΠ°Π²ΠΈΠ» ΠΊΠ²Π°ΡΡΡ Π½Π° 8 ΠΈ 25 MHz, ΠΈ Ρ Π½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ Π±ΡΠ»ΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΎΡΠ΅ ΠΌΠΈΠ³Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ Π²ΡΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ²Π°ΡΡΠ° ΠΈΠ· ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. Π STM8 Π΅ΡΡΡ ΡΠΈΡΠ° «Clock security system», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΡΠ±ΠΎΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠ²Π°ΡΡΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ. ΠΠΊΠ»ΡΡΠ°ΡΡ ΡΡΡ ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ HSE.
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Clock security system:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ Π²ΡΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΊΠ²Π°ΡΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ, Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ Π½Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, ΠΎΠ½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΌΠΈΠ³Π°ΡΡ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π° ΡΠ°ΡΡΠΎΡΠ΅ 2 MHz. Π’.Π΅. Clock security system ΡΠ±ΡΠΎΡΠΈΡ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ CLK Π΄ΠΎ Π΄Π΅ΡΠΎΠ»ΡΠΎΠ²ΡΡ .
ΠΠ΄Π΅ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²ΡΠΎΡΠΎΠΌΡ Π²Π΅ΠΊΡΠΎΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΎ Π² ΡΠΈΠ»Π΅ SPL. Π§ΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² stm8s.h Ρ Π²ΡΡΠ°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ°ΠΊΡΠΎΡ:
ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ SPL, Π½ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠ΅.
ΠΠ»Ρ L-ΡΠ΅ΡΠΈΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ Π΄Π»Ρ L-ΡΠ΅ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ»Π°ΡΡ Π½Π° 051-ΠΎΠΌ ΡΠΈΠΏΠ΅, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ Π²ΡΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΊΠ²Π°ΡΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ» Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ CLK, Π° Π½Π΅ Π΄Π΅ΡΠΎΠ»ΡΠΎΠ²ΡΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ 16 MHz.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ STM32. Π§Π°ΡΡΡ 3: Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΅ΡΠ²ΠΎΠ΅, Ρ ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ±ΡΠΎΡΠΎΠΌ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ RCC. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ° Π½Π° 8 ΠΠΡ. ΠΡΠ΅ ΡΡΠ°ΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡ: http://dimoon.ru/category/obuchalka/stm32f1
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² STM32 Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ AVR Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π·Π°ΠΌΡΡΠ»ΠΎΠ²Π°ΡΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
Π£ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32 Π²ΡΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΏΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ SPI, ΠΈ Ρ.Π΄.) ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ ΡΠΈΠ½Π°ΠΌ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π²Π΅Π΄ΡΡΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΡΠΈΠ½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ).
Π STM32F103x8 ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠ½Ρ: AHB, APB1 ΠΈ APB2. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠΈΠ½ Π²ΠΈΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π³ΡΡΠΏΠΏΠ° ΡΡΡΡΠΎΠΉΡΡΠ²:
Π Π΄Π°ΡΠ°ΡΠΈΡΠ΅ Π½Π° STM32F103x8 Π΅ΡΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠ°Ρ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ ΠΊΡΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π°:
Π ΠΈΡ. 1. ΠΠ»ΠΎΠΊ-ΡΡ
Π΅ΠΌΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32F103x8 ΠΈ STM32F103xB
Π‘Ρ Π΅ΠΌΠ° Π½Π° ΡΠΈΡ. 1 ΠΏΠΎΠ½Π°ΡΠ°Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΡΠ΅ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΡΠ»ΠΎΠΆΠΈΡΡΡ ΠΈ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈΡΡΠ΅Π·Π½Π΅Ρ.
Π Π΅ΡΠ΅ Π΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΈΠ½Ρ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ:
Π ΠΈΡ. 2. Π’Π°Π±Π»ΠΈΡΠ° ΡΠΈΠ½ ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²
ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π° ΡΠΈΡ. 2 Π²ΠΎΠ·Π»Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ (AHB, APB1 ΠΈ APB2) Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΊΠ°Π·Π°Π½Π° Π΅Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΠΎΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΠΎΡ ΡΠΈΠ½Ρ, Π΅Π΅ ΡΠ°ΡΡΠΎΡΠ° Π·Π°Π΄Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΠ½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠΈΠ½ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ STM32 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠ³Π½Π°Π»Π° ΡΠ±ΡΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ Π½Π° Π½Π΅Π΅ Π½Π΅ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π». ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Ρ ΡΠ΅Π»ΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π°ΡΡ Π½Π° Π½Π΅Π³ΠΎ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π°Π»Π΅Π΅.
ΠΡΠ°ΠΊ, Π²ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π·ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ:
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ
Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ STM32F103x8/B ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°:
Π ΠΈΡ. 3. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ²
ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ β Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° 8 ΠΠΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ High-speed internal (HSI) RC oscillator. ΠΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΡ ΡΡΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΡΠΌ Π΅Π³ΠΎ ΠΏΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π΅ Π½ΡΠΆΠ½Ρ Π½ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΠΌΠΈΠ½ΡΡ β ΠΏΠ»ΠΎΡ Π°Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ: ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ Π΅Π³ΠΎ ΡΠ°ΡΡΠΎΡΠ° Π² 8 ΠΠΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ»ΡΡΡ. ΠΠ»Ρ Π½Π΅ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π«ΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ β High-speed external (HSE). ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ HSI. ΠΠ»Ρ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Π½ΡΠΆΠ΅Π½ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ²Π°ΡΡΠ΅Π²ΡΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ Π½Π° ΡΠ°ΡΡΠΎΡΡ 4-16 ΠΠΡ. ΠΠ³ΠΎ Π³Π»Π°Π²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ HSI ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ. Π’Π°ΠΊ ΠΆΠ΅, ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅, Π²ΡΠ²ΠΎΠ΄ OSC_IN ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ°.
ΠΠ°Π»Π΅Π΅ Low-speed external (LSE). ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ°, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° 32768 ΠΡ. LSE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ RTC, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΡΠΈ ΠΎΡΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ β ΡΡΠΎ Low-speed internal (LSI) RC oscillator. ΠΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° 40 ΠΠΡ. ΠΠ½ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°: Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΠ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ. Π Π΅ΡΠ΅ ΠΎΡ LSI ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ RTC, Π½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π½ΠΈ ΠΊΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ 😉
Π’Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ
ΠΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» SYSCLK.
Π ΠΈΡ. 4. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° SYSCLK
ΠΠΎΡΠ»Π΅ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ AHB Prescaler ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ½Π°ΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. Π‘ΠΈΠ³Π½Π°Π» HCLK ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ, ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ ΡΠΈΠ½Ρ AHB. FCLK ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΠ΄Π΅Ρ Π² ΡΠ΄ΡΠΎ. Π§Π΅ΡΠ΅Π· ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π° 8 ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Cortex System timer. ΠΠ΅Π»ΠΈΡΠ΅Π»Ρ APB1 Prescaler ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΠΈΠ½Ρ APB1, Π° APB2 Prescaler Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² APB2.
Π’ΡΡ ΠΏΡΠ°Π²Π΄Π° Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΠ¦Π.
Π ΠΈΡ. 5. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΡΠΈΠ½Ρ APB1 ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
Π ΠΈΡ. 6. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΡΠΈΠ½Ρ APB2 ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
Π’Π°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» Π½Π° ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΠ½Ρ (APB1 Prescaler ΠΈΠ»ΠΈ APB2 Prescaler) ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΡΠΎ ΡΠ°ΡΡΠΎΡΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² (TIMXCLK ΠΈΠ»ΠΈ TIM1CLK) Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½Π° ΡΠ°ΡΡΠΎΡΠ΅ ΡΠΈΠ½Ρ. ΠΠΎ, Π΅ΡΠ»ΠΈ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π΅ ΡΠ°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, ΡΠΎ ΡΠ°ΡΡΠΎΡΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π² 2 ΡΠ°Π·Π° Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΡΡΠΎΡΡ ΡΠΈΠ½Ρ (ΡΠΌ. ΡΠΈΡ. 5, 6). ΠΠΎΡ ΡΠ°ΠΊ 😉 Π Π΄Π»Ρ ΠΠ¦Π Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ· ΡΠ°ΡΡΠΎΡΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ APB2 ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» ADCCLK (ΡΠΈΡ. 6).
ΠΡΠΌΠ°Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΡ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ:
ΠΡΠΎ Π΅ΡΡΡ Π½ΠΈ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄Π°ΡΠΈ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ (Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ 2Π). ΠΠΎΠΏΡΠΎΠ±ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΡΠ°ΠΊ, ΡΡΠΎΠ± Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΡΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Π±ΠΈΡ (SPI1EN, IOPAEN, IOABEN ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅), ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄Π°ΡΠ° Π½Π° Π½Π΅Π³ΠΎ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°. ΠΠ° ΡΠΈΡ. 8 Ρ ΠΏΡΠΈΠ²Π΅Π» ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° PCLK2 ΡΠΈΠ½Ρ APB2, Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² (HCLK, PCLK1, TIMXCLK, TIM1CLK) Π²ΡΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π° SYSCLK
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ°ΠΊΡΠΎΠ²ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ STM32 ΡΠ²Π»ΡΠ΅ΡΡΡ SYSCLK. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ 3 Π²Π°ΡΠΈΠ°Π½ΡΠ°: Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ HSI, HSE ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ PLL:
Π ΠΈΡ. 9. ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π° SYSCLK
ΠΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΈΠ³Π½Π°Π»Π° SYSCLK ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ HSI. ΠΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡ. 10, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ ΠΎΠ±Π²Π΅Π» ΠΊΡΡΠΆΠΎΡΠΊΠΎΠΌ:
Π ΠΈΡ. 10. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΡΠΈΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠΎΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π§Π°ΡΡΠΎΡΡ HCLK, FCLK, PCLK1, TIMXCLK, PCLK2, TIM1CLK Π±ΡΠ΄ΡΡ ΡΠ°Π²Π½Ρ 8 ΠΠΡ, ΡΠ°ΡΡΠΎΡΠ° Cortex System timer ΡΠ°Π²Π½Π° 1 ΠΠΡ, Π° ADCCLK 4 ΠΠ³Ρ.
ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ HSE-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΡΠΎ ΠΊΠ°ΡΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ:
Π ΠΈΡ. 11. ΠΡΠ±ΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSE Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ SYSCLK
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ° Π½Π° 8 ΠΠΡ Π²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ°ΡΡΠΎΡΡ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. Π Π°Π·Π½ΠΈΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ: ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSE ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΎΡ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ HSI. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° SYSCLK ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ PLL.
HSE ΠΈ PLL
Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ STM32 ΠΌΠΎΠ΄ΡΠ»Ρ PLL ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡ HSI Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΈ ΠΎΡ HSE. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡ PLL. ΠΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ HSE ΠΈ Π²ΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ:
Π ΠΈΡ. 12. Π‘Ρ Π΅ΠΌΠ° ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ PLL ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ HSE
ΠΠ²Π°ΡΡΠ΅Π²ΡΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π° 8 ΠΠΡ. ΠΠ°Π»Π΅Π΅, ΡΠΈΠ³Π½Π°Π» Ρ HSE Π±Π΅Π· Π΄Π΅Π»Π΅Π½ΠΈΡ (Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΈΡΠΎΠΌ PLLXTPRE) ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π½Π° ΡΠ΅Π»Π΅ΠΊΡΠΎΡ PLLSRC ΠΈ ΠΏΠΎΡΠΎΠΌ Π½Π° PLL. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ· 8-ΠΈ ΠΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ 72 ΠΠΡ, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ PLL Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ PLLMUL=9. ΠΠ°Π»Π΅Π΅, ΡΠΈΠ³Π½Π°Π» Ρ PLL ΡΠ°ΡΡΠΎΡΠΎΠΉ 72 ΠΠΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π»Π΅ΠΊΡΠΎΡ SW ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π½Π° SYSCLK. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ Π² 72 ΠΠΡ, AHB Prescaler ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π²Π½ΡΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ (Π±Π΅Π· Π΄Π΅Π»Π΅Π½ΠΈΡ). ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ ΡΠΈΠ½Ρ APB1, ΡΠ°Π²Π½ΠΎΠΉ 36 ΠΠΡ, APB1 Prescaler ΡΡΠ°Π²ΠΈΠΌ ΡΠ°Π²Π½ΡΠΌ 2. Π¨ΠΈΠ½Π° APB2 ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠΎΡΡ 72 ΠΠΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, APB2 Prescaler ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² 1.
Π§ΡΠΎ Π΅ΡΠ΅?
ΠΠ΄Π΅ΡΡ ΠΌΡ Π½Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ.
Clock security system (CSS) β ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊ Β«ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ». ΠΡΠ»ΠΈ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSE Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ SYSCLK ΠΈΠ»ΠΈ PLL, ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΡΡΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ HSE, ΡΠΎ CSS Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSI. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠ»ΡΡΠΈΡΡΡ Ρ ΠΊΠ²Π°ΡΡΠ΅ΠΌ, ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠ½Π΅Ρ Π½Π°ΠΌΠ΅ΡΡΠ²ΠΎ Π² Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π° ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π·Π°ΠΊΡΡΡΡ Π²ΡΠ΅ Π²Π΅Π½ΡΠΈΠ»ΠΈ, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΈΠ»ΠΎΠ²ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΈ Ρ.Π΄.)
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ RTC ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ LSI Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π° 40 ΠΠΡ, ΠΎΡ HSE ΡΠ΅ΡΠ΅Π· Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π° 128, Π»ΠΈΠ±ΠΎ ΠΎΡ LSE Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ²Π°ΡΡΠ΅ΠΌ Π½Π° 32768 ΠΡ. ΠΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RTCSEL.
ΠΠΎΠ΄ΡΠ»Ρ USB ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΠΎΡ PLL, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΡΠΈ ΡΠ°ΡΡΠΎΡΠ΅ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ PLL ΡΠ°Π²Π½ΠΎΠΉ 72 ΠΠΡ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ USB Prescaler Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ 1.5 Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ 48 ΠΠΡ.
Microcontroller clock output (MCO) β Π²ΡΠ²ΠΎΠ΄ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ°ΡΡΠΎΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΈΠ³Π½Π°Π»Π°: SYSCLK, HSE, HSI Π»ΠΈΠ±ΠΎ ΡΠΈΠ³Π½Π°Π» Ρ Π²ΡΡ ΠΎΠ΄Π° PLL, ΠΏΠΎΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ. ΠΡΠΆΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΡΠΎΠ² MCO.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32 Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ STM32F103x8 ΠΈ STM32F103xB. Π Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ STM32 ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΡΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠ°Π½ΡΠΎΠ². Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ±ΡΠΎΡΠ° RCC ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ RCC.
ΠΠΠΠ Π£ΠΠΠΠΠΠΠ
Π’ΠΠ₯ΠΠΠΠΠΠΠ
Π ΠΠΠ ΠΠΠΠ’ΠΠ
ΠΠ»ΠΎΠ³ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠΎΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ
Π£ΡΠΎΠΊ 5. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ STM32.
Π ΡΡΠΎΠΊΠ΅ ΠΈΠ·ΡΡΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ β ΡΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΎΡ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ². ΠΠΎΠΊΠ° ΠΌΡ Π½Π΅ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ·Π»ΠΎΠ², ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π ΡΡΠΎΠΊΠ΅ 3 ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ STM32CubeMX. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ. ΠΡΠ° ΡΡ Π΅ΠΌΠ° Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎ, Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. Π’Π°ΠΊ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ STM32CubeMX, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π°ΠΌ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°.
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
Π‘Ρ Π΅ΠΌΠ° Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΡΠΎΡ. ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΡ, Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΌΠΎΡΡΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ². ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎ, ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡ.
ΠΡΠ΅ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΡΠ°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π½Π°Π΄ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈ ΠΈΠ· ΡΠ΅Π³ΠΎ.
Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ? Π§Π΅Π³ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ?
Π‘ΠΏΡΠ°Π²Π° ΡΡ Π΅ΠΌΡ Π΅ΡΡΡ 8 ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ². ΠΡΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ·Π»ΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΌΠΈ ΡΠ·Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΉΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½ΡΠΆΠ½ΡΡ ΡΠ°ΡΡΠΎΡΡ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ². ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Ρ Π΄Π°ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠΈΠ΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ ΡΠ·Π»ΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π²ΠΎΡ ΡΠ°ΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ·Π»ΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΡΠ°ΠΊΡΠΈΡΡΡΡΡΡ ΠΎΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ β ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ HCLK. ΠΠ΅Π²Π°Ρ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ°ΡΡΡ ΡΡ Π΅ΠΌΡ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ°ΠΌΡ ΡΠ°ΡΡΠΎΡΡ HCLK, Π° ΠΏΡΠ°Π²Π°Ρ β ΡΠ°Π·Π΄Π°Π΅Ρ Π΅Π΅ ΠΏΠΎ ΡΠ·Π»Π°ΠΌ, ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ.
Π£ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° STM32 ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π° ΡΠΈΠ½Π΅ APB1 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅.
ΠΠ»Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ APB1 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» HCLK Ρ ΠΏΡΠ΅Π΄Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π§Π°ΡΡΠΎΡΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 36 ΠΌΠΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π» ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ HCLK. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΡΠ°Ρ ΡΡ Π΅ΠΌΡ.
ΠΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° STM32 ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ:
ΠΠ° ΡΡ Π΅ΠΌΠ΅ HSI-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π²Π½ΡΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° 8 ΠΌΠΡ. Π‘ΠΈΠ³Π½Π°Π» Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡ HSI/HSE ΡΠ΅ΡΠ΅Π· Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π° 2. ΠΠΎΡΡΠΎΠΌΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π» HCLK Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ Π΄ΠΎ 36 ΠΌΠΡ.
ΠΡ ΠΎΠ΄Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ° β ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ βΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎβ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠ΅Ρ ΠΎΠ·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΡΡΠΈ, Π²Π»Π°Π³ΠΎΡΡΠΎΠΉΠΊΠΎΡΡΠΈ, ΠΊΡΠΈΡΠΈΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ Ρ.ΠΏ. ΠΠ²Π°ΡΡΠ΅Π²ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ°ΡΡΠΎ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΠΌΠΎΡΠΎΠ·Π΅, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π²Π»Π°ΠΆΠ½ΠΎΡΡΠΈ. ΠΡΠΈΠΊΠΎΡΠ½ΠΈΡΠ΅ΡΡ ΡΡΠΊΠ°ΠΌΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Π°ΠΌ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ° Π½Π΅ Π²ΡΠΊΡΡΡΠΎΠΉ Π»Π°ΠΊΠΎΠΌ ΠΏΠ»Π°ΡΡ, ΠΈ ΠΎΠ½ ΡΡΡ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π²Π½ΡΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ.
ΠΠ»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΡΡΠΎΡΡ HSI-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, Ρ.Π΅. ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΡ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π° ΡΡ Π΅ΠΌΠ΅ ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΠ½ΠΈΠΌ, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠ°ΡΡΠΎΡΡ. ΠΠ° Π½Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΊΠ²Π°ΡΡΠ΅Π²ΡΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ Π½Π° 8 ΠΌΠΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΡΠ°Π²ΠΈΠΌ 8.
Π ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠΈΠ³Π½Π°Π».
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²Ρ ΠΎΠ΄Π½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ 1-25 ΠΌΠΡ.
ΠΠ° ΠΏΡΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² HSI ΠΈ HSE-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠΈΠ½Ρ ΡΠΎΡΠΈΠ³Π½Π°Π» HCLK ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΡ PLL Source Mux ΠΈ System Clock Mux, Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ.
ΠΡΠΌΠ°Ρ, Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π° ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΡ ΡΠ°ΡΡΠΎΡΡ ΡΠΈΠ³Π½Π°Π»Π° HCLK.
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π΅ΠΏΠΎΠ½ΡΡΠ΅Π½ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ CSS, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ.
ΠΠ° ΡΡ Π΅ΠΌΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠΎΠΌ System Clock Mux.
ΠΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Clock Security System β ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΡΡΠΎΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSE. ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ CSS ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° HSE-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠΎ:
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° USB Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ³Π°ΡΡΠΉ Π²ΡΠ±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠ°ΡΡΠΎΡΡ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ USB β 48 ΠΌΠΡ. ΠΡΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ to USB ΠΊΡΠ°ΡΠ½Π΅Π΅Ρ.
ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ FLITFCLK ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ FLASH-ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ HSI.
ΠΠΎ ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π΄Π° ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΡΡ ΡΠ²ΡΠ·Ρ ΠΌΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ.
ΠΠ½ΠΈΠ·Ρ ΡΡ Π΅ΠΌΡ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠ³Π½Π°Π» ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΠ²ΠΎΠ΄ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° MCO (Microcontroller clock output). Π‘ΠΈΠ³Π½Π°Π» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ·Π»ΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡ MCO source Mux ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΈΠ³Π½Π°Π»Π°:
ΠΡΡΠ°Π»ΡΡ Π»Π΅Π²ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ³ΠΎΠ» ΡΡ Π΅ΠΌΡ. ΠΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΠ°ΠΌΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (RTC). Π§Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ 32 ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΈΡΠ°Π½ΠΈΡ.
ΠΠ»Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΎΠ² RTC Π΅ΡΡΡ 2 Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°:
ΠΡΠ΅, ΠΊΠ°ΠΊ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ.
ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Input frecuency ΡΡΠ°Π½Π΅Ρ ΡΠΈΠ½ΠΈΠΌ.
Π’ΠΎ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡ RTC Clock Mux ΡΡΠ°Π½Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ RTC-ΡΠ°ΡΠΎΠ².
ΠΠ° ΡΡ Π΅ΠΌΠ΅ Π΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΡΠΉ RC-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ LSI ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΡΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ. ΠΠΎ Π΄Π»Ρ Π½Π°Ρ ΡΡΠΎ ΡΠΈΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ Π²Π΅ΡΠΊΠ° ΡΡ Π΅ΠΌΡ.
ΠΠ°Π΄Π΅ΡΡΡ, Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°Π±ΡΠ».
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π» Π² ΡΡΠΎΠΊΠ΅ 3.
Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π±Π΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ° STM32CubeMX, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°. ΠΠΎΠ»ΡΡΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π½Π΅Π½ΡΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΠΊ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ. ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ ΠΏΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ.
ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π±Π»ΠΎΠΊ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡ. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΠ° Π‘.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ, Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠ΄Π°ΡΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΠ
ΠΡΠΎ ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π·Π°Π΄Π°Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΡΠΎΠ² ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ² Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΠΎΠ² Π½Π΅ Π±ΡΠ»Π° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π°.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»Π° ΠΏΡΠΈ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠ»Π°Π³ΠΈ Π² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΡ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ » i++; » ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ²:
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠ°Π³Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ i. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° ΡΠ°Π³Π΅ 3, ΠΏΡΠΈ ΡΡΠΎΠΌ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠ΅Π½Π°.
Π ΡΠ΄ΡΠ΅ Cortex M ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ LDREX ΠΈ STREX. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Keil.
ΠΡΠΎΡΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° bit-band, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ ΠΠ Π½Π° Π±Π°Π·Π΅ Cortex M3/M4. ΠΠ°ΠΏΠΈΡΡ ΠΈ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»Π°Π³ΠΎΠ² Π² ΡΡΠ΅ΠΉΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° ΡΡΠ΅Π½ΠΈΠ΅-ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ-Π·Π°ΠΏΠΈΡΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Flash-ΠΏΠ°ΠΌΡΡΠΈ
Flash ΠΏΠ°ΠΌΡΡΡ ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π΄Π²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ : Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΠ½Ρ I Code ΠΈ D Code) ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Flash-ΠΏΠ°ΠΌΡΡΠΈ). Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠΈΠ½Ρ (Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ) ΠΈΠ»ΠΈ ΠΠΠ£. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· Flash-ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ΄ΡΠ° ΠΊ Flash-ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ HardFault ΠΈΠ»ΠΈ BusFault Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΄ΡΠ° (SCR ΡΠ΅Π³ΠΈΡΡΡΡ). ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Flash-ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π±Π»ΠΈΡΠ° Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π²ΠΎ Flash-ΠΏΠ°ΠΌΡΡΠΈ.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ IRQn Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ NVIC_DisableIRQ(). ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° SysTick Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ NVIC, Π° Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 2.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ HardFaut ΠΈ NMI, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 3.
ΠΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Ρ Flash-ΠΏΠ°ΠΌΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅ΡΠ½ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΠΠ£ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π² ΡΡΠ°ΡΡΠ΅ Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΠΠ£, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ EEPROM.
ΠΡΠ²ΠΎΠ΄Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Ρ JTAG ΠΈ SWD
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ JTAG ΠΈ SWD (Π΄Π°Π»Π΅Π΅ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ JTAG, Π½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ JTAG ΠΈ SWD). ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ SPL Π²ΡΠ²ΠΎΠ΄Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Ρ JTAG B, ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡ PORT_Init() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊ JTAG B ΠΈ Π½Π΅ Π΄Π°ΡΡ ΠΈΡ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ°ΡΡ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ MDR32F9Qx_config.h Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ USE_JTAG_B, ΡΡΡΠΎΠΊΠ° 80, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 4.
#if (defined(USE_MDR1986VE9x) || defined (USE_MDR1901VC1T))
/* #define USE_JTAG_A */
#define USE_JTAG_B
ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΠΎΡΡΠ°, Π²ΡΠ²ΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Ρ JTAG ΠΈ SWD
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ PORT_SetBits() ΠΈΠ»ΠΈ PORT_ResetBits() Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ SPL.
Π‘ΠΌΠ΅Π½Π° ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ
ΠΠ»Ρ ΡΠΌΠ΅Π½Ρ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΡΡ ΡΠ°ΡΡΠΎΡΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Delay ΠΈ SelectRI, LOW ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΌΠ΅Π½Ρ ΡΠ°ΡΡΠΎΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°:
ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΠ ΡΠ΅ΡΠΈΠΈ 1986ΠΠ9Ρ
Π ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 5 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ CPU_Initialize(), ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ°Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΠ ΡΠ΅ΡΠΈΠΈ 1986ΠΠ9Ρ ΠΎΡ ΡΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ ΡΠ°ΡΡΠΎΡΡ PLL Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSE, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠΌ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ΅. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CPU_Initialize() Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ MDR32F9Qx_rst_clk.c, MDR32F9Qx_eeprom.c, MDR32F9Qx_power.c.
#include
#include
#include
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°
void CPU_Initialize (void)
<
// Π‘Π±ΡΠΎΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
RST_CLK_DeInit();
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π»ΠΎΠΊΠ° PLL
// ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ PLL
// CPU_C1_SEL = HSE_CLK, PLLCPUo = HSE_CLK * 10 = 8 ΠΠΡ * 10 = 80 ΠΠΡ
RST_CLK_CPU_PLLconfig (RST_CLK_CPU_PLLsrcHSEdiv1, RST_CLK_CPU_PLLmul10);
// ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PLL
RST_CLK_CPU_PLLcmd (ENABLE);
if(RST_CLK_CPU_PLLstatus() == ERROR) <
while (1);
>
// ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PLL ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
// (CPU_C2_SEL = PLLCPUo = 80 ΠΠΡ)
RST_CLK_CPU_PLLuse (ENABLE);
// ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° CPU_C3_SEL
// (CPU_C3_SEL = CPU_C2)
RST_CLK_CPUclkPrescaler (RST_CLK_CPUclkDIV1);
// ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ° Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ SelectRI ΠΈ LOW Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ BKP
// Π’Π°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° 80 ΠΠΡ
RST_CLK_PCLKcmd(RST_CLK_PCLK_BKP, ENABLE);
POWER_DUccMode(POWER_DUcc_upto_80MHz);
// ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° CPU_C3
// (HCLK = CPU_C3)
RST_CLK_CPUclkSelection (RST_CLK_CPUclkCPU_C3);
>
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ printf() ΠΎΡΠ»Π°Π΄ΠΊΠ° Π½Π΅ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ main()
ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Keil, Π·Π°ΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» printf() Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ BKPT Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° semihosting. ΠΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ BKPT, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π§ΡΠΎΠ±Ρ Keil Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π» ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ semihosting Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ²:
1) ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ·ΠΎΠ² printf() ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ°.
2) ΠΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°ΡΡΡΡ Printf ΡΠ΅ΡΠ΅Π· ITM ΠΈ Printf ΡΠ΅ΡΠ΅Π· UART.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ HardFault
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 6 ΠΈΠ»ΠΈ 7, ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ Π²ΡΠ·ΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ HardFault:
// ΠΠ΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ
#define BASE_ADDR_FUNC_IN_RAM 0x20005000
// Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ
typedef void (*funcptr)();
funcptr funcInRAM = (funcptr) (BASE_ADDR_FUNC_IN_RAM);
LDR R0,=(0x20005000)
BX R0
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΄ΡΡ ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ THUMB, Π° Π½Π΅ ARM! ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ°ΠΉΡΠ΅ ARM Info Center.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°Ρ ΠΊΠΎΠ΄Π° 6 ΠΈ 7 ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ UsageFault, Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ±ΡΠΎΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ HardFault. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ BusFault, MemManage fault ΠΈ UsageFault Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΡΠ΄ΡΠ° SCB (System Control Block), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° 8. Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π² Cortex-M3/M4 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² Application Note 209 ΠΎΡ ARM.
#define SCB_SHCSR_USGFAULTENA (1 SHCSR |= SCB_SHCSR_USGFAULTENA;
SCB->SHCSR |= SCB_SHCSR_BUSFAULTENA;
SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA;
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² Π½ΡΠ»Π΅Π²ΠΎΠΌ Π±ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°Ρ ΠΊΠΎΠ΄Π° 9 ΠΈ 10.
// ΠΠ΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ
#define BASE_ADDR_FUNC_IN_RAM 0x20005000
// Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ
typedef void (*funcptr)();
funcptr funcInRAM = (funcptr) (BASE_ADDR_FUNC_IN_RAM + 1);