From 8c1f892f78632617a581869ad1483f7444769c2d Mon Sep 17 00:00:00 2001 From: travisutk Date: Mon, 22 Feb 2010 20:15:45 +0000 Subject: [PATCH] Some doodles toward a smart card app. Nothing works. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@342 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- firmware/apps/jtag/jtag430.c | 3 +- firmware/apps/smartcard/smartcard.c | 53 +++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/firmware/apps/jtag/jtag430.c b/firmware/apps/jtag/jtag430.c index 22687da..95e91a6 100644 --- a/firmware/apps/jtag/jtag430.c +++ b/firmware/apps/jtag/jtag430.c @@ -322,7 +322,8 @@ void jtag430handle(unsigned char app, P1OUT^=1; } P1OUT&=~1; - + + switch(verb){ case START: //Enter JTAG mode. diff --git a/firmware/apps/smartcard/smartcard.c b/firmware/apps/smartcard/smartcard.c index e984f24..d8b8539 100644 --- a/firmware/apps/smartcard/smartcard.c +++ b/firmware/apps/smartcard/smartcard.c @@ -9,16 +9,65 @@ #include "command.h" #include "jtag.h" +//TDO/P5.2 is Data + +//Read a bit. +#define SCIN (P5IN&BIT2) +//Set I/O direction. +#define SCINPUT (P5DIR&=~BIT2) +#define SCOUTPUT (P5DIR|=BIT2) +//Set data value. +#define SCH (P5OUT|=BIT2) +#define SCL (P5OUT&=~BIT2) + +//Clock. +#define SCTICK (P5OUT|=BIT3) +#define SCTOCK (P5OUT&=~BIT3) + + +//! Setup the smart card mode. +void smartcardsetup(){ + P5DIR|=BIT3; + P2DIR|=RST; + msdelay(100); +} + +u16 sctime=0, foo=0; + //! Handles a monitor command. int smartcardhandle(unsigned char app, unsigned char verb, unsigned int len){ switch(verb){ case SETUP: - debugstr("Unable to setup smart card."); + smartcardsetup(); break; case START: - debugstr("Unable to start smart card."); + smartcardsetup(); + debugstr("Reseting card"); + SCINPUT; + + CLRRST; + SCTICK; + SCTOCK; + SCTICK; + SCTOCK; + delay(500); + SETRST; + + while(1){ + sctime++; + SCTICK; + delay(5); + SCTOCK; + + P1OUT^=1; + if(SCIN!=foo){ + foo=SCIN; + } + if(sctime%0x1000==0) + debughex(foo); + } break; case STOP: default: -- 2.20.1