法人向けのETC専用カード

2003/11/13

とりあえず環境はできたので、まずはLEDを点滅させるファームを書いてみます。
が、一部のピンが機能してない模様(;´Д`)

ハンダ付け部分のショートとかチェックしてみましたが問題なさそう。
なんでだろう‥


2003/11/15

このまま作業が止まっているのもあれなので、作業再開。
ちゃんと動いているピンだけで使ってみます。

まずは20x4行のLCDでも繋げてみようと思います。
LCDライブラリはPIC用に書いたものをベースにします。

ループでLCDのウエイトを入れようとしたところ、EZ-USBの1命令が何秒かかるか分からず悩む。<データシート嫁
適当なループ回数で待たせてもLCD初期化できず(;´Д`)

何気なく ezusb.h を眺めていると EZUSB_Delay(WORD ms) ってのを発見。
引数を見るとミリ秒単位で指定できるようだ。
早速これを使おう。


2003/11/16

いろいろファームを改良しても初期化できず。
根本から見直すことが大切だと思い、結線から見直す。

LCDのRSとE信号が逆でした(;´Д`)

しかし、直してもダメ。
本日は色々と格闘する。


2003/11/17

LCDへ4bit転送する時、書き込みデータのシフト方向が間違っていたことに気が付く(;´Д`)
先に上位4bitを送らなければいけないのに、下位4bitが先になっていました。

結果、表示できました。

次に、PCから表示データをバルク転送し、それをLCDに表示してみる。

(・∀・)イイ!感じ

本当は1キャラクタ書き込みごとに40マイクロ秒のウェイトで良いのですが、今は1msecウェイトを入れているため表示が遅いです。


2003/11/26

EZ-USBファームウェアと、Windows側のソースです。
いまさら需要があるかどうかは分かりませんが(;´Д`)

usb_lcd.lzh 22KBytes 2003/11/26

ファームウェア側は periph.c が入っています。Cypress のサンプルにある bulktest\periph.c と置き換えてください。
私が追加したのは //add start から //add end で括られた部分です。

Windows側は Visual C++ でメイクします。

回路図を書いてる時間が無いので、下記に結線イメージを書いておきます(;´Д`)
LCDのデータ -> PORTBの下位4bit
LCD-E -> PORTCの1bit目
LCD-RS -> PORTCの0bit目

当サイト内の検索