
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╢реМрдХрд┐рдпреЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рд╡реЗ рдЕрд░реБрдбрд┐рдиреЛ рдкреИрдВрдЯ рд╕реЗ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╢реАрдЯ рдФрд░ рдЕрдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреНрдпреЛрдВ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд╛рда рдмрдбрд╝рд╛ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ред рдЦреИрд░, рдЙрд╕рдиреЗ рдЦреБрдж рдХреЛ рдПрдХ рдорд╛рд▓ рдХрд╣рд╛ ...
рдЖрдЬ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╢реАрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдПрд╕рдЯреАрдПрдо 3 (рдмреНрд▓реВ рдкрд┐рд▓) рдФрд░ рдПрд╕рдЯреАрдПрдо 8 рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдкрд░, рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рднреА рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдПрд▓ рдИ рдбреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкрд╛рда рдлрд┐рд░ рд╕реЗ рд╡рд┐рд╢рд╛рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
STM32 рдмреНрд▓реВ рдкрд┐рд▓: DM634 рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде 16 рдПрд▓ рдИ рдбреА
STM8: рд╕рд┐рдХреНрд╕ PWM рдкрд┐рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
STM8: 8 рдЖрд░рдЬреАрдмреА рддреАрди рдкрд┐рдиреЛрдВ рдкрд░ рдПрд▓рдИрдбреА, рдЗрдВрдЯрд░рдкреНрдЯ рдХрд░рддрд╛ рд╣реИ
рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░: рдореИрдВ рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реВрдВ, рдореИрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдореЗрдВ рдЧрд╣рд░рд╛ рдЬреНрдЮрд╛рди рд░рдЦрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдпрд╣ рд▓реЗрдЦ рдореЗрд░реЗ рдЬреИрд╕реЗ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдорд╛рдирд╛ рдерд╛ред рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭрд╕реЗ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд░рд┐рдЪрд┐рдд рдЪрд┐рдк рдкрд░ рдбреЗрдЯрд╛рд╢реАрдЯ рдкрдврд╝рдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреЛрдб рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдХреИрдВрдЪреА рдФрд░ рдПрдХ рдмреИрдВрдб-рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд╕рд╛рде рдмреИрд╕рд╛рдЦреА рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдпрд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдбреЗрдЯрд╛рд╢реАрдЯ рд╣реИрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рдХрдВрдШреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдмреИрд╕рд╛рдЦреАред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрд╡рдпрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирдИ рдЪрд┐рдк рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдкрд░рд┐рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ рдПрдХ рд╢реМрдХреАрди рдЧреЛрддрд╛ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдордВрдЪ рдкрд░ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред
STM32
DM634 рдФрд░ SPI рдХреЗ рд╕рд╛рде 16 рдПрд▓ рдИ рдбреА
рдмреНрд▓реВ рдкрд┐рд▓ (STM32F103C8T6) рдФрд░ DM634 рдПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдбреЗрдЯрд╛рд╢реАрдЯреНрд╕ рдХреА рдорджрдж рд╕реЗ рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░, рдЖрдИрдУ-рдкреЛрд░реНрдЯ рдПрд╕рдЯреАрдПрдо рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ рдФрд░ рдПрд╕рдкреАрдЖрдИ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред
DM634
16 16-рдмрд┐рдЯ рдкреАрдбрдмреНрд▓реВрдПрдо рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рддрд╛рдЗрд╡рд╛рди рдХреА рдЪрд┐рдк рдХреЛ рдЬрдВрдЬреАрд░реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ 12-рдмрд┐рдЯ рдореЙрдбрд▓ рдШрд░реЗрд▓реВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд╛рдЗрдЯрдкреИрдХ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рдордп рдореЗрдВ, DM63x рдФрд░ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ TLC5940 рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ DM рдкрд░ рдЖрдХрд░ рдмрд╕ рдЧрдпрд╛: 1) Aliexpress рдкрд░ TLC рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдХрд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдирд╣реАрдВ рд╣реИ; 2) рдбреАрдПрдо рдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд PWM рд╣реИ; 3) рдпрд╣ рдорд╛рд╕реНрдХреЛ рдореЗрдВ рд╕рд╕реНрддреЗ рдореЗрдВ рдЦрд░реАрджрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрд▓реА рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕рд▓ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЦреИрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╕реАрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ рдХрд┐ рдЪрд┐рдк рдХреЛ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдПрдХ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЪрд┐рдкреНрд╕ рдЕрдм рдореБрдЦреНрдп рд░реВрдк рд╕реЗ SSOP24 рдкреИрдХреЗрдЬ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╡реЗ рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИрдВред
рдЪреВрдВрдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛ рддрд╛рдЗрд╡рд╛рдиреА рд╣реИ, рдЪрд┐рдк рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╢реАрдЯ рдЪреАрдиреА рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдордЬреЗрджрд╛рд░ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд┐рди рдХрдиреЗрдХреНрд╢рди ( рдкрд┐рди рдХрдиреЗрдХреНрд╢рди ) рдХреЛ рджреЗрдЦреЗрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдкреИрд░ рдХреЛ рдкрд┐рди рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдкрд┐рди рдХрд╛ рд╡рд┐рд╡рд░рдг ( рдкрд┐рди рд╡рд┐рд╡рд░рдг )ред 16 рдирд┐рд╖реНрдХрд░реНрд╖:

рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рджреНрдпреБрдд рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕реНрд░реЛрдд (рдЦреБрд▓реА рдирд╛рд▓реА)
рд╕рд┐рдВрдХ / рдУрдкрди-рдбреНрд░реЗрди рдЖрдЙрдЯрдкреБрдЯ - рдирд╛рд▓реА; рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛ рд╕реНрд░реЛрдд; рд╕рдХреНрд░рд┐рдп рдЖрдЙрдЯрдкреБрдЯ рдЬрдореАрди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ - рдПрд▓ рдИ рдбреА рдЪрд╛рд▓рдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ рдХреИрдереЛрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ред рд╡рд┐рджреНрдпреБрдд рд░реВрдк рд╕реЗ, рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, "рдЦреБрд▓реА рдирд╛рд▓реА" рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╢реАрдЯ рдореЗрдВ рдбреНрд░реЗрди рдореЛрдб рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрджрдирд╛рдо рдЖрдо рд╣реИред

рдЖрдЙрдЯрдкреБрдЯ рд╡рд░реНрддрдорд╛рди рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП REXT рдФрд░ GND рдХреЗ рдмреАрдЪ рдмрд╛рд╣рд░реА рдкреНрд░рддрд┐рд░реЛрдзрдХ
рд░реЗрдлрд╝рд░ рдкрд┐рди рдФрд░ рдЧреНрд░рд╛рдЙрдВрдб рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдлрд╝рд░реЗрдВрд╕ рд░реЗрдЬрд╝рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рд╢реАрдЯ рдХреЗ рдкреЗрдЬ 9 рдкрд░ рдЧреНрд░рд╛рдл рдХреЛ рджреЗрдЦреЗрдВред DM634 рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рдЪрдордХ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ 2.2 - 3 kOhm рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдбрд╛рд▓ рджрд┐рдпрд╛ред
рдЪрд┐рдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦреЗрдВ:

рд╣рд╛рдБ, рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рдЪреАрдиреА рдЕрдВрдЧреНрд░реЗрдЬреА рдЕрдкрдиреА рдорд╣рд┐рдорд╛ рдореЗрдВред рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ, рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ - рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ TLC5940 рдХреЗ рдХрд░реАрдм рдХреИрд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

... рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рддреАрди рдкрд┐рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред SCLK рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдкреНрд░рдореБрдЦ рдХрд┐рдирд╛рд░рд╛ SIN рдкрд┐рди рд╕реЗ рдЖрдВрддрд░рд┐рдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╢рд┐рдлреНрдЯ рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЫреЛрдЯрд╛ рдЙрдЪреНрдЪ XLAT рд╕рд┐рдЧреНрдирд▓ рдЖрдВрддрд░рд┐рдХ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рдбреЗрдЯрд╛ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ - рдПрдХреНрд╕рдПрд▓рдПрдЯреА-рдЯреНрд░рд┐рдЧрд░ рдЧреЗрдЯ рд╡рд╛рд▓реНрд╡ред рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдлреЙрд░рд╡рд░реНрдб рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреБрдВрдбреА - рдПрдХ рдХреБрдВрдбреА / рдХреБрдВрдбреА / рджрдмрд╛рдирд╛ред
рдмрдврд╝рддреА рдмрдврд╝рдд - рдЖрд╡реЗрдЧ рдХреЗ рдЕрдЧреНрд░рдгреА рдХрд┐рдирд╛рд░реЗ
MSB рдкрд╣рд▓реЗ - рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг ( рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░) рдереЛрдбрд╝рд╛ рдЖрдЧреЗред
рдШрдбрд╝реА рдбреЗрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ (рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝) рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░реЗрдВред
рд╢рдмреНрдж рдХреБрдВрдбреА рдЕрдХреНрд╕рд░ рдЪрд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реВрдВ
рдЫреЛрдЯреЗ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдордПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡рд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИред рдирд╛рдо рдореЗрдВ "рд╢рд┐рдлреНрдЯ" рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдореВрд╡рдореЗрдВрдЯ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рдмрд┐рдЯ рдЗрдирд╡рд░реНрдб рдЕрдкрдиреЗ рд╕рд╛рдордиреЗ рдкреВрд░реА рдЪреЗрди рдХреЛ рд╣рд┐рд▓рд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХреЛрдИ рднреА рд╢рд┐рдлреНрдЯ рдХреЗ рджреМрд░рд╛рди рдПрд▓ рдИ рдбреА рдХреА рдЕрд░рд╛рдЬрдХ рдЪрдордХрддреА рджреЗрдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдлрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рд╕реЗ рдПрдХ рдХреБрдВрдбреА рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╡реЗрдЯрд┐рдВрдЧ рд░реВрдо рд╣реИ, рдЬрд╣рд╛рдВ рдмрд┐рдЯреНрд╕ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢рдЯрд░ рдЦреБрд▓рддрд╛ рд╣реИ, рдФрд░ рдмрд┐рдЯреНрд╕ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд┐рдЫрд▓реЗ рдмреИрдЪ рдХреА рдЬрдЧрд╣ред рдорд╛рдЗрдХреНрд░реЛрдХреНрд░рд┐рд╕реНрдХрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХреБрдВрдбреА рд╢рдмреНрдж рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рдРрд╕реЗ рдиреБрдХрд╕рд╛рди рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, DM634 рдХреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: DAI рдЗрдирдкреБрдЯ рдХреЛ рдЙрдЪреНрдЪ рдПрд▓рдИрдбреА рдХреЗ рдЙрдЪреНрдЪ-рдХреНрд░рдо рдмрд┐рдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ, DCK рдХреЛ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдЦреАрдВрдЪреЗрдВ; рдЕрдЧрд▓реЗ рдмрд┐рдЯ рдореЗрдВ DAI рдЗрдирдкреБрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ, DCK рдЦреАрдВрдЪреЗрдВ; рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдмрд┐рдЯреНрд╕ рд╕рдВрдЪрд░рд┐рдд ( рдХреНрд▓реЙрдХ рдХрд┐рдП рдЧрдП ) рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо LAT рдЦреАрдВрдЪрддреЗ рд╣реИрдВред рдпрд╣ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ ( рдмрд┐рдЯ-рдмреИрдВрдЧ ) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреЗрдЬ рдПрд╕рдкреАрдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЛ рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рдПрд╕рдЯреАрдПрдо 32 рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдмреНрд▓реВ рдЯреИрдмрд▓реЗрдЯ STM32F103
рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ: STM32 рдирд┐рдпрдВрддреНрд░рдХ Atmega328 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВ рдЬрд┐рддрдирд╛ рд╡реЗ рдбрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдКрд░реНрдЬрд╛ рдХреА рдмрдЪрдд рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ рд╕рднреА рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕реНрд░реЛрдд рд╕реЗ рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдПрд╕рдЯреАрдПрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдиреЗ рдХреЛрдб рд▓рд┐рдЦрд╛ рдерд╛ рдЬреЛ рдЪрд┐рдк рдХреЛ "рдЧрдгрдирд╛" 72 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдореЗрдВ рд▓рд╛рдпрд╛ рдерд╛, рдФрд░ рд╕рднреА рдЖрдИрдбреАрдИ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдореИрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдШрдбрд╝реА рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ ) рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрд░рд┐рдзреАрдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкреНрд░рд▓реЗрдЦрди: рд▓реЛрдХрдкреНрд░рд┐рдп STM32F103C8T6 рдЪрд┐рдк рдмреНрд▓реВ рдкрд┐рд▓ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЛ рдЙрдкрдпреЛрдЧреА рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ:
рдПрдХ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рд╣рдорд╛рд░реА рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ:
- рдкрд┐рдирдЖрдЙрдЯ - рдЪрд┐рдкреНрд╕ рдХреЗ рдкрд┐рдирдЖрдЙрдЯ - рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЦреБрдж рдХреЛ рдмреЛрд░реНрдб рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ;
- рдореЗрдореЛрд░реА рдореИрдк - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд┐рдк рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХрд╛рд░реНрдбред рд░реЗрдлрд░реЗрдВрд╕ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдкреВрд░реА рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдб рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЙрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИрдВред
- рдЯреЗрдмрд▓ рдкрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ - рдкрд┐рдВрд╕ рдХреЗ рдореБрдЦреНрдп рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛; рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ "рдиреАрд▓реА рдЧреЛрд▓реА" рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд┐рди рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪрд┐рддреНрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рддреБрд░рдВрдд рдмреНрд▓реВ рдкрд┐рд▓ рдкрд┐рдирдЖрдЙрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рддрд╕реНрд╡реАрд░ рдХреЛ рд╣рд╛рде рдореЗрдВ рд░рдЦреЗрдВ:

рдирд╛рдпрдм: рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдЦреА рдЧрдИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рддрд╕реНрд╡реАрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕рдмрдХ рд╣реИ - рдЧреИрд░-рдбреЗрдЯрд╛рд╢реАрдЯ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рд╣рдо рдбреЗрдЯрд╛рд╢реАрдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рдХреНрд░рд┐рдпрд╛: рд╣рдо рдорд╛рдирдХ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рдПрд╕рдкреАрдЖрдИ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╛рдВрдЫрд┐рдд рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВред
рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ
Atmega328 I / O рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ STM32 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдм рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд╛рд░ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВ:

рдУрдкрди рдбреНрд░реЗрди рдЖрдЙрдЯрдкреБрдЯ, рдкреБрд╢-рдкреБрд▓ рдЖрдЙрдЯрдкреБрдЯ, рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреБрд╢-рдкреБрд▓ рдЖрдЙрдЯрдкреБрдЯ, рд╡реИрдХрд▓реНрдкрд┐рдХ рдУрдкрди рдбреНрд░реЗрди
" рдкреБрд╢-рдкреБрд▓ " ( рдкреБрд╢-рдкреБрд▓ ) - рдЕрд░реБрдбрд┐рдирд╛ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд╖реНрдХрд░реНрд╖, рдкрд┐рди рдпрд╛ рддреЛ рдЙрдЪреНрдЪ рдпрд╛ рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди "рдЦреБрд▓реА рдирд╛рд▓реА" рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рд╣реИрдВ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:


рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди / рдЬрдм рдкреЛрд░реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ: / рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рдЪрд╛рд▓реВ рд╣реИ: / - рдУрдкрди рдбреНрд░реЗрди рдореЛрдб: "0" рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдПрди-рдПрдордУрдПрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ, "1" рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ (рдкреА-рдПрдордУрдПрд╕) рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЛ рд╣рд╛рдп-рдЬреЗрдб рдореЛрдб рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ) / - "рдкреБрд▓-рдкреБрд╢" рдореЛрдб: "0" рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ N-MOS рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ, "1" рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ P-MOS рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред
рдУрдкрди рдбреНрд░реЗрди рдФрд░ рдкреБрд╢-рдкреБрд▓ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рд╛рд░рд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдкрд┐рди рдореЗрдВ рдпрд╣ рд╣рд╛рдИ рд╕реНрдЯреЗрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдпреВрдирд┐рдЯ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдпрд╣ рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рдмрд╛рдзрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ , рд╣рд╛рдп -Z )ред рд╢реВрдиреНрдп рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╕рдордп, рджреЛрдиреЛрдВ рдореЛрдб рдореЗрдВ рдкрд┐рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдФрд░ рд╡рд┐рджреНрдпреБрдд рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдореЗрдВ, рдкрд┐рди рдмрд╕ рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред "рд╡реИрдХрд▓реНрдкрд┐рдХ" рдореЗрдВ рдЗрд╕реЗ рдЗрд╕реА рдкрд░рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ 9.1.4):

рдпрджрд┐ рдкреЛрд░реНрдЯ рдмрд┐рдЯ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдЕрдХреНрд╖рдо рд╣реИ рдФрд░ рдкрд┐рди рдкрд░рд┐рдзреАрдп рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдбреЗрдЯрд╢реАрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдкрд░ рд╣реИред рдпрд╣ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рдкрд░ рдХрд┐ рдпрджрд┐ рдкрд┐рди рдХреЗ рдХрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдп рд╣реИрдВ, рддреЛ рдЙрддреНрддрд░ рдбреЗрдЯрд╢реАрдЯ рдореЗрдВ рдПрдХ рдлреБрдЯрдиреЛрдЯ рджреЗрддрд╛ рд╣реИ:

