STM32L-DISCOVERY + FDD

STM32L-DISCOVERY рдХреЛ FDD рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 4 рддрд╛рд░ рдФрд░ 2 рдЬрдВрдкрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред









рдЖрдк рд╕рднреА рдХреЛ рдлреНрд▓реЙрдкреА рдбрд┐рд╕реНрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП





рдкреБрдирд╢реНрдЪ: рд╕рдордп рд░рд╛рдд рд╣реИ, рдпрд╣ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдиреЛрдЯ рд╣реИ, рдореБрдЭреЗ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЬреНрдЮрд╛рди рдирд╣реАрдВ рд╣реИ, рд╡рд┐рд╖рдпрдЧрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдм рдХреБрдЫ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдкрдбрд╝рд╛ред рдбреНрд░рд╛рдЗрд╡ рд╕реЗ RTTTL рдкреНрд▓реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ред



рдХрд╣рд╛рдБ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?



рдпрджрд┐ рдЖрдк рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рдкрд┐рдирдЖрдЙрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕рдорд╛рди рд╣реИрдВ, рд╡рд┐рд╖рдо рдкреИрд░ рдЬрдореАрди (рдЬреАрдПрдирдбреА) рд╣реИрдВред рдХреЗрдмрд▓ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдПрдХ рдЕрдВрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдКрдкрд░ рдХреА рдУрд░ рдШреБрдорд╛рдПрдВ, рдКрдкрд░реА рдмрд╛рдПрдВ рдкреИрд░ 2 рд╣реИред









рдЬрдореНрдкрд░ рдХреЛ 12-11 рдкреИрд░реЛрдВ рдкрд░ рд░рдЦреЗрдВ ("рдбреНрд░рд╛рдЗрд╡ рд╕реЗрд▓ рдмреА" рдХреЛ GND рдХреЗ рд╕рд╛рде) рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдлреНрд░рдВрдЯ рдкреИрдирд▓ рдкрд░ рдПрд▓рдИрдбреА рд▓рд╛рдЗрдЯ рдЬрд╛рдПрдЧреА, рдлрд┐рд░ 16-15 (рдЬреАрдПрдирдбреА рдХреЗ рд╕рд╛рде "рдореЛрдЯрд░ рд╕рдХреНрд╖рдо рдмреА") рдкрд░ рдЬрдореНрдкрд░ рдбреНрд░рд╛рдЗрд╡ рд╕реНрдкрд┐рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред



рддрд╛рд░реНрдХрд┐рдХ рдЯреАрдЯреАрдПрд▓ рд╕реНрддрд░

рдХрд┐рд╕реА рднреА рдлреНрд▓реЙрдкреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡рд┐рджреНрдпреБрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ 5v TTL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ LVTTL рдХреЗ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╕реНрддрд░реЛрдВ рдХрд╛ рднреА рдЕрдиреБрдкрд╛рд▓рди рдХрд░реЗрдЧрд╛ред
рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ 3.3v рд╣реИ, рдФрд░ FDD рдЗрдВрдЯрд░рдлрд╝реЗрд╕ 5v рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ FDD рдХреЛ "5v рд╕рд╣рд┐рд╖реНрдгреБ" рдкрд┐рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ STM32L152RBT6 рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдбреЗрдЯрд╢реАрдЯ рдЦреЛрд▓реЗрдВ, рдЬреЛ STM32L-DISCOVERY рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ "... рдкрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛" рдирд╛рдордХ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред рдпрджрд┐ рдХреЙрд▓рдо "I / O рд╕рдВрд░рдЪрдирд╛" рдореЗрдВ "FT" (рдкрд╛рдВрдЪ-рд╡реЛрд▓реНрдЯ рд╕рд╣рд┐рд╖реНрдгреБ) рд╣реИ, рддреЛ рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ 5v рдХреЛ рдкрд┐рди рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд╡рд┐рд╕реНрддреГрдд рдореИрдиреБрдЕрд▓ рд╕реЗ, рд╣рдо TTL рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕реНрддрд░реЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ

2.0 рд╡реЛрд▓реНрдЯ рдХрд╛ рдЗрдирдкреБрдЯ рд╣рд╛рдИ рд╡реЛрд▓реНрдЯреЗрдЬ рдФрд░ 0.8 рд╡реЛрд▓реНрдЯ рдХрд╛ рдЗрдирдкреБрдЯ рд▓реЛ рд╡реЛрд▓реНрдЯреЗрдЬред

