diff venus/src/periph/keypad.v @ 51:9de8e7a43160

keypad initial implementation
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 27 Nov 2021 07:03:14 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/venus/src/periph/keypad.v	Sat Nov 27 07:03:14 2021 +0000
@@ -0,0 +1,43 @@
+/*
+ * This Verilog module encapsulates the keypad of FC Venus.
+ *
+ * As currently implemented, KBC/KBR crosspoint choices correspond
+ * to TI's D-Sample, but they can be freely changed by the PCB layout
+ * engineer by editing this Verilog module and regenerating the netlist.
+ */
+
+module keypad (GND, KBC, KBR, PWON);
+
+input GND;
+input [4:0] KBC;
+output [4:0] KBR;
+output PWON;
+
+keyswitch_wrap S401 (KBC[3], KBR[0]);	/* left soft key */
+keyswitch_wrap S402 (KBC[4], KBR[2]);	/* navigation up */
+keyswitch_wrap S403 (KBC[3], KBR[2]);	/* right soft key */
+keyswitch_wrap S404 (KBC[4], KBR[0]);	/* navigation left */
+keyswitch_wrap S405 (KBC[4], KBR[4]);	/* navigation center */
+keyswitch_wrap S406 (KBC[4], KBR[1]);	/* navigation right */
+keyswitch_wrap S407 (KBC[0], KBR[0]);	/* green CALL or SEND button */
+keyswitch_wrap S408 (KBC[4], KBR[3]);	/* navigation down */
+keyswitch_wrap S410 (KBC[0], KBR[1]);	/* 1 */
+keyswitch_wrap S411 (KBC[1], KBR[1]);	/* 2 */
+keyswitch_wrap S412 (KBC[2], KBR[1]);	/* 3 */
+keyswitch_wrap S413 (KBC[0], KBR[2]);	/* 4 */
+keyswitch_wrap S414 (KBC[1], KBR[2]);	/* 5 */
+keyswitch_wrap S415 (KBC[2], KBR[2]);	/* 6 */
+keyswitch_wrap S416 (KBC[0], KBR[3]);	/* 7 */
+keyswitch_wrap S417 (KBC[1], KBR[3]);	/* 8 */
+keyswitch_wrap S418 (KBC[2], KBR[3]);	/* 9 */
+keyswitch_wrap S419 (KBC[0], KBR[4]);	/* * */
+keyswitch_wrap S420 (KBC[1], KBR[4]);	/* 0 */
+keyswitch_wrap S421 (KBC[2], KBR[4]);	/* # */
+keyswitch_wrap S422 (KBC[2], KBR[0]);	/* volume up */
+keyswitch_wrap S423 (KBC[1], KBR[0]);	/* volume down */
+keyswitch_wrap S424 (KBC[3], KBR[1]);	/* right side button */
+
+/* The button in the "red" position is special: it is PWON */
+keyswitch_wrap S409 (PWON, GND);
+
+endmodule;