
Microelectronics ááẠááŸá±á¬áºáááºáá±á¬ Arduino ááŒá±á¬áá·áº áááŒá¬áá±ážáá®ááŸá áºáá»á¬ážá¡ááœááºáž áá±ááºáááºáá±á¬ áá«ááá¬áá áºáá¯ááŒá áºáááºá ááá¯á·áá±á¬áº á€áá±áá¬ááœáẠááŒá¿áá¬ááŒá áºáááº- áá¯á¶áá±á¬ááºáá±á¬ á áááºáááºá á¬ážááŸá¯ááŒáá·áºá áááºááẠDigitalWrite() ááᯠáá»ááºááŒááºá áœá¬ ááŒá®ážááœá¬ážááá¯ááºáá±á¬áºáááºáž áá±á¬ááºáá¬áá¯ááºááááºááᯠáá¯á¶ážáááŸááºážáááºážááŒááºážáááŸááá«á Arduino developer áá»á¬ážááẠáááºážááá¯á·á áá±áá áá áºá¡ááœááºážááá¯á· áááºáá±á¬ááºááẠá¡áá¬ážá¡áá®ážááᯠáá»áŸá±á¬á·áá»ááẠááŒáá¯ážáááºážá¡á¬ážáá¯ááºáá²á·ááŒáá±á¬áºáááºáž áááºážá¡ááŒááºáááºááœáẠá¡áá»á±á¬áºáááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬áž áááºááŸááºážááá®ááá¯ááºáá±á¬ ááŒááºážáááºážáá±á¬ áá¬ážáá áºáááºáááºážá ááŸá±á¬ááºááá¯ááºáá±á¬ áá áºáá±á¬áá áºáᯠááŸááá±ážáááºá
á¥ááá¬á áá±áá¬á á¬ááœááºáá»á¬ážá áá°ááá¯á·ááŸá¬ á¡áá¬á¡á¬ážáá¯á¶ážááŸááá¯á¶ááááºá áá°ááœá¬ážááŒá®ážáá¯á¶ážáá±áá¯á¶ááááºá ááá¯á·áá±á¬áº áááºážááá¯á·áá á¬áá±ážááá¬áá»á¬ážááẠááá¯ááºáááá¯ááœááºáááá¯áá¬áá»á¬ážááᯠáá°ááŒáá¯ááºáá»á¬ážá¡á±á¬áẠáá¯ááºáá±á¬ááºááẠáá¬áááºááᯠáááºážááá¯á·ááá¯ááºáá°ááá¯á· ááŸááºážááŸááºážáááºážáááºáž ááááºááŸááºáá¬ážáá±á ááá«ááá¶ áá¯á¶ááááºááá¯ážááŸááºážáá±á¬á¡áá¬áá»á¬ážááᯠáá±á¬áºááŒááá·áºá¡áá« áá¬ážááááºááá¯ááºáá±á¬ á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááŸáá·áº á¡ááá¯áá±á¬ááºáá»á¬ážááᯠááááºááᬠá¡ááœá²áá¯á¶ážá á¬ážáá¯ááºááŒááºážááŒá áºáá«áááºá áá«áá±ááá·áº á¡áá¬á¡á¬ážáá¯á¶ážá áá®áá±á¬ááºááá¯ážáá¬áá±á¬á· ááá¯ááºáá«áá°ážá ááá¹áááŸááááºáá±á¬á· ááŒá¯ááºááá¯ááœáá·áºááá¯ááºáá«á
á€áá±á¬ááºážáá«ážááœáẠáá»áœááºá¯ááºááẠáá«ááá¬áááºááœááºáá»ááºá¡ááœáẠdatasheets áá»á¬ážááŸáá·áº áááºááœááºááŒá±á¬ááá¯áá±áá±á¬ áá°áá¬ážááá¬áááºááá¯ááºáᬠáá»áœááºážáá»ááºáá°áá áºáŠážá á¡ááœá±á·á¡ááŒá¯á¶ááᯠáá»áŸáá±áá«áááºá á á¬áá¬ážááẠArduino áá±á¬ááºážáá®á០ááŒá®ážááŒááºážáá¬áá±á¬ á¡áá»á±á¬áºáááºážáá»á¬ážá¡ááœáẠáááºááœááºááŒá®áž áááºážááẠááá¯ááºáááá¯ááœááºáááá¯áá¬áá»á¬ážá áá¯ááºáá±á¬ááºááŸá¯ááá¯ááºáᬠááá±á¬ááá¬ážá¡áá»áá¯á·ááᯠáá¬ážáááºááá±á¬áá±á«ááºáááºáᯠáá°ááá«áááºá
ááá¯ážáá¬áá²á· á áá«áááºá
Arduino ááœáẠLED áá®ážáááºážáá±áááº
áá»ááºááŒááºáž code ááá¯:
void setup() {
DDRB |= (1<<5);
}
void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}
"áá«áá¬áá²? - áááºážááŒá¬ážáá±á¬á á¬áááºáá°áááºáá±ážáááá·áºáááºá - PINB ááá·áºááœááºážááŸá¯á á¬áááºážááœáẠá¡áááºááŒá±á¬áá·áº áá áºá á¯á¶áá áºáá¯ááᯠáá±ážáá±ááááºážá á á¬áááºáááºáá¬ááŒá áºáááº!â ááááºáá¬ážá á¡ááºáá¬áááºáá±á«áºááŸá ááá¬áá±ážááá¯ááºáᬠáá±á¬ááºážáá«ážá¡áá»á¬ážá á¯áá²á·ááá¯á·áááºá á€ááŸááºáá¯á¶áááºááŸá¯ááẠáááºáááºáá¬ááŒá áºááŒá±á¬ááºáž áá±á¬áºááŒáá¬ážáááºá ááŒááºááááºáááºá¡áá ááá¯áá·áºááá¯ááºááá¯áẠá¡á²áá®ááᯠááœá±ážáá²á·áááºá Atmega328p ááá¯á· á€áá±á¬ááºážáá«ážááᯠááŒááºáááºááŒááºážá ááŒá®ážáá±á¬á· ááá¯ááŸá¬-

