Руководство пользователя Allwinner H616


  Описание    Система    Графика    Память    Ethernet    Видео    Аудио      Интерфейсы      Безопасность  

9. Интерфейсы (Interfaces)

9.1. Двухпроводной интерфейс

9.10. Контроллер транспортного потока

9.2. Универсальный асинхронный приемо-передатчик

9.3. Синхронный последовательный интерфейс

9.4. USB 2.0 OTG

9.5. Хост-контроллер USB2.0

  9.6. Контроллер порта  

9.7. Низкоскоростной АЦП

9.8. Инфракрасный приемник

9.9. Контроллер ШИМ



Глава 9. Интерфейсы - Interfaces
Раздел 9.6. Контроллер порта - Port Controller

9.6. Контроллер порта


9.6.1. Обзор

Контроллер порта можно настроить с помощью многофункциональных контактов ввода / вывода. Все эти порты можно настроить как GPIO, только если не используются мультиплексированные функции. Всего поддерживается 6 групповых внешних источников прерываний PIO, а режим прерывания может быть настроен программно. Контроллер порта имеет следующие особенности: 6 портов (ПК, PF, PG, PH, PI, PL) Программное управление для каждого сигнального контакта Периферийное устройство GPIO может создавать прерывания Управление регистром Pull-up / Pull-down / no-Pull Управляйте направлением каждого сигнала 4 силы привода в каждом рабочем режиме До 72 прерываний Настраиваемые края прерывания


9.6.2. Блок-схема

Блок-схема контроллера порта показана на Рисунке 9-32.

Рисунок 9-32. Блок-схема контроллера порта

Контроллер порта состоит из цифровой части (GPIO, внешний интерфейс) и аналоговой части ввода-вывода (выходной буфер, двойной сброс, контактная площадка и т.д.). Цифровая часть может выбрать выходной интерфейс переключателем MUX; аналоговая часть может настраивать тягу вверх / вниз, силу буфера. При выполнении состояния чтения GPIO контроллер порта считывает текущий уровень вывода во внутреннюю шину регистров. Когда состояние чтения GPIO не выполняется, внешний вывод и внутренняя шина регистров не работают, то есть имеют высокий импеданс.


9.6.3. Операции и функциональные описания


9.6.3.1

Таблица многофункциональных портов

H616 включает 74 многофункциональных контакта порта ввода / вывода. Ниже перечислены 6 портов.

Таблица 9-14. Таблица многофункциональных портов H616

