Zynq エンベデッド ソフトウェア開発

Hello World

シリーズタイトル概要
Hello World(1) VitisでHelloWorldプログラムを実装すハードウェア構成Zynq CPU上でHelloWorldアプリケーションを動かす土台になるハードウェア構成を作成しました。初学者向けです。
(2) VitisでHelloWorldアプリケーションを作成Hello Worldアプリケーションを作成し、実際に出力を確認しました。エンベデッド ソフトウェア アプリケーションを開発する一連の流れを解説しています。

LED点滅

シリーズタイトル概要
LED点滅(1) VitisでLED点滅プログラムを実装するハードウェア構成についてZynq CPU上でLEDを点滅させるアプリケーションを動かす土台になるハードウェア構成を作成しました。
(2) VitisでLED点滅アプリケーションを作成”LED点滅”プログラムの動作原理を解説し、実際にLEDの点滅まで確認しました。各IPのレジスタに値を書き込む方法を解説しています。
(3) Vitisのインスタンスの概念とGPIOのAPI関数の使用方法LED点滅アプリケーションの作成を通じ、アプリケーションプロジェクトで使用されるインスタンスの概念とGPIOを制御するドライバAPI関数の使用方法を解説しました。
(4) タイマー割り込みを行うためのVitis APIの使用方法Zynqのプロセッサ上で割り込みをかける方法について解説します。AXI Timerから割り込みがかかるLED点滅のアプリケーションを例にAPIの使用方法についてまとめました。

HDMI静止画出力

シリーズタイトル概要
HDMI静止画出力(1) ZyboのHDMI出力デモをVitisから実行-ハードウェア構成Zybo経由で外部ディスプレイに画像を出力するアプリケーションを作成します。DiligentからダウンロードしたHDMI出力デモサンプルをもとに、Zynq内部のハードウェア構成を設計しました。
(2) ZyboのHDMI出力デモをVitisから実行-プログラムの作成デモサンプルからZynqのARM CPUで動作するHDMI出力プログラムを読み込み、Zybo上で動作を確認しました。
(3) Zynqから静止画をHDMI出力するVitisアプリケーションデモサンプルをもとにアプリケーションの動作原理と各ドライバAPIの使用方法を解説しています。ドライバ関数によりIPコアの設定を行った後、読み出すフレームバッファに直接静止画を書き込んでいます。

外部映像送受信

シリーズタイトル概要
外部映像送受信編(1) ZyboのHDMI入出力デモをVitisから実行-ハードウェア構成Zynqが外部からのHDMI信号を受信しDDRメモリに格納した後、DDRメモリを読み出しVGA信号を送信するDigilent社のデモサンプルをもとにZynq内部のハードウェア構成を作成しています。
(2) Zynq上で外部映像を送受信するアプリケーション(送信系の作成)VGA信号をディスプレイへ送信する送信系のプログラムについて紹介・解説しました。
(3) FPGAがHDMI信号を受信するときの割り込みAPIの設定方法HDMI信号をZynqが受信する際の割り込みの設定方法について紹介・解説しました。
(4) HDMI信号をFPGAでVGA出力する割り込みAPIの解説HDMI信号を受信する際のAPIの使用方法を解説しました。

マイコン(Master)とZynq(Slave)をI2C通信する方法 

シリーズタイトル概要
I2C通信(1)デバイス間の接続構成I2C(Inter-Integrated Circuit)規格でマイコンとZynqをデータを通信する方法を解説。実験に用いるマイコンはWio TerminalのATSAMD51P19。マイコンの方をマスターとして、スレーブであるZynqからデータを要求する。
I2C通信方式について解説した後、マイコンとZynqの接続の構成について解説
(2)Zynqのハードウェア構成Zynq内部のブロックデザインの構成について解説
(3)Zynqのソフトウェア構成ZynqのPS部で動作させるアプリケーションを解説
(4)マイコンのソフトウェア構成(arduino)Wio Terminalのマイコンで動作させるArduinoのスケッチを紹介した後、実際にI2C通信した結果