Prismjs

ラベル 備忘録 の投稿を表示しています。 すべての投稿を表示
ラベル 備忘録 の投稿を表示しています。 すべての投稿を表示

2023年9月20日水曜日

ZYNQのPS設定(IPのカスタマイズ設定)を他プロジェクトへ移植する方法

zynqのPS設定コピー.md

ZYNQのPS設定(IPのカスタマイズ設定)を他プロジェクトへ移植する方法

ZYBOなどのメジャーなZYNQ基板を使用する場合はZYNQのPS設定はボードファイルを使用することで自動で設定される。しかし自作やマイナーなボードファイルが用意されていないZYNQ基板を使用する場合はPS設定を自身で行わなければならない。
新しいプロジェクトを作成するたび毎回手動でPS設定を行っていたが設定忘れやミスが多発したので別VivadoプロジェクトのIPのカスタマイズ設定をエクスポート・インポートする方法を検証した。

2023年7月25日火曜日

ESP32ボードのMicroPython開発環境構築(Thonny使用)

micropython.md

ESP32ボードのMicroPython開発環境構築(Thonny使用)

秋月で購入したESP32-DevKitC-VE ESP32-WROVER-E開発ボードをMicroPythonで開発するための環境を整えた。
IDEは選択肢がいくつかあるが、とりあえず一番シンプルにできそうなThonnyを用いることにした。

2023年7月8日土曜日

Vivado関係のTips

vivado_memo.md

Vivado関係のTips

Xilinxの開発ツールVivado関係の自分用メモ

2023年3月5日日曜日

I2C通信って何?接続方法や通信の流れを解説!

 「I2C通信」と聞いても、なんだか難しくて敷居が高そう、と感じる方も多いのではないでしょうか。しかし、I2C通信は、小型デバイスやIoTデバイスなどで広く使われている、非常に便利な通信方式です。本記事では、I2C通信の基本的な接続方法や通信の流れについて解説していきます。

2023年1月17日火曜日

Kria KV260、KR260、K26 SOM情報まとめ

kv260_doc.md

Kria KV260、KR260、K26 SOM情報まとめ

2022年6月30日木曜日

PetaLinuxなしでZYBOでLinuxを構築・起動するまでの手順(Linux on zynq)

linux.md

PetaLinuxなしでZYBOでLinuxを構築・起動するまでの手順(Linux on zynq)

PetaLinuxをインストールしたり環境を整えるのが大変なので、PetaLinuxを使わずにLinux on zynqを実現した。
ブートローダーはu-boot-xlnx、カーネルはlinux-xlnxを使用して作成する。

2022年6月21日火曜日

WSL2の有効化とUbuntuのインストール

 

本手順の環境

Windows10 Pro 64bit 21H2



Windowsの更新を行って最新にしておく

WindowsのバージョンによってはWSL2に対応していないので更新しておくとよい。
本稿では説明しないがUSBメモリなどのマウント(wsl --mountコマンド)はWindows11かWindows Insider Programに参加していないと使用不可らしい。

2022年6月13日月曜日

ZYNQ Linuxでautofsを使う

ZYNQ Linux環境でNASを利用していたところ、マウントしたNASへ非アクセス時でもLANケーブルが抜ける・その他ネットワークトラブルが発生した後、そのトラブルが解消され復帰したのに、そのNAS内のファイルにアクセスしようとするとフリーズ?ハングアップ?してしまうような状態が発生した。
根本解決にはならないもののNASアクセス中以外はアンマウントするようにしておけばこのようなトラブルはグッと減るのではないかと考えautofsを利用することにした。

2022年5月24日火曜日

ZynqボードのイーサネットPHYをKSZ9031からKSZ9131へ置き換え

昨今の半導体不足とディスコン対策として、自作ロボット制御用Zynq7020ボードのイーサネットPHYとして使っているKSZ9031が後継のKSZ9131に置き換えられてしまった。
9031と9131はほぼピンコンパチ(14pinをNCにすればよいだけ)なため置き換えを検討している人も多いのではないかと思う。

2022年3月8日火曜日

ZYBO用Linux作成時のXilinx/linux-xlnxとu-boot-xlnxのzynq-zybo.dtsのクロックの罠

久々にZYBO用のLinuxイメージを作成しようとu-bootやカーネルの構築をしていた。
u-bootとカーネルが出来上がり、既に別基板で動作しているrootfsが構築されたSDカードに入れ、ZYBOのJ11(microBのUSB)をPCへつなげ、
TeraTermにてCOM接続でコンソールを表示させようとした。
なにか表示はされているものの文字化けしてしまっている。リセットスイッチを押して再起動をかけても同じように文字化けしてしまう。
文字が出るタイミングがブート時のそれっぽい感じなので起動自体はしていそうな感じだった。
TeraTermの設定を確認するも設定は問題なく、もちろんボーレートは115200bpsでデバイスツリーに記述されたボーレートと一致している。

2022年3月3日木曜日

Zynq Linuxの2つ目(サブ・増設)のEthernetのMACアドレスを設定する(1つ目と関連付けさせる)

