SlideShare a Scribd company logo
1 of 27
Download to read offline
ULTRA96のPMOD拡張ボード
+デモ
MARSEE101
1MARSEE101
自己紹介
• 「FPGAの部屋」のブログを書いているmarsee101こと小野です
• 筑波大学のシニア職員、61歳
• FPGAの部屋のブログは2005年の5月から書いていて4700記事程度
• http://marsee101.blog.fc2.com/
2MARSEE101
ULTRA96のPMOD拡張ボード
• Ultra96-V1を購入した
• 3万円程度、Zynq UltraScale+
MPSoC搭載にしては安い
• だがしかし、拡張できない
• CMOSカメラやセンサ、PWM制
御のモーターを付けたい
3MARSEE101
ULTRA96用PMOD拡張ボードを作ろうと思い立った
• PMODを付けられると過去の資産が使える
• PMOD資産
• OV5642(CMOSカメラ)
• Zybot(自動走行ミニカー)のモーター制御用PWM
• Zybot(自動走行ミニカー)の超音波センサ
• その他、Digilent社のPMODシリーズ全般
4MARSEE101
ULTRA96のどのコネクタを使う?
• 高速コネクタと低速コネクタ
• 端の方だし差動信号も必要な
いし、低速コネクタに決定した
低速コネクタ
高速コネクタ
5MARSEE101
レベル変換IC
• Ultra96の低速コネクタの信号の出力バンクの電圧は1.8V
• PMODの電圧は3.3V
• 信号レベルを変換する必要がある
• 当初、秋月電子の8ビット双方向ロジックレベル変換モジュールを使おうと思った
• ツィーターでつぶやいたら遅延が大きすぎるのでは?という指摘
• TIのLSF0108-Q1 にした(MOUSERで売っている)
• https://www.mouser.jp/ProductDetail/Texas-
Instruments/LSF0108QPWRQ1?qs=%2Fha2pyFaduj40xzY0wIIslfiL%252bt2vTPrqJGU6z
qxqq4nN97qLcRCZA%3D%3D
6MARSEE101
回路図の作成
• 回路図を作成した
• 電源は低速コネクタのVSYS_INの
+12Vから取得した
• 後のUltra96-V2が出てきたときに禍
根を残すことになった
• +12V - 3.3V電源は秋月電子の
DC-DCコンバータ・モジュール
7MARSEE101
基板レイアウト
• パーツのフットプリントを作成
• 基板レイアウトを行った
• 配線はFreeRoutorで自動配線
して、手を加えた
8MARSEE101
基板と部品が来て基
板に部品を実装
• 赤い基板にしました
• 1.6tだと厚すぎるので、1.2t
• Ultra96V1からPMODに出力
する信号の電圧が1.6Vだった
• プルアップ抵抗を忘れた。。。
• プルアップ抵抗を取り付けれ
ば正常な電圧が出た。。。
9MARSEE101
ULTRA96用PMOD拡張ボードVER1でカメラ入力
• ZYBOでカメラ入力ができていたので、それを
Ultra96用に変換した
• MT9D111の800x600ピクセルのカメラ画像
• まだDisplayPortに出力できていなかったので、カ
メラ画像を画像ファイルにすることができた
• 約1か月かかった長かった。。。
10MARSEE101
ULTRA96用PMOD拡
張ボードの改版
• Ultra96用PMOD拡張ボードを
改版することにした
• +3.3V側に1kΩのプルアップ
抵抗を付けた
11MARSEE101
ULTRA96用PMOD拡
張ボードVER.2
• Ultra96用PMOD拡張ボード
Ver.2出来上がり
• 各ポートのプルアップ抵抗を
変更できるように個別に抵抗
を付けた
12MARSEE101
カメラの変更
• MT9D111はディスコンになってしまった。。。
• 秋月電子で売っているOV5642を使うことにした
• 安い
• インターフェース2014年11月号のエンヤさんの解説記事
• OV5642のレジスタ設定値で苦労した(323個のレジスタを設定)
• 撮像素子が180度回っているようなので、レジスタ設定でFlipしようとし
たができなかったので、ソフトウェアでFlipした
• 800x600ピクセルでカメラ画像をBMPファイルに変換できた
13MARSEE101
ULTRA96のDISPLAYPORTを使いたい
• ひでみさんの”FPGAの内容が薄い本”を参考にDisplayPortを使うテストをした
• DisplayPortにテストパターンを表示できた
• DisplayPortはディプレイによって表示できるサイズに違いがあった
• DisplayPortのAUXポートでEDID(Extended Display Identification Data)をやり取りしているらしい
• つまり、それぞれのディプレイの解像度であった形式で映像信号を入れる必要がある
• 当初はIPに同期信号を入力する機能が無いので、同期がずれた
• その後、DisplayPortの同期信号に同期する回路を作成した
14MARSEE101
カメラ画像をDISPLAYPORTに出力する1
• カメラの解像度は800x600ピクセル
• DisplayPort出力はディプレイによっ
て異なる
• SVGA解像度のカメラ画像を黒枠付
けて異なる解像度に表示
• vfilp_dma_write2はストライド転送付き
画像反転DMA
MARSEE101 15
カメラ画像をDISPLAYPORTに
出力する2
• XGA解像度とHD解像度のディスプレイに出
力できた
MARSEE101 16
MIPI ADAPTER MEZZANINE カード
• Ultra96の低速コネクタ、高速コネ
クタ両方に接続して、MIPIインター
フェースのステレオカメラを実装可
能な拡張ボード
• Fixstars Tech Blog さんに「Ultra96
Linux で MIPI カメラから画像を取得
する」があって、ノウハウを取得し
やすい
MARSEE101 17
MIPI ADAPTER MEZZANINEボードのPMOD拡張ボー
ド
• 左のPMODはI2C+SPI、右のPMOD
からFPGAのPLピンが出ている
• 秋月電子のロングピンソケットを
使って、J15, J13の設定ピンも使え
るようにした
• Ultra96をZybotに乗せるために
PMODのPWM出力が欲しかった
MARSEE101 18
ULTRA96V2用PMOD拡張ボード (VER.3)
• Ultra96V1用PMOD拡張ボードはUltra96V2では動作
しない
• 低速コネクタ用のPMOD 拡張ボードの電源に使
用しているVSYS_IN に逆向きにショットキーバリ
アダイオード (D18) が挿入された
• Ultra96V2用にPMOD拡張ボードを作り直した
• シリーズ・パス・レギュレータで+5Vから+3.3Vを
生成
• ついでにPowerスイッチも付けた
MARSEE101 19
ULTRA96V2用のデモをAVNET&ADTさんに頼まれ
た
• Ultra96V2でカメラ画像を
DisplayPortに出力した
• デモ用にガボールフィルタとラプラ
シアンフィルタをUltra96V2に移植
• 2つのフィルタはVivado HLSで実装
した
MARSEE101 20
ガボールフィルタ
• 白線検出フィルタ
• 左白線検出用カーネル、右白線検出用カーネル
MARSEE101 21
ガボールフィルタ
MARSEE101 22
元画像
左白線検出用
右白線検出用
ラプラシアンフィルタ
• エッジ検出用フィルタの1種
• ガボールフィルタよりもゴミが多い
• カーネル 3x3
• カーネル5x5
MARSEE101 23
ラプラシアンフィルタ処理前後の画像
MARSEE101 24
ラプラシアンフィルタ処理前
ラプラシアンフィルタ処理後
PMOD 6 個付き拡張ボード
• PMODが2個だとCMOSカメラを付けたら終了
• ZybotにUltra96V2を搭載する場合には少なくともPWM用ににPMOD1つ欲
しい
• Ultra96V2の高速コネクタにもPMOD用にしてもっとPMODが欲しい
• そこでPMOD 6 個付き拡張ボード
MARSEE101 25
PMOD 6 個付き拡張ボード写真
MARSEE101 26
PMOD 6 個付き拡張ボード
• Vitisに夢中になっていて、まだ未テスト
• 低速コネクタ用のヘッダが短くて(4 mm)電源プラグに干渉
• ヘッダのピンの長さを 7 mm に変更した
• 電源プラグに干渉しなくなった
• 後ろのUSBコネクタにもぎりぎり干渉しない
MARSEE101 27

