RaspberrypiとDE0を接続し7セグLEDをスマホで操作
RaspberrypiとFPGAボード(DE0)をI2Cで接続し、Raspberrypiに構築したWebアプリを スマホで操作する事でボードの7セグLEDを操作する
目的は、FPGAボード(DE0)をスマホで操作する事。
処理の流れ
- QuartusIIのインストール
- verilogでI2Cインタフェースを設計しFPGAにインプリメント
- PythonでRaspberrypiのI2C制御
- FPGA動作検証にSignalTapを使用しタイミングを検証
- スマフォからRaspberrypiのWebアプリを介してFPGAボードを制御
ポイントはRaspberrypiのGPIO制御をWebアプリで行う事でスマフォからFPGAを操作する事
・QuartusIIのインストール
AlteraのサイトからQuartusをダウンロード
DE0はCycloneIIIが搭載されているので、13.1を選択して無償のwebエディションを
ダウンロード
ModelsimとCycloneIIIのデバイスライブラリも一緒にダウンロード
Windows PC にインストールして、DE0に付属しているDVDから、サンプルプロジェクトを
インプリメントして動作を確認。→とりあえず、OK
・I2Cインタフェースの設計
DE0に付属しているソースからデモ用のソースにI2Cマクロをレジスタマクロを追加して
インプリメント
(6年ぶりのverilogで思い出すだけでも大変)
なんとか7segLEDの制御だけできるようにした。
I2Cマクロはこちら
レジスタマクロはこちら
・python でGPIO I2Cを制御
i2c-tools と python-smbus はデフォルトでインストール済み
smbus を使ったクラスを作成
ソースはこちら
・python プログラム
Flask を使用してWebアプリを作成、ブラウザからI2Cポートの制御できるように
ソースはこちら
www-dataにi2c制御権限を付与しないとブラウザからI2Cの制御ができない。
(コマンド sudo adduser www-data i2c)
・SignalTapで動作確認
・スマフォから7segLEDを操作
とりあえず成功 ソースはこちら
・QuartusIIのインストール
AlteraのサイトからQuartusをダウンロード
DE0はCycloneIIIが搭載されているので、13.1を選択して無償のwebエディションを
ダウンロード
ModelsimとCycloneIIIのデバイスライブラリも一緒にダウンロード
Windows PC にインストールして、DE0に付属しているDVDから、サンプルプロジェクトを
インプリメントして動作を確認。→とりあえず、OK
・I2Cインタフェースの設計
DE0に付属しているソースからデモ用のソースにI2Cマクロをレジスタマクロを追加して
インプリメント
(6年ぶりのverilogで思い出すだけでも大変)
なんとか7segLEDの制御だけできるようにした。
I2Cマクロはこちら
レジスタマクロはこちら
・python でGPIO I2Cを制御
i2c-tools と python-smbus はデフォルトでインストール済み
smbus を使ったクラスを作成
ソースはこちら
・python プログラム
Flask を使用してWebアプリを作成、ブラウザからI2Cポートの制御できるように
ソースはこちら
www-dataにi2c制御権限を付与しないとブラウザからI2Cの制御ができない。
(コマンド sudo adduser www-data i2c)
・SignalTapで動作確認
・スマフォから7segLEDを操作
とりあえず成功 ソースはこちら