This commit is contained in:
wgzAIIT 2022-06-08 09:47:41 +08:00
commit f5f8fbb38b
5 changed files with 208 additions and 176 deletions

View File

@ -22,8 +22,8 @@ if ADD_XIZI_FETURES
int "E18 MODE pin number" int "E18 MODE pin number"
default "61" default "61"
config ADAPTER_BC28_PIN_DRIVER config ADAPTER_E18_PIN_DRIVER
string "BC28 device pin driver path" string "E18 device pin driver path"
default "/dev/pin_dev" default "/dev/pin_dev"
config ADAPTER_E18_DRIVER_EXTUART config ADAPTER_E18_DRIVER_EXTUART
@ -47,11 +47,31 @@ if ADD_XIZI_FETURES
endif endif
if ADD_NUTTX_FETURES if ADD_NUTTX_FETURES
config ADAPTER_E18_MODEPIN
int "E18 MODE pin number"
default "61"
config ADAPTER_E18_PIN_DRIVER
string "E18 device pin driver path"
default "/dev/pin_dev"
config ADAPTER_E18_DRIVER config ADAPTER_E18_DRIVER
string "E18 device uart driver path" string "E18 device uart driver path"
default "/dev/ttyS1" default "/dev/ttyS1"
depends on !ADAPTER_E18_DRIVER_EXTUART
---help--- ---help---
If USART1 is selected, then fill in /dev/ttyS1 here. If USART1 is selected, then fill in /dev/ttyS1 here.
if ADAPTER_E18_DRIVER_EXTUART
config ADAPTER_E18_DRIVER
string "E18 device extra uart driver path"
default "/dev/extuart_dev1"
config ADAPTER_E18_DRIVER_EXT_PORT
int "if E18 device using extuart, choose port"
default "1"
endif
endif endif
if ADD_RTTHREAD_FETURES if ADD_RTTHREAD_FETURES

View File

