αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

Π’ αž•αŸ’αž“αŸ‚αž€αžŠαŸ†αž”αžΌαž„αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαžΆαž”αŸ‹αžœαž·αžŸαŸ’αžœαž€αžšαž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αžŽαž„αŸ‹αž…αŸ†αžŽαžΌαž›αž…αž·αžαŸ’αžαžŠαŸ‚αž›αž’αŸ†αž‘αžΎαž„αž–αžΈαžαŸ„ Arduino αž–αžΈαžšαž”αŸ€αž” αž“αž·αž„αž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž‚αž½αžšαž’αžΆαž“ datasheets αž“αž·αž„αž―αž€αžŸαžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ microcontrollers αŸ” αž’αžαŸ’αžαž”αž‘αž”αŸ’αžšαŸ‚αž‡αžΆαž’αŸ† αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž“αŸ’αž™αžΆαžαžΆαž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αŸ” αž’αž‰αŸ’αž…αžΉαž„αž‚αžΆαžαŸ‹αž αŸ…αžαŸ’αž›αž½αž“αž―αž„αžαžΆαž•αŸ’αžŸαž·αžαž‘αžΉαž€αžŠαŸ„αŸ‡αž‚αŸ„ ...

αžαŸ’αž„αŸƒαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎ datasheets αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αž‡αžΆαž…αŸ’αžšαžΎαž“ αž—αžΆαžšαž€αž·αž…αŸ’αž…αž“αŸ…αž›αžΎ STM32 (Blue Pill) αž“αž·αž„ STM8 controllersαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αžŸαžΆαž€αž›αŸ’αž”αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž§αž‘αŸ’αž‘αž·αžŸαžŠαž›αŸ‹ LEDs αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αžΌαž›αž…αž·αžαŸ’αž αž™αžΎαž„αž“αžΉαž„αž”αŸ†αž—αŸ’αž›αžΊαž–αž½αž€αžœαžΆαž€αŸ’αž“αž»αž„αž”αžšαž·αž˜αžΆαžŽαž…αŸ’αžšαžΎαž“ αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αŸ”

αž’αžαŸ’αžαž”αž‘αž”αŸ’αžšαŸ‚αž‡αžΆαž’αŸ†αž˜αŸ’αžαž„αž‘αŸ€αž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž› αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαžαžαŸ’αž›αžΉαž˜αžŸαžΆαžšαŸ–

STM32 Blue Pill: αž’αŸ†αž–αžΌαž› LED αž…αŸ†αž“αž½αž“ 16 αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ DM634
STM8αŸ– αžŠαŸ†αž‘αžΎαž„αž˜αŸ’αž‡αž»αž› PWM αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αŸ”
STM8: 8 RGB LEDs αž“αŸ…αž›αžΎαž˜αŸ’αž‡αž»αž›αž”αžΈ, αžšαŸ†αžαžΆαž“

αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αŸ– αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžœαž·αžŸαŸ’αžœαž€αžšαž‘αŸ αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž’αŸ’αžœαžΎαž–αž»αžαž‡αžΆαž˜αžΆαž“αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž‡αŸ’αžšαŸ…αž‡αŸ’αžšαŸ‡αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αž‘αŸ αž’αžαŸ’αžαž”αž‘αž‚αžΊαž˜αžΆαž“αž”αŸ†αžŽαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΌαž›αž…αž·αžαŸ’αžαž€αžΆαžšαž„αžΆαžšαžŠαžΌαž…αž‡αžΆαžαŸ’αž‰αž»αŸ†αŸ” αžαžΆαž˜αž–αž·αžαž‘αŸ… αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαŸ’αž›αž½αž“αž―αž„αž€αžΆαž›αž–αžΈαž–αžΈαžšαž†αŸ’αž“αžΆαŸ†αž˜αž»αž“αžαžΆαž‡αžΆαž‘αžŸαŸ’αžŸαž“αž·αž€αž‡αž“αž‚αŸ„αž›αžŠαŸ…αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αžαžΆ αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαŸ‚αž›αž˜αž·αž“αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αžαŸ’αž›αžΆαž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αž‘αŸ αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αŸ†αžŽαŸ‚αž€αž“αŸƒαž€αžΌαžŠαž“αŸ…αž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαžˆαžΎαž…αŸ’αžšαžαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž“αŸ’αžαŸ’αžšαŸƒ αž“αž·αž„αž€αžΆαžŸαŸ‚αžαžŸαŸ’αž’αž·αžαž“αŸ„αŸ‡αž‘αŸαŸ”

αž€αžΆαžšαž•αŸ’αžαŸ„αžαž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸƒαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž“αŸ…αž›αžΎαžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž‚αž˜αŸ’αžšαŸ„αž„αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΌαžŠαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αžŸαžΌαžœαžŸαŸ’αž’αžΆαžαž‘αŸ αž αžΎαž™αž‡αžΆαžšαžΏαž™αŸ—αž…αž„αŸ’αž’αŸ€αžαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αž›αž½αž“αž‚αŸαž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŸαžΆαž€αžŸαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŸαŸ’αž‚αžΆαž›αŸ‹αž‚αŸ’αž“αžΆαžŠαŸ†αž”αžΌαž„αž‡αžΆαž˜αž½αž™αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžαŸ’αž˜αžΈαž€αŸαžŠαŸ„αž™αŸ”

αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž’αžαŸ’αžαž”αž‘αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž‡αž½αž™αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαž‡αŸ’αžšαž˜αž»αž‡αž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαž„αŸ‹αž…αŸ†αžŽαžΌαž›αž…αž·αžαŸ’αžαŸ”

STM32

16 LEDs αž‡αžΆαž˜αž½αž™ DM634 αž“αž·αž„ SPI

αž‚αž˜αŸ’αžšαŸ„αž„αžαžΌαž…αž˜αž½αž™αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Blue Pill (STM32F103C8T6) αž“αž·αž„ DM634 LED driverαŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎαž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž™αžΎαž„αž“αžΉαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αŸ’αž“αž€αž”αžΎαž€αž”αžš αž…αŸ’αžšαž€ STM IO αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ SPI αŸ”

DM634

αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžαŸƒαžœαŸ‰αžΆαž“αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž•αž› PWM 16 αž”αŸŠαžΈαž αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž…αŸ’αžšαžœαžΆαž€αŸ‹αŸ” αž˜αŸ‰αžΌαžŠαŸ‚αž› 16-bit αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αž–αžΈαž‚αž˜αŸ’αžšαŸ„αž„αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€ αž€αž‰αŸ’αž…αž”αŸ‹αž–αž“αŸ’αž›αžΊ. αž“αŸ…αž–αŸαž›αž˜αž½αž™ αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαžœαžΆαž„ DM63x αž“αž·αž„ TLC5940 αžŠαŸαž›αŸ’αž”αžΈ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ DM αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ– 1) TLC αž“αŸ…αž›αžΎ Aliexpress αž‚αžΊαž–αž·αžαž‡αžΆαž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž½αž™αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‘αŸαŸ” 2) DM αž˜αžΆαž“ PWM αžŸαŸ’αžœαž™αŸαžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž›αžΎαž„αž”αŸ’αžšαŸαž€αž„αŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ” 3) αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž·αž‰αž€αŸ’αž“αž»αž„αžαž˜αŸ’αž›αŸƒαžαŸ„αž€αž“αŸ…αž‘αžΈαž€αŸ’αžšαž»αž„αž˜αžΌαžŸαŸ’αž‚αžΌαž‡αžΆαž‡αžΆαž„αžšαž„αŸ‹αž…αžΆαŸ†αž€αŸ’αž”αžΆαž›αžŠαžΈαž–αžΈαž’αžΆαž›αžΈαŸ” αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžœαžΆαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαŸ€αž“αž–αžΈαžšαž”αŸ€αž”αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž‡αžΆαž‡αžΆαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž”αž“αŸ’αž‘αŸ‡αžŸαŸ€αž‚αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž…αž˜αŸ’αž”αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž‰αŸ’αž…αž”αŸ‹ SSOP24 αž–αž½αž€αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž›αž€αŸ‹αž‘αŸ…αž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžšαŸ”

αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž•αž›αž·αžαž‚αžΊαžαŸƒαžœαŸ‰αžΆαž“αŸ‹αŸ” αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž—αžΆαžŸαžΆαž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸαž…αž·αž“ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαžœαžΆαž“αžΉαž„αžšαžΈαž€αžšαžΆαž™αŸ” αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž˜αžΎαž› pinout (αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αžαŸ’αž‘αžΆαžŸαŸ‹) αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž™αž›αŸ‹β€‹αžαžΆβ€‹αž‡αžΎαž„β€‹αž˜αž½αž™β€‹αžŽαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž’αŸ’αžœαžΈβ€‹αž‘αŸ…β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž–αž·αž–αžŽαŸŒαž“αžΆβ€‹αž’αŸ†αž–αžΈβ€‹αž˜αŸ’αž‡αž»αž› (αž–αž·αž“αž–αž·αž–αžŽαŸŒαž“αžΆ) ៑៦ αž˜αŸ’αž‡αž»αž›αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž”αŸ’αžšαž—αž– DC Sink (Open Drain)

αž›αž·αž… / αž‘αž·αž“αŸ’αž“αž•αž›αž”αžΎαž€αž…αŸ†αž  - αž”αž„αŸ’αž αžΌαžš; αž”αŸ’αžšαž—αž–αž“αŸƒαž›αŸ†αž αžΌαžšαž…αžΌαž›; αž‘αž·αž“αŸ’αž“αž•αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž“αžΉαž„αžŠαžΈαž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαž€αž˜αŸ’αž˜ - αž’αŸ†αž–αžΌαž› LED αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž’αŸ’αž“αž€αž”αžΎαž€αž”αžšαžŠαŸ„αž™ cathodes αŸ” αžαžΆαž˜β€‹αžšαž™αŸˆβ€‹αž’αž‚αŸ’αž‚αž·αžŸαž“αžΈ αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž–αž·αžβ€‹αžŽαžΆαžŸαŸ‹β€‹αž˜αž·αž“β€‹αž˜αŸ‚αž“β€‹αž‡αžΆ "αž€αžΆαžšβ€‹αž”αž„αŸ’αž αžΌαžšβ€‹αž…αŸαž‰" (αž”αžΎαž€αž”αž„αŸ’αž αžΌαžš) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ’αž‡αž»αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αž„αŸ’αž αžΌαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αŸ”

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž§αž”αž€αžšαžŽαŸαž‘αž”αŸ‹αž‘αž›αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ…αžšαžœαžΆαž„ REXT αž“αž·αž„ GND αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž‘αž·αž“αŸ’αž“αž•αž›

αžšαŸαžŸαŸŠαžΈαžŸαŸ’αžαž„αŸ‹αž™αŸ„αž„αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ†αž‘αžΎαž„αž“αŸ…αž…αž“αŸ’αž›αŸ„αŸ‡αž˜αŸ’αž‡αž»αž› REXT αž“αž·αž„αžŠαžΈ αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž–αž’αž“αŸ‹αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸƒαž‘αž·αž“αŸ’αž“αž•αž› αžŸαžΌαž˜αž˜αžΎαž›αž€αŸ’αžšαžΆαž αŸ’αžœαž“αŸ…αž‘αŸ†αž–αŸαžšαž‘αžΈ 9 αž“αŸƒαžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ DM634 αž—αžΆαž–αž’αž“αŸ‹αž“αŸαŸ‡αž€αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αž„αžŠαŸ‚αžš αžŠαŸ„αž™αž€αŸ†αžŽαžαŸ‹αž–αž“αŸ’αž›αžΊαž‘αžΆαŸ†αž„αž˜αžΌαž› (αž–αž“αŸ’αž›αžΊαžŸαž€αž›); αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αž·αž“αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‘αŸ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžŠαžΆαž€αŸ‹αžšαŸαžŸαŸŠαžΈαžŸαŸ’αžαž„αŸ‹ 2.2 - 3 kOhm αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž” αžŸαžΌαž˜αž˜αžΎαž›αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸƒαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž§αž”αž€αžšαžŽαŸαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž”αžΆαž‘ αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž—αžΆαžŸαžΆβ€‹αž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸβ€‹αž…αž·αž“β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž·αžšαžΈβ€‹αž›αŸ’αž’β€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αŸ” αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž“αŸαŸ‡αž‚αžΊαž˜αžΆαž“αž”αž‰αŸ’αž αžΆ αž’αŸ’αž“αž€αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžœαž·αž’αžΈαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž - αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… TLC5940 αžŠαŸ‚αž›αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
... αž˜αžΆαž“αžαŸ‚αž˜αŸ’αž‡αž»αž›αž”αžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαŸ” αž‚αŸ‚αž˜αž€αžΎαž“αž‘αžΎαž„αž“αŸƒαžŸαž‰αŸ’αž‰αžΆ SCLK αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈ SIN pin αž‘αŸ…αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€ αžŸαž‰αŸ’αž‰αžΆ XLAT αžαŸ’αž–αžŸαŸ‹αžαŸ’αž›αžΈαž˜αž½αž™αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αŸαžšαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαžΆαž„αž€αŸ’αž“αž»αž„αž‚αžΊαž‡αžΆαž…αŸ’αžšαž€αžŠαŸ‚αž›αž”αž„αŸ’αž€αž‘αžΎαž„αžŠαŸ„αž™αž€αž˜αŸ’αžšαž·αžαžŸαž‰αŸ’αž‰αžΆ XLAT αŸ” αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž‡αžΌαž“β€‹αžŠαŸ†αž”αžΌαž„β€‹αž”αŸ†αž•αž»αžβ€‹αž”αž“αŸ’αžαž·αž…αŸ”

αž”αžΆαž…αŸ‹ - αžŸαŸ„ / αžŸαŸ„ / αžŸαŸ„αŸ”
αž‚αŸ‚αž˜αž€αžΎαž“αž‘αžΎαž„ - αž‚αŸ‚αž˜αž“αžΆαŸ†αž˜αž»αžαž“αŸƒαž‡αžΈαž–αž…αžš
MSB αžŠαŸ†αž”αžΌαž„ - αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αž (αž†αŸ’αžœαŸαž„αž”αŸ†αž•αž»αž) αž‘αŸ…αž˜αž»αžαŸ”
αž‘αŸ…αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΆαž‘αž·αž€αžΆ - αž”αž‰αŸ’αž‡αžΌαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™ (αž”αž“αŸ’αžαž·αž…αž˜αŸ’αžŠαž„αŸ—)αŸ”

