Keypad

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

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.

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

Development are also ongoing to connect matrix keypads using the FPGA...

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)