ZYNQ BOOK
ZYNQ BOOKというのを見つけた。
紙だと有料だけど、PDFは無料でダウンロードできる。
サンプルソースもある。ありがたい。
(名前とかメアドとかちょこっと入力は必要。)
1章読めばSDKで動かすところまでできる。Lチカっぽい。流し読みした。
2章は割り込み。ボタンとAXI Timerの割り込みを使ったLチカまでできる。すごい。
FPGAプログラミング大全とかFPGAマガジン見ながら大変で唸ってたのに。。
IOのアドレスとかは、xparameters.h で吸収してくれてるっぽい。 えらい。
AXI Timerはブロック見るとPWM出せるみたい(出し方はわからない)なので、
UARTで通信して、PSで計算して、PLでPWM出すくらいまでやりたい。
誰かやってないかな。できれば日本語でおk。
vivadoのcreate_project.tcl をちょこっと修正する。
create_project.tclでproj_nameをいちいち書くのが面倒なので修正しためも。
tclよくわからないので、変な書き方だったら誰か教えて。
# Project specific settings. These must be updated for each project. # set proj_name "TEMPLATE" set proj_name "[file tail [file normalize ..]]"
Arty Z7-20 の立ち上げめも
■ボードの設定
board filesをダウンロードする
https://github.com/Digilent/vivado-boards/tree/master/new/board_files/arty-z7-20/A.0
Vivadoの該当フォルダにコピーする
C:\Xilinx\Vivado\2017.3\data\boards\board_files
■Vivadoプロジェクトの作成
Arty-Z7-20-templateをダウンロード
https://github.com/Digilent/Arty-Z7-20-template
Arty-Z7-20-templateをコピーして、好きな名前に変更する
projフォルダの、create_project.tcl をテキストエディタで開く
set proj_name "TEMPLATE"のTEMPLATEを、好きなプロジェクト名に変更して保存する
Vivadoを起動する
Tcl Console で、create_project.tcl のフォルダに移動する
例:cd C:/Users/xxxx/Xilinx/prj/Arty-Z7-20-template/proj
pwd でフォルダ移動できているか確認する
source ./create_project.tclを実行する
■PLの作成
Block Design を作成するIP INTEGRATOR -> Create Block Design -> OK
Diagramでブロックを配置する「+」 -> zynq -> ZYNQ7 Processing System
「+」 -> gpio -> AXI GPIO
自動配線するRun Connection Automation -> All Automation ->OK
ボード設定するRun Block Automation
きれいに並べるくるっとした矢印 (Regenerate Layout)
Wrapperを作るSource -> design_1を右クリック -> Create HDL wrapper -> OK
論理合成する再生マーク (Run Synthesis) -> OK
右上のくるくるが終わるまで待つ(数分かかる)
Run Implementation -> OK -> OK
右上のくるくるが終わるまで待つ(数分かかる)
Generate Bitstream -> OK -> OK
右上のくるくるが終わるまで待つ(数分かかる)
FPGAに書き込むArty Z7をPCのUSBに接続する
Open Hardware Manager -> Open Target -> Auto Connect
Program device -> Program
SDKの準備File -> Export -> Export Hardware -> Include bitstream -> OK
SDKの起動File -> Launch SDK -> OK
■PSの作成
projectの作成File -> New -> Application Project
Project name に好きな名前を入力 -> NEXT
Hello world -> Finish
ソースの作成hello -> helloworld.c を開く
Tera Termの準備シリアル 115200bps
実行Run -> Launch on Hardware (System Debugger) -> OK
Tera Termに "Hello World" が出ればOK
ついにオシロを買った!(RIGOL DS1054Z)
買ってしまいました。据え置きのオシロ。
ネットで安くて良さそうなの探して見つけたこれ。
RIGOL DS1054Zです。中国メーカー。
4chで帯域は50MHzと普段使いには十分な性能。
輸入かと思いきや、モノタロウで扱ってました。
お値段税別49,900円。月一の計測機器10%オフの日に買うとお得ですよ。
https://www.monotaro.com/p/5574/2733/
寒い中運ばれてきて結露してたので、部屋で温めてあげる。
合わせてAmazonベーシックの台がとてもいい感じ。
こちらを参考にしました。
https://rabbit-note.com/2017/12/23/rigol-ds1054z-stand/
電源入れたらプローブを補正。早速使ってみた。
前にちゃんと見れなかった、arduinoで作ったタイマー1の相補PWMが確認できた。すごい。
ちなみに前に取ったのはこんな感じ。
すごいなまってる。帯域は200kHzだし。
そして1chなので相補がわからない。。
ちょくちょく波形見たいときにストレスなく見られるのがとてもいい感じ。
埃まみれにならないよう、カバーつけたいな。
esp32の時刻合わせをntpでやってみる。
macでesp32のoledひからせるまで。
これ届いた。さっそく開発環境をととのえるよー。
まずはGithubからesp32の設定とってきて、USBドライバをインストールする。
たぶんうちのはESP 32 Dev Moduleじゃなくて、Heltec_WIFI_LoRa_32でいいはず。
スケッチの書き込みにはボタン押してモード変更してやる。
-> [RST]押しながら[PRG]押して、[RST]を離せばおK。
コンパイラでBLEが無効とかでるのは特に問題なさそうだけど。
ここからダウンロードして、esp32フォルダに置けば出なくなる。
で、びんぼうでいいのと同じようにOLED動かそうとするも動かない。。
スケッチ書き込み前はちゃんと動いてたので、ハード的には問題ないはず。
あとシリアルはなんか吐き出してるので、i2cまわりがあやしそう。
Aliでみてみた。SDAが4,SCLが15らしい。
なので、SSD1306 display(0x3c,4,15);でうごくはず。 動かない。。
結局、ここでまんまのボードとサンプルがあったので試す。これは動いた。
#include "SSD1306.h"でやるときは、setup()で、
ってやると動いた。16pinがみそらしい。
macでelectronいれるまでのめも。
mac(osx el capitan 10.11.6 )にelectronいれるまでのめも。
node.jsを最初にpkgでいれたけどうまくいかずに結構はまった。
nodenvでnode.jsをいれる。今回は安定の8.9.4で。
electronをいれる。sudoつけるとうまくいかない。でもこれはいらないかも。
npm install electron -g
gitでサンプルひろってきて動かしてみる。動く。ヽ(=´▽`=)ノ