рдпрджрд┐ рдХрдИ рдкрд░рд┐рдзреАрдп рдЗрдХрд╛рдЗрдпрд╛рдВ рдПрдХ рд╣реА рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рддреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдШрд░реНрд╖ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдзреАрдп рдШрдбрд╝реА рд╕рдХреНрд░рд┐рдпрдг рдмрд┐рдЯ (рдЗрд╕реА рдЖрд░рд╕реАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рдзреАрдп рдЗрдХрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдВрдд рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдореЗрдВ рдкрд┐рди рдХреА рднреА рдШрдбрд╝реА рдХреА рдЧрддрд┐ рд╣реЛрддреА рд╣реИред рдпрд╣ рдПрдХ рдФрд░ рдКрд░реНрдЬрд╛ рдмрдЪрдд рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП: рд╣рдо SPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рджреЛ рдкрд┐рди (рдбреЗрдЯрд╛ рдФрд░ рдПрдХ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде) рдПрдХ "рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреБрд╢-рдкреБрд╢ рдлрд╝рдВрдХреНрд╢рди" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ (LAT) "рд╕рд╛рдорд╛рдиреНрдп рдкреБрд▓-рдкреБрд╢" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ, рд╣рдо рдПрд╕рдкреАрдЖрдИ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред
рдПрд╕рдкреАрдЖрдИ
рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рд╕рд╛ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдордПрд╕рдкреАрдЖрдИ рдпрд╛ рд╕реАрд░рд┐рдпрд▓ рдкреЗрд░рд┐рдлреЗрд░рд┐рдпрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдкрд░рд┐рдзреАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕) - рд╕рдВрдЪрд╛рд░ рдПрдордХреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдиреНрдп рдПрдордХреЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЪреАрдиреА рдПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡рд░ (рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рдореЗрдВ, рдзрд╛рд░рд╛ 25 рджреЗрдЦреЗрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдПрд╕рдкреАрдЖрдИ рдорд╛рд╕реНрдЯрд░ ("рдорд╛рд╕реНрдЯрд░") рдФрд░ рджрд╛рд╕ ("рджрд╛рд╕") рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрд╕рдкреАрдЖрдИ рдХреЗ рдЪрд╛рд░ рдореВрд▓ рдЪреИрдирд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
- MOSI, рдорд╛рд╕реНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ / рд╕реНрд▓реЗрд╡ рдЗрдирдкреБрдЯ: рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдпрд╣ рдкрд┐рди рднреЗрдЬрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджрд╛рд╕ рдореЛрдб рдореЗрдВ рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ;
- MISO, рдорд╛рд╕реНрдЯрд░ рдЗрдирдкреБрдЯ / рд╕реНрд▓реЗрд╡ рдЖрдЙрдЯрдкреБрдЯ: рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдорд╛рд╕реНрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рджрд╛рд╕ рдореЗрдВ - рджреЗрддрд╛ рд╣реИ;
- рдПрд╕рд╕реАрдХреЗ, рд╕реАрд░рд┐рдпрд▓ рдХреНрд▓реЙрдХ: рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рджрд╛рд╕ рдореЗрдВ рдПрдХ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмрд┐рдЯреНрд╕ рдзрдбрд╝рдХрддрд╛ рд╣реИ;
- рдПрд╕рдПрд╕, рд╕реНрд▓реЗрд╡ рд╕рд┐рд▓реЗрдХреНрдЯ: рдЗрд╕ рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рджрд╛рд╕ рд╕реАрдЦрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕рд╕реЗ рдХреБрдЫ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрд╕рдЯреАрдПрдо 32 рдкрд░, рдЗрд╕реЗ рдПрдирдПрд╕рдПрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрди = рдирдХрд╛рд░рд╛рддреНрдордХ, рдЕрд░реНрдерд╛рддреНред рдпрджрд┐ рдЗрд╕ рдЪреИрдирд▓ рдореЗрдВ рдЧреНрд░рд╛рдЙрдВрдб рд╣реИ рддреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХ рдЧреБрд▓рд╛рдо рдмрди рдЬрд╛рддрд╛ рд╣реИред рдУрдкрди рдбреНрд░реЗрди рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИред
рд╕рдм рдХреБрдЫ рдХреА рддрд░рд╣, рдПрд╕рдЯреАрдПрдо 32 рдкрд░ рдПрд╕рдкреАрдЖрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд╕рдореГрджреНрдз рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдордЭрдирд╛ рдХреБрдЫ рдХрдард┐рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рди рдХреЗрд╡рд▓ рдПрд╕рдкреАрдЖрдИ рдХреЗ рд╕рд╛рде, рдмрд▓реНрдХрд┐ I2S рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрдирдХреЗ рд╡рд┐рд╡рд░рдг рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рд╕рдордп рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдЯреМрддреА рдХрд░рдиреА рд╣реЛрдЧреАред рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реИ: рдЖрдкрдХреЛ рдХреЗрд╡рд▓ MOSI рдФрд░ SCK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдзрд╛рд░рд╛ 25.3.4 (рдЕрд░реНрдз-рджреНрд╡реИрдз рд╕рдВрдЪрд╛рд░) рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╣рдо 1 рдШрдбрд╝реА рдФрд░ 1 рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рдбреЗрдЯрд╛ рд╡рд╛рдпрд░ (1 рдШрдбрд╝реА рд╕рд┐рдЧреНрдирд▓ рдФрд░ 1 рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо) рдкрд╛рддреЗ рд╣реИрдВ:

рдЗрд╕ рдореЛрдб рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди SPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓-рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдпрд╛ рдХреЗрд╡рд▓-рдкреНрд░рд╛рдкреНрдд рдореЛрдб рдореЗрдВ рдХрд░рддрд╛ рд╣реИред / рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди-рдУрдирд▓реА рдореЛрдб, рдбреБрдкреНрд▓реЗрдХреНрд╕ рдореЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИ: рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯрд┐рдВрдЧ рдкрд┐рди (MOSI рдЗрди рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдпрд╛ MISO рдЗрди рд╕реНрд▓реЗрд╡ рдореЛрдб) рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдкрд┐рди (MISO рдпрд╛ MOSI, рдХреНрд░рдорд╢рдГ) рдПрдХ рдирд┐рдпрдорд┐рдд рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдкрд┐рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЖрд░рдПрдХреНрд╕ рдмрдлрд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред
рдЦреИрд░, MISO рдкрд┐рди рд╣рдорд╕реЗ рдореБрдХреНрдд рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ LAT рд╕рд┐рдЧреНрдирд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕реНрд▓реЗрд╡ рд╕реЗрд▓реЗрдХреНрдЯ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдПрд╕рдЯреАрдПрдо 32 рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмреЗрд╣рдж рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╣рдордиреЗ SPI рдЬрдирд░рд▓ рдХреЗ рд╕реЗрдХреНрд╢рди 25.3.1 рдореЗрдВ рдЙрд╕реА рдирд╛рдо рдХреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдкрдврд╝рд╛:

NSS рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрдВрдЯреНрд░реЛрд▓ (SSM = 1) / рдЧреБрд▓рд╛рдо рдХреЗ рдЪрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА SSI рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ SPI -CR1 рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдмрд╛рд╣рд░реА рдПрдирдПрд╕рдПрд╕ рдкрд┐рди рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд░рд╣рддрд╛ рд╣реИред
рдпрд╣ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдореИрдВрдиреЗ SPI2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд╣рдо рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рдЖрдзрд╛рд░ рдкрддреЗ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЕрдиреБрднрд╛рдЧ 3.3 рдореЗрдореЛрд░реА рдореИрдк рдореЗрдВ:

рдареАрдХ рд╣реИ, рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
#define _SPI2_(mem_offset) (*(volatile uint32_t *)(0x40003800 + (mem_offset)))
рд╣рдо "рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдПрд╕рдкреАрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ" рдХреЗ рд╕рд╛рде рдзрд╛рд░рд╛ 25.3.3 рдЦреЛрд▓рддреЗ рд╣реИрдВ:

1. SPI_CR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ BR [2: 0] рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕реАрд░рд┐рдпрд▓ рдХреНрд▓реЙрдХ рд╕реНрдкреАрдб рд╕реЗрдЯ рдХрд░реЗрдВред
рд░рдЬрд┐рд╕реНрдЯрд░ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред CR1 рдореЗрдВ 0x00 рдХрд╛ рдПрдХ рдкрддрд╛ рдСрдлрд╕реЗрдЯ ( рдкрддрд╛ рдСрдлрд╕реЗрдЯ ) рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА рдмрд┐рдЯ рд░реАрд╕реЗрдЯ рд╣реИрдВ ( рд░реАрд╕реЗрдЯ рдорд╛рди 0x0000):

рдмреАрдЖрд░ рдмрд┐рдЯреНрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрдХреНрдд рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрд╕ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдПрд╕рдкреАрдЖрдИ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 72 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдПрдХ рдПрд╕рдЯреАрдПрдо 32 рдЖрд╡реГрддреНрддрд┐ рд╣реЛрдЧреА, рдПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡рд░, рдЗрд╕рдХреА рдбреЗрдЯрд╢реАрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, 25 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рддрдХ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдЪрд╛рд░ (рдмреАрдЖрд░ [2: 0] = 001) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
#define _SPI_CR1 0x00 #define BR_0 0x0008 #define BR_1 0x0010 #define BR_2 0x0020 _SPI2_ (_SPI_CR1) |= BR_0;
2. рд╕реАрд░рд┐рдпрд▓ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдФрд░ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдХреНрд▓реЙрдХрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CPOL рдФрд░ CPHA рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВ (рдкреГрд╖реНрда 240 рдкрд░ рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВ)
рдЪреВрдВрдХрд┐ рд╣рдо рд╕реНрдХреАрдорд╛рд╢реАрдЯ рдпрд╣рд╛рдВ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреАрдорд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреГрдкрдпрд╛ рдкреГрд╖реНрда 704 (SPI рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг) рдкрд░ CPOL рдФрд░ CPHA рдмрд┐рдЯреНрд╕ рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреА рдмреЗрд╣рддрд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:

рдХреНрд▓реЙрдХ рдлреЗрдЬ рдФрд░ рдкреЛрд▓рд╛рд░рд┐рдЯреА
SPI_CR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ CPOL рдФрд░ CPHA рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЯрд╛рдЗрдорд┐рдВрдЧ рд░рд┐рд▓реЗрд╢рдирд╢рд┐рдк рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред CPOL (рдШрдбрд╝реА рдХреА рдзреНрд░реБрд╡рддрд╛) рдмрд┐рдЯ рдШрдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдбреЗрдЯрд╛ рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдмрд┐рдЯ рдорд╛рд╕реНрдЯрд░ рдФрд░ рджрд╛рд╕ рдореЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ CPOL рд░реАрд╕реЗрдЯ рд╣реИ, рддреЛ SCK рдкрд┐рди рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореЛрдб рдореЗрдВ рдХрдо рд╣реИред рдпрджрд┐ CPOL рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рддреЛ SCK рдкрд┐рди рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореЛрдб рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╣реИред
рдпрджрд┐ CPHA рдмрд┐рдЯ (рдХреНрд▓реЙрдХ рдлрд╝реЗрдЬрд╝) рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ SCK рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рджреВрд╕рд░рд╛ рдХрд┐рдирд╛рд░рд╛ рдЙрдЪреНрдЪ рдмрд┐рдЯ рдХреЗ рдЯреНрд░реИрдк-рдЧреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ CPOL рдХреНрд▓рд┐рдпрд░ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ CPOL рд╕реЗрдЯ рд╣реИ рддреЛ рдЖрд░реЛрд╣реА рд╣реИ)ред рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рджреВрд╕рд░реЗ рдмрджрд▓рд╛рд╡ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрдкреНрдЪрд░ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ CPHA рдмрд┐рдЯ рдХреЛ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ SCK рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдкреНрд░рдореБрдЦ рдХрд┐рдирд╛рд░рд╛ рдЙрдЪреНрдЪ рдмрд┐рдЯ рдХреЗ рдПрдХ рдЬрд╛рд▓-рдЧреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ CPOL рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдКрдкрд░ рдХреА рддрд░рдл рдпрд╛ CPOL рд╕рд╛рдлрд╝ рд╣реЛрдиреЗ рдкрд░ рдиреАрдЪреЗ рдХреА рдУрд░)ред рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдкрд╣рд▓реЗ рдмрджрд▓рд╛рд╡ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрдкреНрдЪрд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЛ рд╕реНрдореЛрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рджреЛрдиреЛрдВ рдмрд┐рдЯреНрд╕ рд╢реВрдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧ рдореЗрдВ рди рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрдВ SCK рд╕рд┐рдЧреНрдирд▓ рдХрдо рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдкрд▓реНрд╕ рдХреЗ рдкреНрд░рдореБрдЦ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (DM634 рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рд░рд╛рдЗрдЬрд┐рдВрдЧ рдПрдЬ рджреЗрдЦреЗрдВ)ред
рд╡реИрд╕реЗ, рдпрд╣рд╛рдВ рд╣рдордиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдПрд╕рдЯреА рдбреЗрдЯрд╢реАрдЯ рдореЗрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛: рдЙрдирдореЗрдВ рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рд░реАрд╕реЗрдЯ рдмрд┐рдЯ рдЯреВ рдЬреАрд░реЛ" рдХреЛ рдереЛрдбрд╝рд╛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ , рдФрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдЯрдореЗрдЧрд╛ рдореЗрдВред
3. 8-рдмрд┐рдЯ рдпрд╛ 16-рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DFF рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░реЗрдВред
рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ 16-рдмрд┐рдЯ DM634 рд▓рд┐рдпрд╛, рддрд╛рдХрд┐ DM633 рдХреА рддрд░рд╣ 12-рдмрд┐рдЯ PWM рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рд╕реЗ рдкрд░реЗрд╢рд╛рди рди рд╣реЛрдВред DFF рдПрдХ рдЗрдХрд╛рдИ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:
#define DFF 0x0800 _SPI2_ (_SPI_CR1) |= DFF;
4. рдмреНрд▓реЙрдХ рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ SPI_CR1 рдореЗрдВ LSBFIRST рдмрд┐рдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
LSBFIRST, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдирд╛рдо рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рдХрдо-рдХреНрд░рдо рдмрд┐рдЯ рдХреЛ рдЖрдЧреЗ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди DM634 рдЙрдЪреНрдЪ рдмрд┐рдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рддреНрдпрд╛рдЧ рджреЗрддреЗ рд╣реИрдВред
5. рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЛрдб рдореЗрдВ, рдпрджрд┐ рдПрдирдПрд╕рдПрд╕ рдкрд┐рди рд╕реЗ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреВрд░реЗ рдмрд╛рдЗрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЕрдиреБрдХреНрд░рдо рдХреЗ рджреМрд░рд╛рди рдПрдирдПрд╕рдПрд╕ рдкрд┐рди рдХреЛ рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрдХреЗрдд рднреЗрдЬреЗрдВред NSS рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЛрдб рдореЗрдВ, SPI_CR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ SSM рдФрд░ SSI рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдПрдирдПрд╕рдПрд╕ рдкрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреЗрд╡рд▓ SSOE рдмрд┐рдЯ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдирдПрд╕рдПрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдПрдо рдФрд░ рдПрд╕рдПрд╕рдЖрдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
#define SSI 0x0100 #define SSM 0x0200 _SPI2_ (_SPI_CR1) |= SSM | SSI;
6. MSTR рдФрд░ SPE рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП (рд╡реЗ рдХреЗрд╡рд▓ рддрднреА рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм NSS рдкрд░ рдЙрдЪреНрдЪ рд╕рд┐рдЧреНрдирд▓ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
рджрд░рдЕрд╕рд▓, рдЗрди рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╣рдо рдЕрдкрдиреЗ рдПрд╕рдкреАрдЖрдИ рдХреЛ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ:
#define MSTR 0x0004 #define SPE 0x0040 _SPI2_ (_SPI_CR1) |= MSTR;
рдПрд╕рдкреАрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЪрд▓реЛ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рддреБрд░рдВрдд рдмрд╛рдЗрдЯ рднреЗрдЬрддреЗ рд╣реИрдВред рд╣рдо 25.3.3 "рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдПрд╕рдкреАрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛" рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ:

рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЯреАрдПрдХреНрд╕ рдмрдлрд░ рдХреЛ рдПрдХ рдмрд╛рдЗрдЯ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрдЯрд╛ рдмрд╛рдЗрдЯ рдХреЛ рдкрд╣рд▓реЗ рдмрд┐рдЯ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рдорд╛рдирд╛рдВрддрд░ рдореЛрдб (рдЖрдВрддрд░рд┐рдХ рдмрд╕ рд╕реЗ) рдореЗрдВ рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕реАрд░рд┐рдпрд▓ рдореЛрдб рдореЗрдВ MOSI рдкрд┐рди рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ CPI_CR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ LSFFIRST рдмрд┐рдЯ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред TXE рдзреНрд╡рдЬ рдХреЛ Tx рдмрдлрд░ рд╕реЗ рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ CPE_CR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ TXEIE рдмрд┐рдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрд╡рд░реЛрдз рднреА рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрд╕рдЯреАрдПрдо рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рдПрд╕рдкреАрдЖрдИ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ред Atmega рдкрд░, TXE рдзреНрд╡рдЬ ( Tx Empty , Tx рдЦрд╛рд▓реА рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ) рдкреВрд░реА рдмрд╛рдЗрдЯ рдирд┐рдХрд▓ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕ рдЭрдВрдбреЗ рдХреЛ рдмрд╛рдЗрдЯ рдХреЗ рдмрд╛рдж рдЖрдВрддрд░рд┐рдХ рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рднреА рдмрд┐рдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рде (рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ) рд╡рд╣рд╛рдВ рдЫрд╛рдпрд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдмрд╛рдЗрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ TXE рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж LAT рдкрд┐рди рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдХреЗрд╡рд▓ TXE рдзреНрд╡рдЬ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рдФрд░ рдзреНрд╡рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 25.3.7 рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ - "рд╕реНрдерд┐рддрд┐ рдЭрдВрдбреЗ":

<...>

BUSY рдЭрдВрдбрд╛
BSY рдзреНрд╡рдЬ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдФрд░ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рдХреБрдЫ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рдмреАрдПрд╕рд╡рд╛рдИ рдзреНрд╡рдЬ рдПрд╕рдкреАрдЖрдИ рд╕рдВрдЪрд╛рд░ рдкрд░рдд рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд░реАрд╕реЗрдЯ рд╣реИ:
рдЬрдм рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдП (рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдпрджрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдирд┐рд░рдВрддрд░ рд╣реИ)
рдЬрдм SPI рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрдм рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЛрдб рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ (MODF = 1)
рдпрджрд┐ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдирд┐рд░рдВрддрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рдмреАрдЪ BSY рдзреНрд╡рдЬ рд╕рд╛рдлрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдХрд╛рдо рдореЗрдВ рдЖ рдЬрд╛рдУред рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЯреАрдПрдХреНрд╕ рдмрдлрд░ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "SPI рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░" рдкрдврд╝реЗрдВ:

рдмрд┐рдЯреНрд╕ 15: 0 DR [15: 0] рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░
рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред
рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рджреЛ рдмрдлрд╝рд░реНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП (рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдмрдлрд░) рдФрд░ рджреВрд╕рд░рд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП (рдмрдлрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)ред рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдкрд░ рд▓рд┐рдЦрдирд╛ рдЯреАрдПрдХреНрд╕ рдмрдлрд░ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗ рдкрдврд╝рдиреЗ рд╕реЗ рдЖрд░рдПрдХреНрд╕ рдмрдлрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред
рдЦреИрд░, рд╕реНрдерд┐рддрд┐ рд░рдЬрд┐рд╕реНрдЯрд░, рдЬрд╣рд╛рдБ TXE рдФрд░ BSY рдЭрдВрдбреЗ рд╣реИрдВ:

рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
#define _SPI_DR 0x0C #define _SPI_SR 0x08 #define BSY 0x0080 #define TXE 0x0002 void dm_shift16(uint16_t value) { _SPI2_(_SPI_DR) = value;
рдареАрдХ рд╣реИ, рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджреЛ рдмрд╛рд░ 16 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ:
void sendLEDdata() { LAT_low(); uint8_t k = 16; do { k--; dm_shift16(leds[k]); } while (k); while (_SPI2_(_SPI_SR) & BSY);
рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкрд┐рди LAT рдХреИрд╕реЗ рдЦреАрдВрдЪрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо I / O рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗред
рдкрд┐рди рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ
STM32F1 рдореЗрдВ, рдкрд┐рдВрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рдПрдЯрдореЗрдЧрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдиреНрдп рдПрд╕рдЯреАрдПрдо рдЪрд┐рдкреНрд╕ рд╕реЗ рднреА рднрд┐рдиреНрди рд╣реИрдВред GPIO рдХреА рдзрд╛рд░рд╛ 9.1 рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг:

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯреНрд╕ (GPIO) рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рджреЛ 32-рдмрд┐рдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░ (GPIOx_CRL рдФрд░ GPIOx_CRH), рджреЛ 32-рдмрд┐рдЯ рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ (GPIOx_IDR рдФрд░ GPIOx_ODR), рдПрдХ 32-рдмрд┐рдЯ рд╕реЗрдЯ / рд░реАрд╕реЗрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ (GPIOx_BSRR), 16-рдмрд┐рдЯ рд╣реИред рдПрдХ рд░реАрд╕реЗрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ (GPIOx_BRR) рдФрд░ рдПрдХ 32-рдмрд┐рдЯ рдмреНрд▓реЙрдХ рд░рдЬрд┐рд╕реНрдЯрд░ (GPIOx_LCKR)ред
рдЕрд╕рд╛рдорд╛рдиреНрдп, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдкрд╣рд▓реЗ рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдпрд╣рд╛рдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ 16 рдкреЛрд░реНрдЯ рдкрд┐рди рдЙрди рдкрд░ "рдЪрд╛рд░ рдмрд┐рдЯ рдкреНрд░рддрд┐ рднрд╛рдИ" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рдпрд╛рдиреА рдкрд┐рди рд╕рд╛рддрд╡реЗрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реВрдиреНрдп CRL рдореЗрдВ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА CRH рдореЗрдВ рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рдмрд╛рдХреА рд░рдЬрд┐рд╕реНрдЯрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреЛрд░реНрдЯ рдХреЗ рд╕рднреА рдкрд┐рдиреЛрдВ рдХреЗ рдмрд┐рдЯреНрд╕ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ - рдЕрдХреНрд╕рд░ рд╢реЗрд╖ рдЖрдзрд╛ "рдЖрд░рдХреНрд╖рд┐рдд" рд╣реЛрддрд╛ рд╣реИред
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рд╢реБрд░реВ рдХрд░реЗрдВред
рд╣рдореЗрдВ рдмреНрд▓реЙрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕реЗрдЯрдЕрдк рдФрд░ рд░реАрд╕реЗрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛рдлреА рдордЬрд╝реЗрджрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ: рдЖрдк рдХреЗрд╡рд▓ рдмреАрдПрд╕рдЖрд░рдЖрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЙрдЪреНрдЪрддрдо 16 рдмрд┐рдЯреНрд╕ рдкрд┐рди рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдирд┐рдЪрд▓реЗ рд╡рд╛рд▓реЗ - 1 рдкрд░ рд╕реЗрдЯ рд╣реЛрдВрдЧреЗ, рдпрд╛ рдмреАрдЖрд░рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдирд┐рдЪрд▓реЗ 16 рдмрд┐рдЯреНрд╕ рдХреЗрд╡рд▓ рдкрд┐рди рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред ред рдореБрдЭреЗ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рд╣реИред рдпреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдЗрд╕ рдорд╛рдпрдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдХрд┐ рд╡реЗ рдкрд┐рдиреЛрдВ рдХреЛ рдкрд░рдорд╛рдгреБ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:


рдкрд░рдорд╛рдгреБ рд╕реНрдерд╛рдкрдирд╛ рдпрд╛ рд░реАрд╕реЗрдЯ
GPIOx_ODR рдХреЛ рдмрд┐рдЯ рд╕реНрддрд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдЖрдк рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдмрд┐рдЯреНрд╕ рдХреЛ рдПрдХ рдкрд░рдорд╛рдгреБ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рди APB2 рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реЗрдЯ / рд░реАрд╕реЗрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ (GPIOx_BSRR рдпрд╛, рдХреЗрд╡рд▓ рд░реАрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, GPIOx_BRR) рдЙрд╕ рдмрд┐рдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдиреНрдп рдмрд┐рдЯреНрд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗред
рдбреЗрдЯрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдХрд╛рдлреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо рд╣реИрдВ - IDR = рдЗрдирдкреБрдЯ рдбрд╛рдпрд░реЗрдХреНрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░, рдЗрдирдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░; ODR = рдЖрдЙрдЯрдкреБрдЯ рдбрд╛рдпрд░реЗрдХреНрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░, рдЖрдЙрдЯрдкреБрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ред рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ред рдЪреВрдВрдХрд┐ рд╣рдо рджреВрд╕рд░реЗ SPI, PB13, PB14 рдФрд░ PB15 рдХреЗ рдкрд┐рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рддреБрд░рдВрдд CRH рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ 20 рд╡реАрдВ рд╕реЗ 31 рд╡реАрдВ рддрд╛рд░реАрдЦ рддрдХ рдмрд┐рдЯреНрд╕ рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкрд┐рдВрд╕ рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдореИрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдмрд╕ рдпрд╣ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ MODE рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЗрдирдкреБрдЯ, рдпрджрд┐ рджреЛрдиреЛрдВ рдмрд┐рдЯреНрд╕ 0 рдкрд░ рд╕реЗрдЯ рд╣реИрдВ) рдФрд░ рдкрд┐рди рдЧрддрд┐ (рд╣рдореЗрдВ 50MHz рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рджреЛрдиреЛрдВред "1") рдореЗрдВ рдкрд┐рди, рдФрд░ CNF рдореЛрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ: рд╕рд╛рдорд╛рдиреНрдп "рдкреБрд╢-рдкреБрд╢" - 00, "рд╡реИрдХрд▓реНрдкрд┐рдХ" - 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
рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЖрдк LAT рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ BRR рдФрд░ BSRR рдХреЛ рдЪрд┐рдХреЛрдЯреА рджреЗрдЧрд╛:
#define LAT_pulse() _PORTB_(_BSRR) = (1<<14); _PORTB_(_BRR) = (1<<14) #define LAT_low() _PORTB_(_BRR) = (1<<14)
(LAT_low рд╕рд┐рд░реНрдл рдЬрдбрд╝рддрд╛ рд╕реЗ, рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рд╣рдореЗрд╢рд╛ рдерд╛, рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд░рд╣рдиреЗ рджреЛ)
рдЕрдм рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╣рд╛рди рд╣реИ, рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрд╕рдЯреАрдПрдо 32 рд╣реИ, рдпрд╣ рдмрд┐рдЬрд▓реА рдмрдЪрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдШрдбрд╝реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдордп рдкрд░ рдЪрд╛рд▓реВ рдХрд░реЗрдВ
рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП рдШрдбрд╝реА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд╡реЗ рднреА рдШрдбрд╝реА рд╣реИрдВред рдФрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдЖрд░рд╕реАрд╕реА рджреЗрдЦ рд╕рдХрддреЗ рдереЗред рд╣рдо рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ: рдпрд╣ рд░реАрд╕реЗрдЯ рдФрд░ рдШрдбрд╝реА рдирд┐рдпрдВрддреНрд░рдг рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдПрд╕рдЯреАрдПрдо рдХреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд┐рдВрдЧ рд╡рд┐рд╖рдп рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡реЗ рдЖрдкрдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рджреЗрддреЗ рд╣реИрдВ (рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореИрдВ рдбрд┐ рд╣рд╛рд▓реНрдЯ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдЙрд▓рдЭрд╛ рд╣реБрдЖ рд╣реИ)ред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рдзреАрдп рдШрдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдкреЗрд░рд┐рдлреЗрд░рд▓ рдХреНрд▓реЙрдХ рд╕рдХреНрд╖рдо рд░рдЬрд┐рд╕реНрдЯрд░)ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрд░рд╕реАрд╕реА рдХрд╛ рдЖрдзрд╛рд░ рдкрддрд╛ рдвреВрдВрдвреЗрдВ, рдпрд╣ "рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб" рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИ:

