硬件参考
M5Cardputer(标准版)— GPIO 矩阵
键盘使用 GPIO 矩阵,包含 3 个输出引脚(行选择)和 7 个输入引脚(列读取)。
引脚分配
| 角色 | 引脚 | GPIO |
|---|---|---|
| 输出(行选择 bit 0) | OUT0 | 8 |
| 输出(行选择 bit 1) | OUT1 | 9 |
| 输出(行选择 bit 2) | OUT2 | 11 |
| 输入(列读取 bit 0) | IN0 | 13 |
| 输入(列读取 bit 1) | IN1 | 15 |
| 输入(列读取 bit 2) | IN2 | 3 |
| 输入(列读取 bit 3) | IN3 | 4 |
| 输入(列读取 bit 4) | IN4 | 5 |
| 输入(列读取 bit 5) | IN5 | 6 |
| 输入(列读取 bit 6) | IN6 | 7 |
输入引脚采用 INPUT_PULLUP 模式。按键按下时将对应线路拉低。
按键布局(4 行 × 14 列)
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0 ` 1 2 3 4 5 6 7 8 9 0 - = BKSP
1 TAB q w e r t y u i o p [ ] \
2 FN SHIFT a s d f g h j k l ; ' ENTER
3 CTRL OPT ALT z x c v b n m , . / SPACE
每个位置有两个值:小写 (value_first) 和大写/Shift (value_second)。Point2D_t {x, y} 坐标与此网格完全对应。
X 映射表
7 个输入位通过 X_map_chart 解码为列索引:
| 输入位 | value |
x_1(前 4 行) |
x_2(后 4 行) |
|---|---|---|---|
| bit 0 | 1 | 0 | 1 |
| bit 1 | 2 | 2 | 3 |
| bit 2 | 4 | 4 | 5 |
| bit 3 | 8 | 6 | 7 |
| bit 4 | 16 | 8 | 9 |
| bit 5 | 32 | 10 | 11 |
| bit 6 | 64 | 12 | 13 |
M5Cardputer-ADV — TCA8418 I2C
ADV 型号使用 TCA8418 I2C 按键矩阵控制器芯片。
| 项目 | 值 |
|---|---|
| I2C 总线 | 内部(m5::In_I2C) |
| I2C 地址 | 0x34 |
| I2C 频率 | 400 kHz |
| 矩阵大小 | 7 行 × 8 列 |
| 中断引脚 | GPIO 11 |
重映射
TCA8418 的原始行/列值会被重映射为标准的 M5Cardputer 坐标系统:
这确保了两种板型变体可以共享相同的 Point2D_t 坐标和 _key_value_map。
其他硬件
| 组件 | 接口 | 备注 |
|---|---|---|
| 显示屏 | SPI | 320×240 TFT,通过 M5Cardputer.Display(M5GFX)访问 |
| 按钮 A | GPIO | 物理按钮,通过 M5Cardputer.BtnA 访问 |
| 扬声器 | DAC / PWM | 通过 M5Cardputer.Speaker 进行音调输出 |
| 麦克风 | ADC | 通过 M5Cardputer.Mic 进行录音 |
| 红外发射器 | GPIO | 通过 IRremote 库支持 NEC 格式 |
| SD 卡 | SPI | 文件读写 |
| 外部 I2C | Port.A(m5::Ex_I2C) |
可供用户外设使用 |
| 内部 I2C | m5::In_I2C |
板载 TCA8418(ADV 型号) |