Altera DE2-115でLCDに文字を表示する

Altera DE2-115を借りていろいろすることができたのでメモ.

いろいろやったけど一番情報が少なかったと思われるLCDを使って文字を表示する方法を書いておきます.

fopenでLCDを開いてfwriteを使ってLCDにデータを表示させる方法とか,どっかの大学の先生が作ったプログラムを使って表示させる方法とかさまざまあるようですが,今回は別の方法でやってみようと思います.

 

開発環境&使用ソフトウェア

  • Windows 7 Enterprise x86_64
  •  Quartus II 12.0sp2 Web Edition
  • Nios II Build Tool for Eclipse
  • Terasic DE2-115 System Builder

 

ハードウェアを作る(?)

FPGAのことがよくわかっていなくて,なんといえばいいのかわからないけどハードウェアの論理合成をする.

一からVerilogを書いてもよかったんだけど,ほかの作業に追われていたのでTerasic DE2-115 System Builderを使ってサクッとVerilogファイルを生成してしまう.ある意味チート.

キャプチャ

Generate ボタンを押すとプロジェクトファイルが生成される.生成されたプロジェクトファイルをQuartus IIで開く.

Qsysでサクッと画像のようにつなげる.

キャプチャ

後は「プロジェクト名.v」となっているVerilogファイルの” Structural coding “というところにNios IIの設定を追記する.

[crayon]
assign LCD_ON = 1’b1;
assign LCD_BLON = 1’b1;

nios nios0  (
// 1) global signals:
.clk( CLOCK_50 ),
.reset_n( 1 ),

// the_lcd
.LCD_E_from_the_lcd( LCD_EN ),
.LCD_RS_from_the_lcd( LCD_RS ),
.LCD_RW_from_the_lcd( LCD_RW ),
.LCD_data_to_and_from_the_lcd( LCD_DATA )
)
;
[/crayon]

これで論理合成したあとDE2-115のボードにプログラミング.

 

プログラムを書く

サクッとテストプログラムを書いてみる.ただ以下のコードは何となく書いたので動くかわからん.

開発しててハマったのがEcripseでDE2-115を認識しないときがあったこと.これはEcripseをいったん閉じてQuartusIIから回路をプログラミングしてからもう一度Ecripseを立ち上げると認識するようになった.
ちなみにAltera Monitor Programを使って開発してる人はLCDを使うときLCDのアドレス+1してポインタつかっていろいろすると行けるっぽい.

 

動作

上に書いたプログラムで表示したわけではないけど,下の画像のように動く.

P_20160126_104338[1]

 

参考にしたサイト

 

触ってからだいぶ時間が空いてからこれを書いたのであやふやになってる部分も多数...

触ってるときにアウトプットするのって大切ですね~

FPGAを使った開発はものすごく楽しかったけど,個人でやるんだったらPICが楽だなーと思ったり.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*