αž–αžΆαž€αŸ’αž™ αž…αžΆαž€αŸ‹αžŸαŸ„ αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αŸ‡αžŸαŸ€αž‚αŸ’αžœαžΈ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž€αž”αŸ’αžšαŸ‚αžαžΆαž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ— αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αžΆαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸƒαž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžαŸ’αž›αž½αž“αžαŸ’αž‰αž»αŸ†

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αž”αŸ‹αžšαŸ†αžαžΌαž…αž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ LED αž‚αžΊαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” "αž”αŸ’αžαžΌαžš" (shift) αž“αŸ…αž€αŸ’αž“αž»αž„αžˆαŸ’αž˜αŸ„αŸ‡ - αž…αž›αž“αžΆαž”αŸŠαžΈαžαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαŸ– αž”αŸŠαžΈαžαžαŸ’αž˜αžΈαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αžšαž»αž‰αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž»αž‰αž…αŸ’αžšαžœαŸ‰αžΆαž€αŸ‹αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‘αŸ…αž˜αž»αžαž“αŸ…αž–αžΈαž˜αž»αžαžœαžΆαŸ” αžŠαŸ„αž™αžŸαžΆαžšαž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž…αž„αŸ‹αžŸαž„αŸ’αž€αŸαžαž˜αžΎαž›αž€αžΆαžšαž—αŸ’αž›αžΉαž”αž—αŸ’αž›αŸ‚αžαŸ—αž“αŸƒ LEDs αž€αŸ†αž‘αž»αž„αž–αŸαž›αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ‚αž›αž”αŸ†αž”αŸ‚αž€αž…αŸαž‰αž–αžΈαž”αž‰αŸ’αž‡αžΈαž€αžΆαžšαž„αžΆαžšαžŠαŸ„αž™ damper (αž…αžΆαž€αŸ‹αžŸαŸ„) αž‚αžΊαž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž”αž“αŸ’αž‘αž”αŸ‹αžšαž„αŸ‹αž…αžΆαŸ†αžŠαŸ‚αž›αž”αŸŠαžΈαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžšαž½αž…αžšαžΆαž›αŸ‹ αžŸαž“αŸ’αž‘αŸ‡αž”αž·αž‘αž”αžΎαž€ αž αžΎαž™αž”αŸŠαžΈαžαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžŠαŸ„αž™αž‡αŸ†αž“αž½αžŸαž”αžΆαž…αŸ‹αž˜αž»αž“αŸ” αž–αžΆαž€αŸ’αž™ αž…αžΆαž€αŸ‹αžŸαŸ„ αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ microcircuits αžŸαŸ’αž‘αžΎαžšαžαŸ‚αžαŸ‚αž„αžαŸ‚αž”αž„αŸ’αž€αž”αŸ‹αž“αŸαž™αžŠαžΌαž…αž‡αžΆ damper αž˜αž·αž“αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αžŸαŸ†αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ… DM634 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαžΌαž…αž“αŸαŸ‡: αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž› DAI αž‘αŸ…αž“αžΉαž„αžαž˜αŸ’αž›αŸƒαž“αŸƒαž”αŸŠαžΈαžαžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸƒ LED αž†αŸ’αž„αžΆαž™ αž‘αžΆαž‰ DCK αž‘αžΎαž„αž›αžΎαž…αž»αŸ‡αž€αŸ’αžšαŸ„αž˜αŸ” αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž› DAI αž‘αŸ…αžαž˜αŸ’αž›αŸƒαž“αŸƒαž”αŸŠαžΈαžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ αž‘αžΆαž‰ DCK; αž αžΎαž™αž”αž“αŸ’αžαžšαž αžΌαžαžŠαž›αŸ‹αž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“ (αž“αžΆαž‘αž·αž€αžΆαž…αžΌαž›) αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž™αžΎαž„αž‘αžΆαž‰ LAT αŸ” αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αžŠαŸƒ (αž”αŸŠαžΈαž) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ SPI αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž›αžΎ STM32 αžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž–αžΈαžšαž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αŸ”

αžαŸ’αž“αžΆαŸ†αž‚αŸ’αžšαžΆαž”αŸ‹αž–αžŽαŸŒαžαŸ€αžœ STM32F103

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αŸ– αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ STM32 αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„ Atmega328 αž‡αžΆαž„αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž‚αž½αžšαž±αŸ’αž™αžαŸ’αž›αžΆαž…αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž“αŸƒαž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αžαžΆαž˜αž–αž› αž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž αžΎαž™αž”αŸ’αžšαŸαž€αž„αŸ‹αž“αžΆαž‘αž·αž€αžΆαž‚αžΊ 8 MHz αž–αžΈαž”αŸ’αžšαž—αž–αžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αž‡αžΆαžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’ αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ STM αž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αžΌαžŠαžŠαŸ‚αž›αž“αžΆαŸ†αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž‘αžΎαž„αžŠαž›αŸ‹ "αž‚αžŽαž“αžΆ" 72 MHz αž αžΎαž™αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž“αŸƒ IDE αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžŸαŸ’αž‚αžΆαž›αŸ‹αž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αžΆαž‘αž·αž€αžΆαž‘αŸ (αž”αŸ‰αž»αž“αŸ’αžαŸ‚ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž–αž·αžαž‡αžΆαž…αž„αŸ‹) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΎαž€αž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ”

αž―αž€αžŸαžΆαžšαŸ– Blue Pill αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αžΆαž€αŸ‹αžŠαŸ„αž™αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜ STM32F103C8T6 αž˜αžΆαž“αž―αž€αžŸαžΆαžšαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαŸ–

αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž™αžΎαž„αž’αžΆαž…αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαŸ–

  • Pinouts - chip pinouts - αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž›αž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž’αŸ’αžœαžΎαž€αŸ’αžαžΆαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„;
  • Memory Map - αž•αŸ‚αž“αž‘αžΈαžŸαžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ” αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž―αž€αžŸαžΆαžšαž™αŸ„αž„αž˜αžΆαž“αž•αŸ‚αž“αž‘αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‘αžΆαŸ†αž„αž˜αžΌαž› αž αžΎαž™αžœαžΆαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αŸ”
  • αžαžΆαžšαžΆαž„αž“αž·αž™αž˜αž“αŸαž™ Pin - αžšαžΆαž™αž˜αž»αžαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹ αž“αž·αž„αž‡αŸ†αž“αž½αžŸαž“αŸƒαž˜αŸ’αž‡αž»αž›; αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "αžαŸ’αž“αžΆαŸ†αž‚αŸ’αžšαžΆαž”αŸ‹αž–αžŽαŸŒαžαŸ€αžœ" αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αžšαžΌαž”αž—αžΆαž–αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž‰αŸ’αž‡αžΈαž˜αŸ’αž‡αž»αž› αž“αž·αž„αž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž—αŸ’αž›αžΆαž˜αŸ— google Blue Pill pinout αž αžΎαž™αžšαž€αŸ’αžŸαžΆαžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡αž“αŸ…αž“αžΉαž„αžŠαŸƒαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
NB: αž˜αžΆαž“αž€αŸ†αž αž»αžŸαž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αž–αžΈαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹ αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αžœαžΆαŸ” αžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αž“αž½αžŸαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αŸαžšαŸ€αž“αž˜αž½αž™ - αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž–αŸαžαŸŒαž˜αžΆαž“αž˜αž·αž“αž˜αŸ‚αž“αž–αžΈαžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸαŸ”

αž™αžΎαž„αžŠαž€αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸαž‰ αž”αžΎαž€αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž―αž€αžŸαžΆαžšαž™αŸ„αž„ αž αžΎαž™αž…αžΆαž”αŸ‹αž–αžΈαž–αŸαž›αž“αŸαŸ‡αžαž‘αŸ… αž™αžΎαž„αž”αŸ’αžšαžΎαžαŸ‚αžœαžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”
αž“αžΈαžαž·αžœαž·αž’αžΈαŸ– αž™αžΎαž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›/αž‘αž·αž“αŸ’αž“αž•αž›αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ SPI αž”αžΎαž€αž§αž”αž€αžšαžŽαŸαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ”

αž”αž‰αŸ’αž…αžΌαž›αž‘αž·αž“αŸ’αž“αž•αž›

αž“αŸ…αž›αžΎ Atmega328 I/O αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰ αžŠαŸ‚αž›αž“αŸαŸ‡αž‡αžΆαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž—αžΆαž–αžŸαž˜αŸ’αž”αžΌαžšαž”αŸ‚αž”αž“αŸƒαž‡αž˜αŸ’αžšαžΎαžŸ STM32 αž’αžΆαž…αž˜αžΆαž“αž€αžΆαžšαž—αŸαž“αŸ’αžαž…αŸ’αžšαž‘αŸ†αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž€αŸαž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž”αž½αž“αžŠαŸ‚αžšαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž”αž„αŸ’αž αžΌαžšαž”αžΎαž€αž…αŸ†αž , αžšαž»αž‰αž‘αžΆαž‰, αžšαž»αž‰αž…αŸ’αžšαžΆαž“αž‡αŸ†αž“αž½αžŸ, αž”αž„αŸ’αž αžΌαžšαž”αžΎαž€αž…αŸ†αž αž‡αŸ†αž“αž½αžŸ

"αž‘αžΆαž‰-αžšαž»αž‰" (αž‡αŸ†αžšαž»αž‰ - αž‘αžΆαž‰) αž‚αžΊαž‡αžΆαž‘αž·αž“αŸ’αž“αž•αž›αž’αž˜αŸ’αž˜αžαžΆαž–αžΈ Arduino αž˜αŸ’αž‡αž»αž›αž’αžΆαž…αž™αž€αžαž˜αŸ’αž›αŸƒαž”αžΆαž“αž‘αžΆαŸ†αž„ HIGH ឬ LOW αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„ "αž”αž„αŸ’αž αžΌαžšαž”αžΎαž€αž…αŸ†αž " αž˜αžΆαž“ αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž–αž·αžαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž•αž› / αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž…αŸ’αžšαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‘αŸ…αž‘αž·αž“αŸ’αž“αž•αž›: / αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž‘αž·αž“αŸ’αž“αž•αž›αž”αžΆαž“αž”αžΎαž€: / – αž”αžΎαž€αžšαž”αŸ€αž”αž”αž„αŸ’αž αžΌαžš: "0" αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž‘αž·αž“αŸ’αž“αž•αž›αž”αžΎαž€ N-MOS, "1" αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž‘αž·αž“αŸ’αž“αž•αž›αž‘αž»αž€αž…αŸ’αžšαž€αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” Hi-Z ( P-MOS αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αžŸαž€αž˜αŸ’αž˜β€‹) / – αžšαž”αŸ€αž”β€‹αžšαž»αž‰β€‹αž‘αžΆαž‰β€‹: "0​" αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž…αž»αŸ‡β€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž›αž‘αŸ’αž’αž•αž›β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αžŸαž€αž˜αŸ’αž˜ N-MOS, "1​" αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž”αž‰αŸ’αž‡αžΈβ€‹αž‘αž·αž“αŸ’αž“αž•αž›β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™ P-MOS αžŸαž€αž˜αŸ’αž˜β€‹αŸ”

αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαžœαžΆαž„αž€αžΆαžšαž”αž„αŸ’αž αžΌαžšαž”αžΎαž€αž…αŸ†αž  (αž”αžΎαž€αž”αž„αŸ’αž αžΌαžš) αž–αžΈ "αžšαž»αž‰ - αž‘αžΆαž‰" (αž‡αŸ†αžšαž»αž‰ - αž‘αžΆαž‰) αž‚αžΊαžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ’αž‡αž»αž›αž‘αžΈαž˜αž½αž™αž˜αž·αž“αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αžŸαŸ’αžαžΆαž“αž—αžΆαž– HIGH αž”αžΆαž“αž‘αŸαŸ– αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž˜αž½αž™αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαž‘αž·αž“αŸ’αž“αž•αž› αžœαžΆαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž’αž“αŸ‹αž‘αŸ’αžšαžΆαŸ†αžαŸ’αž–αžŸαŸ‹ (impedance αžαŸ’αž–αžŸαŸ‹αŸ”, αž αŸŠαžΈαž αŸ’αžŸαŸ) αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž›αŸαžαžŸαžΌαž“αŸ’αž™ αž˜αŸ’αž‡αž»αž›αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž‘αžΆαŸ†αž„αž–αžΈαžš αž‘αžΆαŸ†αž„αž‘αžΌαž‡αžΈαžαž› αž“αž·αž„αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž‘αž·αž“αŸ’αž“αž•αž›αž’αž˜αŸ’αž˜αžαžΆ αž˜αŸ’αž‡αž»αž›αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž•αŸ’αžŸαžΆαž™αž˜αžΆαžαž·αž€αžΆαž“αŸƒαž”αž‰αŸ’αž‡αžΈαž›αž‘αŸ’αž’αž•αž›αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ "αž‡αž˜αŸ’αžšαžΎαžŸ" αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆ (αžŸαžΌαž˜αž˜αžΎαž› 9.1.4):

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αž…αŸ’αžšαž€β€‹αž”αŸŠαžΈαžβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’β€‹αž‡αžΆβ€‹αž˜αŸ’αž‡αž»αž›β€‹αž˜αž»αžαž„αžΆαžšβ€‹αž‡αŸ†αž“αž½αžŸ αž“αŸ„αŸ‡β€‹αž€αžΆαžšβ€‹αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž˜αŸ’αž‡αž»αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž·αž‘ αž αžΎαž™β€‹αž˜αŸ’αž‡αž»αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž‘αŸ…β€‹αž˜αŸ’αž‡αž»αž›β€‹αž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ”

αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸαž“αŸƒαž˜αŸ’αž‡αž»αž›αž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ αž–αž·αž“αž“αž·αž™αž˜αž“αŸαž™ αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αžΊαž“αŸ…αž›αžΎαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž‘αžΆαž‰αž™αž€αŸ” αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ†αžŽαž½αžšαž“αŸƒαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ’αž‡αž»αž›αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸαž‡αžΆαž…αŸ’αžšαžΎαž“ αž…αž˜αŸ’αž›αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αž›αŸαžαž™αŸ„αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž…αŸ’αžšαžΎαž“αž”αŸ’αžšαžΎαž˜αŸ’αž‡αž»αž›αžŠαžΌαž…αž‚αŸ’αž“αžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαž”αŸ‰αŸ‡αž‘αž„αŸ’αž‚αž·αž…αžšαžœαžΆαž„αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸ αž˜αžΆαž“αžαŸ‚αž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ αžŠαŸ„αž™αž”αž·αž‘αž”αžΎαž€αžŠαŸ„αž™αž”αŸ’αžšαžΎαž“αžΆαž‘αž·αž€αžΆαž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αžΎαž€αž”αŸŠαžΈαž (αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ RCC αžŠαŸ‚αž›αžŸαž˜αžŸαŸ’αžšαž”)αŸ”

αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž˜αŸ’αž‡αž»αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž‘αž·αž“αŸ’αž“αž•αž›αž€αŸαž˜αžΆαž“αž›αŸ’αž”αžΏαž“αž“αžΆαž‘αž·αž€αžΆαž•αž„αžŠαŸ‚αžšαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αž»αžαž„αžΆαžšαžŸαž“αŸ’αžŸαŸ†αžŸαŸ†αž…αŸƒαžαžΆαž˜αž–αž›αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž€αŸ†αžŽαžαŸ‹αžœαžΆαžŠαž›αŸ‹αž’αžαž·αž”αžšαž˜αžΆ αž αžΎαž™αž”αŸ†αž—αŸ’αž›αŸαž…αžœαžΆαž…αŸ„αž›αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αŸ– αž™αžΎαž„αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎ SPI αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž˜αŸ’αž‡αž»αž›αž–αžΈαžš (αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆ) αž‚αž½αžšαžαŸ‚αž‡αžΆ "αž˜αž»αžαž„αžΆαžšαžšαž»αž‰αž…αŸ’αžšαžΆαž“αž‡αŸ†αž“αž½αžŸ" αž αžΎαž™αž˜αž½αž™αž‘αŸ€αž (LAT) αž‚αž½αžšαžαŸ‚αž‡αžΆ "αž€αžΆαžšαžšαž»αž‰αž…αŸ’αžšαžΆαž“αž‘αŸ€αž„αž‘αžΆαžαŸ‹" αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž»αž“β€‹αž“αžΉαž„β€‹αž…αžΆαžαŸ‹αžαžΆαŸ†αž„β€‹αž–αž½αž€αž‚αŸ αžŸαžΌαž˜β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž‡αžΆαž˜αž½αž™ SPI αŸ”

SPI

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αž”αŸ‹αžšαŸ†αžαžΌαž…αž˜αž½αž™αž‘αŸ€αžαŸ”

SPI ឬ Serial Peripheral Interface (serial peripheral interface) αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹ MK αž‡αžΆαž˜αž½αž™ MKs αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž“αž·αž„αž–αž·αž—αž–αžαžΆαž„αž€αŸ’αžšαŸ…αž‡αžΆαž‘αžΌαž‘αŸ…αŸ” αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž›αžΎαžšαž½αž…αž αžΎαž™αžŠαŸ‚αž›αž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ LED αžšαž”αžŸαŸ‹αž…αž·αž“ (αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž™αŸ„αž„αžŸαžΌαž˜αž˜αžΎαž›αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 25) αŸ” SPI αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ ("មេ") αž“αž·αž„αž‘αžΆαžŸαž€αžš ("αž‘αžΆαžŸαž€αžš") αŸ” SPI αž˜αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž…αŸ†αž“αž½αž“ XNUMX αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αž‘αŸαŸ–

  • MOSI, Master Output / Slave Input: αž˜αŸ’αž‡αž»αž›αž“αŸαŸ‡αž”αž‰αŸ’αž‡αžΌαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž˜αŸ αž“αž·αž„αž‘αž‘αž½αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” slave αŸ”
  • MISO, Master Input / Slave Output: αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αžœαžΆαž‘αž‘αž½αž›αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ αž“αž·αž„αž”αž‰αŸ’αž‡αžΌαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΆαžŸαž€αžšαŸ”
  • SCK, Serial ClockαŸ– αž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαŸαž€αž„αŸ‹αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ αž¬αž‘αž‘αž½αž›αžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ slave αŸ” αž€αžΆαžšαžœαžΆαž™αžŠαŸ†αžŸαŸ†αžαžΆαž“αŸ‹;
  • SS, Slave SelectαŸ– αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž–αžΈαž†αžΆαž“αŸ‚αž›αž“αŸαŸ‡ αž‘αžΆαžŸαž€αžšαžŠαžΉαž„αžαžΆαž’αŸ’αžœαžΈαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž…αž„αŸ‹αž”αžΆαž“αž–αžΈαž‚αžΆαžαŸ‹αŸ” αž“αŸ…αž›αžΎ STM32 αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ NSS αžŠαŸ‚αž› N = negative, i.e. αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž€αŸ’αž›αžΆαž™αž‡αžΆαž‘αžΆαžŸαž€αžšαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αžŠαžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž†αžΆαž“αŸ‚αž›αž“αŸαŸ‡αŸ” αžœαžΆαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž›αŸ’αž’αž‡αžΆαž˜αž½αž™αžšαž”αŸ€αž”αž”αžΎαž€αž”αž„αŸ’αž αžΌαžšαž…αŸαž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ„αŸ‡αž‡αžΆαžšαžΏαž„αž˜αž½αž™αž‘αŸ€αžαŸ”

αžŠαžΌαž…αž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αžš SPI αž“αŸ…αž›αžΎ STM32 αžŸαž˜αŸ’αž”αžΌαžšαž‘αŸ…αžŠαŸ„αž™αž˜αž»αžαž„αžΆαžš αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž–αž·αž”αžΆαž€αž™αž›αŸ‹αžαŸ’αž›αŸ‡αŸ—αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžœαžΆαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž‡αžΆαž˜αž½αž™ SPI αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ I2S αž•αž„αžŠαŸ‚αžš αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΆαž™αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžΆαžαŸ‹αž•αŸ’αžαžΆαž…αŸ‹αž›αžΎαžŸαž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžŽαŸˆαž‘αžΆαž“αŸ‹αž–αŸαž›αžœαŸαž›αžΆαŸ” αž—αžΆαžšαž€αž·αž…αŸ’αž…αžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαŸ– αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž‰αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαŸ‚ MOSI αž“αž·αž„ SCK αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž™αžΎαž„αž‘αŸ…αž•αŸ’αž“αŸ‚αž€ 25.3.4 (αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž–αžΈαžš αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž–αžΈαžš) αžŠαŸ‚αž›αž™αžΎαž„αžšαž€αžƒαžΎαž‰ αž“αžΆαž‘αž·αž€αžΆ 1 αž“αž·αž„αžαŸ’αžŸαŸ‚αž‘αž·αž“αŸ’αž“αž“αŸαž™ 1 αž―αž€αž‘αž·αžŸ (1 αžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆ αž“αž·αž„ 1 αž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ unidirectional):

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž“αŸαŸ‡ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ SPI αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αž‰αŸ’αž‡αžΌαž“αž”αžΆαž“αžαŸ‚ αž¬αž‘αž‘αž½αž›αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” / αžšαž”αŸ€αž”αž”αž‰αŸ’αž‡αžΌαž“αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αžšαž”αŸ€αž”αž–αžΈαžšαŸ– αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž“αŸ…αž›αžΎαž˜αŸ’αž‡αž»αž›αž”αž‰αŸ’αž‡αžΌαž“ (MOSI αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ ឬ MISO αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž‘αžΆαžŸαž€αžš) αž αžΎαž™αž˜αŸ’αž‡αž»αž›αž‘αž‘αž½αž› (MISO ឬ MOSI αžšαŸ€αž„αž‚αŸ’αž“αžΆ) αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž˜αŸ’αž‡αž»αž› I/O αž’αž˜αŸ’αž˜αžαžΆ . αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž˜αž·αž“αž’αžΎαž–αžΎαž“αžΉαž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ Rx (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžœαžΆαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αž‘αŸαžšαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸ) αŸ”

αž›αŸ’αž’αžŽαžΆαžŸαŸ‹ αž˜αŸ’αž‡αž»αž› MISO αž˜αž·αž“αž‚αž·αžαžαŸ’αž›αŸƒαž‘αŸ αžŸαžΌαž˜αž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆ LAT αž‘αŸ…αžœαžΆαŸ” αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž› Slave Select αžŠαŸ‚αž›αž“αŸ…αž›αžΎ STM32 αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžαžΆαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžŠαŸ‚αž›αž‡αžΆαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αžαŸ” αž™αžΎαž„αž’αžΆαž“αž€αžαžΆαžαžŽαŸ’αžŒαž“αŸƒαžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€ 25.3.1 SPI αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž‘αžΌαž‘αŸ…αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ NSS (SSM = 1) / αž–αŸαžαŸŒαž˜αžΆαž“αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αžΆαžŸαž€αžšαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ SSI αž”αŸŠαžΈαžαž“αŸƒαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ SPI_CR1 αŸ” αž˜αŸ’αž‡αž»αž› NSS αžαžΆαž„αž€αŸ’αžšαŸ…αž“αŸ…αžαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžŸαžšαžŸαŸαžšαž‘αŸ…αž€αžΆαž“αŸ‹αž’αŸ’αž“αž€αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αŸ’αžšαžΎ SPI2 αžšαž€αž˜αžΎαž›αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ - αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€ 3.3 Memory MapαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž’αž‰αŸ’αž…αžΉαž„αžαŸ„αŸ‡αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ–

#define _SPI2_(mem_offset) (*(volatile uint32_t *)(0x40003800 + (mem_offset)))

αž”αžΎαž€αž•αŸ’αž“αŸ‚αž€ 25.3.3 αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ†αžŽαž„αž‡αžΎαž„αž–αž“αŸ’αž™αž›αŸ‹αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ "αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ SPI αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ"αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

1. αž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαŸαž€αž„αŸ‹αž“αžΆαž‘αž·αž€αžΆαžŸαŸ€αžšαŸ€αž›αž‡αžΆαž˜αž½αž™αž”αŸŠαžΈαž BR[2:0] αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ SPI_CR1αŸ”

αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžŸαŸ€αžœαž—αŸ…αžŠαŸƒαž™αŸ„αž„αž“αŸƒαžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ (αž’αžΆαžŸαŸαž™αžŠαŸ’αž‹αžΆαž“αž’αž»αž αŸ’αžœαžŸαž·αž) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CR1 – 0x00 αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž˜αŸ’αžšαŸ‡ (αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαž‘αžΎαž„αžœαž·αž‰ 0x0000)αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž”αŸŠαžΈαž BR αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž“αžΆαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαŸαž€αž„αŸ‹αžŠαŸ‚αž› SPI αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž”αŸ’αžšαŸαž€αž„αŸ‹ STM32 αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αžΉαž„αž˜αžΆαž“ 72 MHz αžŠαŸ‚αž›αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ LED αž™αŸ„αž„αžαžΆαž˜αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαŸαž€αž„αŸ‹αžšαž αžΌαžαžŠαž›αŸ‹ 25 MHz αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αŸ‚αž„αž…αŸ‚αž€αžŠαŸ„αž™αž”αž½αž“ (BR[2:0] = 001) αŸ”

#define _SPI_CR1 0x00

#define BR_0        0x0008
#define BR_1        0x0010
#define BR_2        0x0020

_SPI2_ (_SPI_CR1) |= BR_0;// pclk/4

2. αž€αŸ†αžŽαžαŸ‹αž”αŸŠαžΈαž CPOL αž“αž·αž„ CPHA αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αžΆαž‘αž·αž€αžΆαžŸαŸ€αžšαŸ€αž› (αžŸαžΌαž˜αž˜αžΎαž›αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž“αŸ…αž‘αŸ†αž–αŸαžš 240)

αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž€αŸ†αž–αž»αž„αž’αžΆαž“αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž αžΎαž™αž˜αž·αž“αž˜αžΎαž›αžαžΆαž˜αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸ αžŸαžΌαž˜αž˜αžΎαž›αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αžαŸ’αžαž”αž‘αž“αŸƒαž”αŸŠαžΈαž CPOL αž“αž·αž„ CPHA αž“αŸ…αž›αžΎαž‘αŸ†αž–αŸαžš 704 (SPI αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž‘αžΌαž‘αŸ…)αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αžΆαž‘αž·αž€αžΆ αž“αž·αž„αžšαžΆαž„αž”αŸ‰αžΌαž›αŸ”
αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸŠαžΈαž CPOL αž“αž·αž„ CPHA αž“αŸƒαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ SPI_CR1 αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž–αŸαž›αžœαŸαž›αžΆαž…αŸ†αž“αž½αž“αž”αž½αž“αžαžΆαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž”αŸŠαžΈαž CPOL (αžšαžΆαž„αž”αŸ‰αžΌαž›αž“αŸƒαž“αžΆαž‘αž·αž€αžΆ) αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αŸ” αž”αŸŠαžΈαžαž“αŸαŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαž”αŸ€αž”αž˜αŸ αž“αž·αž„αž‘αžΆαžŸαž€αžšαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎ CPOL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ αž˜αŸ’αž‡αž»αž› SCK αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαž˜αŸ’αžšαžΆαž€αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸŠαžΈαž CPOL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž˜αŸ’αž‡αž»αž› SCK αžαŸ’αž–αžŸαŸ‹αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŸαž˜αŸ’αžšαžΆαž€αŸ”
αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› CPHA (αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αžΆαž‘αž·αž€αžΆ) αž”αŸŠαžΈαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αžŸαŸ’αž‘αŸ’αžšαžΈαž”αž’αž“αŸ’αž‘αžΆαž€αŸ‹αž”αŸŠαžΈαžαžαŸ’αž–αžŸαŸ‹αž‚αžΊαž‡αžΆαž‚αŸ‚αž˜αž‘αžΈαž–αžΈαžšαž“αŸƒαžŸαž‰αŸ’αž‰αžΆ SCK (αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎ CPOL αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹ αž€αžΎαž“αž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎ CPOL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹) αŸ” αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž™αž€αžŠαŸ„αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΈαž–αžΈαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸŠαžΈαž CPHA αž˜αžΆαž“αž—αžΆαž–αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž“αŸ„αŸ‡ αžŸαŸ’αž‘αŸ’αžšαžΈαž”αž’αž“αŸ’αž‘αžΆαž€αŸ‹αžαŸ’αž–αžŸαŸ‹αž‚αžΊαž‡αžΆαž‚αŸ‚αž˜αž€αžΎαž“αž‘αžΎαž„αž“αŸƒαžŸαž‰αŸ’αž‰αžΆ SCK (αž‚αŸ‚αž˜αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎ CPOL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž‚αŸ‚αž˜αž€αžΎαž“αž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎ CPOL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž˜αŸ’αžšαŸ‡) αŸ” αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž™αž€αž“αŸ…αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆαŸ”

αžŠαŸ„αž™αž”αžΆαž“αžŸαŸ’αžšαžΌαž”αž™αž€αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž“αŸαŸ‡ αž™αžΎαž„αžˆαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆ αž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž–αžΈαžšαžαŸ’αžšαžΌαžœαžαŸ‚αž“αŸ…αžαŸ‚αžŸαžΌαž“αŸ’αž™ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡ αž™αžΎαž„αž…αž„αŸ‹αž±αŸ’αž™αžŸαž‰αŸ’αž‰αžΆ SCK αž“αŸ…αž‘αžΆαž”αž“αŸ…αž–αŸαž›αž˜αž·αž“αž”αŸ’αžšαžΎ αž αžΎαž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž“αŸ…αž›αžΎαž‚αŸ‚αž˜αž€αžΎαž“αž‘αžΎαž„αž“αŸƒαž‡αžΈαž–αž…αžš (αžŸαžΌαž˜αž˜αžΎαž›αžšαžΌαž”αž—αž–αŸ” αž‚αŸ‚αž˜αž€αžΎαž“αž‘αžΎαž„ αžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™ DM634)

