πŸ“Œ ΠšΡ€Π°Ρ‚ΠΊΠΎ

General-Purpose Input/Output GPIO β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², FPGA ΠΈΠ»ΠΈ SoC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сконфигурированы ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ для взаимодСйствия с внСшними цСпями.

🧠 Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ GPIO прСдставляСт собой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ линию.
Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Π²ΠΎΠ΄Π° считываСт логичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ с внСшнСго устройства.
Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° устанавливаСт высокий ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π° ΠΏΠΈΠ½Π΅.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ:

  • Pull-up / Pull-down рСзисторы
  • ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡ ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ / спаду / ΡƒΡ€ΠΎΠ²Π½ΡŽ
  • ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (UART, SPI, PWM ΠΈ Π΄Ρ€.)

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ производится Ρ‡Π΅Ρ€Π΅Π· рСгистры:

  • Ρ€Π΅ΠΆΠΈΠΌ (input/output)
  • ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (high/low)
  • Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
  • функция/Π°Π»ΡŒΡ‚. функция

βš™οΈ Π“Π΄Π΅ примСняСтся

УстройствоНазначСниС
MicrocontrollersΠ‘Π²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄Ρ‹, ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Ρ€Π΅Π»Π΅
FPGAОбмСн с внСшними шинами ΠΈ схСмами
EmbeddedGPIO = основной способ взаимодСйствия
Industrial ControlΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сигналов: Ρ‚Ρ€Π΅Π²ΠΎΠ³ΠΈ, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ
SoCΠžΠ±Ρ‰Π°Ρ шина связи с внСшним ΠΌΠΈΡ€ΠΎΠΌ

πŸ’» ΠŸΡ€ΠΈΠΌΠ΅Ρ€ (STM32 HAL)

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);   // ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);                // ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ состояниС

πŸ“ Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

         +----------+
         |   GPIO   |←─────[Кнопка / Π‘ΠΈΠ³Π½Π°Π»]
         | Register |
         +----------+
             ↓
         [MCU / FPGA]

βœ… ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°: ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ Π½Π° линию, Π»Π΅Π³ΠΊΠΎ программируСтся

  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Π²Ρ…ΠΎΠ΄/Π²Ρ‹Ρ…ΠΎΠ΄, прСрывания, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

  • ΠŸΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡ‚Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² Embedded-систСмах

❌ НСдостатки

  • НСт стандартного интСрфСйса (зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹)

  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚ΠΎΠΊΡƒ ΠΈ скорости ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