关于MT6253扩展全键盘的若干建议
0赞53全键盘的优化建议:
1: 如果扩展几个键而已, 请只扩展GND行, 由于GPIO行的扩展, 拉高拉低GPIO后需要延时, 会影响
检测效率。
2: FN的功能键请放在非扩展键,其所在列的扩展键最好不用,优先用其他。
关于53全键盘扩展,如果有不开机,请帮忙check以下几支文件:
加上如下红色部分,就可以开机了。
custom\drv\Drv_Tool\MT6253.fig
[KEYPAD]
;MT6253 use EXTEND_QWERTY_KEYPAD option. MT6253 is original ROW=6
KEY_ROW=8
KEY_COLUMN=9
please change KEY_ROW above
drv_features_option.h
/**************** KBD ******************/ ...
#elif defined(DRV_KBD_6253_SERIES)
#define DRV_KBD_48KEYS_ABOVE
#define DRV_KBD_54_KEYS
#define DRV_KBD_MUX_WITH_GPIO
#define DRV_KBD_DRVTOOL_EXTEND_72_KEYS #endif
keypad_sw.h:
/*Customizae Keypad*/
typedef struct {
/*keypad mapping*/
#if defined(DRV_KBD_DRVTOOL_EXTEND_72_KEYS)
kal_uint8 keypad[72];//kbd_allkeys+KBD_COLUMN*2]; //reserve one GND row
and GPO row.
#else
kal_uint8 keypad[kbd_allkeys];
#endif//#if defined(DRV_KBD_DRVTOOL_EXTEND_72_KEYS)
keypad_def.c:
#else /* __CUST_NEW__ */
KEYPAD_MAPPING
#endif /* __CUST_NEW__ */
},
#if defined(__EXTEND_QWERTY_KEYPAD__)
0xFF, //76 means use GPO 76 as extend row
#endif //#if defined(__EXTEND_QWERTY_KEYPAD__)
/*power on period*/
Custom_Keypress_Period,
如果你有发现文件中这几处不一样,请帮忙作对应的修改,谢谢!
半导体社区
另外:
您好,为防止全键盘不响应, kbdmain.c请做如下修改。
改动前:
void Kbd_LISR(void)
{
//kal_activate_hisr(KBD.hisr);
drv_active_hisr(DRV_KP_HISR_ID);
}
void Kbd_HisrEntry(void)
{
#if defined(__EXTEND_QWERTY_KEYPAD__)
//use gpt polling instead of key IRQ event trigger
// IRQMask(IRQ_KPAD_CODE);
KBD_MASKIRQ;
#endif //#if defined(__EXTEND_QWERTY_KEYPAD__)
KBD_DBG(__LINE__, KBD_GetTimeStamp(), ust_get_current_time(),0);
/*lint -e(534)*/kal_set_eg_events(KBD.event,1,KAL_OR);
}
改动后:
void Kbd_LISR(void)
{
#if defined(__EXTEND_QWERTY_KEYPAD__)
//use gpt polling instead of key IRQ event trigger
// IRQMask(IRQ_KPAD_CODE);
KBD_MASKIRQ;
#endif //#if defined(__EXTEND_QWERTY_KEYPAD__)
//kal_activate_hisr(KBD.hisr);
drv_active_hisr(DRV_KP_HISR_ID);
}
void Kbd_HisrEntry(void)
{
KBD_DBG(__LINE__, KBD_GetTimeStamp(), ust_get_current_time(),0);
/*lint -e(534)*/kal_set_eg_events(KBD.event,1,KAL_OR);
}