More Related Content

More from marsee101

Robot car gabor_filter
Robot car gabor_filterRobot car gabor_filter
Robot car gabor_filtermarsee101
 
Camera input from_ultra_96's_slow_expansion_connector
Camera input from_ultra_96's_slow_expansion_connectorCamera input from_ultra_96's_slow_expansion_connector
Camera input from_ultra_96's_slow_expansion_connectormarsee101
 
Fpga robot car
Fpga robot carFpga robot car
Fpga robot carmarsee101
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料marsee101
 
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)marsee101
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化marsee101
 
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出marsee101
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応marsee101
 
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」marsee101
 
FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介marsee101
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームmarsee101
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能についてmarsee101
 
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)marsee101
 
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)marsee101
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)marsee101
 
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)marsee101
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)marsee101
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識marsee101
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)marsee101
 

More from marsee101 (19)

Robot car gabor_filter
Robot car gabor_filterRobot car gabor_filter
Robot car gabor_filter
 
Camera input from_ultra_96's_slow_expansion_connector
Camera input from_ultra_96's_slow_expansion_connectorCamera input from_ultra_96's_slow_expansion_connector
Camera input from_ultra_96's_slow_expansion_connector
 
Fpga robot car
Fpga robot carFpga robot car
Fpga robot car
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料
 
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
 
FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能について
 
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)
 
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
 
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
 

Recently uploaded

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Recently uploaded (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

Ultra96 pmod expansion board