@ -45,7 +45,7 @@ static int E18HardwareModeGet()
int ret = 0; int ret = 0;
int pin_fd; int pin_fd;
pin_fd = PrivOpen(ADAPTER_BC28_PIN_DRIVER, O_RDWR); pin_fd = PrivOpen(ADAPTER_E18_PIN_DRIVER, O_RDWR);
struct PinStat pin_stat; struct PinStat pin_stat;
pin_stat.pin = ADAPTER_E18_MODEPIN; pin_stat.pin = ADAPTER_E18_MODEPIN;
@ -175,7 +175,7 @@ static int E18NetworkModeConfig(struct Adapter *adapter)
} }
out: out:
if(E18_AS_HEX_MODE == mode){ if(E18_AS_AT_MODE == mode){
AtCmdConfigAndCheck(adapter->agent, cmd_exit, "+OK"); AtCmdConfigAndCheck(adapter->agent, cmd_exit, "+OK");
} }
@ -204,6 +204,8 @@ static int E18NetRoleConfig(struct Adapter *adapter)
} }
} }
//wait 2second
PrivTaskDelay(2000);
switch (adapter->net_role) switch (adapter->net_role)
{ {
@ -240,7 +242,7 @@ static int E18NetRoleConfig(struct Adapter *adapter)
} }
out: out:
if(E18_AS_HEX_MODE == mode) { if(E18_AS_AT_MODE == mode) {
AtCmdConfigAndCheck(adapter->agent, cmd_exit, "+OK"); AtCmdConfigAndCheck(adapter->agent, cmd_exit, "+OK");
} }
@ -382,7 +384,7 @@ static int E18Join(struct Adapter *adapter, unsigned char *priv_net_group)
// } // }
if(!ret){ if(!ret){
if(E18_AS_HEX_MODE == mode) { if(E18_AS_AT_MODE == mode) {
ret = AtCmdConfigAndCheck(adapter->agent, cmd_exit, "+OK"); ret = AtCmdConfigAndCheck(adapter->agent, cmd_exit, "+OK");
if(ret < 0) { if(ret < 0) {
printf("%s %d cmd[%s] config failed!\n",__func__,__LINE__,cmd_exit); printf("%s %d cmd[%s] config failed!\n",__func__,__LINE__,cmd_exit);

View File

@ -0,0 +1,64 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
CONFIG_ADD_NUTTX_FETURES=y
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="xidatong"
CONFIG_ARCH_BOARD_XIDATONG=y
CONFIG_ARCH_CHIP="imxrt"
CONFIG_ARCH_CHIP_IMXRT=y
CONFIG_ARCH_CHIP_MIMXRT1052CVL5B=y
CONFIG_ARCH_INTERRUPTSTACK=10240
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARMV7M_DCACHE=y
CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y
CONFIG_ARMV7M_ICACHE=y
CONFIG_ARMV7M_USEBASEPRI=y
CONFIG_BOARD_LOOPSPERMSEC=104926
CONFIG_BUILTIN=y
CONFIG_CLOCK_MONOTONIC=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_IMXRT_GPIO_IRQ=y
CONFIG_IMXRT_GPIO3_0_15_IRQ=y
CONFIG_IDLETHREAD_STACKSIZE=2048
CONFIG_IMXRT_LPUART1=y
CONFIG_INTELHEX_BINARY=y
CONFIG_LPUART1_SERIAL_CONSOLE=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_LINELEN=64
CONFIG_NSH_READLINE=y
CONFIG_RAM_SIZE=524288
CONFIG_RAM_START=0x20200000
CONFIG_RAW_BINARY=y
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_WAITPID=y
CONFIG_START_DAY=14
CONFIG_START_MONTH=3
CONFIG_SYSTEM_NSH=y
CONFIG_DEV_GPIO=y
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_CMD_HISTORY_LEN=100
CONFIG_READLINE_CMD_HISTORY_LINELEN=120
CONFIG_READLINE_TABCOMPLETION=y
CONFIG_FS_ROMFS=y
CONFIG_NSH_ROMFSETC=y
CONFIG_NSH_ARCHROMFS=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BSP_USING_CH438=y
CONFIG_CH438_EXTUART1=y
CONFIG_SUPPORT_CONNECTION_FRAMEWORK=y
CONFIG_CONNECTION_FRAMEWORK_DEBUG=y
CONFIG_SUPPORT_CONNECTION_FRAMEWORK=y
CONFIG_CONNECTION_ADAPTER_ZIGBEE=y
CONFIG_ADAPTER_E18=y
CONFIG_ADAPTER_ZIGBEE_E18="e18"
CONFIG_AS_END_DEVICE_ROLE=y
CONFIG_ADAPTER_E18_DRIVER="/dev/extuart_dev1"
CONFIG_USER_ENTRYPOINT="nsh_main"

View File

@ -287,10 +287,10 @@ static int gt9xx_read_reg(FAR struct gt9xx_dev_s *priv, uint8_t *reg_addr, uint8
retries ++; retries ++;
} }
if (ret < 0) if (ret < 0)
{ {
ierr("gt: [%s] failed freq %ld addr %x ret %d\n", __func__, priv->frequency, config->address, ret); ierr("gt: [%s] failed freq %ld addr %x ret %d\n", __func__, priv->frequency, config->address, ret);
return ret; return ret;
} }
return ret; return ret;
} }
@ -302,7 +302,7 @@ static int gt9xx_write_config(FAR struct gt9xx_dev_s *priv)
{ {
int i, ret = -1; int i, ret = -1;
uint8_t check_sum = 0; uint8_t check_sum = 0;
uint8_t offet = 0x80FE - 0x8047 + 1 ; uint8_t offet = GT9XX_REG_CONFIG_CHKSUM - GT9XX_REG_CONFIG_DATA;
const uint8_t* cfg_info = gt9xx_cfg_data; const uint8_t* cfg_info = gt9xx_cfg_data;
uint8_t cfg_info_len = sizeof(gt9xx_cfg_data) / sizeof(gt9xx_cfg_data[0]); uint8_t cfg_info_len = sizeof(gt9xx_cfg_data) / sizeof(gt9xx_cfg_data[0]);
@ -313,8 +313,6 @@ static int gt9xx_write_config(FAR struct gt9xx_dev_s *priv)
memset(&reg_data[GT9XX_ADDR_LENGTH], 0, GT9XX_CONFIG_MAX_LENGTH); memset(&reg_data[GT9XX_ADDR_LENGTH], 0, GT9XX_CONFIG_MAX_LENGTH);
memcpy(&reg_data[GT9XX_ADDR_LENGTH], cfg_info, cfg_info_len); memcpy(&reg_data[GT9XX_ADDR_LENGTH], cfg_info, cfg_info_len);
check_sum = 0;
for (i = GT9XX_ADDR_LENGTH; i < offet + GT9XX_ADDR_LENGTH; i++) for (i = GT9XX_ADDR_LENGTH; i < offet + GT9XX_ADDR_LENGTH; i++)
{ {
check_sum += reg_data[i]; check_sum += reg_data[i];
@ -323,7 +321,7 @@ static int gt9xx_write_config(FAR struct gt9xx_dev_s *priv)
reg_data[offet + GT9XX_ADDR_LENGTH] = (~check_sum) + 1; //checksum reg_data[offet + GT9XX_ADDR_LENGTH] = (~check_sum) + 1; //checksum
reg_data[offet + GT9XX_ADDR_LENGTH + 1] = 1; //refresh reg_data[offet + GT9XX_ADDR_LENGTH + 1] = 1; //refresh
gt_print("Driver send config."); gt_print("Driver send config.\n");
ret = gt9xx_write_reg(priv, reg_data, offet + GT9XX_ADDR_LENGTH + 2); ret = gt9xx_write_reg(priv, reg_data, offet + GT9XX_ADDR_LENGTH + 2);
@ -420,14 +418,14 @@ static void gt9xx_data_worker(FAR void *arg)
*/ */
if(priv->touchbuf[0] & 0xf) if(priv->touchbuf[0] & 0xf)
{ {
gt_print("gt: [%s] get i2c %x reg %x %x ret %d\n", __func__, config->address, regaddr[0], regaddr[1], ret); gt_print("get i2c %x reg %x %x ret %d ", config->address, regaddr[0], regaddr[1], ret);
for(int i = 0; i < 10; i ++) for(int i = 0; i < GT9XX_TOUCH_DATA_LEN; i ++)
{ {
gt_print("%x ", priv->touchbuf[i]); gt_print("%x ", priv->touchbuf[i]);
} }
gt_print("\n"); gt_print("\n");
} }
sample = (FAR struct gt9xx_touch_data_s *)priv->touchbuf; sample = (FAR struct gt9xx_touch_data_s *)priv->touchbuf;

View File

@ -40,12 +40,14 @@
#define GT9XX_CONFIG_MAX_LENGTH 240 #define GT9XX_CONFIG_MAX_LENGTH 240
#define GT9XX_REG_BAK_REF 0x99D0 #define GT9XX_REG_BAK_REF 0x99D0
#define GT9XX_REG_MAIN_CLK 0x8020
#define GT9XX_REG_CHIP_TYPE 0x8000 #define GT9XX_REG_CHIP_TYPE 0x8000
#define GT9XX_REG_HAVE_KEY 0x804E #define GT9XX_REG_MAIN_CLK 0x8020
#define GT9XX_REG_MATRIX_DRVNUM 0x8069
#define GT9XX_REG_MATRIX_SENNUM 0x806A
#define GT9XX_REG_COMMAND 0x8040 #define GT9XX_REG_COMMAND 0x8040
#define GT9XX_REG_CONFIG_DATA 0x8047
#define GT9XX_REG_CONFIG_CHKSUM 0x80FF
#define GT9XX_REG_VERSION 0x8140
#define GT9XX_REG_SENSOR_ID 0x814A
#define GT9XX_REG_READ_COOR 0x814E
#define GT9XX_COMMAND_READSTATUS 0 #define GT9XX_COMMAND_READSTATUS 0
#define GT9XX_COMMAND_DIFFERENCE 1 #define GT9XX_COMMAND_DIFFERENCE 1
@ -54,16 +56,6 @@
#define GT9XX_COMMAND_CALCULATE 4 #define GT9XX_COMMAND_CALCULATE 4
#define GT9XX_COMMAND_TURNOFF 5 #define GT9XX_COMMAND_TURNOFF 5
#define GT9XX_REG_READ_COOR 0x814E
#define GT9XX_REG_SLEEP 0x8040
#define GT9XX_REG_SENSOR_ID 0x814A
#define GT9XX_REG_CONFIG_DATA 0x8047
#define GT9XX_REG_VERSION 0x8140
/****************************************************************************
* Public Types
****************************************************************************/
enum touch_event_e enum touch_event_e
{ {
GT9XX_DOWN = 0, /* The state changed to touched */ GT9XX_DOWN = 0, /* The state changed to touched */
@ -76,10 +68,10 @@ enum touch_event_e
struct gt9xx_touch_point_s struct gt9xx_touch_point_s
{ {
uint8_t xl;
uint8_t xh; uint8_t xh;
uint8_t yl; uint8_t xl;
uint8_t yh; uint8_t yh;
uint8_t yl;
uint8_t weight; uint8_t weight;
uint8_t area; uint8_t area;
}; };
@ -92,60 +84,17 @@ struct gt9xx_touch_data_s
struct gt9xx_touch_point_s touch[GT9XX_MAX_TOUCHES]; struct gt9xx_touch_point_s touch[GT9XX_MAX_TOUCHES];
}; };
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
/* Maximum number of threads than can be waiting for POLL events */ /* Maximum number of threads than can be waiting for POLL events */
#ifndef CONFIG_GT9XX_NPOLLWAITERS #ifndef CONFIG_GT9XX_NPOLLWAITERS
# define CONFIG_GT9XX_NPOLLWAITERS 2 # define CONFIG_GT9XX_NPOLLWAITERS 2
#endif #endif
/* Check for some required settings. This can save the user a lot of time
* in getting the right configuration.
*/
#ifndef CONFIG_SCHED_WORKQUEUE
# error "Work queue support required. CONFIG_SCHED_WORKQUEUE must be selected."
#endif
/****************************************************************************
* Public Types
****************************************************************************/
/* A reference to a structure of this type must be passed to the GT9XX
* driver. This structure provides information about the configuration
* of the FT5x06 and provides some board-specific hooks.
*
* Memory for this structure is provided by the caller. It is not copied
* by the driver and is presumed to persist while the driver is active. The
* memory must be writeable because, under certain circumstances, the driver
* may modify frequency or X plate resistance values.
*/
struct gt9xx_config_s struct gt9xx_config_s
{ {
/* Device characterization */
uint8_t address; /* 7-bit I2C address (only bits 0-6 used) */ uint8_t address; /* 7-bit I2C address (only bits 0-6 used) */
uint32_t frequency; /* Default I2C frequency */ uint32_t frequency; /* Default I2C frequency */
/* IRQ/GPIO access callbacks. These operations all hidden behind
* callbacks to isolate the GT9XX driver from differences in GPIO
* interrupt handling by varying boards and MCUs.
*
* attach - Attach an FT5x06 interrupt handler to a GPIO interrupt
* enable - Enable or disable a GPIO interrupt
* clear - Acknowledge/clear any pending GPIO interrupt
* wakeup - Issue WAKE interrupt to FT5x06 to change the FT5x06 from
* Hibernate to Active mode.
* nreset - Control the chip reset pin (active low)
*/
#ifndef CONFIG_GT9XX_POLLMODE #ifndef CONFIG_GT9XX_POLLMODE
int (*attach)(FAR const struct gt9xx_config_s *config, xcpt_t isr, int (*attach)(FAR const struct gt9xx_config_s *config, xcpt_t isr,
FAR void *arg); FAR void *arg);
@ -157,7 +106,6 @@ struct gt9xx_config_s
bool state); bool state);
}; };
int gt9xx_register(FAR struct i2c_master_s *i2c, int gt9xx_register(FAR struct i2c_master_s *i2c,
FAR const struct gt9xx_config_s *config, int minor); FAR const struct gt9xx_config_s *config, int minor);