#define _RCC_(mem_offset) (*(volatile uint32_t *)(0x40021000 + (mem_offset)))
рдФрд░ рдлрд┐рд░ рдЙрд╕ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдкреНрд▓реЗрдЯ рдореЗрдВ рдХреБрдЫ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдпрд╛, рдмрд╣реБрдд рдмреЗрд╣рддрд░, рд╕рдХреНрд╖рдо рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдкрд░ рд╡рд░реНрдЧреЛрдВ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдЬрд╛рдПрдВред рдЬрд╣рд╛рдБ рд╣рдо RCC_APB1ENR рдФрд░ RCC_APB2ENR рдкрд╛рддреЗ рд╣реИрдВ:


рдФрд░ рдЙрдирдореЗрдВ, рдХреНрд░рдорд╢рдГ, рдмрд┐рдЯреНрд╕, рдЬрд┐рд╕рдореЗрдВ SPI2, IOPB (I / O рдкреЛрд░реНрдЯ B) рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝рдВрдХреНрд╢рди (AFIO) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
#define _APB2ENR 0x18 #define _APB1ENR 0x1C #define IOPBEN 0x0008 #define SPI2EN 0x4000 #define AFIOEN 0x0001
рдЕрдВрддрд┐рдо рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдпрджрд┐ рдХреЛрдИ рдЕрд╡рд╕рд░ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рд╣рдо DM634 рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ: DAI рд╕реЗ PB15, DCK рд╕реЗ PB13, LAT рд╕реЗ PB14ред рд╣рдо 5 рд╡реЛрд▓реНрдЯ рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ, рдкреГрдереНрд╡реА рдХреЛ рдЧрдардмрдВрдзрди рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рддреЗ рд╣реИрдВред

