第5章 ソフトウェアからのハードウェア制御の第一歩 c...

1
36 第 5 章 C プログラムから使える LED 制御回路の設計 るソフトウェアからのハードウェアの制御方法を説明 します. 1.調光機能を持つ LED 制御コア 写真1 のボードには,1個のフルカラー LEDと4個 の青色LED(裏面)が搭載されています. フルカラー LEDは,R/G/Bの各色が点灯可能であ り,各色の明るさ(輝度)を組み合わせることで,さ まざまな色を表すことができます.そのため,フルカ ラー LED は,LED の ON(点灯)と OFF(消灯)の 2 つ の状態を制御するのではなく,輝度調整用の調光機能 が必要になります. ON/OFF 時間で明るさが決まる 調光機能は,ある一定の短い周期の中で,点灯と消 灯の時間を変えることによって明るさを制御する方法 を用いています.基本周期の中でのONとOFFの時 間をパルス幅として生成する方法であるため,この方 式をPWM(Pulse Width Modulation;パルス幅変調) といいます. 今回は基本周期を5ms,そしてLEDの点灯と消灯 の分解能を 256 と設定しました. これにより,LED の点灯時最小幅は, 5[ms]÷ 256[分解能]= 19.5[μs] になります. そして,この分解能の時間を作るために,Zynqの の内部バス・クロックである50MHzを977分周して 作成します(図1). レジスタに書き込むだけで明るさが変わる LED 制御コアのレジスタは,フルカラー LED の R/ G/B と 4 個の青色 LED 用におのおの 1 つずつ用意され ています.つまり,合計7個のPWM値設定用レジス タに対して,ソフトウェアがアクセスを行うことで調 光制御付き LED の駆動を行うことができます. 第 4 章で説明したプラットフォームでは,調光機能 ハードウェア機能であるFPGAを搭載したボード の最初の動作確認では,1個のスイッチ入力の状態を LED に出力する「LED 点灯(通称 L チカ)」を行うこと がよくあります. SDSoC対応のプラットフォームでは,多くの場合, C言語によるソフトウェア機能を検証し,検証後に ハードウェア機能によるアクセラレーションを目的と しているはずです.そのため,SDSoCを使った動作 検証では,C 言語によるデータ・ムーバやアルゴリズ ム実装が先に行われることになるかもしれません. ですが,ZynqはFPGA機能も持ち,多くのボード にはLEDが搭載されています.そして,SDSoCに対 応していれば,LEDをアクセスするための環境も用 意されているはずです. 本章では,第 4 章で作成したプラットフォームに組 み込まれているLEDドライバの詳細と,C言語によ 特集 やっぱりLチカから 5 ソフトウェアからのハードウェア制御の第一歩 C プログラムから使える LED 制御回路の設計 来栖川 智久 Tomohisa Kurusugawa ここでは,オリジナルのZynqボード向けに第4章で構築したプラットフォームを使って,ソフトウェアから ハードウェアを制御してみます.例題は,ハードウェア制御の入門では定番の LED 制御です.とはいえここで行 うのは単なる点滅ではありません.プラットフォームに組み込まれている IP コアの機能を活用して明るさを変化 させてみます. フルカラー LED フルカラー LED Zynq(Z-7010またはZ-7020) Zynq(Z-7010またはZ-7020) 写真 1 ターゲットの Zynq ボード

Upload: others

Post on 01-Apr-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 第5章 ソフトウェアからのハードウェア制御の第一歩 C ...第4章で説明したプラットフォームでは,調光機能 ハードウェア機能であるFPGAを搭載したボード

36 第5章 Cプログラムから使えるLED制御回路の設計

るソフトウェアからのハードウェアの制御方法を説明します.

1.調光機能を持つLED制御コア

 写真1のボードには,1個のフルカラー LEDと4個の青色LED(裏面)が搭載されています. フルカラー LEDは,R/G/Bの各色が点灯可能であり,各色の明るさ(輝度)を組み合わせることで,さまざまな色を表すことができます.そのため,フルカラー LEDは,LEDのON(点灯)とOFF(消灯)の2つの状態を制御するのではなく,輝度調整用の調光機能が必要になります.● ON/OFF時間で明るさが決まる 調光機能は,ある一定の短い周期の中で,点灯と消灯の時間を変えることによって明るさを制御する方法を用いています.基本周期の中でのONとOFFの時間をパルス幅として生成する方法であるため,この方式をPWM(Pulse Width Modulation;パルス幅変調)といいます. 今回は基本周期を5ms,そしてLEDの点灯と消灯の分解能を256と設定しました. これにより,LEDの点灯時最小幅は,5[ms]÷256[分解能]=19.5[μs]になります. そして,この分解能の時間を作るために,Zynqのの内部バス・クロックである50MHzを977分周して作成します(図1).● レジスタに書き込むだけで明るさが変わる LED制御コアのレジスタは,フルカラー LEDのR/G/Bと4個の青色LED用におのおの1つずつ用意されています.つまり,合計7個のPWM値設定用レジスタに対して,ソフトウェアがアクセスを行うことで調光制御付きLEDの駆動を行うことができます. 第4章で説明したプラットフォームでは,調光機能

 ハードウェア機能であるFPGAを搭載したボードの最初の動作確認では,1個のスイッチ入力の状態をLEDに出力する「LED点灯(通称Lチカ)」を行うことがよくあります. SDSoC対応のプラットフォームでは,多くの場合,C言語によるソフトウェア機能を検証し,検証後にハードウェア機能によるアクセラレーションを目的としているはずです.そのため,SDSoCを使った動作検証では,C言語によるデータ・ムーバやアルゴリズム実装が先に行われることになるかもしれません. ですが,ZynqはFPGA機能も持ち,多くのボードにはLEDが搭載されています.そして,SDSoCに対応していれば,LEDをアクセスするための環境も用意されているはずです. 本章では,第4章で作成したプラットフォームに組み込まれているLEDドライバの詳細と,C言語によ

特集 やっぱりLチカから

第5章 ソフトウェアからのハードウェア制御の第一歩

Cプログラムから使える LED制御回路の設計

来栖川 智久 Tomohisa Kurusugawa

 ここでは,オリジナルのZynqボード向けに第4章で構築したプラットフォームを使って,ソフトウェアからハードウェアを制御してみます.例題は,ハードウェア制御の入門では定番のLED制御です.とはいえここで行うのは単なる点滅ではありません.プラットフォームに組み込まれているIPコアの機能を活用して明るさを変化させてみます.

フルカラー LEDフルカラー LEDZynq(Z-7010またはZ-7020)Zynq(Z-7010またはZ-7020)

写真1 ターゲットのZynqボード