Keypad

From ArmadeusWiki
Revision as of 22:06, 4 December 2009 by JulienB (Talk | contribs) (reorg)

Jump to: navigation, search

How to connect a keypad to your Armadeus board

Introduction

Your Armadeus board allows you to connect a (matrix or not) keypad as input device. The default keypad driver configuration supports 16 keys connected to the i.MXL CSI bus. The current development state of the driver is unfinished and not fully generic but you can easily extend the driver to support keypads up to 36 keys using the whole CSI bus. Development are also ongoing to connect matrix keypads using the FPGA.

Solutions

There are several solutions to connect a matrix keypad to your Armadeus board:

Keypad directly connected to i.MXL/27

One GPIO for one key

This type of keypad generally called "common ground keypad" is the easiest one to build. If you need more than 6 keys it is however "GPIO consuming".
Under Test...

Matrix keypads on i.MX27

Matrix keypads on i.MXL

Driver for i.MX GPIO controlled keypads

By default your board supports a direct connection with a 4x4 matrix keypad using the CSI lines: CSI_MCLK, CSI_D0...CSI_D6.

The driver uses the i.MXL GPIO's internal pull-up, therefore your board does not need any additional external resistor.

  • Connect the 4 (rows) lines of the keypad to CSI_MCLK, CSI_D0, CSI_D1, CSI_D2 (resp. PORT_A pin 3, 4, 5, 6)
  • Connect the 4 (columns) lines of the keypad to CSI_D3, CSI_D4, CSI_D5 CSI_D6 (resp. PORT_A pin 7, 8, 9, 10)

{add a big picture of the keypad link with APF_DEV_LIGHT} {add a big picture of the keypad link with APF_DEV_FULL}

3x4 matrix keypad connected to i.MXL GPIOs

FPGA solution

Under development...

Test

  • use target/demos/keypad_test/ test tool
  • If you have a graphical LCD connected to your board (= virtual terminal), then you should see what you type.
  • If you don't have any virtual terminal, but only the serial console:
# cat /sys/class/input/input0/event0/dev
13:64

If corresponding device node in /dev/input/ is not existing, then:

# mkdir -p /dev/input
# mknod /dev/input/event0 c 13 64
# cat /dev/input/event0

Then you should see weirds characters when pressing keyboard keys:

�,~~_�,}�}�3T,QToT6,TT�,�;��, � �


Links

external links (for exemple: locomo driver model)