áááºážááẠá¡áá±á¬áºáá±ážá¡áá áºáá±á¬ áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŒá áºáááºá áááºážááẠAtmega8 ááœááºááá¯ááºáá«á áááºážá¡ááŒá±á¬ááºážááᯠáá°ááá¯ááºážáááááá¯áẠááá¯á·ááá¯áẠáá±á¬ááºááŒááºááá¯ááºáááºááŸá¯ááŸááá±á¬á¡ááŒá±á¬ááºážáá»á¬ážááŒá±á¬áá·áº áá±á¬áºááŒáá¬ážááŒááºážáááŸááá«á ááá¯á·áá±á¬áº áá°áááááºážáá±á¬ chip áá»á¬ážá¡áá«á¡ááẠchip áá áœááºážáááºá¡á¬ážáá¯á¶ážááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠdatasheets áá»á¬ážáááºáááºááŸá¯ááá»áá¯ážáááºááŒá±á¬ááºážááá¯ááŒááááºá¡ááœááºááá·áºáá»á±á¬áºáááºá ááŒá®ážáá±á¬á· áá«á áá áºáá¯áááºážáá±á¬ á¡ááŒá±á¬ááºážááŒáá»áẠááá¯ááºáá«áá°ážá
áá¬ááŒá±á¬áá·áº áá±áá¬á á¬ááœááºááœá±ááᯠáááŒá¬ážáááºáá¬áá²á
á¡áá»á¬ážá¡á¬ážááŒáá·áºá Arduino á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠLEDs áá»á¬ážááŸáá·áº AnalogWrites áá»á¬ážááŒáá·áº áá¯á¶áá±á¬ááºá áœá¬áá á¬ážááŒá®ážáá±á¬áẠáá±ážáá¬ážáá¬ážááŒá®ážááŒá áºááá·áº á á¬ááŒáá·áºááá¯ááºáá»á¬ážááŸáááá·áº áá¯ááºá¡ááœá²á·ááá¯á· áá±á¬áºáá»á°ážáá»á¬ážááŸáá·áº áá»á áºááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá áááºáá»áááºáááºááŒáááºá áá»á¬ážáááŒá¬áá® ááá¯á·ááá¯áẠáá±á¬ááºááá¯ááºážááœááºá á á¬ááŒáá·áºááá¯ááºááẠááŒá áºááá·áºááá±á¬áẠá¡áá¯ááºááá¯ááºááá·áº áá±á«áºáá¬áá«áááºá á¡á²áá®áá±á¬áẠá¡áá»á±á¬áºáááºážááá¬ážá ááŒááºááá¯á· á ááŒá®ážááœá±ážáááºá ááŒá®ážáá±á¬á·...
ááŒá®ážáá±á¬á· á¡á²áá®ááŸá¬ áá¯á¶ážááá¬ážááááºááá¯ááºáá²á· á¡áá¬áá áºáᯠááŒá áºááœá¬ážáááºá áá«ááŒá±á¬áá·áº ááẠGoogle ááᯠááœá¬ážáá«á áááºáááºážá ᬠá¡áá»á¬ážá¡ááŒá¬ážááᯠáááºáá«á áá áºá á¯á¶áá áºáá±á¬ááºáá²á· ááá·áºáá»á±á¬áºáá²á· áá¯ááºáá²á· á¡á áááºá¡ááá¯ááºážááœá±ááᯠááœá²áá¯ááºááŒá®áž áá±á¬ááºáá¯á¶ážááŸá¬ ááá·áºáááºážááá¯ááºááᯠáá±á¬ááºááá¯á· ááá¯áá«áááºá áááºážááẠá¡á áœááºážáááºáá±á¬ ááŒá®ážááŒá±á¬ááºá¡á±á¬ááºááŒááºááŸá¯ááᯠáá¶á á¬ážáá á±áááºá ááá¯á·áá±á¬áº áááºááœá±á·ááœááºáá° áá¯ááºáááºážá ááºááẠáá±á¬áºáá±á¬áºááá¯ááºáááºááᯠááŒá±á¬ááºážááŒááºá¡ááºáá»ááºáá®áá¬ááŒáá·áº áá®ážááᯠááŒááºáááºáá®ááœááºááŒááºážááŸáá·áºáá°áááºá áá«á·á¡ááŒáẠáá®á ááºáá®ážá¡áá¯ááºáá¯ááºáá¯á¶ááᯠáá¬ážáááºááŸá¯áááºáž ááá¯ážááá¬áá«áá°ážá áá«ááᯠáá«ááá¯ááºááá¯ááºáá¯ááºáá±áᬠáá±á¬áºáá±á¬áºááŒá¬áá±ááŒá®ááá¯áᬠáá«áááááºá
Atmega328 á á¬ááœááºá á¬áááºážááᯠáááºá¡áááºážáááºááŒá¬ áá±á·áá¬áá²á·ááá²á· áá®á áááºááŸá¯ááºááŸá¬ážá áá¬áá±á¬ááºážáá²á· áá¯ááºáá±á¬ááºáá»ááºá¡á á¬ážá á¡áá»áááºá¡áá»á¬ážááŒá®áž áááºáá¬ááœá¬ážáá«áááá·áºáááºá áá±á¬ááºáá¯á¶ážá¡áá±áá²á·á áá«á á¡áá±á¬áºáá±ážááá¯ážááŸááºážáá²á· microcontroller áá áºáá¯áá«á
ááá¯á·ááŒá±á¬áá·áºá microcontroller áá±áá°áá»á¡áá¯ááºáá¯ááºáá¯á¶ááŸáá·áº áááºážááẠáááºááá¯á·áá¯ááºáá±á¬ááºááá¯ááºáááºááᯠá áááºáá°ážááŒáá·áºááá¯ááºááẠá¡áááºážáá¯á¶áž áá±áá¬á á¬ááœááºáá»á¬ážááᯠáááºááẠááá¯á¡ááºáá«áááºá áá±á¬ááºáááº-
-
á¡ááŒá¬ážáá°áá»á¬ážá áá áºáá»á áºááá¯ááºáá»á¬ážááᯠá á áºáá±ážááŒá®áž ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºáááºá áá®ážááᯠááŒááºáááºáá®ááœááºáá±á¬ á¡áá»á±á¬áºáááºáž á¡áá°áá°ááẠáá±ážáá±á·ááŸááááºá ááá¯á·ááá¯áẠááá·áºáá»ááºáááºá¡áá±ááŸáá·áºá á á¬áá±ážááá¬áá»á¬ážááẠáááºážááá¯á·á¡á¬áž á¡ááœááºá¡áááºáž ááá¯ááºáá²á á±ááẠááááºááᬠáá¯ááºáá±ááŒááºáž ááŒá áºáááºá áá¯á¶ážá ááá¯ááŒá®ážááŒá®áž ááá¯ááŸá±ážáá«á á±á áá«áá±ááá·áº áá»áááºážáá± á¡áá¯ááºááŒá áºáá«áááá·áºáááºá
-
áááºáá°áá»áŸ á á¬ááŒáá·áºááá¯ááºááá±ážáá¬ážáá±á¬ ááá±á¬áá»ááºáá áºáá¯ááœáẠáá»á áºááºáá»á¬ážááᯠáá¯á¶ážááá¯ááºá á±áááºá
-
MK ááá¯ááºážáá áºáá¯á០áá±á¬ááºáá áºáá¯ááá¯á· áááºááá¯ááºááá¯áẠááœááºáá°á á±áááºá
-
Arduino ááœááºáááá¯ááºáá®áá±á¬ áááºááá¯ááºáá±á¬ááºážááᯠáá±á¬ááºáá¯á¶áž á¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬ááºá
-
áááºááá·áº chip ááá¯áááᯠáááºážá á á¬ááŒáá·áºááá¯ááºáá»á¬áž á áááºáá±á¬ááºáá¯á¶ááᯠáá±á·áá¬ááŒááºážá¡á¬áž á¡ááŸá±á¬ááºá¡ááŸáẠáááŸááá² áááºážá ááŸááºáá¯á¶áááºáá»á¬ážááŸáááá·áº ááá¯ááºááá¯áẠáááºááá¯á· ááááºážáá»á¯ááºááááºááᯠáá±á·áá¬áááºá
HAL ááŸáá·áº LL ááŸááá±á¬á¡áá« ááá¯ááºááá¯ááºá á¬áááºážááœááºážááẠá¡áááºááŒá±á¬áá·áºá á¬áá±ážáá«á
áá±á«áá¬á
HALá High Abstraction Layer - abstraction ááŒáá·áºáá¬ážáá±á¬á¡ááá·áºááŸááá±á¬ microcontroller ááá¯ááááºážáá»á¯ááºáááºá¡ááœááºá
á¬ááŒáá·áºááá¯ááºá SPI1 á¡ááºáá¬áá±á·á
áºááá¯á¡áá¯á¶ážááŒá¯áááºááá¯á¡ááºáá«áá áááºáááºáááºááá·áºá
á¬áááºážááœááºážááŸá¯áá»á¬ážá¡ááœááºáá¬áááºááŸááááºááá¯áá
ááºážá
á¬ážáá² SPI1 ááá¯ááá¯ážááŸááºážá
áœá¬áááºááŸááºááŒá®ážááœáá·áºáá«á
LLá á¡ááá·áºáááá·áº API - ááŸááºáá¯á¶áááºááááºá
á¬áá»á¬ážáá«ááŸááá±á¬ áááºáááᯠááá¯á·ááá¯áẠááœá²á·á
ááºážáá¯á¶áá»á¬ážáá«ááŸááá±á¬ á
á¬ááŒáá·áºááá¯ááºáá
áºáá¯á áááºážááá¯á·ááᯠá¡áááºááŒáá·áº áááºáá±á¬ááºááŒáá·áºááŸá¯ááœáá·áºáá±ážáááºá Atmega ááŸá DDRxá PORTxá PINx áá»á¬ážááẠLL ááŒá
áºáááºá
âHALá LL ááá¯á·ááá¯áẠááŸááºáá¯á¶áááºááŒááºážâ áá±á«ááºážá ááºááŒáá·áº á¡ááŒááºážááœá¬ážááŸá¯áá»á¬ážááẠHabré áá±á«áºááŸá ááŸááºáá»ááºáá»á¬ážááœáẠáá¯á¶ááŸááºááŒá áºáá±á«áºáá«áááºá ááá¹áááºáá±áááºá¡ááááá¬ááᯠááá°ááœáá·áºááá±á¬ááºážááá¯áá²á áá»áœááºá¯ááºá á¡áá»á±á¬áºáááºážá¡ááœá±á·á¡ááŒá¯á¶ááŸáá·áº á¡ááœá±ážá¡ááŒááºáá»á¬ážááᯠáá»áŸáá±áá«áááºá
Atmega ááᯠá¡áááºážááŸáá·áºá¡áá»á¬áž ááœá±ážááŒá®áž STM32 á á¡á¶á·ááœááºáá±á¬ááºážááŸá¯á¡ááŒá±á¬ááºáž áá±á¬ááºážáá«ážáá»á¬ážááᯠáááºááŒá®ážáá±á¬á¡áá«á Discoveryá ááŸáá·áº Blue Pills áá¯ááºááŒá¬ážáá áºáá«áááºááŸáá·áº áá»áœááºá¯ááºá á¡áááºáá¯ááºáá¯ááºáá¯ááºáá»á¬ážá¡ááœáẠáá»á áºááºáá»á¬ážááẠáááºáá°áá²á·áá«áááºá áá°ááá¯á·á¡á¬ážáá¯á¶ážááẠáá°ážáá²ááœáẠáá¯ááºááŸá¯áá·áºáá»á¬ážááᯠááŸá áºááŸá áºááŒá¬ á á¯áá±á¬ááºážáá²á·ááŒáááºá áá áºáá«ááá¶ áá»áœááºáá±á¬áº ááá¯áá·áºááá¯ááºááᯠáá®ááá¯ááŒá±á¬áá²á·áááº- âáá«áá²á áá®áá®áááºážáááºáá¯ááºáá ááŒá®áž STM ááᯠáá»áœááºážáá»áœááºážáá»ááºáá»áẠáá¯ááºáá±áááºâ áᯠCubeMX á¡ááœáẠSPI á¡ááœáẠá áá áºááá·áºááœááºážááŸá¯áá áºáá¯ááᯠáááºáá®ážáá¯ááºáá¯ááºáá²á·ááŒá®áž ááááºááœááºáá±á«áºáá±áá±á¬ á á¬áá¬ážáá¶áá¶ááᯠááŒáá·áºááŸá¯áᬠSTM áá°ááá¯ááºááœáá·áºáá»á¬ážááŒáá·áº áááºáá±á¬á áœá¬ á¡ááá¬áá¶áᬠáááºážáááºáááºáž áá áºáááºážáá áºáá¯á¶ ááŒá áºáááºáᯠáá¯á¶ážááŒááºáá²á·áááºá á¡áá»á¬ážááŒá®ážá