Имя порта | Номер контактов | Вход драйвера | Выход драйвера | Мультиплексные контакты |Питание

  • PC 17 CMOS NAND / SDC / SPI / BOOT / PC-EINT 1,8 В / 3,3 В
  • PF 7 CMOS Шмитта SDC / JTAG / UART / PF-EINT 1,8 В / 3,3 В
  • PG 20 CMOS Шмитта SDC / UART / Аудио концентратор / PLL / BIST / TWI / PWM / 1,8 В / 3,3 В Цифровой интерфейс ADC / PG-EINT
  • PH 11 CMOS Шмитта UART / TCON_TRIG / OWA / Аудио концентратор / ШИМ / SPI / 3,3 В TWI / CIR / PH-EINT
  • PI 17 CMOS Шмитта RGMII / DMIC / UART / Audio HUB / TS / TWI / PWM / 1,8 В / 2,8 В / 3,3 В HDMI_DDC_CEC / CLK_FANOUT / PI-EINT
  • PL 2 CMOS Шмитта S_TWI 1,8 В

    Контакты мультиплексной функции показаны в Таблицах 9-15 - 9-20.

    Таблица 9-15. Выбор функции мультиплексирования ПК

    Порт GPIO | Функция 2 | Функция 3 | Функция 4 | Функция 5 | Функция 6

  • PC0 NAND_WE SDC2_DS SPI0_CLK PC_EINT0
  • PC1 NAND_ALE SDC2_RST PC_EINT1
  • PC2 NAND_CLE SPI0_MOSI PC_EINT2
  • PC3 NAND_CE1 SPI0_CS0 BOOT_SEL1 PC_EINT3
  • PC4 NAND_CE0 SPI0_MISO BOOT_SEL2 PC_EINT4
  • PC5 NAND_RE SDC2_CLK BOOT_SEL3 PC_EINT5
  • PC6 NAND_RB0 SDC2_CMD BOOT_SEL4 PC_EINT6
  • PC7 NAND_RB1 SPI0_CS1 PC_EINT7
  • PC8 NAND_DQ7 SDC2_D3 PC_EINT8
  • PC9 NAND_DQ6 SDC2_D4 PC_EINT9
  • PC10 NAND_DQ5 SDC2_D0 PC_EINT10
  • PC11 NAND_DQ4 SDC2_D5 PC_EINT11
  • PC12 NAND_DQS PC_EINT12
  • PC13 NAND_DQ3 SDC2_D1 PC_EINT13
  • PC14 NAND_DQ2 SDC2_D6 PC_EINT14
  • PC15 NAND_DQ1 SDC2_D2 SPI0_WP PC_EINT15
  • PC16 NAND_DQ0 SDC2_D7 SPI0_HOLD PC_EINT16

    Таблица 9-16. Выбор функции мультиплексирования PF

    Порт GPIO | Функция 2 | Функция 3 | Функция 4 | Функция 5 | Функция 6

  • PF0 SDC0_D1 JTAG_MS PF_EINT0
  • PF1 SDC0_D0 JTAG_DI PF_EINT1
  • PF2 SDC0_CLK UART0_TX PF_EINT2
  • PF3 SDC0_CMD JTAG_DO PF_EINT3
  • PF4 SDC0_D3 UART0_RX PF_EINT4
  • PF5 SDC0_D2 JTAG_CK PF_EINT5
  • PF6 PF_EINT6

    Таблица 9-17. Выбор функции мультиплексирования PG

    Порт GPIO | Функция 2 | Функция 3 | Функция 4 | Функция 5 |Функция 6

  • PG0 SDC1_CLK PG_EINT0
  • PG1 SDC1_CMD PG_EINT1
  • PG2 SDC1_D0 PG_EINT2
  • PG3 SDC1_D1 PG_EINT3
  • PG4 SDC1_D2 PG_EINT4
  • PG5 SDC1_D3 PG_EINT5
  • PG6 UART1_TX JTAG_MS PG_EINT6
  • PG7 UART1_RX JTAG_CK PG_EINT7
  • PG8 UART1_RTS PLL_LOCK_DBG JTAG_DO PG_EINT8
  • PG9 UART1_CTS JTAG_DI AC_ADCY PG_EINT9
  • PG10 H_I2S2_MCLK X32KFOUT AC_MCLK PG_EINT10
  • PG11 H_I2S2_BCLK BIST_RESULT0 AC_SYNC PG_EINT11
  • PG12 H_I2S2_LRCK BIST_RESULT1 AC_ADCL PG_EINT12
  • PG13 H_I2S2_DOUT0 H_I2S2_DIN1 BIST_RESULT2 AC_ADCR PG_EINT13
  • PG14 H_I2S2_DIN0 H_I2S2_DOUT1 BIST_RESULT3 AC_ADCX PG_EINT14
  • PG15 UART2_TX TWI4_SCK PG_EINT15
  • PG16 UART2_RX TWI4_SDA PG_EINT16
  • PG17 UART2_RTS TWI3_SCK PG_EINT17
  • PG18 UART2_CTS TWI3_SDA PG_EINT18
  • PG19 PWM1 PG_EINT19

    Таблица 9-18. Выбор функции мультиплексирования PH

    Порт GPIO | Функция2 | Функция3 | Функция4 | Функция5 | Функция6

  • PH0 UART0_TX PWM3 TWI1_SCK PH_EINT0
  • PH1 UART0_RX PWM4 TWI1_SDA PH_EINT1
  • PH2 UART5_TX OWA_MCLK PWM2 TWI2_SCK PH_EINT2
  • PH3 UART5_RX PWM1 TWI2_SDA PH_EINT3
  • PH4 OWA_OUT TWI3_SCK PH_EINT4
  • PH5 UART2_TX H_I2S3_MCLK SPI1_CS0 TWI3_SDA PH_EINT5
  • PH6 UART2_RX H_I2S3_BCLK SPI1_CLK TWI4_SCK PH_EINT6
  • PH7 UART2_RTS H_I2S3_LRCK SPI1_MOSI TWI4_SDA PH_EINT7
  • PH8 UART2_CTS H_I2S3_DOUT0 SPI1_MISO H_I2S3_DIN1 PH_EINT8
  • PH9 H_I2S3_DIN0 SPI1_CS1 H_I2S3_DOUT1 PH_EINT9
  • PH10 CIR_RX TCON_TRIG1 PH_EINT10

    Таблица 9-19. Выбор функции мультиплексирования PI

    Порт GPIO | Функция2 | Функция3 | Функция4 | Функция5 | Функция6

  • PI0 RGMII_RXD3/RMII_NULL DMIC_CLK H_I2S0_MCLK HDMI_SCL PI_EINT0
  • PI1 RGMII_RXD2/RMII_NULL DMIC_DATA0 H_I2S0_BCLK HDMI_SDA PI_EINT1
  • PI2 RGMII_RXD1/RMII_RXD1 DMIC_DATA1 H_I2S0_LRCK HDMI_CEC PI_EINT2
  • PI3 RGMII_RXD0/RMII_RXD0 DMIC_DATA2 H_I2S0_DOUT0 H_I2S0_DIN1 PI_EINT3
  • PI4 RGMII_RXCK/RMII_NULL DMIC_DATA3 H_I2S0_DIN0 H_I2S0_DOUT1 PI_EINT4
  • PI5 RGMII_RXCTL/RMII_CRS_DV UART2_TX TS0_CLK TWI0_SCK PI_EINT5
  • PI6 RGMII_NULL/RMII_RXER UART2_RX TS0_ERR TWI0_SDA PI_EINT6
  • PI7 RGMII_TXD3/RMII_NULL UART2_RTS TS0_SYNC TWI1_SCK PI_EINT7
  • PI8 RGMII_TXD2/RMII_NULL UART2_CTS TS0_DVLD TWI1_SDA PI_EINT8
  • PI9 RGMII_TXD1/RMII_TXD1 UART3_TX TS0_D0 TWI2_SCK PI_EINT9
  • PI10 RGMII_TXD0/RMII_TXD0 UART3_RX TS0_D1 TWI2_SDA PI_EINT10
  • PI11 RGMII_TXCK/RMII_TXCK UART3_RTS TS0_D2 PWM1 PI_EINT11
  • PI12 RGMII_TXCTL/RMII_TXEN UART3_CTS TS0_D3 PWM2 PI_EINT12
  • PI13 RGMII_CLKIN/RMII_NULL UART4_TX TS0_D4 PWM3 PI_EINT13
  • PI14 MDC UART4_RX TS0_D5 PWM4 PI_EINT14
  • PI15 MDIO UART4_RTS TS0_D6 CLK_FANOUT0 PI_EINT15
  • PI16 EPHY_25M UART4_CTS TS0_D7 CLK_FANOUT1 PI_EINT16

    Таблица 9-20. Выбор функции мультиплексирования PL

    Порт GPIO | Функция2 | Функция3 | Функция4 | Функция5 |Функция6

  • PL0 S_TWI0_SCK
  • PL1 S_TWI0_SDA


    9.6.3.2

    Функция порта

    Контроллер порта поддерживает 6 GPIO, каждый GPIO может быть настроен как вход, выход, функциональная периферия, отключение ввода-вывода или функция прерывания. Инструкция по настройке каждой функции следующая.

    Таблица 9-21. Функция порта


  • /: Не настроен, конфигурация недействительна
  • Y: Требуется настройка
  • X: Выберите конфигурацию в соответствии с реальной ситуацией
  • N: запретить настройку


    9.6.3.3

    Pull Up / Down и логика с высоким импедансом

    Каждый вывод ввода-вывода может настраивать внутреннюю функцию повышения / понижения или высокое сопротивление.

    Рисунок 9-33. Логика вытягивания вверх / вниз

  • Высокий импеданс, выход в плавающем состоянии, все буферы выключены, уровень определяется внешним высоким / низким уровнем.
  • Когда с высоким импедансом, программное обеспечение конфигурирует переключатель Rpu и Rpd как выключенный, а функция мультиплексирования ввода-вывода устанавливается как отключение ввода-вывода или ввод программным способом.
  • Подтягивание, неопределенный сигнал подтягивается резистором, резистор имеет функцию ограничения тока. При подтягивании переключатель на Rpu отключается конфигурацией программного обеспечения, IO подтягивается к VCC посредством Rpu.
  • Понижение неопределенный сигнал понижается резистором. При опускании переключатель на Rpd размыкается конфигурацией программного обеспечения, IO переводится на GND с помощью Rpd.
  • Повышение / понижение каждого ввода-вывода является слабым повышением / понижением, резистор повышения / понижения содержит три вида значений сопротивления: 4,7 кОм, 15 кОм и 100 кОм.
  • Настройка понижающего входа, подтягивающего входа, входа с высокой нагрузкой определяется внешней схемой.


    9.6.3.4

    Сопротивление буфера

    Для каждого ввода-вывода можно задать разное сопротивление буфера. Схема буфера ввода-вывода выглядит следующим образом.

    Рисунок 9-34. Схема сопротивлений буфера ввода-вывода

  • При высоком уровне вывода n0, n1, n2, n3 NMOS выключены, p0, p1, p2, p3 PMOS включены. Когда сопротивление буфера установлена на 0 ( самая низкая), только p0 включен, выходное сопротивление максимальное, значение импеданса r0 (сопротивление в открытом состоянии). Когда сопротивление буфера установлена на 1, только p0 и p1 включены, выходное сопротивление эквивалентно двум параллельным r0, значение импеданса равно r0/2. Когда сопротивление буфера равна 2, включены только p0, p1 и p2, выходное сопротивление эквивалентно трем параллельным r0, значение импеданса равно r0/3. Когда сопротивление буфера равна 3, p0, p1, p2 и p3 включены, выходное сопротивление эквивалентно четырем параллельным r0, значение импеданса равно r0/4.
  • При низком уровне вывода p0, p1, p2, p3 PMOS выключены, n0, n1, n2, n3 NMOS включены. Когда буфера установлено на 0 (самая низкая), только n0 включен, выходное сопротивление максимальное, значение импеданса r0. Когда сопротивление буфера установлено на 1, только n0 и n1 включены, выходное сопротивление эквивалентно двум параллельным r0, значение импеданса равно r0/2. Когда сопротивление буфера равно 2, включены только n0, n1 и n2, выходной импеданс эквивалентен трем параллельным r0, значение импеданса равно r0/3. Когда сопротивление буфера равна 3, n0, n1, n2 и n3 включены, выходной импеданс эквивалентен четырем параллельным r0, значение импеданса равно r0/4.
  • Когда GPIO настроен на вход или функцию прерывания, между схемой выходного драйвера и портом нет соединения, конфигурация драйвера недействительна.

    Примечание

    Типичное значение сопротивления r0 составляет 180 Ом, 120 Ом, 100 Ом и 50 Ом.


    9.6.3.5

    Прерывание

    Каждая группа IO имеет независимый номер прерывания. IO внутри группы использует один номер прерывания, когда один IO генерирует прерывание, контроллер порта отправляет запрос прерывания на GIC. Регистр состояния внешнего прерывания используется для запроса, какой ввод-вывод генерирует прерывание.

    Триггер прерывания GPIO поддерживает следующие типы триггеров:

  • Положительный фронт: когда низкий уровень меняется на высокий, генерируется прерывание. Независимо от того, как долго сохраняется высокий уровень, прерывание генерируется только один раз.
  • Отрицательный фронт: когда высокий уровень меняется на низкий, генерируется прерывание. Независимо от того, как долго сохраняется низкий уровень, прерывание генерируется только один раз.
  • Высокий уровень: просто поддерживайте высокий уровень, и прерывание будет всегда генерироваться.
  • Низкий уровень: просто держите низкий уровень, и прерывание будет генерироваться всегда.
  • Двойной фронт: положительный и отрицательный фронт. Регистр конфигурации внешнего прерывания используется для настройки типа запуска. Прерывание GPIO поддерживает функцию аппаратного устранения дребезга путем установки Регистра устранения дребезга внешнего прерывания. Выборка сигнала запуска с использованием более низкой частоты дискретизации для достижения эффекта дребезга, поскольку частота дизеринга сигнала выше, чем частота дискретизации. Установите источник тактовых импульсов на PIO_INT_CLK_SELECT и коэффициент предварительного масштабирования на DEB_CLK_PRE_SCALE.




  •    9.6.4. Список регистров