Raspberry Pi 5 がバグッてる?

この前、投稿したRP1チップ用のGPIOライブラリが以外に高速に動作するようなのでソフトウェア実装のI2CやSPIもいけるかなと実験してみたところ先頭のパルス幅制御がなぜかうまくいかない。

Raspberry Pi 5のRP1-Chipを使い倒す(GPIO)

単純なプログラムで試してみても先頭だけ想定通りのパルス幅にならない。ループではなくusleep/nanosleepを使っても同じ結果となる。

CPUキャッシュ制御による影響かとも思ったが数マイクロ秒もの遅延が発生するとは思えないし...なんとかバリアとかいうアセンブラ命令も試してみたけど変化なし。時間間隔が短いときに先頭のパルスが潰れてしまうのはなぜだろう?

誰かわかる人いたら教えてください。<(_ _)>

【ループ1000回。先頭のパルスを拡大】

【ループ1000回。先頭のパルス幅がヘン】

【ループ2000回。まだ少しヘン】

【ループ5000回。もうちょい】

【ループ10000回。まあまあ】

【テストプログラム】

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.