現在使用しているZynq7020ボードにはなぜかLANポートが2つ(Zynq PSのEthernet0、1どっちも使っている。いわゆるNIC2枚挿し状態)あり、メインで使用するポート(eth0)はEEPROMに書き込まれた値をMACアドレスとして使用している。

2021年12月12日日曜日

Aliexpressで買ったPL2303hx搭載のusb-ttlシリアルコンバータを使用する

所用でUSB-UART変換機が必要だったのでAliexpressで80円で送料込みで入手。思ったより早く、3週間ほどで手元に届いた。
5pin(3.3V、TXD、RXD、GND、5V)のヘッダ、TypeAのUSBコネクタが装着済。RTS、CTSが出ていないのでハードウェアフロー制御が必要なデバイスは使えない。
親切にもショートしないように透明な収縮チューブに包まれている。
ICには型番も見当たらず、若干怪しい気配。


2021年12月2日木曜日

Xilinx関係メモ

 XilinxのAXI GPIOの割込み信号(ip2intc_irpt)について

これを利用するにはGIERとIP IERを有効にする必要がある。
割込み後、再度利用するにはIP ISRに1を書き込んで、リセットしてやる必要がある。

入力ポートの値が変化したとき(割込み有効の入力ポートのいずれかのビットがLOW→HIGH or HIGH→LOWと変化したとき)にip2intc_irptがHIGHになる。

2021年10月5日火曜日

Vivadoでinoutをsynthesisするときのコツ

所用でinoutのポートを持つHDL回路を作成してzyboに入れ込む必要があった。

2021年1月15日金曜日

Win32 Disk Imagerを使ってバックアップイメージをSDカードに焼く

 Win32 Disk Imagerを使ってバックアップイメージ(imgファイル)をSDカードに焼く方法を記す。
ラズパイのSDカードをバックアップしたイメージファイルやダウンロードしたイメージファイルをSDカードに焼きたいときに有用。
SDカードのデータをイメージファイルにする方法はこっち

2021年1月14日木曜日

Win32 Disk Imagerを使ってSDカードのバックアップイメージを作成する

Win32 Disk Imagerを使ってSDカードのバックアップイメージを作成する方法を記す。
ラズパイのSDカードなど、SDの中身をまるっと完全に複製・バックアップしたいときなどに有用。
イメージファイルをSDカードに書き込むやり方はこっち

2020年2月4日火曜日

WindowsのPCでXilinxのlinux_xlnxがgit cloneできなかった原因

VirtualBOXに入ってるUbuntuでやればよかったのだが、ちょっと理由があってWindowsでXilinxのlinux_xlnxを手に入れる必要があった。しかしなんでか、git cloneがうまくいかなかった。
原因はcloneするファイルの中にwindowsで禁止されたファイル名のファイルが含まれていたからだった。
GithubとかでCloneしたもののファイル名やディレクトリ名がAUXとかになっているとwindowsでは禁止用語なのでcheckoutできない。小文字大文字かかわらず、拡張子がついていようがいまいが、禁止された名前扱いされるらしい。AUXのほかにPRNやCONなどもだめらしい。以下の例だとaux.cという名前のファイルがあるせいでチェックアウトできないようだ。aaaa_aux.cとかファイル名に禁止名が含まれるだけなら大丈夫っぽい。

2019年10月12日土曜日

シリアル通信・UART・RS232C・RS422・RS485とは

シリアル通信とは

シリアル通信とは規定のタイミングで1ビットごとに1本の線にデータを乗せてやり取りをする通信のこと。SPI通信やI2C通信もシリアル通信の一種である(SCLK等はデータを乗せる線ではなくタイミングを制御するための線なため)。
しかし、単にシリアル通信と言うとたいていがUARTを用いた調歩同期式(非同期式)の通信のこと、もしくはRS232Cでの通信のことを指すことが多い。

2019年9月1日日曜日

SPI通信とは

SPI通信について、自分用メモとして調べたこと、経験したことをまとめる。

SPI通信の概要

SCLK、MOSI、MISO、CSの4線式(電源、GND除く)のデータ通信方法。
マスター側デバイス(マイコン、Arduino、ラズパイ等)とスレーブ側デバイス(温度センサーやA/Dコンバータ等)でデータのやり取りをする。
似たような通信方法としてはI2Cがある。設定や構成にもよるが、SPI通信はI2C通信に比べて高速で動作させることができる。
1つのマスターに対して複数のスレーブをつなげることができる。しかしスレーブの数だけマスターのCSピン数が増えてしまう。
送信用と受信用の線(MOSI・MISO)があるので、コマンドを送りながらデータを受け取ること(全二重通信)が可能(デバイスにより非対応な場合もある)。
I2C等と同様、基本的に同じ基板内のIC同士の通信や隣り合う基板間の通信など近距離通信向けなので長距離伝送には向かない(ノイズがのってしまうので)。ただしSPI通信の信号を差動信号で伝える等の対策でノイズ耐性を上げてやれば数十メートル級の長距離通信も可能(わざわざそこまでして長距離通信する人はほとんどいないようであるが)。
SPI通信は規格がかなりガバガバなので、デバイスにSPI対応と書いてあっても通信できないことがある。たいていの場合は問題ないが、まれにトリッキーな動きをするSPI対応デバイスもあるので気を付けよう。