Внимание: PB2 по умолчанию не должна быть заземлена (например, соединение с лампой или катодом триодного транзистора), в противном случае устройство может не запуститься.
Соответствующий вывод: ВЦМ источник сброса
Есть два способа отключения:
Через код:
//VCM_DET_EN(0); //Отключение источника сброса ВЦМ
gpio_shortpress_reset_config(0); //1 -- включено, 0 -- выключено
Запись через программатор:
Убрать галочку возле PB2
Соответствующий вывод: ППИНР источник сброса
Программно можно изменить другой входной сигнал, время сброса или состояние включения/выключения.
//P33_CON_SET(P3_PINR_CON, 0, 1, 0); //Отключение длиннопresses сброса
//P33_CON_SET(P3_PINR_CON, 0, 1, 1); //Включение длиннопresses сброса
gpio_longpress_pin0_reset_config(IO_PORTA_09, 0, 0);
Код контролирует только состояние включения/выключения, изменение входного сигнала производится в ini-файле.
Для версий до 100:
RESET=PB01_08_0; //port_время_эффективный уровень (время может быть 00, 04, 08, единицы измерения — секунды, когда время равно 00, функция длиннопresses сброса отключается.)
```Для версий после 200:
```c
#define CONFIG_RESET_PIN PB01 //входной пин
#define CONFIG_RESET_TIME 8 //единица измерения: секунды
#define CONFIG_RESET_LEVEL 0 //уровень триггера (0/1)
Внутренний пулл-вверх нельзя отключить, он всегда включен.
//Регистр P11_PORT_CON0 управляет P00,
//P00: BIT(7) | BIT(6) | BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1) | BIT(0)
// зарезервировано | чтение значения входа | пулл-вверх | пулл-вниз | цифровой вход | цифровой вход | включение выхода | значение выхода
#include "asm/power/p11.h"
int gpio_p00_set(u8 dir, u8 value) //dir: 0 (value: значение выхода) //dir: 1 (value: состояние входа с пулл-вверхом и пулл-внизом)
{
log_info("%s[dir:%d value:%d]", __func__, dir, value);
if(dir){
P11_PORT_CON0 = BIT(3);
/* P11_PORT_CON0 &= ~(BIT(4)|BIT(5)); */
if(value == 0){ //при чтении входа, 0 — активация пулл-вниз, 1 — активация пулл-вверх, other — отключение обоих пуллов
P11_PORT_CON0 |= BIT(4);
} else if(value == 1){
P11_PORT_CON0 |= BIT(5);
}
delay(100);
//log_info("%s[P11_PORT_CON0:0x%x]", __func__, P11_PORT_CON0);
//log_info("%s[P11_PORT_CON1:0x%x]", __func__, P11_PORT_CON1);
return (P11_PORT_CON0 & BIT(6)) >> 6;
} else {
if(value){
P11_PORT_CON0 = BIT(1) | BIT(0); //выход 1
} else {
P11_PORT_CON0 = BIT(1); //выход 0
}
return 0;
}
}
int gpio_p00_get(void)
{
if (!(P11_PORT_CON0 & BIT(3))) {
return -1;
}
int value = (P11_PORT_CON0 & BIT(6)) >> 6;
log_info("%s[value:%d]", __func__, value);
return value;
}
```## 4. PP0 — это нога LDOIN для зарядки батареи. Используется аналогично обычному GPIO.
Использование PP0 как обычного GPIO приведёт к невозможности использования функции зарядки.
```c
#define TCFG_CHARGE_ENABLE DISABLE_THIS_MODULE
u32 gpio = IO_PORTP_00;
gpio_set_pull_down(gpio, 0);
gpio_set_pull_up(gpio, 0);
gpio_set_die(gpio, 1);
gpio_set_hd(gpio, 0);
gpio_set_hd0(gpio, 0);
gpio_set_direction(gpio, 0);
gpio_set_output_value(gpio, 1);
usb_iomode(1); // Вызовите эту функцию первой, чтобы переключить USB в режим GPIO
gpio_set_pull_up(IO_PORT_DP, 0);
gpio_set_pull_down(IO_PORT_DP, 0);
gpio_set_direction(IO_PORT_DP, 1);
gpio_set_die(IO_PORT_DP, 0);
gpio_set_dieh(IO_PORT_DP, 0);
gpio_set_pull_up(IO_PORT_DM, 0);
gpio_set_pull_down(IO_PORT_DM, 0);
gpio_set_direction(IO_PORT_DM, 1);
gpio_set_die(IO_PORT_DM, 0);
gpio_set_dieh(IO_PORT_DM, 0);
usb1_iomode(bk); // Выполните эту функцию первой, чтобы переключить USB в режим GPIO
gpio_set_pull_up(IO_PORT_DP1, 0);
gpio_set_pull_down(IO_PORT_DP1, 0);
gpio_set_direction(IO_PORT_DP1, 1);
gpio_set_die(IO_PORT_DP1, 0);
gpio_set_dieh(IO_PORT_DP1, 0);
gpio_set_pull_up(IO_PORT_DM1, 0);
gpio_set_pull_down(IO_PORT_DM1, 0);
gpio_set_direction(IO_PORT_DM1, 1);
gpio_set_die(IO_PORT_DM1, 0);
gpio_set_dieh(IO_PORT_DM1, 0);
Приведённая выше схема показывает, что способность USB-порта передавать данные отличается от аналогичной функции GPIO. Это может повлиять на скорость передачи данных при использовании порта как средства связи. Для обеспечения возможности подключения внешних резисторов рекомендуется предусмотреть пайку для установки этих резисторов.
Вход Перед тем как оставить комментарий