á€áá±áá¬ááœáẠCubeMX áá±ážáá¬ážáááºááᯠááááá¯ááºáááºá ááá¯á·áá±á¬áº áá áºáá»áááºáááºážááŸá¬ááẠá áá¬ážáá¯á¶ážá¡á¬ážáá¯á¶ážááᯠááŸááºáá¬ážááŒá®áž áááºááŒáá·áºáá±ážááŒááºážááẠáááºááœá±á·ááá»ááŒá±á¬ááºáž áááºááŸá¬ážáá«áááºá áá«ááᯠá¡ááŸá¬ážááŸá¬ááá¯á·á Cube áá²á áá±á¬ááºá áºááᯠá¡ááŸááºááá²á· á¡ááŸááºááŒá áºááá¯á· áá±á·ááœá¬ážáá²á·ááẠá¡á²áá« áá¯á¶ážááá±á¬ááºážáá«áááºá
ááŸá áºááŸá áºáá¯ááºááœá¬ážáá±á¬á· ááŸá¯ááºáááºážááᯠáááºážáá±áá¯ááºážáá²á á¡ááá¬ááŸááá±á¬á¡áá»áá¯ážá¡á á¬ážá¡á¬ážáá¯á¶ážá¡ááœááº, áá«áá±ááá·áºáá«á·áá¬ážáááºááŸá¯áá»á±á¬áºááœááº, áá»á áºááºáá»á¬ážááŸáá·áºááá±á¬áºááááœá±á·áᬠSTM8 áá±á¬ááºááŸááá±áá²á· AND áá¯ááºáááẠáá«ááœáá·áºáá¬ážáá²á· áá¶áá«ážááá¯áá±á«ááºáá±áá²á·áᬠáá®áá áºáá»áááºáá¯á¶áž áá«áá¬ážáááºáá²á·áááº- STM áá²á· ááŸááºáá¯á¶áááºááœá±ááᯠáááŒá¬áž MK ááœá±áá²á· áá¯á¶á á¶á¡ááá¯ááºáž á á®á ááºááŒá®áž Cube á áá°ááá¯á·áá²á· á¡áá¯ááºáá¯ááºááá¯á· áááá¯á¡ááºáá«áá°ážá ááŒá áºááá¯ááºáá«á·ááá¬áž..?
HAL ááŸáá·áº á¡áá°ážáááŒáá·áº STM32CubeMX ááẠSTM32 áá»á áºááºáá»á¬ážááŸáá·áº áá®ážáááºá áœá¬ á¡áá¯ááºáá¯ááºáá±á¬ ááá±á¬áºáááºááŸááºááẠá¡ááºáá»ááºáá®áá¬áá»á¬ážá¡ááœáẠáááááá¬áá áºáá¯ááŒá áºáááºá á¡ááá á¡ááºá¹áá«áááºááŸá¬ ááŒáá·áºáá¬ážáá±á¬ á áááºáá°ážá áááºáááºážá MCU áá áºáá¯á០á¡ááŒá¬ážáá áºáá¯ááá¯á· áá»ááºááŒááºá áœá¬ ááŒá±á¬ááºážááœáŸá±á·ááá¯ááºá áœááºážááŸáááŒá®áž STM32 ááá¯ááºážá¡ááœááºáž áá»ááºááŸááá±áá»áááºááœáẠá¡ááá á¡ááºá¹áá«áááºááŸá¬ core áá áºáá¯á០á¡ááŒá¬ážáá áºáá¯ááá¯á·ááẠááŒá áºáááºá áá«ááá¬ááŸááºáá»á¬ážááẠááá¯ááá¯á·áá±á¬ááŒá¿áá¬áá»á¬ážááᯠááŒá¯á¶ááœá±á·ááá²ááẠ- á ááºážáááºážá¡áá±ááŒáá·áº áá»áœááºá¯ááºááá¯á·á microcontrollers ááœá±ážáá»ááºááŸá¯ááẠAliExpress á¡áá»áá¯ážá¡á á¬ážááœááºáᬠááá·áºáááºáá¬ážááŒá®áž áá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºááœá²ááŒá¬ážáá±á¬ áá»á áºááºáá»á¬ážááŒá¬ážááœáẠááœáŸá±á·ááŒá±á¬ááºážáá±á·ááŸáááẠ- áá»áœááºá¯ááºááá¯á·ááẠAtmega á០STM ááá¯á· á STM á០ESP ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºáž ááá¯á·ááá¯áẠáá»áœááºá¯ááºááá¯á·á ááá¯ááºááááºááœá±áá»á¬áž áááºááá·áºá¡áá¬á¡áá áºáááᯠáá«ááá¯á·ááá¯áá áºáá«á HAL ááẠá€áá±áá¬ááœáẠáá°áá®áááºááá¯ááºáá«á áááºážááá¯áá±á·áá¬ááŒááºážááẠá¡áá»áááºáá»á¬ážá áœá¬áá¯ááºáááá·áºáááºá
LL áá»ááºááŸááá±áá±ážááẠ- ááá¯á·áá±á¬áºáááºážááŸá á¬áááºážááœááºážáááºááŒá±ááŸááºážáá áºáááºááŸááááºá ááá¯ááºááá¯ááºááá¯ááºáá»á áá»áœááºá¯ááºááẠá á¬áááºážááœááºážááááºá á¬áá»á¬ážááŒáá·áº áá»áœááºá¯ááºá macro áá»á¬ážááᯠáá±ážáá¬ážáá¬ááœáẠá¡áá¯á¶ážáááºáááº- áá»áœááºá¯ááºááẠáá±áá¬á á¬ááœááºááᯠááá¯ááá¯ááá¯áá áá¯ááºáá±á·áá¬ááŒá®ážá á¡áá¬áááºááœáẠáá»áœááºá¯ááºááá¯á¡ááºááá·áºá¡áá¬áá»á¬ážááᯠááœá±ážáá±á¬áᬠáá»áœááºá¯ááºááááá¯ááááºáá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáááºáá±á¬ááºáá¬ážáá«áááºá áá±áá¯áá»á¡á¬ážááŒáá·áº áá»á±á¬áºááœáŸá¬ážááŒááºážááẠá¡ááœááºáá»ááºááẠá¡áá±á¬ááºá¡áá°ááŒá áºá á±áá«áááºá .
ááá¯á·á¡ááŒááºá áá°ááŒáá¯ááºáá»á¬ážáá±á¬ STM32F103 ááŸáá·áº ááœá²ááœá²ááŸá¯ááŸáááẠ- áááºážá¡ááœáẠááœá²áááºáá¯á¶ážáááá±á¬ LL áá¬ážááŸááºáž ááŸá áºáá¯ááŸááááºá STM á០áá¬áááºááŸááá°áá áºáŠážá STM32duino ááá±á¬áá»ááºááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áá¯áááááŒá±á¬áẠSTM á០áá¬áááºááŸááá°áá áºáŠážá open-source library áá±ážááẠ(á¡ááá¡áá»ááŒá±á¬áá°ážáááºá ) áááºááẠáá¬ážááŸááºážááŸá áºáá»áá¯ážááᯠáááºáá®ážáááẠááá¯á·ááá¯áẠááŸááºáá¯á¶áááºááŸá¯áá»á¬ážááᯠááá¯ááºááá¯ááºáááºáá±á¬ááºááŒáá·áºááŸá¯ááá«áááºá
áá±á¬ááºáá¯á¶ážá¡áá±áá²á·á áá»áœááºáá±á¬á·áºá¡ááŒááºá¡ááá±á¬á· LL ááá¯áááºáá¯ááºááŒááºážá ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááŸá¯ááᯠááá¯ážááŸááºážá á±áááºá ââá¡áá°ážáááŒáá·áº ááá±á¬áá»ááºá¡á ááááºážá áááºá á¡á²áá«ááᯠá á®á ááºáááºááá¯áááºáá±á«á·á áá¯á¶ááŒá®ážáá»á²á· á¥ááá¬- LL ááá«áá² Atmel Studio ááœáẠArduino ááŸáááºáá¯áẠáá±ážááá¯ááºááŒáá«á áá¯á·á
#include <stdint.h>
#define _REG(addr) (*(volatile uint8_t*)(addr))
#define DDR_B 0x24
#define OUT_B 0x25
int main(void)
{
volatile uint32_t k;
_REG(DDR_B) |= (1<<5);
while(1)
{
_REG(OUT_B) |= (1<<5);
for (k=0; k<50000; k++);
_REG(OUT_B) &= ~(1<<5);
for (k=0; k<50000; k++);
}
}
á€áá¯ááºááẠSTM8 (ST Visual Desktop ááŸ) áá«áá±á¬ ááá¯ááºáá¯ááºáá±á«áºááœáẠLED ááŸáááºáá¯ááºááŸáááºáá¯ááºááŒá áºá á±áááºá¡ááœáẠáááºážááœáẠááááºá á¬ááŸá áºáá¯ááᯠááŒá±á¬ááºážááẠáá¯á¶áá±á¬ááºáá«áááºá
#define DDR_B 0x5007
#define OUT_B 0x5005
áá¯ááºáá²á·á áá®ážááŒá¬ážáá¯ááºáá áºáá¯áá±á«áºááŸá LED ááá¯áá»áááºáááºááŒááºážáá¡ááºá¹áá«áááºááá¯á¡áá¯á¶ážááŒá¯áááºá áááºážáááºá¡ááœááºááŸá±ážááœá±ážá áœá¬áá»ááºáá±á¬ááºáááºáááá·áºáááºá ááá¯á·áá±á¬áºáááºážáááºááŒá áºáá»ááºáááá·áºáááºá
áááºáá±áá¬á á¬ááœááºá¡áá»áá¯ážá¡á á¬ážááœá±ááŸááá²á
áá±á¬ááºážáá«ážáá»á¬ážááŸáá·áº ááá¯áááºáá»á¬ážááœáẠáá¯ááŸá¬ážááŸáá·áº á¡ááºá¹ááááẠááŸá áºáááºá áá¯á¶ážá "áá±áá¬á á¬ááœááºáá»á¬áž" ááẠáá»á áºááºáá»á¬ážá¡ááœáẠáááºážááá¬ááá¯ááºáᬠá á¬ááœááºá á¬áááºážáá»á¬ážááᯠááá¯ááá¯ááŒá®áž á€á á¬áá¬ážááœáẠáá»áœááºáá±á¬áºáááºáž á¡áá¬ážáá°áá¯ááºáá±á¬ááºáá«áááºá ááá¬ážáááºá¡á¬ážááŒáá·áºá áááºážááá¯á·ááẠááá¯áá²á·ááá¯á·áá±á¬ á á¬ááœááºá á¬áááºážá¡áá»áá¯ážá¡á á¬ážáá áºáá¯áá»áŸáá¬ááŒá áºáááº-
á¡áá»ááºá¡áááºá á¬ááœáẠ- á áœááºážáá±á¬ááºáááºááá¹ááá¬áá»á¬ážá áááºážáá»á°áá¬ááŸáá·áºáááºážááá¬ááá¯ááºáá¬áááá±áááá¹ááá¬áá»á¬ážá áááºááá·áºá¡á®áááºáááœááºážáá áºá¡á áááºá¡ááá¯ááºážá¡ááœááºáááŒá áºááá±á áá±á¬ááºáá¶á¡áá»ááºá¡áááºááẠáááºáá²ááœááºááŸááá±ááẠá¡áá¯á¶ážáááºáá±á¬áºáááºáž áááºážááœáẠá ááºážá á¬á áœá¬áááºááẠáá»á¬ážá áœá¬áááŸááá«á ááá¯á·áá±á¬áºá áááá¯á¡ááºáá±á¬á á¬ááœááºá á¬áááºážáá»á¬ážááá¯ááºáá¯ááºááẠááá¯ááá¯ááá¯ážááŸááºážáá±á¬ áá»á áºááºáá»á¬ážááᯠáá±áá¬á á¬ááœááºáá áºáá¯ááœáẠááá·áºáááºáá¬ážáá±á·ááŸááááºá áá«ááá¯ááẠááá¯ážáá¬ážá áá¬áááºá áœá²á á¬á¡á¯áẠá€áá±áá¬ááœááºáá«áááºáááºá
ááá¯ážáá¬ážá áá¬áááºá áœá²á á¬á¡á¯áẠ- áááºážááœáŸááºáá»ááºáá»á¬ážááá¯ááºááá¯ááºá á á¬áá»ááºááŸá¬ 1000+ ááŸááá±á¬ áá»ááºážáá¬áá±á¬á á¬á¡á¯ááºá Chip ááœááºááá·áºááœááºážáá¬ážááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááá¯ááºáá±á¬ááºááŸá¯ááá¯á¡áá±ážá áááºáá±á¬áºááŒáá¬ážáááºá ááá¯ááºáááá¯ááœááºáááá¯áá¬ááᯠáá»áœááºážáá»ááºá á±áááºá¡ááœáẠá¡áááá á¬ááœááºá á¬áááºážá ááá°áá«á á¡áá»ááºá¡áááºá á¬ááœááºá ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááẠMKs á¡áá»áá¯ážáá»áá¯ážá¡ááœáẠáá±ážáá¬ážáá«áááºá áááºážááá¯á·ááœáẠáááºá áá®ážááŒá¬ážáá±á¬áºáááºááœáẠááááŸáááá¯ááºáá±á¬ á¡áá¶áá á¹á ááºážáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážá áœá¬ áá«ááŸááááºá
Programming áááºá áœá² ááá¯á·ááá¯áẠInstruction Set Manual - áá°ážááŒá¬ážáá±á¬ microcontroller á¡áááá·áºáá»á¬ážá¡ááœááºááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá Assembly áá¬áá¬á áá¬ážááŒáá·áº áááá¯ááááºááŒá¯áá¯ááºááá¯áá°áá»á¬ážá¡ááœáẠáááºááœááºáá«áááºá ááœááºááŒá°áá¬á á¬áá±ážááá¬áá»á¬ážááẠáá¯ááºááᯠáá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááẠáááºážááá¯áááºááŒáœá áœá¬á¡áá¯á¶ážááŒá¯áá±á¬ááŒá±á¬áá·áº áá±áá¯áá»á¡ááŒá±á¡áá±ááœáẠáá»áœááºá¯ááºááá¯á·á áááºážááá¯áááá¯á¡ááºáá«á ááá¯á·áá±á¬áº á€áá±áá¬ááœááºááŒáá·áºááŸá¯ááŒááºážááẠáá±áá¯áá»áá¬ážáááºááŸá¯áá áºáá¯á¡ááœááºá á¡áá»áá¯á·áá±á¬ áá®ážááŒá¬áž command áá»á¬ážááŒá áºááá·áº interrupt áá áºáá¯ááŸááœááºááŒááºážá¡ááŒáẠdebugger ááá¯áááºááŒáœá áœá¬á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœáẠá¡áá¯á¶ážáááºáá«áááºá
áá»áŸá±á¬ááºááœáŸá¬ááŸááºá ᯠ- áááŒá¬áá áá¯ááºááá°áá¬áá»á¬ážááŒáá·áº áá®ážááŒá¬ážááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážááẠá¡áá¯á¶ážáááºáá±á¬ á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážá
Errata á á¬ááœáẠ- á á¶ááá¯ááºáá±á¬ áá»á áºááºá¡áá°á¡áá»áá·áºááá¯ááºáᬠááá á¹á áááºáá»á¬ážá áá±á¬áºááŒáá»ááºá ááŸááá«áá
áá±áá¬á á¬ááœááºááœá± áá¬ááœá±áá«áá²á
ááá¯ááºááá¯áẠá¡áá»ááºá¡áááºá á¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«ááá¹ááá»á¬áž ááá¯á¡ááºááá¯ááºáááº-
á ááºáá á¹á ááºážá¡áá»ááºážáá»á¯áẠ- áá±áá¬á á¬ááœááºááááá á¬áá»ááºááŸá¬ááœáẠá ááºáá á¹á ááºážááᯠá¡ááá¯áá»á¯á¶ážáá±á¬áºááŒáááºá áá áºáá±áá¬áá¬ááŸá¬ chip ááá¯ááœá±á·áá²á·á¡áá« (á ááá¯ážááá¯ááºááŸá¬ááœá±á·á ááá±á áá±á¬áºááŒáá»ááºáá áºáá¯ááœá±á·) ááŸáá·áºáááºážááá¯áá¬ážáááºááá¯ááá·áºá¡ááŒá±á¡áá±áá»á¬ážááœááºá¡ááœááºá¡áá¯á¶ážáááºáááºá
á¡ááœá±ááœá±áá»á±á«ááœááá»áŒ - ááá¯ááºážá០áá»á áºááºáá»á¬ážá á áœááºážáá±á¬ááºáááºáá»á¬ážááᯠááá¯ááá¯á¡áá±ážá áááºáá±á¬áºááŒáá»ááºá
Pinouts - ááŒá áºááá¯ááºáá±á¬áá»á áºááºáááºáá±á·áá»áºá¡á¬ážáá¯á¶ážá¡ááœáẠpinout diagrams (áááºááá·áº pin ááẠáááºááá·áºááŒá±áá±á¬ááºááœááºááŸááááº)á
pin áá±á¬áºááŒáá»áẠ- pin áá áºáá¯á á®á áááºááœááºáá»ááºááŸáá·áº áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬ážááᯠáá±á¬áºááŒáá»ááºá
ááŸááºáá¬ááºááŒá±áá¯á¶ - áá»áœááºá¯ááºááá¯á·ááẠááŸááºáá¬ááºááœáẠááááºá á¬ááŒá±áá¯á¶áá áºáᯠááá¯á¡ááºáááºááá¯ááºáá±á¬áºáááºáž áá áºáá«áá áºáá¶ááœáẠááŸááºáá¯á¶áááºááá±á¬ááºááááºá á¬áá»á¬áž ááá¬ážáá áºáá¯áááºáž áá«áááºáá«áááºá
ááŒá±áá¯á¶ááᯠá á¬áááºážááœááºážáá«á - á ááºážáá»ááºážá¡á ááŸááºáá¯á¶áááºáá¯ááºááœááºáá»á¬ážá ááááºá á¬áá»á¬ážááá¬ážááẠáá±áá¬á á¬ááœááºááœááºááŸáááŒá®ážá Ref Manual - á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážáᬠ(ááááºá á¬á¡á±á¬á·).
áá»áŸááºá á áºáááºááᬠ- áá®ááá¹áááŸá¬ áá»áœááºáá±á¬áºááá¯á· á¡ááá á áááºáááºá á¬ážáá«áááºá á¡ááŒáœááºážáá²á· á¡ááŒáá·áºáá¯á¶áž á¡ááá·áºáááºááŸááºáá»ááºáá»á¬ážáá»á áºááºáá áºáá¯á á®á¡ááœáẠá¡áá»á¬ážáá¯á¶áž áááºá¡á¬ážá á¬áááºážááŒá¯á á¯ááŒááºážá áá»ááºáá®ážááááá±á¬ Atmega328p ááŸáá·áºááá°áá²á MK á¡áá»á¬ážá á¯ááẠááá·áºá¡á¬áž á¡áá±ážá¡áááºáá¬ážáá±á¬áááºáá»á¬ážááᯠáááºáá»á¬ážááŸáá·áºáá»áááºáááºááẠááœáá·áºáááŒá¯áá²á Arduinists áá»á¬ážá¡ááœáẠáááŸá áºááŒáá¯á·ááœááºá¡á¶á·ááŒá áá¬ááŒá áºáá¬áááºá
Package ááááºážá¡áá»ááºá¡ááẠ- ááá·áºáá¯ááºááŒá¬ážáá»á¬ážááᯠáá®ááá¯ááºážááœá²áá¬ááœáẠá¡áá¯á¶ážáááºáá±á¬ á¡áááºá á¥áºáá¯á¶áá»á¬ážá
ááá¯ážáá¬ážá áá¬áááºá áœá²á á¬á¡á¯áẠááœá²á·á ááºážáááºáá±á¬ááºáá¯á¶á¡á áááºážááá¯á·á áá±á«ááºážá ááºááœáẠáá±á¬áºááŒáá¬ážáá±á¬ áá®ážááŒá¬ážá¡áá¶á¡áá¶áá»á¬ážá¡ááœáẠááŒáŸá¯ááºááŸá¶áá¬ážáá±á¬ á¡ááá¯ááºážáá»á¬áž áá«áááºáá«áááºá á¡áááºážááŒá®ážáá áºáá¯á á®ááᯠá¡ááá¯ááºážáá¯á¶ážááá¯ááºáž ááœá²ááŒá¬ážááá¯ááºáááº-
á»áá¶á³áá¶á¯áá¶á¯ážááá¹áá , áááá«áá¹áž, á¡ááºá¹áá«áááºáá»á¬áž - á¡áá¶á áœááºážáááºáá»á¬ážáááŒá¯á¶áá¯á¶áá¯á¶ážáááºáá»ááº;
á¡áá¯ááºáá¯ááºáá±á¬áºááŒáá»ááº, á¡áá¯á¶ážááŒá¯ááŸá¯áááºážááœáŸáẠááá¯á·ááá¯áẠá¡ááá¯ááºážá á¡ááá ááááºááá¯á·ááŒááºáž - á¡áá¶áááááá¬á á¡ááŒá±áá¶ááá±á¬ááá¬ážáá»á¬ážááŸáá·áº áááºážááá¯á¡áá¯á¶ážááŒá¯áá¯á¶á¡ááŒá±á¬ááºáž á¡áá±ážá áááºá á¬áá¬ážáá±á¬áºááŒáá»ááºá
ááŸááºáá¯á¶ááẠ- ááááºážáá»á¯ááºááŸá¯á á¬áááºážáá»á¬ážáá±á¬áºááŒáá»ááºá GPIO ááá¯á·ááá¯áẠSPI áá²á·ááá¯á·áá±á¬ ááá¯ážááŸááºážáá±á¬ááá á¹á áá»á¬ážááœááºá áááºážááẠá¡áá¶áá á¹á ááºážáá»á¬ážááᯠá áááºá¡áá¯á¶ážááŒá¯ááẠáá¯á¶áá±á¬ááºááá¯ááºáá±á¬áºáááºáž ááááºá¡ááá¯ááºážáá»á¬ážááᯠáááŒá¬áááááºááá±ážáááºá
áá±áá¬á á¬ááœááºááœá±ááᯠáááºááá¯áááºááá²á
áá±áá¬á á¬ááœááºáá»á¬ážááẠá¡áá±á·á¡ááááŸááá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á áá¯áááºááŸáá·áº áá¬ážááááºááá¯ááºáá±á¬ á áá¬ážáá¯á¶ážáá»á¬ážá áœá¬ááŒáá·áº ááá·áºááᯠááŒá±á¬ááºááŸáá·áºá á±áááºá ááááºáá±á¬á·á áá hacks á¡áá»áá¯á·ááᯠáááºáááá¬ážááẠá¡áá¬á¡á¬ážáá¯á¶ážá ááŒá±á¬ááºá áá¬ááá¯ááºáá«áá°ážá
áááºááŸááºááẠPDF reader áá±á¬ááºážáá±á¬ááºáž. áá±áá¬á á¬ááœááºáá»á¬ážááᯠá áá¹áá°ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá áá»ááºááá±ááŸá á¡á ááºá¡áá¬ááœáẠáá±ážááŸááºáá¬ážááŒá®áž áááºážááá¯á·ááᯠáá¯á¶ááŸáááºáá¯ááºáááºá ááááºá áá áºá á¬ááŸááºáá»á¬ážááŒáá·áº ááá·áºááœááºážááŒá®áž áá»á¯ááºáá¯ááºááẠá¡ááœááºáá±á¬ááºážááœááºáááºá áááºážááá¯á·ááœáẠááá¯ááºáá«á á¬áá¬ážááᯠááŒá±áá¬áá±á¬áẠááá¬áááŒáá·áº á á±á¬áá·áºááŒáá·áºáááºá áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á á¡áááºážáá¯á¶áž á á¬ááœááºá á¬áááºážá ááœá²á·á ááºážáá¯á¶ááᯠá á¬ááŸááºáá»á¬ážááŒáá·áº áá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áº ááœááºáá°á áœá¬ áááºážááœáŸááºááá¯ááºáá±á¬ ááá·áºáá»á±á¬áºáá±á¬ á á¬áááºáá°ááẠá¡ááœááºááá¯á¡ááºáá«áááºá
áá±áá¬á á¬ááœááºááẠStroustrup ááááºá á¬á¡á¯ááºááá¯ááºáá«á áááºážááœááºáá«ááŸááááºá á¡áá¯ááºáááºá áá¬áááá¯áá«áá°ážá. ááááºá¡ááŒá¶áá¬ááºááᯠáááºá¡áá¯á¶ážááŒá¯áá«á ááŸááºáá¬ážááœáẠááá¯áá»ááºáá±á¬á¡ááá¯ááºážááᯠááŸá¬áá«á
á¡áá°ážáááŒáá·áº áá±áá¬á á¬ááœááºáá»á¬áž á¡ááá¯ážá¡áá¬ážáááºá áœá²áá»á¬ážáááá»áá±á¬áá»á áºááºáá áºáá¯ááá¯ááºáá±á¬áºáááºážá á áœááºážáá±á¬ááºáááºáá»á¬ážááá¯áá±á¬áºááŒááá¯ááºáááºá ááá¯ááºážáá áºáá¯áá¯á¶áž. ááá¯ááá¯áááºááŸá¬ á¡áá»ááºá¡áááºáá»á¬ážá áá áºááẠááá¯á·ááá¯áẠáá¯á¶ážáá¯á¶ááŸá áºáá¯á¶ááẠááá·áºáá»á áºááºááŸáá·áº ááááºááá¯ááºáá«á TIM7 ááŸááºáá¯á¶áááºááŒááºážááᯠááá±á·áá¬áá®á áááºáá±á¬ááºááŒáá·áºááŸá¯áá«á á¡ááœá±ááœá±áá»á±á«ááœááá»áŒáááºážááŸá¬ááŸááá¬ážá
ááááẠá¡ááºá¹ááááẠáá¯á¶áá±á¬ááºáá«áááºá á¡ááŒá±áá¶á¡ááá·áº. áá±áá¬á á¬ááœááºáá»á¬ážááœáẠáá¬áááºáááááºáá¬áá¬á áá¬ážááŒá±á¬áá°ááŸáá·áº áááºážááŸá®ážááŸá¯áááŸááá±á¬ áá±á«áá¬ááá áºáááºááŸáá·áº ááá¯ážááŸááºážáá±á¬ áá»áááºáááºááœá²á·á ááºážáá¯á¶áá»á¬ážáá áºáááºáá«áááºáááºá ááá¯ááºá¡ááºá¹áááááºááᯠá¡ááœááºáá±á¬ááºážáá²á· ááá¯ááºáá±áá¬á á¬ááœááºááœá±áááºáž ááŸááá«áááºá áá áºáááºá áá±á«áá¬áááœá±ááŒá áºááŒá®áž áá¯áááááá¯ááºážááá±á¬á· áá»áááºážá áá¬ážáá¯á¶ážááœá±áá«á
áá¯á¶ááẠááááºážááŸá®ážáá±á¬á áá¬ážáá¯á¶ážá¡ááºá¹áááááº-áá¯ááŸá¬ážá¡áááá¬ááºááᯠá¡áá¯á¶ážááŒá¯á áá¬áá¬ááŒááºááẠáááŒáá¯ážá á¬ážáá«ááŸáá·áºá ááŸá¯ááºáá±ááẠhysteresisáá«ááá¯ááẠáá¬áá¬ááŒáẠâhysteresisâ á ááá·áºááᯠááá¯ááœá±ážááœá±ážá á±ááŸá¬ ááá¯ááºáá«áá°ážá ááá¯á¡ááºáá±á¬ á¡áá°á¡áááŒá áºááá·áº Googleá Stack Overflowá Wikipediaá ááá¯áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á .
áááºáááºáá¬ážáááºááᯠáá¬ážáááºááẠá¡áá±á¬ááºážáá¯á¶ážáááºážáááºážááŒá áºáááºá á á áºáá±ážá¡áá±ážáá°áá«á. ááá¯á·ááŒá±á¬áá·áº áááºááẠáá áºá á¯á¶áá áºáá¯ááᯠáá¬ážáááºááŸá¯ááœá²ááŒá®áž ááŸá±á¬áºáá®ážááá¯ážááœá±á·ááᯠááŒááºáá«á áááºááŸáá·áºáááºážááŸá®ážáá±á¬ á¡ááŸá¬ážááŸá¬áá¯ááºáá¯ááºááᯠááá¯ááºáá¬ážáá«á
ááá·áºáá±áá¬á á¬ááœááºááᯠáááºáááºááŸááºážáá®á¡á±á¬áẠááááºážááááºážáá¬ážááẠá¡áá»áá·áºáá±á¬ááºážáá áºáá¯ááŒá áºáááºá áá áºá á¯á¶áá áºáá±á¬ááºá áááºáááºážá á¬ááᯠáááºááŒááºážá ááá¯á·ááá¯áẠá¡ááŒá¬ážáá°áá á¬ááŒáá·áºááá¯ááºááᯠáá±á·áá¬áá«á áááºážááœáẠááá·áºááŒá¿áá¬á¡ááœáẠááá¯ááá¯ááá·áºáá»á±á¬áºáá±á¬ ááŒá±ááŸááºážáááºážááᯠáááºááŸá¬ááœá±á·ááẠááŒá áºááá¯ááºáá»á±ááŸááááºá á¡ááŒááºá¡ááŸááºá¡á¬ážááŒáá·áº - ááŸááºáá¯á¶áááºááŒááºáž á¡ááŸááºááááºá¡áá¯ááºáá¯ááºáá¯á¶ááᯠáá±áá¬á á¬ááœááºá០áá¬ážááááºáá«áá Google ááẠááŒá áºááá¯ááºáá»á±ááŸááááºá áá áºá á¯á¶áá áºáŠážááẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠááá¯ážááŸááºážáá±á¬á áá¬ážáá¯á¶ážáá»á¬ážááŒáá·áº áá±á¬áºááŒáá¬ážááŒá®áž ááá¯á·ááá¯áẠGitHub ááœáẠááŸááºážáááºážáá±á¬áá¯ááºáá»ááºáá¬ážáá²á·áá«á
áá±á«áá¬á
áá±áá¬á á¬ááœááºáá»á¬ážááᯠáá»ááºááŒááºá áœá¬á¡áá¯á¶ážááŒá¯ááá¯ááºá á±ááẠá¡áá¯á¶ážáááºáá±á¬ á áá¬ážáá¯á¶ážáá»á¬ážááŸáá·áº áááºá¹áá±áá¡áá»áá¯á·á ááŒá®ážáá²á·áá±á¬áááºá¡áááºážáááºá¡ááœááºáž áá»áœááºá¯ááºáááááááá±á¬á¡áá¬áá»á¬ážá ááŒáá·áºá áœááºááŸá¯áá»á¬ážááŸáá·áº ááŒááºáááºááŸá¯áá»á¬ážááᯠááŒáá¯ááá¯áá«áááºá
áá»áŸááºá
á
áºáá®áž
VDC, vdd - âá¡áá±á«ááºážâá á¡á
á¬ážá¡áá±á¬ááº
Vss, Vee - "áá¯ááº", ááŒá±ááŒá®áž
ááᯠ- áááºááŸá
ááá¯á·á¡á¬áž - áá¬ááºá¡á¬áž
áááºááŸááá
áºááŒá¯ááºááẠ- ááŒááºááááºá¡ááœáẠ"ááŒá±" á¡ááŒá
áºá¡áá¯ááºáá¯ááº
source current ááá¯á· - áá«áá«ááŒááºááááº
ááŒáá·áºáá¬ážáá±á¬ á
á¯ááºááœááº/áááºážááŒá
Ạáááºáá¶áá«áẠ- áááºááẠ"áááºážáá¶ááá¯ááºááŸá¯" ááŒáá·áº áááºááá¯ážáá«á
IO
HáááŒáá·áº - Vcc pin áá±á«áº
Lááááá·áº - Vss pin áá±á«áºááœááº
ááŒáá·áºáá¬ážáá±á¬ impedance, ááá¯ááºáá®áž, áá±áá±á«áº - pin ááœááºáá¬áá»áŸáááŸááá«á "ááŒáá·áºáá¬ážáá±á¬áá¯áá¶ááŸá¯"á áááºážááá¯ááŒááºáááá¹áá¬ááŸáááŒááºááá¯ááºáá«á
ááœá²áááºá¡á¬ážáááºáž, ááœá²áá»á¡á¬ážáááºáž - 50 kOhm ááŸáá·áº áá®áá»áŸáá±á¬ ááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº áááºáááºáá¬ážáá±á¬ ááœá²á¡áááº/ááœá²áá» áá¯áá¶ááŸá¯ (áá±áá¬á
á¬ááœááºááá¯ááŒáá·áºáá«)á á¥ááá¬á¡á¬ážááŒáá·áºá ááŸá¬ážááœááºážáá±á¬á¡áá»ááºáá±ážáááááá¬áá»á¬ážááŒá
áºáá±á«áºá
á±ááá·áº input pin ááẠáá±áá²ááœáẠááœá²áá»áá±ááŒááºážááŸáá¬ááœááºááẠáááºážááá¯á¡áá¯á¶ážááŒá¯áááºá á¡á¬ážáááºážáá±á¬ - áá°á·ááᯠ"ááŸá±á¬ááºááŸááº" áááºááœááºáá°áá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá
ááœááºážááœá² - áááºá¡ááœááºáá¯ááºá áááºážáááºá¡ááŒá¬ážááŒá±á¬ááºážáááºá ááŒáá·áºáá±á¬ О á¡áááá·áº - Arduino á០áá¯á¶ááŸáẠOUTPUT á
ááŒá±á¬ááºážááœáá·áº - pin áá
áºáá¯áá¯ááŒá
áºááá¯ááºááá·áº output mode ááá¯áááºááŸááºááŒááºážá á¡áááá·áºááá¯á·ááá¯áẠááŒáá·áºáá¬ážáá±á¬ Impedance / Floating. ááá¯á·á¡ááŒááºá á¡ááŒá²áááºážáá®ážáá«ážáááºážááẠ"á¡á
á
áºá¡ááŸááº" á¡ááœáá·áºá¡áá±á«ááºááá¯ááºáá«á á€áááºááŸá¬ ááŒá±ááŒááº/áááŸááá¯ááºá¡ááœáẠááá¯ážááŸááºážáá±á¬ áááºááŸááºáá»ááºáá
áºáá¯ááŒá
áºáááºá
ááŸááºááœáá·áºááŒá±á¬ááºáž - ááá¯á·áá±á¬áºáááºážááẠáááá·áºá¡ááœáá·áºá¡áá±á«ááºááŒá
áºáááº- áááºáá±á«ááºááẠááœáá·áºáá«á ááŒá±ááá¯á· ááá¯ááºááá¯ááºááœá¬ážáááºá ááá¯á·ááá¯áẠááááºáá«á ááŒá±áá±á¬ááºááŸá¬ ááŸááá±áááºá ááá¯ááá¯áááºááŸá¬ ááá¯á¡ááºáá«á Vcc áááºááŒá®ážáá±á¬ ááá¯á·á¡á¬ážááᯠááŒááºáááºážááá¯ááºáá±á¬áºáááºáž á¡ááŒáá·áºáá¯á¶ážááᯠá¡ááá¯ááºážááŸá datasheet ááœáẠáááºááŸááºáá¬ážáá²ááŒá
áºáááºá á¡ááŒáœááºážáá²á· á¡ááŒáá·áºáá¯á¶áž á¡ááá·áºáááºááŸááºáá»ááºáá»á¬áž/ááá¯á·á¡á¬áž.
interfaces
á
á®ážáá®ážá¡ááœáẠ- á
á®ážáá®ážááœááºáá»áááºáááºáá¬ážáááºá
ááœááºážááẠ- áá¶áá«ááºá
ááºáá»áááºáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á ááœááºážáááºáá
áºáá¯ááœáẠáá»á
áºááºáá»á¬ážááᯠá
á¯á
ááºážáᬠá¡ááœááºá¡áá±á¡ááœááºááᯠááá¯ážá
á±áááºá
á¡ááá¯ááºáž - shift ááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áááºážááẠshift ááᯠáááºááœáŸááºážáááºá á¡áá®ážáá®ážá ááŒá±á¬ááºážááœáŸá±á·ááẠО ááœááºááẠ- áá±áá¬ááᯠáá
áºáááºážáááºážáá»ááºáž áááºáá¶ááŒá®áž ááá¯á·áá«á
áá¶áá«ážáááŸá¬ - áá
áºáá»á¬ážááᯠááŒááºááœá¬ážá
ááºááœáẠááŒá¬ážáá¶ááᯠáá¯á¶ážá¡á¯ááºáá¬ážáá±á¬ áááºááá¯ááºáá»á±á¬ááºážá ááœáŸá²ááŒá±á¬ááºážááŸá¯ááŒá®ážáá±á¬á¡áá«á á¡ááá¯á·ááŸááºááœáá·áºáá¬ááŒá®áž áá
áºáá»á¬áž á
áááºáááºáááºáááºá
áá¬áá®á¡ááœááºáž - bit-by-bit transfer áá¯ááºáá«á bit á¡á¬ážáá¯á¶ážááᯠááŸááºáááºáá±á¬áá±áá¬áá»á¬ážááá¯á· ááŒá±á¬ááºážáá«á
ááŸá
áºáááºááŒá¬ážáá¶, á¡ááááºá
á¬áááºáž, ááŒáá¯áááºá
á¬áááºážááœááºážáá«á - á
á¬áááºážááœááºážááá·áºá¡áá« áá±áá¬á¡áá
áºáá»á¬ážááᯠáááºáá¶ááá¯ááºáá±á¬áºáááºáž áá
áºáá»áááºáá»áááºá¡áá áááºážááᯠááááºážáá¬ážááá¯ááºááá·áºá¡áá«ááœáẠááŸááºáááºážáá¯á¶á
á¶áá»á¬ážá á¥ááá¬á¡á¬ážááŒáá·áºá PWM ááŸááºáááºá
áœá¬á¡áá¯ááºáá¯ááºáááºá¡ááœááºá áááºážá ááá·áºáááºáá»ááºáá»á¬áž (áá¯ááºáááºážáááºáááºááŸá¯á ááŒáááºááŸá¯ááºáž) ááẠáááºááŸáá
ááºáááºážááŒá®ážáá¯á¶ážáááºá¡áá áááŒá±á¬ááºážáá²ááá·áºáá±á¬áºáááºáž ááá·áºáááºáá»ááºá¡áá
áºáá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááŒá®ážááŒá
áºáááºá ááá¯á·ááŒá±á¬áá·áº áááºááŸáááœáẠááááºážááááºážáá¬ážáááºá á¡ááááºá
á¬áááºážá ááŸáá·áº á¡áá
áºáá»á¬áž áá²áá»ááœá¬ážááẠááŒáá¯áááºá
á¬áááºážááœááºážáá«ááááºááá¯ááºáᬠchip register ááá¯á· á
á¬áá±ážáá«á
á¡áá»áá¯ážá¡áá»áá¯ážá
prescaler - ááŒáááºááŸá¯ááºáž ááŒáá¯áááºá
áá±ážá
ááº
á¡áááºážáááºáááºááŸááºááẠ- bit ááᯠ1 ááá¯á· áááºááŸááºáá«áááºá
á¡áááºážáááºááŸááºážáááºážááẠ/ ááŒááºáááºáááºááŸááºááẠ- bit ááᯠ0 (ááá¯á·) ááŒááºáááºáááºááŸááºáá«ááŒááºááŸáááŸá¯ - STM áá±áá¬á
á¬ááœáẠá¡ááºá¹áá«áááº)
áá±á¬ááºáá áºáá¯ááá¬áá²
áá±áá°áá»á¡á¬ážááŒáá·áºá á€áá±á¬ááºážáá«ážááœáẠáá®ážáá®ážáá»á¬ážá SPIá á¡áá»áááºááá¯ááºážáááááá¬áá»á¬ážá PWM ááŸáá·áº ááŒá¬ážááŒááºáá»á¬ážáá«ááŸááá±á¬ á€áá±á¬ááºážáá«ážá¡ááœáẠáá±áá¬á á¬ááœááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá°ážááŒá¯áá¯ááºáá¬ážáá±á¬ STM32 ááŸáá·áº STM8 ááá¯ááºáᬠááá±á¬áá»ááºáá¯á¶ážáá¯ááᯠáááºááœá±á·ááá¯ááºááŒááŒááºážááŒáá·áº á€áá±áá¬ááœáẠáááºááœá±á·áá»áá±á¬á¡ááá¯ááºážááᯠá á®á ááºáá¬ážáá«áááºá