αž“αž·αž™αžΆαž™αž’αžΈαž‰αŸ’αž…αžΉαž„ αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž˜αž½αž™αž“αŸƒαžœαžΆαž€αŸ’αž™αžŸαž–αŸ’αž‘αž“αŸ…αž€αŸ’αž“αž»αž„ ST datasheets: αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž½αž€αž‚αŸαžƒαŸ’αž›αžΆ "αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αž”αŸŠαžΈαžαž‘αŸ…αžŸαžΌαž“αŸ’αž™" αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αž”αž“αŸ’αžαž·αž…αž“αž·αž„αž˜αž·αž“ αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž˜αŸ’αžšαŸ‡αž”αž“αŸ’αžαž·αž…αž§αž‘αžΆαž αžšαžŽαŸαžŠαžΌαž…αž‡αžΆ Atmega αŸ”

3. αž€αŸ†αžŽαžαŸ‹ DFF bit αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαž”αŸ’αž›αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹ 8-bit ឬ 16-bit

αž‡αžΆαž–αž·αžŸαŸαžŸαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž™αž€ 16-bit DM634 αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αžšαŸ†αžαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ PWM 12-bit αžŠαžΌαž…αž‡αžΆ DM633 αž‡αžΆαžŠαžΎαž˜αŸ” αžœαžΆαžŸαž˜αž αŸαžαž»αž•αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ DFF αž‘αŸ…αž˜αž½αž™αŸ–

#define DFF         0x0800

_SPI2_ (_SPI_CR1) |= DFF; // 16-bit mode

4. αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αŸŠαžΈαž LSBFIRST αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ SPI_CR1 αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ’αž›αž»αž€

LSBFIRST αžŠαžΌαž…αžŠαŸ‚αž›αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰ αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸŠαžΈαžαžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ†αž”αžΌαž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚ DM634 αž…αž„αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž”αŸŠαžΈαžαžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž‘αž»αž€αžœαžΆαž‘αžΎαž„αžœαž·αž‰αŸ”

5. αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž–αžΈαž˜αŸ’αž‡αž»αž› NSS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžš αžŸαžΌαž˜αž’αž“αž»αžœαžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžαŸ’αž–αžŸαŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ’αž‡αž»αž› NSS αž€αŸ†αž‘αž»αž„αž–αŸαž›αž›αŸ†αžŠαžΆαž”αŸ‹αž•αŸ’αž‘αŸαžšαž”αŸƒαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ NSS αž€αŸ†αžŽαžαŸ‹ SSM αž“αž·αž„ SSI αž”αŸŠαžΈαžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ SPI_CR1 αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ’αž‡αž»αž› NSS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž˜αžΆαž“αžαŸ‚αž”αŸŠαžΈαž SSOE αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αŸ”

αžŠαŸ†αž‘αžΎαž„ SSM αž“αž·αž„ SSI αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž›αŸαž…αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ NSSαŸ–

#define SSI         0x0100
#define SSM         0x0200

_SPI2_ (_SPI_CR1) |= SSM | SSI; //enable software control of SS, SS high

6. αž”αŸŠαžΈαž MSTR αž“αž·αž„ SPE αžαŸ’αžšαžΌαžœαžαŸ‚αž€αŸ†αžŽαžαŸ‹ (αž–αž½αž€αžœαžΆαž“αŸ…αžαŸ‚αž€αŸ†αžŽαžαŸ‹αž”αžΆαž“αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αžŸαž‰αŸ’αž‰αžΆ NSS αžαŸ’αž–αžŸαŸ‹)

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹ SPI αžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αŸ αž αžΎαž™αž”αžΎαž€αžœαžΆαŸ–

#define MSTR        0x0004
#define SPE         0x0040

_SPI2_ (_SPI_CR1) |= MSTR; //SPI master
//ΠΊΠΎΠ³Π΄Π° всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ SPI
_SPI2_ (_SPI_CR1) |= SPE;