2.4 рд╡реЛрд▓реНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣рд╛рдИ рд╡реЛрд▓реНрдЯреЗрдЬ рдФрд░ 0.5 рд╡реЛрд▓реНрдЯ рдХрд╛ рд▓реЛ рд╡реЛрд▓реНрдЯреЗрдЬред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рдХреЛ рдЦрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП 3.3v рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред



рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рддрд░реНрдХ рд╕реНрддрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЬрдореАрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рд╕реАрдзреЗ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХреЛ рдкрд╛рд╡рд░ рдХрд░рддреЗ рд╣реИрдВред

рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдкрд╛рд╡рд░ рдХрдиреЗрдХреНрдЯрд░ рд╣реИ ред







рд╣рдо рдбреНрд░рд╛рдЗрд╡ рдмреЛрд░реНрдб (1 рдФрд░ 2 рдкрд┐рди) рдХреЗ рд▓рд┐рдП рджреЛ рддрд╛рд░реЛрдВ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ STT32L-DISCOVERY рдкрд░ EXT_5V рдФрд░ GND рдореЗрдВ рдЪрд┐рдкрдХрд╛ рджреЗрддреЗ рд╣реИрдВред



FDD рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд░реЗрдВ?



рджреЛ рдкрд┐рди, 18 рдбреАрдЖрдИрдЖрд░ "рджрд┐рд╢рд╛" рдФрд░ 20 рдПрд╕рдЯреАрдИрдкреА "рд╕реНрдЯреЗрдк" рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ DIR рдХреЛ LOW (0) рдпрд╛ HIGH (1) рдЦрд┐рд▓рд╛рдХрд░ рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рд┐рд░ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдПрдБ:

рдЪрд░рдг = рдХрдо

рджреЗрд░реА (1mS)

рдЪрд░рдг = рдЙрдЪреНрдЪ

рдкрд░реАрдХреНрд╖рдг рдлрд░реНрдорд╡реЗрдпрд░ рд▓рд┐рдЦрдирд╛



рд╕реНрд░реЛрдд рдХреЛрдб
#include "stm32l1xx.h" #include "stm32l1xx_rcc.h" #define DIR GPIO_Pin_1 // 18 // PA1 #define STEP GPIO_Pin_2 // 20 // PA2 void delay_ms(uint32_t delay) { TIM6->PSC = 2096; TIM6->ARR = delay; TIM6->EGR |= TIM_EGR_UG; TIM6->CR1 |= TIM_CR1_CEN|TIM_CR1_OPM; while ( (TIM6->CR1 & TIM_CR1_CEN) != 0); } void InitPeriph() { GPIO_InitTypeDef GPIOConfig; GPIOConfig.GPIO_Speed = GPIO_Speed_40MHz; GPIOConfig.GPIO_Mode = GPIO_Mode_OUT; GPIOConfig.GPIO_OType = GPIO_OType_PP; GPIOConfig.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIOConfig.GPIO_Pin = DIR | STEP; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE); GPIO_Init(GPIOA,&GPIOConfig); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); } void move() { GPIO_ResetBits(GPIOA,STEP); delay_ms(1); GPIO_SetBits(GPIOA,STEP); } int main() { int i; InitPeriph(); for(;;) { GPIO_ResetBits(GPIOA,DIR); for(i=0;i<100;i++) { move(); } delay_ms(1000); GPIO_SetBits(GPIOA,DIR); for(i=0;i<100;i++) { move(); } delay_ms(2500); } }
      
      





рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдЬрд┐рдХрд▓ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GPIO рдкреЛрд░реНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдФрд░ 6 рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдЯрд╛рдЗрдорд░ рдХреА рдХреНрд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЬрд┐рд╕ рдЯрд╛рдпрд░ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдЙрд╕реЗ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ рдЕрдВрддрд╣реАрди рдЪрдХреНрд░ рдореЗрдВ рд╣рдо рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ 100 рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗред

рдЬрд╛рджреВ рдирдВрдмрд░ 2096 рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ (2.097 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ) рдХреА рдорд╛рдирдХ рдЖрдВрддрд░рд┐рдХ рдЖрд╡реГрддреНрддрд┐ рд╣реИред



All Articles