áá«áá±ááá·áº á á¬áá¬ážááœá± á¡áá»á¬ážááŒá®ážááŸááá±áá±á¬á· ááá±á¬áá»ááºááœá±ááᯠáá¯áááááá¯ááºážááᯠááá¯á·áááºá
áá±áá¬á
á¬ááœááºáá»á¬ážáááºááŒááºážá
áœááºážáááºááẠááá·áºáá«ááá¬á¡ááœáẠáá°áá®áá±ážáááá·áºáááºá ááá¯á·áá±á¬áº ááá¯áááºáá»á¬ážááŸáá·áº áá»ááºáá»á¬ážááœáẠáá«ááá¬áá°áá°áá»á¬ážááŸáá·áº ááá¯ááºááá¯ááºáááºááœááºááŒááºážá¡á¬áž á¡á
á¬ážááá¯ážááẠáááŒá
áºááá¯ááºáá«á á€áááºááœááºáá»ááºá¡ááœáẠáááºááẠáááºáá¡ááºá¹áááááºá
á¬ááᯠáŠážá
áœá¬ááá¯ážáááºááẠááá¯á¡ááºáá±áá±ážáááºá ááá¯á·ááŒá±á¬áá·áºá áá¯ááºááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž ááááá¯á¶ážááœá±áá±ážáá»á±ááŸá¯ááŸáá·áºá¡áá° Skyeng ááœáẠá¡ááá²á·áááºáááºážá
á¬ááŸá
áºáá¯ááᯠáááºááŸá¯ááŒá®ážáá«á á¡áá°ážáá¯áá
áºáᯠáááŸááááºááŒá
áºáááºá HABR2.
source: www.habr.com