SPI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž…αžΌαžšαž™αžΎαž„αžŸαžšαžŸαŸαžšαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž•αŸ’αž‰αžΎαž”αŸƒαž‘αŸ…αž’αŸ’αž“αž€αž”αžΎαž€αž”αžšαž—αŸ’αž›αžΆαž˜αŸ—αŸ” αž”αž“αŸ’αžαž’αžΆαž“ 25.3.3 "αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ SPI αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ"αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž›αŸ†αžŠαžΆαž”αŸ‹αž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™
αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸƒαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ Tx αŸ”
αž”αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸ… αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› αžšαž”αŸ€αž” (αž–αžΈαž‘αžΆαž“αž€αŸ’αžšαž»αž„αžαžΆαž„αž€αŸ’αž“αž»αž„) αž€αŸ†αž‘αž»αž„αž–αŸαž›αž”αž‰αŸ’αž‡αžΌαž“αž”αŸŠαžΈαžαžŠαŸ†αž”αžΌαž„ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ… αž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αŸ’αž“αžΆαŸ” MOSI pin mode αž‘αŸ…αž˜αž»αžαž”αž“αŸ’αžαž·αž… αž¬αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ LSBFIRST bit αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ CPI_CR1αŸ” αž‘αž„αŸ‹ TXE αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž–αžΈ Tx buffer αž‘αŸ… shift registerαž αžΎαž™αž€αŸαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžšαŸ†αžαžΆαž“αž•αž„αžŠαŸ‚αžš αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸŠαžΈαž TXEIE αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ CPI_CR1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‚αžΌαžŸαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΆαž€αŸ’αž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž€αŸ‹αž‘αžΆαž‰αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž˜αž½αž™αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž SPI αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ STM αŸ” αž“αŸ…αž›αžΎ Atmega αž‘αž„αŸ‹ TXE (Tx αž‘αž‘αŸ, tx αž‚αžΊαž‘αž‘αŸ αž“αž·αž„αžšαž½αž…αžšαžΆαž›αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸƒαž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎ αžαžΆαž„αž€αŸ’αžšαŸ…. αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‘αž„αŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸƒαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž»αž‰αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‡αžΆαž˜αž½αž™αž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ (αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ) αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αŸαžšαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ TXE αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž˜αž»αž“αž–αŸαž›αž”αŸƒαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αžŠαŸ„αž™β€‹αžŸαžΆαžšβ€‹αžαŸ‚β€‹ αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ LED αžšαž”αžŸαŸ‹αž™αžΎαž„αž™αžΎαž„αžαŸ’αžšαžΌαžœαž‘αžΆαž‰αž˜αŸ’αž‡αž»αž› LAT αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž•αŸ’αž‰αžΎ всСх αž‘αž·αž“αŸ’αž“αž“αŸαž™, αž§αŸ” αž‘αž„αŸ‹ TXE αžαŸ‚αž―αž„αž“αžΉαž„αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž‘αŸαŸ”

αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αž„αŸ‹αž‡αžΆαžαž·αž˜αž½αž™αž‘αŸ€αžαŸ” αžαŸ„αŸ‡αž˜αžΎαž› 25.3.7 - "αž‘αž„αŸ‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–"αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
<…>
αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž‘αž„αŸ‹ BUSY
αž‘αž„αŸ‹ BSY αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž“αž·αž„αž‡αž˜αŸ’αžšαŸ‡αžŠαŸ„αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ (αž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αŸ…αžœαžΆαž˜αž·αž“αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž·αž—αžΆαž–αž‘αŸ) αŸ” αž‘αž„αŸ‹ BSY αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ SPI αŸ”
αžœαžΆαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αŸ–
αž“αŸ…αž–αŸαž›αž€αžΆαžšαž•αŸ’αž‘αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹ (αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž•αŸ’αž‘αŸαžšαž”αž“αŸ’αž)
αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› SPI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘
αž“αŸ…αž–αŸαž›β€‹αž˜αžΆαž“β€‹αž€αŸ†αž αž»αžŸβ€‹αžšαž”αŸ€αž”β€‹αž˜αŸβ€‹αž€αžΎαžαž‘αžΎαž„ (MODF=1)
αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž•αŸ’αž‘αŸαžšαž˜αž·αž“αž”αž“αŸ’αž αž‘αž„αŸ‹ BSY αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž˜αŸ’αžšαŸ‡αžšαžœαžΆαž„αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΈαž˜αž½αž™αŸ—

αž˜αž·αž“αž’αžΈαž‘αŸ αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαŸ” αž…αžΌαžšαž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆαžαžΎαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€ Tx αžŸαŸ’αžαž·αžαž“αŸ…αžαŸ’αžšαž„αŸ‹αžŽαžΆαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αžŸαžΌαž˜αž’αžΆαž“ "αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™ SPI"αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
Bits 15:0 DR [15:0] αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™
αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“ αž¬αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž‡αžΌαž“αŸ”
αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆ buffers αž–αžΈαžš - αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžš (αž”αž‰αŸ’αž‡αžΌαž“αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“) αž“αž·αž„αž˜αž½αž™αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αžΆαž“ (αž‘αž‘αž½αž›αž”αžΆαž“αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“)αŸ” αž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αŸ…αž”αž‰αŸ’αž‡αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŸαžšαžŸαŸαžšαž‘αŸ…αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ Tx αž αžΎαž™αž€αžΆαžšαž’αžΆαž“αž–αžΈαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ Rx αŸ”

αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹ αž“αž·αž„αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŸαŸ’αžαžΆαž“αž—αžΆαž– αžŠαŸ‚αž›αž‘αž„αŸ‹ TXE αž“αž·αž„ BSY αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž™αžΎαž„β€‹αžŸαžšαžŸαŸαžš:

#define _SPI_DR  0x0C
#define _SPI_SR  0x08

#define BSY         0x0080
#define TXE         0x0002

void dm_shift16(uint16_t value)
{
    _SPI2_(_SPI_DR) = value; //send 2 bytes
    while (!(_SPI2_(_SPI_SR) & TXE)); //wait until they're sent
}

αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“ 16 αžŠαž„ XNUMX αž”αŸƒαž“αŸαŸ‡αž”αžΎαž™αŸ„αž„αžαžΆαž˜αž…αŸ†αž“αž½αž“αž“αŸƒαž›αž‘αŸ’αž’αž•αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ LED, αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡:

void sendLEDdata()
{
    LAT_low();
    uint8_t k = 16;
    do
    {   k--;
        dm_shift16(leds[k]);
    } while (k);

    while (_SPI2_(_SPI_SR) & BSY); // finish transmission

    LAT_pulse();
}

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž˜αž·αž“αž‘αžΆαž“αŸ‹αžŠαžΉαž„αž–αžΈαžšαž”αŸ€αž”αž‘αžΆαž‰αž˜αŸ’αž‡αž»αž› LAT αž“αŸ…αž‘αžΎαž™αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ… I/O αžœαž·αž‰αŸ”

αž€αŸ†αžŽαžαŸ‹αž˜αŸ’αž‡αž»αž›

αž“αŸ…αž€αŸ’αž“αž»αž„ STM32F1 αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαž˜αŸ’αž‡αž»αž›αž‚αžΊαž˜αž·αž“αž’αž˜αŸ’αž˜αžαžΆαž‘αŸαŸ” αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž˜αžΆαž“αž–αž½αž€αžœαžΆαž…αŸ’αžšαžΎαž“αž‡αžΆαž„ Atmega αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αžœαžΆαž€αŸαžαž»αžŸαž–αžΈαž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž” STM αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αžšαŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 9.1 αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž‘αžΌαž‘αŸ…αž“αŸƒ GPIOαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž…αŸ’αžšαž€ I/O αž‚αŸ„αž›αž”αŸ†αžŽαž„αž‘αžΌαž‘αŸ…αž“αžΈαž˜αž½αž™αŸ— (GPIO) αž˜αžΆαž“αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ 32 αž”αŸŠαžΈαžαž–αžΈαžš (GPIOx_CRL αž“αž·αž„ GPIOx_CRH) αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™ 32 αž”αŸŠαžΈαžαž–αžΈαžš (GPIOx_IDR αž“αž·αž„ GPIOx_ODR) αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ†αžŽαžαŸ‹/αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ 32 αž”αŸŠαžΈαž (GPIOx_BSRR) αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ 16 αž”αŸŠαžΈαž (GPIOx_BRR) αž“αž·αž„ 32- αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž”αŸŠαžΈαž (GPIOx_LCKR) αŸ”

αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž–αžΈαžšαžŠαŸ†αž”αžΌαž„αž‚αžΊαž˜αž·αž“αž’αž˜αŸ’αž˜αžαžΆ αž αžΎαž™αž€αŸαžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αž•αž„αžŠαŸ‚αžšαž–αŸ’αžšαŸ„αŸ‡αž˜αŸ’αž‡αž»αž›αž…αŸ’αžšαž€αž…αŸ†αž“αž½αž“ 16 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαž™αž”αŸ‰αžΆαž™αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž–αž½αž€αžœαžΆαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹ "αž”αž½αž“αž”αŸŠαžΈαžαž€αŸ’αž“αž»αž„αž˜αž½αž™αž”αž„αž”αŸ’αž’αžΌαž“" αŸ” αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ” αž˜αŸ’αž‡αž»αž›αž–αžΈαžŸαžΌαž“αŸ’αž™αžŠαž›αŸ‹αž”αŸ’αžšαžΆαŸ†αž–αžΈαžšαž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„ CRL αž αžΎαž™αž“αŸ…αžŸαž›αŸ‹αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„ CRH αŸ” αž‘αž“αŸ’αž‘αžΉαž˜αž“αžΉαž„αž“αŸαŸ‡αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž˜αžΆαž“αž”αŸŠαžΈαžαž“αŸƒαž˜αŸ’αž‡αž»αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž…αŸ’αžšαž€ - αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž“αŸ…αžŸαž›αŸ‹αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž› "αž”αžΆαž“αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€" αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αž…αžΌαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž”αž‰αŸ’αž‡αžΈαŸ”

αž™αžΎαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž‘αŸαŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αžΎαž„αžœαž·αž‰αž‚αžΊαž‚αž½αžšαž±αŸ’αž™αž’αžŸαŸ‹αžŸαŸ†αžŽαžΎαž…αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž–αž½αž€αžœαžΆαž…αž˜αŸ’αž›αž„αž‚αŸ’αž“αžΆαžŠαŸ„αž™αž•αŸ’αž“αŸ‚αž€αŸ– αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ BSRR αžŠαŸ‚αž› 16 αž”αŸŠαžΈαžαžαŸ’αž–αžŸαŸ‹αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αž˜αŸ’αž‡αž»αž›αž‘αžΎαž„αžœαž·αž‰αž‘αŸ…αžŸαžΌαž“αŸ’αž™ αž αžΎαž™αž›αŸαžαž‘αžΆαž”αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ… 1 αž¬αž’αŸ’αž“αž€αž€αŸαž’αžΆαž… αž”αŸ’αžšαžΎ BRR αžŠαŸ‚αž›αž‡αžΆ 16 αž”αŸŠαžΈαžαž‘αžΆαž” αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžαŸ‚αž˜αŸ’αž‡αž»αž›αž‘αžΎαž„αžœαž·αž‰αŸ” αžαŸ’αž‰αž»αŸ†αž…αžΌαž›αž…αž·αžαŸ’αžαž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΈαž–αžΈαžšαŸ” αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αžΆαžαžΌαž˜αž·αž€αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ’αž‡αž»αž›αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž’αžΆαžαžΌαž˜αž€αŸ†αžŽαžαŸ‹ αž¬αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰
αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αž·αž‘αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ GPIOx_ODR αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž”αŸŠαžΈαžαž‘αŸαŸ– αž”αŸŠαžΈαžαž˜αž½αž™ αž¬αž…αŸ’αžšαžΎαž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžšαžŸαŸαžšαž’αžΆαžαžΌαž˜αž·αž€αžαŸ‚αž˜αž½αž™ APB2αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αžŠαŸ„αž™αž€αžΆαžšαžŸαžšαžŸαŸαžš "1" αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαž€αŸ†αžŽαžαŸ‹/αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ (GPIOx_BSRR αž¬αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ GPIOx_BRR) αž“αŸƒαž”αŸŠαžΈαžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž”αŸŠαžΈαžαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αžΉαž„αž“αŸ…αžαŸ‚αž˜αž·αž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ”

αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž–αž“αŸ’αž™αž›αŸ‹αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ - IDR = αž”αž‰αŸ’αž…αžΌαž› αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αžŸαžŠαŸ…, αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αž‰αŸ’αž…αžΌαž›; ODR = αž‘αž·αž“αŸ’αž“αž•αž› αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αžŸαžŠαŸ…, αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž›αž‘αŸ’αž’αž•αž›αŸ” αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž‘αŸαŸ”

αž αžΎαž™αž‘αžΈαž”αŸ†αž•αž»αžαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž˜αŸ’αž‡αž»αž› SPI αž‘αžΈαž–αžΈαžšαž‚αžΊ PB13, PB14 αž“αž·αž„ PB15 αž™αžΎαž„αž˜αžΎαž›αž‘αŸ… CRH αž—αŸ’αž›αžΆαž˜αŸ—αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž αžΎαž™αž™αžΎαž„αžƒαžΎαž‰αžαžΆαž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαž˜αž½αž™αž‡αžΆαž”αŸŠαžΈαžαž–αžΈ 20 αžŠαž›αŸ‹ 31 αŸ”

αž™αžΎαž„αž”αžΆαž“αž‚αž·αžαžšαž½αž…αž αžΎαž™αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž–αžΈαž˜αŸ’αž‡αž»αž› αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž’αŸ’αžœαžΎαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžšαžΌαž”αžαžαž’αŸαž€αŸ’αžšαž„αŸ‹ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž“αž·αž™αžΆαž™αžαžΆ MODE αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αž·αžŸαžŠαŸ… (αž”αž‰αŸ’αž…αžΌαž›αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ… 0) αž“αž·αž„αž›αŸ’αž”αžΏαž“ pin (αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš 50MHz αž–αŸ„αž›αž‚αžΊαž§αŸ” αž‘αžΆαŸ†αž„ pin αž‘αŸ… β€œ1”) αž αžΎαž™ CNF αž€αŸ†αžŽαžαŸ‹αžšαž”αŸ€αž”αŸ– β€œpush-pull” αž’αž˜αŸ’αž˜αžαžΆ – 00, β€œalternative” – 10. αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžŠαžΌαž…αžŠαŸ‚αž›αž™αžΎαž„αžƒαžΎαž‰αžαžΆαž„αž›αžΎ αž˜αŸ’αž‡αž»αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αžΆαž“αž”αŸŠαžΈαžαž‘αžΈαž”αžΈαž–αžΈαž”αžΆαž (CNF0)αŸ” αžœαžΆαž€αŸ†αžŽαžαŸ‹αž–αž½αž€αžœαžΆαž‘αŸ…αž‡αžΆαžšαž”αŸ€αž” αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž’αžŽαŸ’αžαŸ‚αž.

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‡αžΆαž˜αž½αž™αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒ MODE αž“αž·αž„ CNF αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ’αžšαŸ„αž˜ αž“αž·αž„αžαžΆαž„αž›αžΎαŸ”

αžŠαžΌαž…αž˜αŸ’αžŠαŸαž…

#define CNF0_0 0x00000004
#define CNF0_1 0x00000008
#define CNF1_0 0x00000040
#define CNF1_1 0x00000080
#define CNF2_0 0x00000400
#define CNF2_1 0x00000800
#define CNF3_0 0x00004000
#define CNF3_1 0x00008000
#define CNF4_0 0x00040000
#define CNF4_1 0x00080000
#define CNF5_0 0x00400000
#define CNF5_1 0x00800000
#define CNF6_0 0x04000000
#define CNF6_1 0x08000000
#define CNF7_0 0x40000000
#define CNF7_1 0x80000000
#define CNF8_0 0x00000004
#define CNF8_1 0x00000008
#define CNF9_0 0x00000040
#define CNF9_1 0x00000080
#define CNF10_0 0x00000400
#define CNF10_1 0x00000800
#define CNF11_0 0x00004000
#define CNF11_1 0x00008000
#define CNF12_0 0x00040000
#define CNF12_1 0x00080000
#define CNF13_0 0x00400000
#define CNF13_1 0x00800000
#define CNF14_0 0x04000000
#define CNF14_1 0x08000000
#define CNF15_0 0x40000000
#define CNF15_1 0x80000000

#define MODE0_0 0x00000001
#define MODE0_1 0x00000002
#define MODE1_0 0x00000010
#define MODE1_1 0x00000020
#define MODE2_0 0x00000100
#define MODE2_1 0x00000200
#define MODE3_0 0x00001000
#define MODE3_1 0x00002000
#define MODE4_0 0x00010000
#define MODE4_1 0x00020000
#define MODE5_0 0x00100000
#define MODE5_1 0x00200000
#define MODE6_0 0x01000000
#define MODE6_1 0x02000000
#define MODE7_0 0x10000000
#define MODE7_1 0x20000000
#define MODE8_0 0x00000001
#define MODE8_1 0x00000002
#define MODE9_0 0x00000010
#define MODE9_1 0x00000020
#define MODE10_0 0x00000100
#define MODE10_1 0x00000200
#define MODE11_0 0x00001000
#define MODE11_1 0x00002000
#define MODE12_0 0x00010000
#define MODE12_1 0x00020000
#define MODE13_0 0x00100000
#define MODE13_1 0x00200000
#define MODE14_0 0x01000000
#define MODE14_1 0x02000000
#define MODE15_0 0x10000000
#define MODE15_1 0x20000000

αž˜αŸ’αž‡αž»αž›αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž…αŸ’αžšαž€ B (αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ - 0x40010C00) αž›αŸαžαž€αžΌαžŠαŸ–

#define _PORTB_(mem_offset) (*(volatile uint32_t *)(0x40010C00 + (mem_offset)))

#define _BRR  0x14
#define _BSRR 0x10
#define _CRL  0x00
#define _CRH  0x04

//ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стандартный SPI2: MOSI Π½Π° B15, CLK Π½Π° B13
//LAT ΠΏΡƒΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ MISO – B14

//ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΉ Π±ΠΈΡ‚, ΠΎΠ½ Π½Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ΅Π½
_PORTB_ (_CRH) &= ~(CNF15_0 | CNF14_0 | CNF13_0 | CNF12_0);

//Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для MOSI ΠΈ SCK
_PORTB_ (_CRH) |= CNF15_1 | CNF13_1;

//50 ΠœΠ“Ρ†, MODE = 11
_PORTB_ (_CRH) |= MODE15_1 | MODE15_0 | MODE14_1 | MODE14_0 | MODE13_1 | MODE13_0;

αž αžΎαž™αžαžΆαž˜αž“αŸ„αŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž“αž·αž™αž˜αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ LAT αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αž‰αŸαžšαžŠαŸ„αž™αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ BRR αž“αž·αž„ BSRRαŸ–

/*** LAT pulse – high, then low */
#define LAT_pulse() _PORTB_(_BSRR) = (1<<14); _PORTB_(_BRR) = (1<<14)

#define LAT_low() _PORTB_(_BRR) = (1<<14)

(LAT_low αžŠαŸ„αž™αž“αž·αž…αž›αž—αžΆαž– αžœαžΆαžαŸ‚αž„αžαŸ‚αžŠαžΌαž…αž“αŸ„αŸ‡ αžŸαžΌαž˜αž’αŸ„αž™αžœαžΆαž“αŸ…)

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αžœαžΈαŸ—αž‚αžΊαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸαŸ‡αž‚αžΊαž‡αžΆ STM32 αž–αž½αž€αž‚αŸαžŸαž“αŸ’αžŸαŸ†αžŸαŸ†αž…αŸƒαž’αž‚αŸ’αž‚αž·αžŸαž“αžΈ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΆαž‘αž·αž€αžΆαž“αŸƒαž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αž”αžΎαž€β€‹αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž˜αŸ‰αŸ„αž„

αž“αžΆαž‘αž·αž€αžΆβ€‹αžŠαŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αžŸαŸ’αž‚αžΆαž›αŸ‹β€‹αž•αž„β€‹αžŠαŸ‚αžšβ€‹αžαžΆβ€‹αž‡αžΆβ€‹αž“αžΆαž‘αž·αž€αžΆβ€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αž‘αž‘αž½αž›β€‹αžαž»αžŸβ€‹αžαŸ’αžšαžΌαžœβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž“αžΆαž‘αž·αž€αžΆβ€‹αŸ” αž αžΎαž™αž™αžΎαž„αž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž’αž€αŸ’αžŸαžšαž€αžΆαžαŸ‹ RCC αžšαž½αž…αž αžΎαž™αŸ” αž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαŸ– αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αžΆαž‘αž·αž€αžΆαŸ”

αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž“αž·αž™αžΆαž™αžαžΆαž„αž›αžΎ αž‡αžΆαžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’ αž•αŸ’αž“αŸ‚αž€αžŠαŸαž›αŸ†αž”αžΆαž€αž”αŸ†αž•αž»αžαž“αŸƒαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αžΆαž‘αž·αž€αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αžŠαŸ„αž™αž˜αž“αž»αžŸαŸ’αžŸαž˜αž€αž–αžΈ STM αžŠαŸ‚αž›αž™αžΎαž„αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž–αž½αž€αž‚αŸαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ (αž‡αžΆαžαŸ’αž˜αžΈαž˜αŸ’αžαž„αž‘αŸ€αžαžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž•αŸ’αžαž›αŸ‹αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… αž‚αŸαž αž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹ Di HaltαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαžαžΎαžœαžΆαž…αŸ’αžšαž‘αŸ†αž”αŸ‰αž»αžŽαŸ’αžŽαžΆ) αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžαŸ‚αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΆαž‘αž·αž€αžΆαž‡αž»αŸ†αžœαž·αž‰ (αž“αžΆαž‘αž·αž€αžΆαž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αžΎαž€αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡)αŸ” αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž…αžΌαžšαž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹ RCC αžœαžΆαž‚αžΊαž“αŸ…αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„αž“αŸƒ "Memory Map"αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

#define _RCC_(mem_offset) (*(volatile uint32_t *)(0x40021000 + (mem_offset)))

αž αžΎαž™β€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€β€‹αž…αž»αž…β€‹αž›αžΎβ€‹αžαŸ†αžŽβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αžšαž€β€‹αž’αŸ’αžœαžΈβ€‹αž˜αž½αž™β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž…αžΆαž“ αž¬β€‹αž›αŸ’αž’β€‹αž‡αžΆαž„β€‹αž“αŸαŸ‡β€‹αž‘αŸ…β€‹αžαžΆαž˜β€‹αž€αžΆαžšβ€‹αž–αž·αž–αžŽαŸŒαž“αžΆβ€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžŠαŸ‚αž›β€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž–αžΈβ€‹αž•αŸ’αž“αŸ‚αž€β€‹αž’αŸ†αž–αžΈ αž”αžΎαž€αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡. αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžšαž€αžƒαžΎαž‰ RCC_APB1ENR αž“αž·αž„ RCC_APB2ENRαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž αžΎαž™αžαžΆαž˜αž“αŸ„αŸ‡ αž–αž½αž€αžœαžΆαž˜αžΆαž“αž”αŸŠαžΈαžαžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžšαž”αžŸαŸ‹ SPI2, IOPB (I/O Port B) αž“αž·αž„αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸ (AFIO)αŸ”

#define _APB2ENR 0x18
#define _APB1ENR 0x1C

#define IOPBEN 0x0008
#define SPI2EN 0x4000
#define AFIOEN 0x0001

//Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π° B ΠΈ Π°Π»ΡŒΡ‚. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
_RCC_(_APB2ENR) |= IOPBEN | AFIOEN;

//Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ  Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SPI2
_RCC_(_APB1ENR) |= SPI2EN;

αž›αŸαžαž€αžΌαžŠαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž’αžΆαž…αžšαž€αž”αžΆαž“ αž“αŸ…αž‘αžΈαž“αŸαŸ‡.

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž±αž€αžΆαžŸ αž“αž·αž„αž…αž„αŸ‹αžŸαžΆαž€αž›αŸ’αž”αž„ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž—αŸ’αž‡αžΆαž”αŸ‹ DM634 αžŠαžΌαž…αž“αŸαŸ‡αŸ– DAI αž‘αŸ… PB15, DCK αž‘αŸ… PB13, LAT αž‘αŸ… PB14αŸ” αž™αžΎαž„αž•αŸ’αžαž›αŸ‹αžαžΆαž˜αž–αž›αžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αžΎαž€αž”αžšαž–αžΈ 5 αžœαŸ‰αž»αž›αž€αž»αŸ†αž—αŸ’αž›αŸαž…αž—αŸ’αž‡αžΆαž”αŸ‹αžŠαžΈαŸ”

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

STM8 PWM

PWM αž“αŸ…αž›αžΎ STM8

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž‘αžΎαž”αžαŸ‚αžšαŸ€αž”αž…αŸ†αž‚αž˜αŸ’αžšαŸ„αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŠαžΎαž˜αŸ’αž”αžΈαž–αŸ’αž™αžΆαž™αžΆαž˜αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αž»αžαž„αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒαž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαŸ‚αž›αž˜αž·αž“αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹ αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαŸ‚αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αž·αž“αž”αž‰αŸ’αž…αž”αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αŸ’αž“αž€αž•αž›αž·αžαžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αž€αžœαŸ‚αž„αž“αŸ„αŸ‡αž‘αŸαŸ” STM8 αž‚αžΊαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž½αž“αžΆαž‘αžΈαž“αŸαŸ‡αŸ– αž‘αžΈαž˜αž½αž™ αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž”αž“αŸ’αž‘αŸ‡αž…αž·αž“αž–αžΈαžšαž”αžΈαž‡αžΆαž˜αž½αž™ STM8S103 αž αžΎαž™αž‘αžΈαž–αžΈαžšαžœαžΆαž˜αž·αž“αž˜αžΆαž“αž”αŸ’αžšαž‡αžΆαž”αŸ’αžšαž·αž™αž—αžΆαž–αžαŸ’αž›αžΆαŸ†αž„αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™αž€αžΆαžšαž›αŸ’αž”αž½αž„αž±αŸ’αž™αž’αžΆαž“ αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸ…αž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž‚αžΊαžŸαŸ’αžαž·αžαž“αŸ…αž›αžΎαž€αž„αŸ’αžœαŸ‡αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž€αŸαž˜αžΆαž“αž•αž„αžŠαŸ‚αžšαŸ” αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ ΠΈ αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž™αŸ„αž„ RM0016αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαž˜αž½αž™αž˜αžΆαž“ pinout αž“αž·αž„αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“, αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαž–αžΈαžš - αž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” STM8 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆ C αž€αŸ’αž“αž»αž„ IDE αžŠαŸαž‚αž½αžšαž±αŸ’αž™αž—αŸαž™αžαŸ’αž›αžΆαž… ST Visual Develop.

αž“αžΆαž‘αž·αž€αžΆ αž“αž·αž„ I/O

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ STM8 αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž”αŸ’αžšαŸαž€αž„αŸ‹ 2 ​​MHz αžœαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž—αŸ’αž›αžΆαž˜αŸ—αŸ”

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
HSI (High Speed ​​​​Internal) αž“αžΆαž‘αž·αž€αžΆ
αžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆ HSI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž˜αž€αž–αžΈ 16 MHz RC oscillator αžαžΆαž„αž€αŸ’αž“αž»αž„ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αžŠαŸ‚αž›αž’αžΆαž…αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžΆαž“ (1 αžŠαž›αŸ‹ 8) αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž”αŸ‚αž„αž…αŸ‚αž€αž“αžΆαž‘αž·αž€αžΆ (CLK_CKDIVR) αŸ”
αž…αŸ†αžŽαžΆαŸ†αŸ– αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž›αŸ†αž™αŸ„αž› HSI RC αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€ 8 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‡αžΆαž”αŸ’αžšαž—αž–αž“αžΆαŸ†αž˜αž»αžαž“αŸƒαžŸαž‰αŸ’αž‰αžΆαž“αžΆαž‘αž·αž€αžΆαŸ”

αž™αžΎαž„αžšαž€αžƒαžΎαž‰αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ refman αž αžΎαž™αžƒαžΎαž‰αžαžΆαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αž’αžΆαžαŸ–

#define CLK_CKDIVR *(volatile uint8_t *)0x0050C6

CLK_CKDIVR &= ~(0x18);

αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PWM αž“αž·αž„αž—αŸ’αž‡αžΆαž”αŸ‹ LEDs αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž› pinoutαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž˜αžΆαž“αž‘αŸ†αž αŸ†αžαžΌαž… αž˜αž»αžαž„αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž’αžΆαž€αž“αŸ…αž›αžΎαž˜αŸ’αž‡αž»αž›αžαŸ‚αž˜αž½αž™αŸ” αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžαž„αŸ’αž€αŸ€αž”αž€αžΆαžšαŸ‰αŸαž‚αžΊ "αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸ" αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžαžΌαžšαžŠαŸ„αž™ "αž”αŸƒαž‡αž˜αŸ’αžšαžΎαžŸ" (αž‡αž˜αŸ’αžšαžΎαžŸαž”αŸƒ) - αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž‡αžΆ Atmega fuses αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž˜αŸ’αž›αŸƒαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαžΆαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αŸαž–αŸ’αžšαŸ„αŸ‡ αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž€αž˜αŸ’αž˜αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αŸ” αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎ ST Visual Programmer (αž‘αžΆαž‰αž™αž€αž‡αžΆαž˜αž½αž™ Visual Develop) αžŠαŸ‚αž›αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸƒαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” pinout αž”αž„αŸ’αž αžΆαž‰αžαžΆαž˜αŸ’αž‡αž»αž› CH1 αž“αž·αž„ CH2 αžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŠαŸ†αž”αžΌαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαž„αŸ’αž€αŸ€αž”αž€αžΆαžšαŸ‰αŸαŸ” αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ AFR1 αž“αž·αž„ AFR0 αž”αŸŠαžΈαžαž“αŸ…αž€αŸ’αž“αž»αž„ STVP αž αžΎαž™αž‘αžΈαž–αžΈαžšαž€αŸαž“αžΉαž„αž•αŸ’αž‘αŸαžšαž›αž‘αŸ’αž’αž•αž› CH1 αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαž–αžΈ PD4 αž‘αŸ… PC5 αž•αž„αžŠαŸ‚αžšαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ 6 pins αž“αžΉαž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ LEDs: PC6, PC7 αž“αž·αž„ PC3 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŠαŸ†αž”αžΌαž„ PC5, PD3 αž“αž·αž„ PA3 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αžΎαž€αž‘αžΈαž–αžΈαžšαŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ I/O pins αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž“αŸ…αž›αžΎ STM8 αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž‘αžΌαž‡αžΈαžαž›αž‡αžΆαž„αž“αŸ…αž›αžΎ STM32αŸ–

  • αžŸαŸ’αž‚αžΆαž›αŸ‹αž–αžΈαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αžŸαžŠαŸ…αž‘αž·αž“αŸ’αž“αž“αŸαž™ Atmega DDR (αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αž·αžŸαžŠαŸ…αž‘αž·αž“αŸ’αž“αž“αŸαž™): 1 = αž‘αž·αž“αŸ’αž“αž•αž›;
  • αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžœαžαŸ’αžαž»αž”αž‰αŸ’αž‡αžΆαžŠαŸ†αž”αžΌαž„ CR1 αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž•αž›αž€αŸ†αžŽαžαŸ‹αžšαž”αŸ€αž”αžšαž»αž‰αž‘αžΆαž‰ (1) αž¬αž”αžΎαž€αž”αž„αŸ’αž αžΌαžš (0); αžŠαŸ„αž™αžŸαžΆαžšαžαŸ’αž‰αž»αŸ†αž—αŸ’αž‡αžΆαž”αŸ‹ LEDs αž‘αŸ…αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž‡αžΆαž˜αž½αž™ cathodes αžαŸ’αž‰αž»αŸ†αž‘αž»αž€αžŸαžΌαž“αŸ’αž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ”
  • αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αžΈαž–αžΈαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ CR2 αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž•αž›αž€αŸ†αžŽαžαŸ‹αž›αŸ’αž”αžΏαž“αž“αžΆαž‘αž·αž€αžΆ: 1 = 10 MHz

#define PA_DDR     *(volatile uint8_t *)0x005002
#define PA_CR2     *(volatile uint8_t *)0x005004
#define PD_DDR     *(volatile uint8_t *)0x005011
#define PD_CR2     *(volatile uint8_t *)0x005013
#define PC_DDR     *(volatile uint8_t *)0x00500C
#define PC_CR2     *(volatile uint8_t *)0x00500E

PA_DDR = (1<<3); //output
PA_CR2 |= (1<<3); //fast
PD_DDR = (1<<3); //output
PD_CR2 |= (1<<3); //fast
PC_DDR = ((1<<3) | (1<<5) | (1<<6) | (1<<7)); //output
PC_CR2 |= ((1<<3) | (1<<5) | (1<<6) | (1<<7)); //fast

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ PWM

αžŠαŸ†αž”αžΌαž„β€‹αž™αžΎαž„β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž–αžΆαž€αŸ’αž™αŸ–

  • αž”αŸ’αžšαŸαž€αž„αŸ‹ PWM - αž”αŸ’αžšαŸαž€αž„αŸ‹αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‚αžΌαžŸ;
  • αž•αŸ’αž‘αž»αž€αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·, AR - αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž’αžΆαž…αž•αŸ’αž‘αž»αž€αž”αžΆαž“αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž“αžΉαž„αžšαžΆαž”αŸ‹ (αžšαž™αŸˆαž–αŸαž›αž‡αžΈαž–αž…αžš);
  • αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ UEV - αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž”αžΆαž“αžšαžΆαž”αŸ‹αžŠαž›αŸ‹ AR αŸ”
  • αžœαžŠαŸ’αžαž€αžΆαžαž–αŸ’αžœαž€αž·αž…αŸ’αž… PWM - αžœαžŠαŸ’αžαž€αžΆαžαž–αŸ’αžœαž€αž·αž…αŸ’αž… PWM αžŠαŸ‚αž›αž‡αžΆαžšαžΏαž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ "αž€αžαŸ’αžαžΆαž€αžΆαžαž–αŸ’αžœαž€αž·αž…αŸ’αž…" αŸ”
  • αž…αžΆαž”αŸ‹αž™αž€/αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžαž˜αŸ’αž›αŸƒ - αžαž˜αŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž™αž€/αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž”αžΆαž“αžšαžΆαž”αŸ‹ αž“αžΉαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™ (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ PWM αžœαžΆαž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžŸαž‰αŸ’αž‰αžΆαž‘αž·αž“αŸ’αž“αž•αž›);
  • αžαž˜αŸ’αž›αŸƒαž•αŸ’αž‘αž»αž€αž‡αžΆαž˜αž»αž“ - αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‡αžΆαž˜αž»αž“αŸ” αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžαž˜αŸ’αž›αŸƒ αž˜αž·αž“αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“αž‘αŸ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž€αŸ†αž–αž»αž„αž‚αžΌαžŸ αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸ αžœαžŠαŸ’αž PWM αž“αžΉαž„αžαžΌαž…αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαž˜αŸ’αž›αŸƒαž”αž‰αŸ’αž‡αžΌαž“αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž αžΎαž™αž‘αžΆαž‰αž…αŸαž‰αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžˆαžΆαž“αžŠαž›αŸ‹αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαžšαžΆαž”αŸ‹αžαž™αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹αžœαžΆ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αŸ”
  • αžαž˜αŸ’αžšαžΉαž˜αž‚αŸ‚αž˜ ΠΈ αžšαž”αŸ€αž”αžαž˜αŸ’αžšαžΉαž˜αž€αžŽαŸ’αžαžΆαž› - αž€αžΆαžšαžαž˜αŸ’αžšαžΉαž˜αžαžΆαž˜αž–αŸ’αžšαŸ†αžŠαŸ‚αž“ αž“αž·αž„αž“αŸ…αž€αžŽαŸ’αžαžΆαž› αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„ Atmel's PWM αž›αžΏαž“ ΠΈ PWM αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”.
  • OciREF, αž‘αž·αž“αŸ’αž“αž•αž›αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžŸαž‰αŸ’αž‰αžΆαž™αŸ„αž„ - αžŸαž‰αŸ’αž‰αžΆαž‘αž·αž“αŸ’αž“αž•αž›αž™αŸ„αž„ αžαžΆαž˜αž–αž·αžαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž›αžΎαž˜αŸ’αž‡αž»αž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” PWM αŸ”

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžšαž½αž…αž˜αž€αž αžΎαž™αž–αžΈ pinout αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžœαŸαž›αžΆαž–αžΈαžšαž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž– PWM - αž‘αžΈαž˜αž½αž™αž“αž·αž„αž‘αžΈαž–αžΈαžšαŸ” αž‘αžΆαŸ†αž„αž–αžΈαžšαž‚αžΊ 16-bit αžŠαŸ‚αž›αž‘αžΈαž˜αž½αž™αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“ (αž‡αžΆαž–αž·αžŸαŸαžŸαžœαžΆαž’αžΆαž…αžšαžΆαž”αŸ‹αž”αžΆαž“αž‘αžΆαŸ†αž„αž‘αžΎαž„αž›αžΎ αž“αž·αž„αž…αž»αŸ‡αž€αŸ’αžšαŸ„αž˜)αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αžΆαŸ†αž„αž–αžΈαžšαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž˜αžΎαŸ—αž‚αŸ’αž“αžΆ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αžΈαž–αžΈαžšαžŠαŸ‚αž›αž€αžΆαž“αŸ‹αžαŸ‚αž’αž“αŸ‹αž‡αžΆαž„αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎαžšαž”αžŸαŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™αŸ” αž”αž‰αŸ’αž αžΆαžαŸ’αž›αŸ‡αž‚αžΊαžαžΆαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž˜αž»αžαž„αžΆαžš PWM αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž‡αŸ†αž–αžΌαž€αž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŠαŸ†αž”αžΌαž„ (17.5.7 PWM Mode) αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž›αŸ„αžαž‘αŸ…αž€αŸ’αžšαŸ„αž™αž–αŸαž‰αž―αž€αžŸαžΆαžšαž‚αŸ’αžšαž”αŸ‹αž–αŸαž›αŸ”

PWM αž“αŸ…αž›αžΎ STM8 αž˜αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αž‡αžΆαž„ PWM αž“αŸ…αž›αžΎ Atmega:

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αžαž˜αŸ’αžšαžΉαž˜αž–αŸ’αžšαŸ†αžŠαŸ‚αž“ PWM
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αžŽαž“αžΈαž–αžΈαž”αžΆαžαž‘αžΎαž„αž›αžΎ
αž€αžΆαžšαžšαžΆαž”αŸ‹αž–αžΈαž”αžΆαžαž‘αžΎαž„αž›αžΎαž‚αžΊαžŸαž€αž˜αŸ’αž˜ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸŠαžΈαž DIR αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ TIM_CR1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž’αžΆαž
αž§αž‘αžΆαž αžšαžŽαŸ:
αž§αž‘αžΆαž αžšαžŽαŸαž”αŸ’αžšαžΎαžšαž”αŸ€αž” PWM αžŠαŸ†αž”αžΌαž„αŸ” αžŸαž‰αŸ’αž‰αžΆαž™αŸ„αž„ PWM OCiREF αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαžαŸ’αž–αžŸαŸ‹αžŠαžšαžΆαž”αžŽαžΆ TIM1_CNT < TIM1_CCRi αŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸαžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαž˜αŸ’αž›αŸƒαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ TIM1_CCRi αž’αŸ†αž‡αžΆαž„αžαž˜αŸ’αž›αŸƒ autoload (αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ TIM1_ARR) αž“αŸ„αŸ‡αžŸαž‰αŸ’αž‰αžΆ OCiREF αž“αžΉαž„αžŸαŸ’αžαž·αžαž“αŸ…αž›αŸαž 1αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαž˜αŸ’αž›αŸƒαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‚αžΊ 0 αž“αŸ„αŸ‡ OCiREF αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž“αŸ…αžŸαžΌαž“αŸ’αž™αŸ”...

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ STM8 αž’αŸ†αž‘αž»αž„αž–αŸαž› αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž–αž·αž“αž·αžαŸ’αž™αž‡αžΆαž˜αž»αž“αžŸαž·αž“ αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžαž˜αŸ’αž›αŸƒαž αžΎαž™αž˜αžΆαž“αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αž„αŸ’αž€αžΎαžαžŸαž‰αŸ’αž‰αžΆαž™αŸ„αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžšαž”αžŸαŸ‹ Atmega αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αž”αžΌαž„ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” αž›αž‘αŸ’αž’αž•αž› compare value == 0 αž›αž‘αŸ’αž’αž•αž›αž‚αžΊαž‡αžΆαž˜αŸ’αž‡αž»αž› αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αžœαž·αž’αžΈαžŽαžΆαž˜αž½αž™ (αž§αž‘αžΆαž αžšαžŽαŸ αžŠαŸ„αž™αžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžαžΆαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ)αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αž’αŸ’αžœαžΎαŸ– 8-bit PWM (AR == 255) αžšαžΆαž”αŸ‹αž–αžΈαž”αžΆαžαžŠαž›αŸ‹αž€αŸ†αž–αžΌαž› αžαž˜αŸ’αžšαžΉαž˜αžαžΆαž˜αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž’αŸ†αž–αžΌαž›αž—αŸ’αž›αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαŸ„αž™ cathodes PWM αž‚αž½αžšαžαŸ‚αž”αž‰αŸ’αž…αŸαž‰ 0 (LED on) αžšαž αžΌαžαžŠαž›αŸ‹ αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžαž˜αŸ’αž›αŸƒ αž“αž·αž„ 1 αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαŸ”

αž™αžΎαž„αž”αžΆαž“αž’αžΆαž“αžαŸ’αž›αŸ‡αžšαž½αž…αž αžΎαž™ αžšαž”αŸ€αž” PWMαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αžšαž€αžƒαžΎαž‰αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαžŠαŸ„αž™αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžƒαŸ’αž›αžΆαž“αŸαŸ‡ (18.6.8 - TIMx_CCMR1)αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
110αŸ– αžšαž”αŸ€αž” PWM αžŠαŸ†αž”αžΌαž„ – αž“αŸ…αž–αŸαž›αžšαžΆαž”αŸ‹αž–αžΈαž”αžΆαžαžŠαž›αŸ‹αž€αŸ†αž–αžΌαž› αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαž‘αžΈαž˜αž½αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› TIMx_CNT < TIMx_CCR1 αŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαž‘αžΈαž˜αž½αž™αž‚αžΊαž’αžŸαž€αž˜αŸ’αž˜αŸ” [αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž˜αžΆαž“αž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαž»αžŸαž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ 1] 111αŸ– αžšαž”αŸ€αž” PWM αž‘αžΈαž–αžΈαžš – αž“αŸ…αž–αŸαž›αžšαžΆαž”αŸ‹αž–αžΈαž”αžΆαžαž‘αŸ…αž€αŸ†αž–αžΌαž› αž†αžΆαž“αŸ‚αž›αž‘αžΈαž˜αž½αž™αž‚αžΊαž’αžŸαž€αž˜αŸ’αž˜αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› TIMx_CNT < TIMx_CCR1 αŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαž‘αžΈαž˜αž½αž™αž‚αžΊαžŸαž€αž˜αŸ’αž˜αŸ”

αžŠαŸ„αž™αžŸαžΆαžš LEDs αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… MK αžŠαŸ„αž™ cathodes αžšαž”αŸ€αž”αž‘αžΈαž–αžΈαžšαžŸαžΆαž€αžŸαž˜αž“αžΉαž„αž™αžΎαž„ (αž‘αžΈαž˜αž½αž™αž•αž„αžŠαŸ‚αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž˜αž·αž“αž‘αžΆαž“αŸ‹αžŠαžΉαž„αž“αŸ…αž‘αžΎαž™)αŸ”

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
Bit 3 OC1PEαŸ– αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš pin 1 αž‡αžΆαž˜αž»αž“
0αŸ– αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‡αžΆαž˜αž»αž“αž“αŸ…αž›αžΎ TIMx_CCR1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž‘αŸ… TIMx_CCR1 αž“αŸ…αž–αŸαž›αžŽαžΆαž€αŸαž”αžΆαž“αŸ” αžαž˜αŸ’αž›αŸƒαžαŸ’αž˜αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž›αžΆαž˜αŸ—αŸ”
1: αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‡αžΆαž˜αž»αž“αž“αŸ…αž›αžΎ TIMx_CCR1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αŸ” αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžΆαž“/សរសេរ αž…αžΌαž›αž”αŸ’αžšαžΎαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‡αžΆαž˜αž»αž“αŸ” αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‡αžΆαž˜αž»αž“ TIMx_CCR1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžŸαŸ’αžšαž˜αŸ„αž›αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αžΆαž”αŸ‹αžŠαŸαžαž“αžΈαž˜αž½αž™αŸ—αŸ”
*αž…αŸ†αžŽαžΆαŸ†αŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž”αŸ€αž” PWM αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‡αžΆαž˜αž»αž“αžαŸ’αžšαžΌαžœαžαŸ‚αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαž‰αŸ’αž‰αžΆαžαŸ‚αž˜αž½αž™αž‘αŸ (αž”αŸŠαžΈαž OPM αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ TIMx_CR1) αŸ”

αž˜αž·αž“αž’αžΈαž‘αŸ αžαŸ„αŸ‡αž”αžΎαž€αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαž‘αžΆαŸ†αž„αž”αžΈαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαŸ–

#define TIM2_CCMR1 *(volatile uint8_t *)0x005307
#define TIM2_CCMR2 *(volatile uint8_t *)0x005308
#define TIM2_CCMR3 *(volatile uint8_t *)0x005309

#define PWM_MODE2   0x70 //PWM mode 2, 0b01110000
#define OCxPE       0x08 //preload enable

TIM2_CCMR1 = (PWM_MODE2 | OCxPE);
TIM2_CCMR2 = (PWM_MODE2 | OCxPE);
TIM2_CCMR3 = (PWM_MODE2 | OCxPE);

AR αž˜αžΆαž“αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΆαŸ†αž”αžΈαž”αŸŠαžΈαž αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αŸ–

#define TIM2_ARRH  *(volatile uint8_t *)0x00530F
#define TIM2_ARRL  *(volatile uint8_t *)0x005310

TIM2_ARRH = 0;
TIM2_ARRL = 255;

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαž’αžΆαž…αžšαžΆαž”αŸ‹αž”αžΆαž“αžαŸ‚αž–αžΈαž”αžΆαžαž‘αŸ…αž€αŸ†αž–αžΌαž› αžαž˜αŸ’αžšαžΉαž˜αžαžΆαž˜αž–αŸ’αžšαŸ†αžŠαŸ‚αž“ αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸαŸ” αžαŸ„αŸ‡αž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαŸαž€αž„αŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆ 256αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžš αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ TIM2_PSCR αž αžΎαž™αž‡αžΆαžαžΆαž˜αž–αž›αž–αžΈαžšαŸ–

#define TIM2_PSCR  *(volatile uint8_t *)0x00530E

TIM2_PSCR = 8;

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž”αžΎαž€αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αž”αž‰αŸ’αž αžΆαž‘αžΈαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž…αžΆαž”αŸ‹αž™αž€/αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαŸ– αž˜αžΆαž“β€‹αž–αžΈαžš αž”αžΈβ€‹αž”αŸ‰αž»αžŸαŸ’αžαž·αŸβ€‹αžŠαŸ‚αž›β€‹αžšαžΆαž™αž”αŸ‰αžΆαž™β€‹αž–αžΆαžŸαž–αŸαž‰β€‹αž–αž½αž€αžœαžΆβ€‹αžŠαŸ„αž™β€‹αž˜αž·αž“β€‹αžŸαŸŠαžΈαž˜αŸαž‘αŸ’αžšαžΈαŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž€αŸαž’αžΆαž…αžšαŸ€αž“αžαžΆαžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αž“αŸ’αž‘αžΆαžαŸ‹αžšαžΆαž„αž”αŸ‰αžΌαž›αž“αŸƒαžŸαž‰αŸ’αž‰αžΆ, i.e. αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαžšαž”αŸ€αž” PWM 1αŸ” αž™αžΎαž„αžŸαžšαžŸαŸαžšαŸ–

#define TIM2_CCER1 *(volatile uint8_t *)0x00530A
#define TIM2_CCER2 *(volatile uint8_t *)0x00530B

#define CC1E  (1<<0) // CCER1
#define CC2E  (1<<4) // CCER1
#define CC3E  (1<<0) // CCER2

TIM2_CCER1 = (CC1E | CC2E);
TIM2_CCER2 = CC3E;

αž αžΎαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ TIMx_CR1αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

#define TIM2_CR1   *(volatile uint8_t *)0x005300

TIM2_CR1 |= 1;

αž…αžΌαžšαž™αžΎαž„αžŸαžšαžŸαŸαžš analogue αžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸƒ AnalogWrite() αžŠαŸ‚αž›αž“αžΉαž„αž•αŸ’αž‘αŸαžšαžαž˜αŸ’αž›αŸƒαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‘αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αŸ” αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αŸ’αž™αžΆαž€αžšαžŽαŸ αž…αžΆαž”αŸ‹αž™αž€/αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž˜αžΆαž“αž–αžΈαžšαž“αŸƒαž–αž½αž€αžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αžΆαž“αŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αŸ– αž›αŸ†αžŠαžΆαž”αŸ‹αž‘αžΆαž” 8 αž”αŸŠαžΈαžαž“αŸ…αž€αŸ’αž“αž»αž„ TIM2_CCRxL αž“αž·αž„αž›αŸ†αžŠαžΆαž”αŸ‹αžαŸ’αž–αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ TIM2_CCRxH αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž PWM 8 αž”αŸŠαžΈαž αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸ‚αž”αŸŠαžΈαžαžŠαŸ‚αž›αž˜αž·αž“αžŸαžΌαžœαžŸαŸ†αžαžΆαž“αŸ‹αŸ–

#define TIM2_CCR1L *(volatile uint8_t *)0x005312
#define TIM2_CCR2L *(volatile uint8_t *)0x005314
#define TIM2_CCR3L *(volatile uint8_t *)0x005316

void setRGBled(uint8_t r, uint8_t g, uint8_t b)
{
    TIM2_CCR1L = r;
    TIM2_CCR2L = g;
    TIM2_CCR3L = b;
}

αž’αŸ’αž“αž€αž’αžΆαž“αžŠαŸ‚αž›αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž“αžΉαž„αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžƒαžΎαž‰αžαžΆαž™αžΎαž„αž˜αžΆαž“ PWM αžαŸ’αžŸαŸ„αž™αž”αž“αŸ’αžαž·αž… αž˜αž·αž“αž’αžΆαž…αž•αž›αž·αžαž€αžΆαžšαž”αŸ†αž–αŸαž‰αž”αžΆαž“ 100% (αž“αŸ…αžαž˜αŸ’αž›αŸƒαž’αžαž·αž”αžšαž˜αžΆ 255 αžŸαž‰αŸ’αž‰αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžŠαŸ’αžαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžœαŸαž›αžΆαž˜αž½αž™)αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ LED αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž’αŸ’αžœαžΈαž‘αŸ αž αžΎαž™αž’αŸ’αž“αž€αž’αžΆαž“αžŠαŸ‚αž›αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž’αžΆαž…αž‘αžΆαž™αž–αžΈαžšαž”αŸ€αž”αž‡αž½αžŸαž‡αž»αž›αžœαžΆαž”αžΆαž“αŸ”

PWM αž“αŸ…αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž™αžΎαž„αž”αž“αŸ’αžαž‘αŸ…αž‘αžΈαž˜αž½αž™αŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž˜αž½αž™αž˜αžΆαž“αž”αŸŠαžΈαžαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆ (αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαžΆαž”αŸŠαžΈαžαž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž“αŸ…αžαŸ‚ "αž€αž€αŸ‹αž‘αž»αž€" αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαž‚αžΊαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹)αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž…αž˜αŸ’αž›αž„αž€αžΌαžŠαŸ” αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž˜αŸ’αž›αŸƒαž“αŸƒαž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž”αŸ’αžšαŸαž€αž„αŸ‹, αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ ... αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŠαŸ†αž”αžΌαž„αž…αž„αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž˜αž·αž“αž˜αŸ‚αž“αžαžΆαž˜αž–αž›αž–αžΈαžšαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαž˜αŸ’αž›αŸƒ 16 αž”αŸŠαžΈαžαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž–αžΈαžš Prescaler αžαŸ’αž–αžŸαŸ‹αŸ” ΠΈ αž‘αžΆαž”. αž™αžΎαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„ αž αžΎαž™... αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŠαŸ†αž”αžΌαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ” αžαžΎβ€‹αž˜αžΆαž“β€‹αžšαžΏαž„β€‹αž’αŸ’αžœαžΈβ€‹αž€αžΎαžαž‘αžΎαž„?

αž”αž‰αŸ’αž αžΆαž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αžΎαž›αž•αŸ’αž“αŸ‚αž€αž‘αžΆαŸ†αž„αž˜αžΌαž›αž’αŸ†αž–αžΈαž”αž‰αŸ’αž‡αžΈαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈ 1 αžŠαŸ‚αž›αž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž•αŸ’αž“αŸ‚αž€αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαž˜αž·αž“αž˜αžΆαž“αŸ” αž“αžΉαž„αž˜αžΆαž“ 17.7.30 αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ†αž”αŸ‚αž€ (TIM1_BKR)αžŠαŸ‚αž›αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸŠαžΈαžαž“αŸαŸ‡:

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αž‘αŸ’αž’αž•αž›αžŸαŸ†αžαžΆαž“αŸ‹

#define TIM1_BKR   *(volatile uint8_t *)0x00526D

TIM1_BKR = (1<<7);

αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž₯αž‘αžΌαžœαž“αŸαŸ‡αž›αŸαžαž€αžΌαžŠ αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡.

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

STM8 Multiplex

αž–αž αž»αž‚αž»αžŽαž“αŸ…αž›αžΎ STM8

αž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αž“αžΆαžαžαžΌαž…αž‘αžΈαž”αžΈαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž’αŸ†αž–αžΌαž› RGB αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΆαŸ†αž”αžΈαž‘αŸ…αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” PWM αž αžΎαž™αž’αŸ’αžœαžΎαž±αŸ’αž™αž–αž½αž€αžœαžΆαž”αž„αŸ’αž αžΆαž‰αž–αžŽαŸŒαžαž»αžŸαŸ—αž‚αŸ’αž“αžΆαŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž“αŸƒ LED multiplexing αžŠαŸ‚αž›αž‚αžΊαžαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΎαž€ αž“αž·αž„αž”αž·αž‘ LEDs αž™αŸ‰αžΆαž„αž›αžΏαž“ αžœαžΆαž“αžΉαž„αž αžΆαž€αŸ‹αž”αžΈαžŠαžΌαž…αž‡αžΆαž–αž½αž€αž™αžΎαž„αžαžΆαž–αž½αž€αž‚αŸαž”αžΎαž€αž‡αžΆαž“αž·αž…αŸ’αž… (αž—αžΆαž–αž’αžαŸ‹αž’αŸ’αž˜αžαŸ‹αž“αŸƒαž…αž€αŸ’αžαž»αžœαž·αžŸαŸαž™αž“αž·αž…αž›αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž™αž›αŸ‹αžƒαžΎαž‰αžŠαŸ‚αž›αž˜αžΎαž›αžƒαžΎαž‰) αŸ” αžαŸ’αž‰αž»αŸ†αž’αŸ’αž›αžΆαž”αŸ‹αž’αŸ’αžœαžΎ αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡αž“αŸ…αž›αžΎ Arduino.

αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž„αžΆαžšαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

  • αž—αŸ’αž‡αžΆαž”αŸ‹ anode αž“αŸƒ RGB LED αžŠαŸ†αž”αžΌαž„;
  • αž”αŸ†αž—αŸ’αž›αžΊαžœαžΆαž”αž‰αŸ’αž‡αžΌαž“αžŸαž‰αŸ’αž‰αžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αŸ… cathodes;
  • αžšαž„αŸ‹αž…αžΆαŸ†αžšαž αžΌαžαžŠαž›αŸ‹αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαžœαžŠαŸ’αž PWM;
  • αž—αŸ’αž‡αžΆαž”αŸ‹ anode αž“αŸƒ LED RGB αž‘αžΈαž–αžΈαžš;
  • αž”αŸ†αž—αŸ’αž›αžΊαžœαžΆ...

αž’αž‰αŸ’αž…αžΉαž„αŸ”αž›αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸαžŸαŸ’αžšαžŸαŸ‹αžŸαŸ’αž’αžΆαžαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαžαžΆ anode αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž αžΎαž™ LED αžαŸ’αžšαžΌαžœαž”αžΆαž“ "αž”αž‰αŸ’αž†αŸαŸ‡" αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αŸ” αž˜αŸ‚αž“αž αžΎαž™αž¬αžŸαŸ’αž‘αžΎαžšαžαŸ‚αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŽαžΆαž€αŸαžŠαŸ„αž™ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžŸαžšαžŸαŸαžšαž€αžΌαžŠαžŠαŸ‚αž›αž“αžΉαž„αž”αž‰αŸ’αž…αŸαž‰αžαž˜αŸ’αž›αŸƒαž‡αžΆαž”αžΈαž”αŸ‰αž»αžŸαŸ’αžαž·αŸαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžš αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αž½αž€αžœαžΆαž“αŸ…αž–αŸαž› UEV αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αŸ…αžŠαž›αŸ‹ αž αžΎαž™αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš RGB LED αžŠαŸ‚αž›αžŸαž€αž˜αŸ’αž˜αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ”

αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž”αŸ’αžαžΌαžš LED αž‚αžΊαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαž "αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžœαžΈαžŠαŸαž’αžΌ" αžŠαŸ‚αž›αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αžΆαžšαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αŸ–

uint8_t colors[8][3];

αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžŽαŸŒαž“αŸƒ LED αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αžœαžΆαž“αžΉαž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžšαžŸαŸαžšαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαžšαŸαž“αŸαŸ‡αŸ” αž αžΎαž™αž’αžαŸαžšαž“αžΉαž„αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž…αŸ†αž“αž½αž“ LED αžŸαž€αž˜αŸ’αž˜

uint8_t cnt;

Demux

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž–αž αž»αž‚αž»αžŽαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš αž…αŸ†αž αžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ CD74HC238 demultiplexer αŸ” Demultiplexer - αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ <<. αžαžΆαž˜αžšαž™αŸˆαž˜αŸ’αž‡αž»αž›αž”αž‰αŸ’αž…αžΌαž›αž”αžΈ (αž”αŸŠαžΈαž 0, 1 αž“αž·αž„ 2) αž™αžΎαž„αž•αŸ’αžαž›αŸ‹αž›αŸαžαž”αžΈαž”αŸŠαžΈαž X αž αžΎαž™αž‡αžΆαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” αžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž›αŸαžαž›αž‘αŸ’αž’αž•αž›αžŸαž€αž˜αŸ’αž˜ (1<<X) αž’αžΆαžαž»αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž“αŸƒαž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž€αžΆαžšαžšαž…αž“αžΆαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž˜αŸ’αž‡αž»αž›αžŠαŸ‚αž›αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αžšαž”αžŸαŸ‹ microcontroller αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αž„αžŠαŸ‚αžš - αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž”αžΎαž€ LEDs αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž€αžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™ αž“αž·αž„αž˜αž·αž“αž†αŸαŸ‡ MK αŸ” αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž“αŸαŸ‡αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž˜αž½αž™αž€αžΆαž€αŸ‹αž˜αž½αž™αž€αžΆαž€αŸ‹ αž αžΎαž™αž‚αž½αžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž‘αžΌαžŠαžΆαž€αŸ‹αžαŸ’αž“αžΆαŸ†αž“αŸ…αž•αŸ’αž‘αŸ‡αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž“αž·αž…αŸ’αž…αŸ”

CD74HC238 αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αžΉαž„αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‚αžαŸ‹αž•αŸ’αž‚αž„αŸ‹αžœαŸ‰αž»αž›αž‘αŸ… anode αž“αŸƒ LED αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ multiplex αž–αŸαž‰αž›αŸαž‰ αžœαžΆαž“αžΉαž„αž•αŸ’αž‚αžαŸ‹αž•αŸ’αž‚αž„αŸ‹αžœαŸ‰αž»αž›αž‘αŸ…αž‡αž½αžšαžˆαžšαžαžΆαž˜αžšαž™αŸˆ P-MOSFET αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž“αŸαŸ‡ αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹ αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ αžœαžΆαž‚αžΌαžš 20 mA αž“αŸαŸ‡αž”αžΎαž™αŸ„αž„αžαžΆαž˜ ​​​​ αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž’αžαž·αž”αžšαž˜αžΆαžŠαžΆαž…αŸ‹αžαžΆαž αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž–αžΈ αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ CD74HC238 αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš pinouts αž“αž·αž„αžŸαž“αŸ’αž›αžΉαž€αž”αž“αŸ’αž›αŸ†αž“αŸαŸ‡αŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
H = αž€αž˜αŸ’αžšαž·αžαžœαŸ‰αž»αž›αžαŸ’αž–αžŸαŸ‹, L = αž€αž˜αŸ’αžšαž·αžαžαž„αŸ‹αžŸαŸ’αž™αž»αž„αž‘αžΆαž”, X – αž˜αž·αž“αžαŸ’αžœαž›αŸ‹

αž™αžΎαž„αž—αŸ’αž‡αžΆαž”αŸ‹ E2 αž“αž·αž„ E1 αž‘αŸ…αž“αžΉαž„αžŠαžΈ E3, A0, A1 αž“αž·αž„ A3 αžŠαžΎαž˜αŸ’αž”αžΈαž˜αŸ’αž‡αž»αž› PD5, PC3, PC4 αž“αž·αž„ PC5 αž“αŸƒ STM8 αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαžΆαžšαžΆαž„αžαžΆαž„αž›αžΎαž˜αžΆαž“αž‘αžΆαŸ†αž„αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž” αž“αž·αž„αžαŸ’αž–αžŸαŸ‹ αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αŸ’αž‡αž»αž›αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‡αžΆαž˜αŸ’αž‡αž»αž›αžšαž»αž‰αŸ”

PWM

PWM αž“αŸ…αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž‘αžΈαž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αžšαžΏαž„αž˜αž»αž“αžŠαŸ‚αžšαžŠαŸ„αž™αž˜αžΆαž“αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž–αžΈαžšαŸ–

αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΎαž€αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ (UEV) αžŠαŸ‚αž›αž“αžΉαž„αž αŸ…αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž”αž·αž‘αž”αžΎαž€ LED αžŸαž€αž˜αŸ’αž˜αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸŠαžΈαž αž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™αž€αžΆαžšαžšαŸ†αžαžΆαž“ αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ’αžšαžΆαž”αŸ‹

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
αžšαŸ†αžαžΆαž“αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡

#define TIM2_IER   *(volatile uint8_t *)0x005303

//enable interrupt
TIM2_IER = 1;

αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΈαž–αžΈαžšαž‚αžΊαž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž”αžΆαžαž»αž—αžΌαžαž“αŸƒαž€αžΆαžšαž‚αž»αžŽαžŠαžΌαž…αž‡αžΆ αžαŸ’αž˜αŸ„αž… - αž–αž“αŸ’αž›αžΊαž”αŸ‰αžΆαžšαŸ‰αžΆαžŸαŸŠαžΈαžαž“αŸƒ diodes αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αžœαžΆαž’αžΆαž…αž›αŸαž…αž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ UEV αž”αž“αŸ’αžαž‚αžΌαžŸ αž αžΎαž™αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαžšαŸ†αžαžΆαž“αž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžαžΌαžš LED αž˜αž»αž“αž–αŸαž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαž˜αž½αž™αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ’αž‡αž»αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαž™αž»αž‘αŸ’αž’αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆ (0 = αž–αž“αŸ’αž›αžΊαž’αžαž·αž”αžšαž˜αžΆ 255 = αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž—αŸ’αž›αžΊαž‘αŸ) αž αžΎαž™αž‡αŸ€αžŸαžœαžΆαž„αžαž˜αŸ’αž›αŸƒαžœαžŠαŸ’αžαž€αžΆαžαž–αŸ’αžœαž€αž·αž…αŸ’αž…αžαŸ’αž›αžΆαŸ†αž„αŸ” αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ” αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ UEV αž’αŸ†αž–αžΌαž› LED αžšαž›αžαŸ‹αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžŠαŸ’αž PWM αž˜αž½αž™αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαžΆαž„αž”αŸ‰αžΌαž›αŸ–

//set polarity 
    TIM2_CCER1 |= (CC1P | CC2P);
    TIM2_CCER2 |= CC3P;

αž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ r, g αž“αž·αž„ b αžŠαž›αŸ‹ 255 αž αžΎαž™αž€αž»αŸ†αž—αŸ’αž›αŸαž…αžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαžœαžΆαŸ”

αžšαŸ†αžαžΆαž“

αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž€αžΆαžšαžšαŸ†αžαžΆαž“αž‚αžΊαžαžΆαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαž›αŸˆαž‘αŸαžŸαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžˆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž˜αŸ’αž”αž„ αž αžΎαž™αž αŸ…αž˜αž»αžαž„αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ…αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž€αžΆαžšαžšαŸ†αžαžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž₯αž‘αŸ’αž’αž·αž–αž›αžαžΆαž„αž€αŸ’αžšαŸ… αž¬αžαžΆαž„αž€αŸ’αž“αž»αž„ αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž•αž„αžŠαŸ‚αžšαŸ”

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž‚αž˜αŸ’αžšαŸ„αž„αžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„ ST Visual Develop αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ main.c αž™αžΎαž„αž”αžΆαž“αž‘αž‘αž½αž›αž”αž„αŸ’αž’αž½αž…αž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž―αž€αžŸαžΆαžšαž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„ stm8_interrupt_vector.cαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž“αŸαŸ‡ αž˜αž»αžαž„αžΆαžšαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‘αŸ…αž±αŸ’αž™αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αžΈαž˜αž½αž™αŸ— NonHandledInterrupt. αž™αžΎαž„αžαŸ’αžšαžΌαžœαž…αž„αž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ”

αžŸαž“αŸ’αž›αžΉαž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΆαž“αžαžΆαžšαžΆαž„αž“αŸƒαžœαŸ‰αž·αž…αž‘αŸαžšαžšαŸ†αžαžΆαž“ αžŠαŸ‚αž›αž™αžΎαž„αžšαž€αžƒαžΎαž‰αž˜αž½αž™αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ–

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8
13 TIM2 αž’αžΆαž”αŸ‹αžŠαŸαž/αž›αžΎαžŸ
14 TIM2 αž…αžΆαž”αŸ‹αž™αž€/αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”

αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš LED αž“αŸ… UEV αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžšαŸ†αžαžΆαž“ #13 αŸ”

αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš stm8_interrupt_vector.c αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžˆαŸ’αž˜αŸ„αŸ‡αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸƒαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžšαŸ†αžαžΆαž“αž›αŸαž 13 (IRQ13) αž‘αŸ…αž‡αžΆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αž‘αžΆαž›αŸ‹αŸ–

{0x82, TIM2_Overflow}, /* irq13 */

αž‘αžΈαž–αžΈαžš αž™αžΎαž„β€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž―αž€αžŸαžΆαžš main.h αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

#ifndef __MAIN_H
#define __MAIN_H

@far @interrupt void TIM2_Overflow (void);
#endif

αž αžΎαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αžŸαžšαžŸαŸαžšαž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” main.c:

@far @interrupt void TIM2_Overflow (void)
{
    PD_ODR &= ~(1<<5); // Π²Ρ‹Ρ€ΡƒΠ±Π°Π΅ΠΌ Π΄Π΅ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€
    PC_ODR = (cnt<<3); // записываСм Π² Π΄Π΅ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    PD_ODR |= (1<<5); // Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΄Π΅ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€

    TIM2_SR1 = 0; // сбрасываСм Ρ„Π»Π°Π³ Update Interrupt Pending

    cnt++; 
    cnt &= 7; // Π΄Π²ΠΈΠ³Π°Π΅ΠΌ счСтчик LED

    TIM2_CCR1L = ~colors[cnt][0]; // ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния
    TIM2_CCR2L = ~colors[cnt][1]; // для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° ШИМ
    TIM2_CCR3L = ~colors[cnt][2]; // 

    return;
}

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαžšαŸ†αžαžΆαž“αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ assembler rim - αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαžšαž€αž˜αžΎαž›αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ:

//enable interrupts
_asm("rim");

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž’αŸ’αž“αž€αžŠαŸ†αž‘αžΎαž„αž˜αž½αž™αž‘αŸ€αžαž‚αžΊ sim - αž”αž·αž‘αž€αžΆαžšαžšαŸ†αžαžΆαž“αŸ” αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαžαŸ‚αž”αž·αž‘αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αžαž˜αŸ’αž›αŸƒαžαŸ’αž˜αžΈαž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ… "αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžœαžΈαžŠαŸαž’αžΌ" αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαžšαŸ†αžαžΆαž“αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžαž»αžŸαž˜αž·αž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžαžΌαž…αž’αžΆαžšαŸαž“αŸ„αŸ‡αž‘αŸαŸ”

αž›αŸαžαž€αžΌαžŠαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αž“αŸ…αž›αžΎ GitHub.

αž’αžΆαž“αž―αž€αžŸαžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ 2: SPI αž“αŸ…αž›αžΎ STM32; PWM αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž“αž·αž„αž€αžΆαžšαžšαŸ†αžαžΆαž“αž“αŸ…αž›αžΎ STM8

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž™αž›αŸ‹αžαžΆαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸ αž“αŸ„αŸ‡αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž”αžΆαž“αžŸαžšαžŸαŸαžšαžœαžΆαžŠαŸ„αž™αž₯αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž‘αŸαŸ” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαžΈαž€αžšαžΆαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž˜αžαž·αž™αŸ„αž”αž›αŸ‹ αž“αž·αž„αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž†αŸ’αž›αžΎαž™αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