【バイナリコーディング演習】FPGAボードでLチカとPWMによるLED点灯を試すオリジナルCPUでバイナリコード入門(3)(2/3 ページ)

» 2023年04月13日 08時30分 公開
[今岡通博MONOist]

「Tang Nano」でLチカを実行

 図1はTang Nanoのピンアウト(Tang Nanoのピン配列)です。Tang NanoのUSBコネクターがない方の端から左右12ピンまでを示したものです。

図1 「Tang Nano」のピン配列 図1 「Tang Nano」のピン配列

 図1の16番ピンに発光ダイオードのアノード、17番ピンにカソードを接続すればLEDが点滅します。

 図2はBlinkのVerilog-HDLをシンセサイズして、cstファイルに基づき配置配線を行い、プログラマーでTang Nanoに書き込んだ結果を示しています。静止画なので分からないかもしれませんが、実際には一定間隔で点滅しています。

図2 「Tang Nano」を使ってBlinkを実行する様子 図2 「Tang Nano」を使ってBlinkを実行する様子

 リスト3は開発ツールが出力するサマリーです。プロジェクト作成時にパーツ番号(Part Number)などかなり細かく指定する箇所がありますので初めてプロジェクトを作成する場合この情報は有益です。

General
Synthesis Tool:	GowinSynthesis
Target Device
Part Number:	GW1NZ-LV1QN48C5/I4
Series:	        GW1NZ
Device:	        GW1NZ-1
Package:	    QFN48
Speed Grade:	C5/I4
Core Voltage:	LV
リスト3 IDEが出力するサマリー

 リスト4はIDE(開発ツール)の製造元情報です。このメーカーがFPGAチップとIDEを製造しています。SipeedはこのメーカーのFPGAチップを使ってTang Nanoを製造販売しているわけです。

GOWIN SEMI
GOWIN FPGA Designer
(C) 2014-2023 GOWINSEMI
リスト4 IDEが出力するサマリー

PWMでLEDの明るさを変える

 次の事例は3つのLEDの明るさを変えて点灯させるものです。これには製作動機がありまして、抵抗を使わずにTang NanoでLEDを点灯させたいと思い、いろいろ調べていると以下の検索ワードである製品が見つかりました。

検索ワード:MAX7219 8*8 dot matrix module microcontroller module display module MCU LED Display Control Module For Arduino 5V

 この製品は8×8のLEDマトリックスディスプレイをSPIで制御できるようにしたモジュールです。このモジュールを調べてみると、LEDと直列に抵抗が入っていないのです。そこで、PWMをLED制御に使えば抵抗なしでLEDを駆動できるのではないかと思いました。

Copyright © ITmedia, Inc. All Rights Reserved.