STM8 PWM
STM8 рдкрд░ PWM
рдЬрдм рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдЪрд┐рдк рдХреА рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╢реАрдЯ рдХреЗ рд╕рд╛рде рд╕реАрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рддрд╛рдХрд┐ рдореБрдЭреЗ рдмрд┐рдирд╛ рдмреВрдЯ рдХреЗ рдПрдХ рдерд╛рдиреЗрджрд╛рд░ рди рдорд┐рд▓реЗред STM8 рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЗрд╕ рднреВрдорд┐рдХрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдкрд╛рд╕ STM8S103 рдХреЗ рд╕рд╛рде рдЪреАрдиреА рдорджрд░рдмреЛрд░реНрдб рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдереА, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдпрд╣ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рд▓реЛрднрди рдЗрди рдмрд╣реБрдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред
рдЪрд┐рдк рдореЗрдВ рдПрдХ рдбреЗрдЯрд╢реАрдЯ рдФрд░ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ RM0016 рднреА рд╣реИ , рдкрд╣рд▓реЗ рдкрд┐рдирдЖрдЙрдЯ рдореЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдкрддреЗ рджрд░реНрдЬ рдХрд░реЗрдВ - рдмрд╛рдХреА рд╕рдм рдХреБрдЫред STM8 рдХреЛ C рдореЗрдВ рдмрджрд╕реВрд░рдд IDE ST рджреГрд╢реНрдп рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХреНрд░рдорд╛рджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреНрд▓реЙрдХрд┐рдВрдЧ рдФрд░ рдЖрдИ / рдУ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, STM8 2 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рддреБрд░рдВрдд рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

