tca8418 矩阵键盘原理问题求助

21ic官方微信-->
tca8418 矩阵键盘问题求助
中级技术员, 积分 298, 距离下一级还需 2 积分
中级技术员, 积分 298, 距离下一级还需 2 积分
中级技术员, 积分 298, 距离下一级还需 2 积分
中级技术员, 积分 298, 距离下一级还需 2 积分
这是我的探测函数:
& && & static int tca8418_keypad_probe(struct i2c_client *client,
& && && && && && && && && && && && && && &const struct i2c_device_id *id)
& & struct device *dev = &client-&&&
& & const struct tca8418_keypad_platform_data *pdata =&&
& && && && && && && && &dev_get_platdata(dev);&&
& & struct tca8418_keypad *keypad_&&
& & struct input_dev *&&
& & const struct matrix_keymap_data *keymap_data = NULL;&&
& & u32 rows = 0, cols = 0;&&
& & bool rep =&&
& & bool irq_is_gpio =&&
& & int error, row_shift, max_keys,i;&&
& & /* Copy the platform data */&&
& & if (pdata) {&&
& && &&&if (!pdata-&keymap_data) {&&
& && && && &dev_err(dev, &no keymap data defined\n&);&&
& && && && &return -EINVAL;&&
& && &&&}&&
& && &&&keymap_data = pdata-&keymap_&&
& && &&&rows = pdata-&&&
& && &&&cols = pdata-&&&
& && &&&rep&&= pdata-&&&
& && &&&irq_is_gpio = pdata-&irq_is_&&
& & if (!rows || rows & TCA8418_MAX_ROWS) {&&
& && &&&dev_err(dev, &invalid rows\n&);&&
& && &&&return -EINVAL;&&
& & if (!cols || cols & TCA8418_MAX_COLS) {&&
& && &&&dev_err(dev, &invalid columns\n&);&&
& && &&&return -EINVAL;&&
& & /* Check i2c driver capabilities */&&
& & if (!i2c_check_functionality(client-&adapter, I2C_FUNC_SMBUS_BYTE)) {&&
& && &&&dev_err(dev, &%s adapter not supported\n&,&&
& && && && &dev_driver_string(&client-&adapter-&dev));&&
& && &&&return -ENODEV;&&
& & row_shift = get_count_order(cols);&&
& & max_keys = rows && row_&&
& & /* Allocate memory for keypad_data and input device */&&
& & keypad_data = kzalloc(sizeof(*keypad_data), GFP_KERNEL);
& & if (!keypad_data)
& && && &return -ENOMEM;
& & keypad_data-&client =
& & keypad_data-&row_shift = row_
& & i2c_set_clientdata(client, keypad_data);
& & /* Initialize the chip or fail if chip isn't present */
& & error = tca8418_configure(keypad_data, rows, cols);
& & if (error & 0)&&
& & /* Configure input device*/
& & input = input_allocate_device();&&
& & if (!input) {&&
& && &&&error = -ENOMEM;&&
& && &&&&&
& & printk(&2-----row = %d,cols = %d\n&,rows,cols);
& & keypad_data-&input =
& & input-&phys = &tca8418_keys/input0&;
& & input-&name = client-&&&
& & input-&dev.parent = &client-&&&
& & input-&id.bustype = BUS_I2C;&&
& & input-&id.vendor&&= 0x0001;&&
& & input-&id.product = 0x0001;&&
& & //input-&id.version = 0x0100;
& & input-&id.version = 0x0001;
& & input-&keycode = keymap_data-&
& & input-&keycodesize = sizeof(keymap_data-&keymap[0]);
& & input-&keycodemax = ARRAY_SIZE(keymap_data-&keymap);
& & if (rep)&&
& && &&&__set_bit(EV_REP, input-&evbit);
& & __set_bit(EV_KEY, input-&evbit);
& & //导入键盘键值映射表
& & matrix_keypad_build_keymap(keymap_data, row_shift, input-&keycode, input-&keybit);&&
& & matrix_keypad_build_keymaptest(keymap_data, row_shift, input-&keycode, input-&keybit);
& & if (!input-&keybit) {&&
& && &&&dev_err(dev, &Failed to build keymap\n&);&&
& && &&&&&
& & input_set_capability(input, EV_MSC, MSC_SCAN); //test for gxl
& & input_set_drvdata(input, keypad_data);& && && &//test for gxl
& & //申请中断,这里有的input驱动用到的是工作队列的方式,是隔一段时间去自动检测,有兴趣的可以了解一下
& & irq = client-&&&
& & //if (irq_is_gpio)&&
& & //& & irq = gpio_to_irq(irq);& &
& & error = request_threaded_irq(irq,NULL, tca8418_irq_handler,
& && && && && && && && && && && && &IRQF_ONESHOT|IRQF_SHARED,
& && && && && && && && && && && && &client-&name, keypad_data);
& & if (error) {
& && && && && & dev_err(dev, &Unable to claim irq %d; error %d\n&,
& && && && && && && && &client-&irq, error);
& && && && && &
& & //第三步:将设备注册到input子设备中
& & error = input_register_device(input);& && &
& & if (error) {&&
& && &&&dev_err(dev, &Unable to register input device, error: %d\n&,&&
& && && && &error);
& && &&&&&
& & return 0;&&
这是中断函数 :
static irqreturn_t tca8418_irq_handler(int irq, void *dev_id)
& && &&&struct tca8418_keypad *keypad_data = (struct tca8418_keypad *)dev_
& && &&&u8
& && &&&unsigned short&&*trans_key_
& && &&&trans_key_third = keypad_data-&input-&
& && &&&printk(&(keypad_data-&input-&keycode)address0 = %x\n&,trans_key_third);
& && &&&printk(&(keypad_data-&input-&keycode)address1 = %x\n&,trans_key_third[1]);
& && &&&printk(&(keypad_data-&input-&keycode)address2 = %x\n&,trans_key_third[2]);
& && &&&printk(&(keypad_data-&input-&keycode)address3 = %x\n&,trans_key_third[3]); &&
& && &&&error = tca8418_read_byte(keypad_data, REG_INT_STAT, &reg);
& && &&&printk(&REG_INT_STAT1 = %d\n&,reg);
& && &&&if (error) {
& && && && && & dev_err(&keypad_data-&client-&dev,
& && && && && && && && &&unable to read REG_INT_STAT\n&);
& && && && && & return IRQ_NONE;
& && &&&if (!reg)
& && && && && & return IRQ_NONE;
& && &&&if (reg & INT_STAT_OVR_FLOW_INT)
& && && && && & dev_warn(&keypad_data-&client-&dev, &overflow occurred\n&);
& && &&&if (reg & INT_STAT_K_INT)
& && && & {& && && && && && && &
& && && && && &tca8418_read_keypad(keypad_data);
& && && & }
& && &&&/* Clear all interrupts, even IRQs we didn't check (GPI, CAD, LCK) */
& && &&&reg = 0
& && &&&error = tca8418_write_byte(keypad_data, REG_INT_STAT, reg);
& && &&&if (error)
& && && && && & dev_err(&keypad_data-&client-&dev,
& && && && && && && && &&unable to clear REG_INT_STAT\n&);
& && &&&return IRQ_HANDLED;
发生中断后中断函数打印的keypad_data-&input-&keycode没有按键值,
bsp端的函数:
static uint32_t tca8418_mkdata[] __initdata = {
& & /* KEY(row, col, keycode) */
& & KEY(7, 0, KEY_F1), KEY(7, 1, KEY_F2), KEY(7, 2, KEY_F3),KEY(7, 3, KEY_F4),KEY(7, 4, KEY_HOME),KEY(7, 5, KEY_UP),KEY(7, 6, KEY_BACK),
& & KEY(6, 0, KEY_8), KEY(6, 1, KEY_UP), KEY(6, 2, KEY_A),KEY(6, 3, KEY_B),KEY(6, 4, KEY_C),KEY(6, 5, KEY_D),KEY(6, 6, KEY_E),
& & KEY(5, 0, KEY_LEFT), KEY(5, 1, KEY_DOWN), KEY(5, 2, KEY_RIGHT),KEY(5, 3, KEY_4),KEY(5, 4, KEY_5),KEY(5, 5, KEY_6),KEY(5, 6, KEY_7),
& & KEY(4, 0, KEY_1), KEY(4, 1, KEY_2), KEY(4, 2, KEY_3),KEY(4, 3, KEY_BRIGHTNESSDOWN),KEY(4, 4, KEY_BRIGHTNESSUP),KEY(4, 5, KEY_BRIGHTNESSUP),KEY(4, 5, KEY_BRIGHTNESSUP),
static struct matrix_keymap_data tca8418_keymap_data __initdata = {
& && &&&.keymap& && && && && & = tca8418_mkdata,
& && &&&.keymap_size& && &&&= ARRAY_SIZE(tca8418_mkdata),
static struct tca8418_keypad_platform_data tca8418_date = {
& && &&&.keymap_data = &tca8418_keymap_data,
& && &&&.rows=4,
& && &&&.cols=7,
& && &&&.rep=1,
& && &&&.irq_is_gpio=1,
static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
& && && && && & I2C_BOARD_INFO(&tca8418_keypad&, 0x34),
& && && && && & //.type = &tca8418_keypad& ,
& && && && && & .irq = gpio_to_irq(SABRESD_SD2_WP),
& && && && && & .platform_data = (void *)&tca8418_date,
& && &&&},
发生中断后中断函数打印的keypad_data-&input-&keycode没有按键值,这个地址全是零,大家知道什么原因!!!
发生中断后中断函数打印的keypad_data-&input-&keycode没有按键值,全是零,我打印了这个地址内容确实全为零!!!,
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
楼主你好,我也刚开始在stm32上用tca8418做矩阵按键,刚开始研究datasheet。您有它完美驱动这方面的例程吗,研究研究。。 谢谢楼主了。
扫描二维码,随时随地手机跟帖
时间类勋章
技术新星奖章
人才类勋章
您需要登录后才可以回帖
热门推荐 /4EM335x工控主板的接口及扩展综述--技术天地
方案与技术文档
方案与技术文档
EM335x工控主板的接口及扩展综述&&&&发布时间:&&&&被阅览数:次
&&&&&&& 英创公司新近推出的工控主板EM335x,是一款基于Cortex-A8的高性价比嵌入式主板产品,配置了丰富的接口资源。图1是对EM335x主要接口的功能框图,本文将基于该框图,从应用的角度,来介绍EM335x各个接口的使用及相关注意事项。&图1 EM335x主要接口的常规应用&&&&&&&& 网络应用&&&&&&& EM335x的两路以太网接口是完全独立的网络接口,若仅使用1路,建议采用网口1(eth0),对2路以太网口的应用,应把网络设置在不同的网段。对WiFi或3G无线功能的扩展,一般通过EM335x的USB主控口连接现成的商业模块来实现。&&&&&&&& UART串口&&&&&&& EM335x物理上有6个串口,列表如下:&WinCE名称Linux名称串口速度简要说明COM2ttyS1高速串口& 支持RTS/CTS硬件流控COM3ttyS2高速串口& 3线制,RS232电平接口COM4ttyS3高速串口& 3线制,TTL电平COM5ttyS4高速串口& 3线制,TTL电平COM6ttyS5低速串口& 3线制,波特率不高于19200bps,8-bit& 数据位,与GPIO复用管脚COM7ttyS6低速串口&&&&&&&& 若有GPRS应用,建议采用COM2(ttyS1)口;对多于4路串口的应用,注意COM6和COM7的最高波特率不超过19200bps,典型的波特率是9600bps。&&&&&&&& GPIO&&&&&&& EM335x板载的32路GPIO均为3.3V TTL电平信号,需要进行电平转换才能与5V或其他电平的信号相连。特别注意在主板上电的初始阶段,GPIO的初始电平存在着几个ms的低电平时刻(详见EM335x数据手册)。当选择GPIO作为输出,驱动继电器时,其驱动电路需做专门处理,以避免继电器在上电时的误动作。&&&&&&&& LCD接口&&&&&&& EM335x的彩色LCD接口,其支持的分辨率至少可达,并支持4线制电阻触摸屏。对分辨率在320×240至800×480的LCD来说,一般直接使用LCD接口的数字信号驱动。对800×600以上分辨率的LCD,为了避免信号在传输过程的畸变,一般采用LVDS接口信号,英创配套的转换模块型号为ETA921A。&&&&&&&& I2C总线&&&&&&& I2C总线主要用于驱动在应用底板上扩展的常规电路单元。基于I2C总线的典型常规扩展电路包括:矩阵键盘控制电路、GPIO扩展单元、低速AD扩展单元等。为了便于客户方便快速的评估这些常规功能,英创公司提供以下配套模块供选择:&I2C扩展单元模块型号功能描述矩阵键盘控制ETA202& 核心芯片TCA8418,支持最大8×8矩阵键盘GPIO扩展ETA715& 核心芯片TCA6424A,支持24路GPIO扩展AD数据采集ETA105& 核心芯片ADS7828,支持8路单端输入,12-bit分辨率&&&&&&&& SPI接口&&&&&&& SPI接口最常用的是扩展AD数据采集芯片,英创配套评估模块型号为ETA107,核心芯片为AD7888。此外通过SPI扩展加密芯片,也是SPI常见的应用之一。&&&&&&&& ISA扩展总线&&&&&&& EM335x的ISA扩展总线包括8位数据总线,8位地址总线及读写控制信号,总线周期为180ns。EM335x的ISA扩展总线主要应用于扩展专用的高速数据采集单元、多路串口扩展单元等相对复杂的应用。相对英创公司其他主板产品的ISA总线,EM335x的ISA总线的最大特点是支持外部中断请求或外部DMA信号请求,这样可以较低的成本实现高速的数据采集功能,理论上的最高数据采集率可达5MB/s。在工业应用中,AD数据的分辨率一般在12-bit至16-bit,即需要占用2个字节。为此EM335x的ISA驱动有专门的双字节读取操作,在总线对应两个连续的总线周期(其中第二个周期的地址自动加1),来读取扩展单元的AD数据。&&&&&&&& 对多路串口扩展,可直接采用英创公司的线程模块ETA503(4路串口串口)或ETA508(8路标准串口)模块。&&&&&&&& 对一般的常规应用扩展,不推荐使用ISA总线,而建议采用I2C总线进行扩展,以获得更高的性价比。
产品及定制服务
方案与技术文档
英创官方微信TCA8418 (TI) PDF技术资料下载
TCA8418 供应信息 IC Datasheet 数据表 (1/37 页)
 | 
TCA8418 PDF Datasheet浏览和下载
www.ti.com.........................................................................................................................................................................................SCPS215 – SEPTEMBER 2009I2C CONTROLLED KEYPAD SCAN IC WITH INTEGRATED ESD PROTECTION1FEATURESAPPLICATIONSooooooooooooooSmart PhonesOperating Power-Supply Voltage Range of1.65 V to 3.6 VoPDAsoGPS DevicesSupports QWERTY Keypad Operation PlusGPIO ExpansionoMP3 PlayersoDigital Cameras18 GPIOs Can Be Configured into Eight Inputsand Ten Outputs to Support an 8 × 10 KeypadDESCRIPTION/ORDERING INFORMATIONArray (80 Buttons)ESD Protection Exceeds JESD 22 on all 18The TCA8418 is a keypad scan device withGPIO Pins and non GPIO pinsintegrated ESD protection. It can operate from 1.65 Vto 3.6 V and has 18 general purpose inputs/outputs– 2000-V Human Body Model (A114-A)(GPIO) that can be used to support up to 80 keys via– 1000-V Charged Device Model (C101)the I2C interface [serial clock (SCL), serial dataLow Standby (Idle) Current Consumption: 3uA(SDA)].Polling Current Drain 70uAfor One KeyThe key controller includes an oscillator thatPresseddebounces at 50usand maintains a 10 byte FIFO of10 Byte FIFO to Store 10 Key Presses andkey-press and release events which can store up to10 keys with overflow wrap capability. An interruptReleases(/INT) output can be configured to alert key pressesSupports 1-MHz Fast Mode Plus I2C Busand releases either as they occur, or at maximumOpen-Drain Active-Low Interrupt Output,rate. Also, for the YFP package, a CAD_INT pin isAsserted when Key is Pressed and Key isincluded to indicate the detection of CTRL-ALT-DELReleased(i.e., 1, 11, 21) key press action.Minimum Debounce Time of 50usThe major benefit of this device is it frees up theSchmitt-Trigger Action Allows Slow Inputprocessor from having to scan the keypad for pressesand releases. This provides power and bandwidthTransition and Better Switching Noisesavings. The TCA8418 is also ideal for usage withImmunity at the SCL and SDA Inputs: Typicalprocessors that have limited GPIOs.Vhysat 1.8 V is 0.18 VLatch-Up Performance Exceeds 200 mA PerJESD 78, Class IIVery Small Packages– WCSP (YFP): 2 mm × 2 0.4 mm pitch– QFN (RTW): 4 mm × 4 0.5 mm pitchORDERING INFORMATIONTAPACKAGE(1) (2)QFN – RTWWCSP – YFPTape and reelTape and reelORDERABLE PART NUMBERTCA8418RTWRTCA8418YFPRTOP-SIDE MARKINGPZ418PREVIEW–40°C to 85°C(1)(2)Package drawings, thermal data, and symbolization are available atFor the most current package and ordering information, see the Package Option Addendum at the end of this document, or see the TIwebsite at1Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of TexasInstruments semiconductor products and disclaimers thereto appears at the end of this data sheet.PRODUCTION DATA information is current as of publication date.Products conform to specifications per the terms of the TexasInstruments standard warranty. Production processing does notnecessarily include testing of all parameters.Copyright (C) 2009, Texas Instruments Incorporatedtca8418 IC tca8418现货 tca8418价格 tca8418热卖tca8418库存tca8418特价 集成电路 ROHS 芯片
供应商 制造商tca8418.PDF资料下载 盛明零件网
全部供货商
└我的供货商
ICMC认证:现货供货商
├都会100电子城
├新亚洲电子城
├华强电子世界
├赛格电子广场
└高科德交易中心
├中发电子城
├中海园电子城
└知春电子城
└粤东电子城
其它地区...
ICMC认证:供货
经营品种<1000的供货商
经营品种<5000的供货商
经营品种<10000的供货商
技术资料 手册 图纸
TCA8418RTWR
全新原装进口现货起订量:1
高小姐/袁小姐/王先生Tel:1/86Fax:1Mobil:深圳市福田区华强北赛格广场50楼5011室/ 北京市海淀区知春路118号知春大厦A座802A室QQ:
TCA8418RTWR
TEXAS INSTRUMENTS
进口原装价格有优势
李先生Tel:86-9李小姐
李先生 Fax:9Mobil:深圳市福田区华强北路华联发综合楼823室Msn:QQ:
TCA8418RTWR
进口原装正品货
路小姐/尹先生/廖先生/王小姐/方小姐/石先生Tel:9 Fax:1Mobil:深圳市福田区梅林路怡景大厦8428QQ:
TCA8418RTWR
TI BB原厂旗下直销
&nbsp朱先生 廖小姐
公司成立一般纳税人可开17%个点税票Tel:0
0 XILINX《赛灵思》 ALTEFax:0Mobil:深圳市福田区上步工业区501栋408室Msn:QQ:
TCA8418RTWR
张小姐Tel:0 业务专线 深圳市高新科技园QQ:
TCA8418RTWR
十年信誉!绝对原装正品!!
李小姐Tel:10477/Fax:8深圳市福田华强北路现代之窗A座18I,深圳市华强北华强电子世界1号楼2楼11C069Msn:QQ:
TCA8418RTWR
全新原装2-3周
杨先生/漆小姐Tel:8/Fax:1深圳市福田区华强北路赛格科技园2栋东2A-508.QQ:
TCA8418EYFPR
全新原装2-3周
TCA8418E-EVM
全新原装2-3周
TCA8418RTWR
/华强2C079
赵先生/蔡小姐Tel:7/致各位新老客户:最近因华强机Fax:4/先进电子原C023室已迁往2C079室Mobil:深圳市福田区华强电子世界三号楼二楼2C079房间Msn:QQ:
TCA8418RTWR
进口原装现货
黄小姐Tel:3
Fax:3深圳市中航路新亚洲电子商城二期N3D048室QQ:
Total found 11 in Search took 0.00 seconds|75|</font||||
搜索全部供货商
└我的供货商
├新亚洲电子城
├都会100电子城
├华强电子世界
├赛格电子广场
└高科德交易中心
├中发电子城
├中海园电子城
└知春电子城
└粤东电子城
其它地区...
ICMC认证:现货
ICMC认证:供货
经营品种<1000的供货商
经营品种<5000的供货商
经营品种<10000的供货商
公司名 电话 地址 QQ msn email ...
技术资料 手册 图纸 代换 ...
盛明零件网&ICminer.com&&
Tel:020-&&&Fax:020-
Copyright &&ICminer, All rights reserved据counterpoint发布的数据,2017年全球前六大手机芯片企……
2018年才刚过没多久,区块链概念股一片火热。沉寂已久的……
近日三星电子宣布开发出核心电池技术,其研究机构三星先……
据美国半导体行业协会(SIA)数据统计,全球半导体行业201……
在今年的慕尼黑电子展上,连接器展区真是火了一把,不仅……
演讲人:孙彬时间: 10:00:00
演讲人:郝晓贝时间: 10:00:00
演讲人:王海莉时间: 10:00:00
预算:¥20000预算:¥10000
上海市上海市
具有QWERTY功能的I2C小键盘/键盘控制器(TI)
[导读]日前,德州仪器 (TI) 宣布推出可使用三键组合(如 CTRL-ALT-DEL)生成中断输出信号的按键扫描器件 TCA8418,该产品可取代处理器对按键与释放按键的扫描,从而可显著节省电源与带宽。TCA8418 支持智能电话、多媒体手持
日前, (TI) 宣布推出可使用三键组合(如 CTRL-ALT-DEL)生成中断输出信号的按键扫描器件 TCA8418,该产品可取代处理器对按键与释放按键的扫描,从而可显著节省电源与带宽。TCA8418 支持智能电话、多媒体手持设备、个人数字助理 (PDA) 以及移动因特网设备 (MID)等应用。本文引用地址: TCA8418 的主要特性与优势&#8226;&按键控制器包含每 50 us 反弹一次的振荡器,并保持 10 字节 FIFO 的按键与按键释放活动,从而借助溢出打包功能存储多达 10 个按键;&#8226;&可配置中断输出 (/INT),实现在按键与按键释放情况下或上述操作达到最高速率情况下发出警报;&#8226;&电源工作电压介于 1.65 V 与 3.6 V 之间,可为当前最高级的处理器提供无缝接口;&#8226;&可将 18 组通用输入/输出 (GPIO) 配置为 8 组输入与 10 组输出,从而可通过 I2CTM 接口支持 8 x 10 的键位布局(80 个按钮);&#8226;&3 uA 的低待机(空闲)流耗可延长便携式设备的电池使用寿命;&#8226;&能够与 GPIO 有限的处理器配合使用,并兼容于包括众多 TI OMAP&#8482; 3 应用处理器在内的各种高级处理器。&供货情况采用 4 毫米 x 4 毫米 QFN 封装的 TCA8418 现已开始供货。更小型 2 毫米 x 2 毫米 WCSP 封装版预计将于 2010 年第 1 季度开始供货,该产品与同类竞争器件相比,可节省 75 % 的板级空间。
NEC公司要你戴上智能眼镜和手表,只为了在手臂上敲键盘,在手机上,有人钟爱物理键盘、更多人则偏好虚拟键盘。键盘中还有九宫格、全键盘、黑莓特有的
SureType&&已经很分裂了,NEC 公司觉......关键字:
苹果刚刚被美国专利和商标局授予一个名为“有角度摄像头观看配件”,并描述了倾斜的相机配件如何可能被用来开发虚拟键盘。......关键字:
上周消息显示黑莓已经将全球大部分地区的设备制造、销售工作授权给了TCL,这意味着今后不会再有黑莓自主手机出现。......关键字:
果不其然,今天上午,小米众筹第48期众筹产品上线,真的是一款机械键盘,众筹价299元。这款键盘名为&悦米机械键盘&,主打87键位、铝合金机身,TTC红轴,简约百搭!
作为一款87键盘,悦米机械键盘机身短......关键字:
我 要 评 论
热门关键词

我要回帖

更多关于 矩阵键盘 的文章

 

随机推荐