HSI рдШрдбрд╝реА (рдЖрдВрддрд░рд┐рдХ рдЧрддрд┐)
рдПрдЪрдПрд╕рдЖрдИ рдШрдбрд╝реА рдПрдХ рдЖрдВрддрд░рд┐рдХ 16-рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдЖрд░рд╕реА рдСрд╕рд┐рд▓реЗрдЯрд░ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдбрд┐рд╡рд╛рдЗрдбрд░ (1 рд╕реЗ 8) рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕реЗ рдХреНрд▓реЙрдХ рдбрд┐рд╡рд╛рдЗрдбрд░ (CLK_CKDIVR) рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдиреЛрдЯ: рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╡рд┐рднрдХреНрдд 8 рдХреЗ рд╕рд╛рде HSI RC рдерд░рдерд░рд╛рдирд╡рд╛рд▓рд╛ рдХреЛ рдкреНрд░рдореБрдЦ рдШрдбрд╝реА рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдореЗрдВ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдкрддрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рд░рд┐рдлрд╝рдореИрди рдореЗрдВ рд╡рд┐рд╡рд░рдг рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
#define CLK_CKDIVR *(volatile uint8_t *)0x0050C6 CLK_CKDIVR &= ~(0x18);
рдЪреВрдВрдХрд┐ рд╣рдо PWM рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдПрд▓ рдИ рдбреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдкрд┐рдирдЖрдЙрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЪрд┐рдк рдЫреЛрдЯрд╛ рд╣реИ, рдПрдХ рд╣реА рдкрд┐рди рдкрд░ рдХрдИ рдХрд╛рд░реНрдп рдирд┐рд▓рдВрдмрд┐рдд рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдореЗрдВ "рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛" рд╣реИ, рдЗрд╕реЗ " рд╡рд┐рдХрд▓реНрдк рдмрд╛рдЗрдЯреНрд╕ " рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдЯрдореЗрдЧрд╛ рдХреЗ рдлрд╝реНрдпреВрдЬрд╝ рдХреА рддрд░рд╣ рдХреБрдЫред рдЖрдк рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рд╣реА рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдХреНрд░рд┐рдп рд╣реЛрддреА рд╣реИред рдПрд╕рдЯреА рд╡рд┐рдЬрд╝реБрдЕрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ (рджреГрд╢реНрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рдЗрди рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдкрд┐рдирдЖрдЙрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕реАрдПрдЪ 1 рдФрд░ рд╕реАрдПрдЪ 2 рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВ; рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдмрд┐рдЯреНрд╕ AFR1 рдФрд░ AFR0 рдХреЛ STVP рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП, рдФрд░ рджреВрд╕рд░рд╛ PD4 рд╕реЗ PC5 рддрдХ рджреВрд╕рд░реЗ рдЯрд╛рдЗрдорд░ рдХреЗ CH1 рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, 6 рдкрд┐рди рдПрд▓ рдИ рдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ: рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдкреАрд╕реА 6, рдкреАрд╕реА 7 рдФрд░ рдкреАрд╕реА 3, рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдкреАрд╕реА 5, рдкреАрдбреА 3 рдФрд░ рдкреАрдП 3ред
STM8 рдкрд░ I / O рдкрд┐рди рд╕реНрд╡рдпрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ STM32 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ:
- Atmega рдбреЗрдЯрд╛ рджрд┐рд╢рд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд: 1 = рдЖрдЙрдЯрдкреБрдЯ;
- рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдкрд╣рд▓рд╛ рдХрдВрдЯреНрд░реЛрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ CR1 рдкреБрд╢-рдкреБрд▓ рдореЛрдб (1) рдпрд╛ рдУрдкрди рдбреНрд░реЗрди (0) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ; рдЪреВрдВрдХрд┐ рдореИрдВ рдПрд▓рдИрдбреА рдХреЛ рдХреИрдереЛрдб рд╕реЗ рдЪрд┐рдк рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рд╢реВрдиреНрдп рдЫреЛрдбрд╝рддрд╛ рд╣реВрдВ;
- рдЙрддреНрдкрд╛рджрди рдкрд░ рджреВрд╕рд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ CR2 рдШрдбрд╝реА рдХреА рдЧрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ: 1 = 10 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ
#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 рдЪрдХреНрд░ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдирдП рд╕рдВрдЪрд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрдлрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреЗ рдЧрд┐рдирддреА рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдФрд░ рд░реАрд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдПрдЬ-рд╕рдВрд░реЗрдЦрд┐рдд рдФрд░ рдХреЗрдВрджреНрд░-рд╕рдВрд░реЗрдЦрд┐рдд рдореЛрдб - рд╕реАрдорд╛ рдкрд░ рдФрд░ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕рдВрд░реЗрдЦрдг, рдПрдЯрдореЗрд▓реЛрд╡рд╕реНрдХреА рдлрд╛рд╕реНрдЯ рдкреАрдбрдмреНрд▓реВрдПрдо рдФрд░ рдЪрд░рдг-рд╕рд╣реА рдкреАрдбрдмреНрд▓реВрдПрдо рдХреЗ рд╕рдорд╛рди ред
- OCiREF, рдЖрдЙрдЯрдкреБрдЯ рд╕рдВрджрд░реНрдн рд╕рд┐рдЧреНрдирд▓ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ - рд╕рдВрджрд░реНрдн рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд┐ PWM рдореЛрдб рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкрд┐рди рдкрд░ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдкрд┐рдирдЖрдЙрдЯ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рджреЛ рдЯрд╛рдЗрдорд░ рдореЗрдВ рдкреАрдбрдмреНрд▓реВрдПрдо рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВ - рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ред рджреЛрдиреЛрдВ 16-рдмрд┐рдЯ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рджреЛрдиреЛрдВ рдХреЛ рдЧрд┐рди рд╕рдХрддрд╛ рд╣реИ)ред рд╣рдо рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд░реАрдм рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдЧрд▓рддреА рд╕реЗ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдЬреЛ рдЗрд╕рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреА PWM рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ (17.5.7 PWM рдореЛрдб) рдХреЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреВрд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреВрджрдирд╛ рд╣реЛрдЧрд╛ред
PWM Atmega рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн PWM рдкрд░ PWM:

рдмрдврд╝рдд рд╕рдВрд░реЗрдЦрдг рдХреЗ рд╕рд╛рде PWM
рдЦрд╛рддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ
рдЕрдЧрд░ TIM_CR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ DIR рдмрд┐рдЯ рд╕рд╛рдлрд╝ рд╣реЛ рдЧрдпрд╛ рд╣реИ рддреЛ рдиреАрдЪреЗ-рдКрдкрд░ рдХреА рдЧрд┐рдирддреА рд╕рдХреНрд░рд┐рдп рд╣реИ
рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ PWM рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред OCiREF PWM рд╕рдВрджрд░реНрдн рд╕рдВрдХреЗрдд рдЙрдЪреНрдЪ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ TIM1_CNT <TIM1_CCRiред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдПрдХ рдирд┐рдореНрди рд╕реНрддрд░ рд▓реЗрддрд╛ рд╣реИред рдпрджрд┐ TIM1_CCRi рдореЗрдВ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореВрд▓реНрдп (рд░рдЬрд┐рд╕реНрдЯрд░ TIM1_ARR) рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ OCiREF рд╕рд┐рдЧреНрдирд▓ 1 рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдорд╛рди 0 рд╣реИ, рддреЛ OCiREF рд╢реВрдиреНрдп рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ...
рдЕрджреНрдпрддрди рдШрдЯрдирд╛ рдХреЗ рджреМрд░рд╛рди STM8 рдЯрд╛рдЗрдорд░ рдкрд╣рд▓реЗ рддреБрд▓рдирд╛ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдПрдХ рд╕рдВрджрд░реНрдн рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред Atmega рдХреЗ рдЯрд╛рдЗрдорд░ рдореЗрдВ рдкрд╣рд▓реЗ рдлреЗрд░рдмрджрд▓ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрдм compare value == 0
рдХрд░рддреЗ compare value == 0
рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╕реБрдИ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд▓рдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рддрд╛рд░реНрдХрд┐рдХ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛)ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: 8-рдмрд┐рдЯ рдкреАрдбрдмреНрд▓реВрдПрдо ( AR == 255
), рд╣рдо рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ, рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдХреИрдереЛрдб рджреНрд╡рд╛рд░рд╛ рдЪрд┐рдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдкреАрдбрдмреНрд▓реВрдПрдо рдХреЛ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 0 рдФрд░ (рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рд╣реИ) рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ PWM рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрд┐рдХрд╛ (18.6.8 - TIMx_CCMR1) рдЦреЛрдЬрдХрд░ рджреВрд╕рд░реЗ рдЯрд╛рдЗрдорд░ рдХрд╛ рд╡рд╛рдВрдЫрд┐рдд рд░рдЬрд┐рд╕реНрдЯрд░ рдвреВрдВрдврддреЗ рд╣реИрдВ:

110: рдкрд╣рд▓рд╛ рдкреАрдбрдмреНрд▓реВрдПрдо рдореЛрдб - рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рдЧрд┐рдирддреА рдХрд░рддреЗ рд╕рдордп, рдкрд╣рд▓рд╛ рдЪреИрдирд▓ рд╕рдХреНрд░рд┐рдп рд╣реИ рдЬрдмрдХрд┐ TIMx_CNT <TIMx_CCR1ред рдЕрдиреНрдпрдерд╛, рдкрд╣рд▓рд╛ рдЪреИрдирд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИред [рдЖрдЧреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЧрд▓рдд рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдЯрд╛рдЗрдорд░ рд╕реЗ 1]
111: рджреВрд╕рд░рд╛ рдкреАрдбрдмреНрд▓реВрдПрдо рдореЛрдб - рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рдЧрд┐рдирддреА рдХрд░рддреЗ рд╕рдордп, рдкрд╣рд▓рд╛ рдЪреИрдирд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИ рдЬрдмрдХрд┐ TIMx_CNT <TIMx_CCR1ред рдЕрдиреНрдпрдерд╛, рдкрд╣рд▓рд╛ рдЪреИрдирд▓ рд╕рдХреНрд░рд┐рдп рд╣реИред
рдЪреВрдВрдХрд┐ рдПрд▓рдИрдбреА рдПрдордХреЗ рдХреИрдереЛрдб рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рджреВрд╕рд░рд╛ рдореЛрдб рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ (рдкрд╣рд▓рд╛ рднреА, рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рддрдХ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ)ред

рдмрд┐рдЯ 3 OC1PE: рдЖрдЙрдЯрдкреБрдЯ 1 рдкреНрд░реАрд▓реЛрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
0: TIMx_CCR1 рдкрд░ рдкреНрд░реА-рд▓реЛрдб рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВред рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдордп TIMx_CCR1 рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдирдпрд╛ рдорд╛рди рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
1: TIMx_CCR1 рдкрд░ рдкреНрд░реАрд▓реЛрдб рд░рдЬрд┐рд╕реНрдЯрд░ рд╕рдХреНрд╖рдо рд╣реИред рдкреНрд░реАрд▓реЛрдб рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдкрдврд╝реЗрдВ / рд▓рд┐рдЦреЗрдВ рд╕рдВрдЪрд╛рд▓рдиред рдкреНрд░реАрд▓реЛрдбреЗрдб рдорд╛рди TIMx_CCR1 рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдбреЗрдЯ рдИрд╡реЗрдВрдЯ рдХреЗ рджреМрд░рд╛рди рдЫрд╛рдпрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
* рдиреЛрдЯ: рдкреАрдбрдмреНрд▓реВрдПрдо рдореЛрдб рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реАрд▓реЛрдб рд░рдЬрд┐рд╕реНрдЯрд░ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред ( TIMx_CR1 OPM).
, , , :
#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;
. Capture/Compare Enable : , . , , .. PWM Mode 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:

#define TIM2_CR1 *(volatile uint8_t *)0x005300 TIM2_CR1 |= 1;
AnalogWrite(), . Capture/Compare registers , : 8 TIM2_CCRxL TIM2_CCRxH. 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; }
, , 100% ( 255 ). , , .
, .
( , ┬л┬╗ , ). . , .. , 16- Prescaler High Low . тАж . ?
1, , . 17.7.30 Break register (TIM1_BKR) , :

#define TIM1_BKR *(volatile uint8_t *)0x00526D TIM1_BKR = (1<<7);
, .

STM8 Multiplex
STM8
- , RGB- . тАУ LED-, , - , , ( persistence of vision , ). - - .
:
.. , , ┬л┬╗ . . , , , UEV RGB-.
LED , ┬л┬╗, . :
uint8_t colors[8][3];
, , .
uint8_t cnt;
, , CD74HC238. тАУ , <<
. ( 0, 1 2) X, ( 1<<X
). . , тАУ , , . , .
CD74HC238 , . P-MOSFET, , .. 20 , absolute maximum ratings . CD74HC238 :

H = , L = , X тАУ
E2 E1 , E3, A0, A1 A3 PD5, PC3, PC4 PC5 STM8. , , push-pull .
, , :
-, Update Event (UEV), , LED. Update Interrupt Enable

#define TIM2_IER *(volatile uint8_t *)0x005303 //enable interrupt TIM2_IER = 1;
, ghosting тАУ . - , , UEV, , LED - . (0 = , 255 = ) . рдпрд╛рдиреА , UEV .
:
//set polarity TIM2_CCER1 |= (CC1P | CC2P); TIM2_CCER2 |= CC3P;
r, g b 255 .
, - . - , .
ST Visual Develop, main.c
stm8_interrupt_vector.c
, . NonHandledInterrupt
. .
, :

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; }
. rim
тАУ Programming Manual :
//enable interrupts _asm("rim");
тАУ sim
тАУ . ┬л┬╗, .
тАУ .

- , , . , .