FrostyDesign
自分用にさまざまなものを作るページです
- 2025.01.22
[PR]
- 2020.06.29
Vitis 2019.2 で QSPI Flashに書き込み失敗する問題について
- 2020.05.12
ひでみのアイデア帳 Let's Vitis目次
- 2016.02.21
robo-one 28th予選1位 & zynq制御コントローラ
- 2015.07.08
DARPA Robotics Challenge 行ってきました
- 2014.09.23
robo-one 25th予選1位
Vitis 2019.2 で QSPI Flashに書き込み失敗する問題について
- 2020/06/29 (Mon)
- 未選択 |
- CM(0) |
- Edit |
- ▲Top
限られた人の問題だとは思いますが、困っている人はとても困る話なので
ググってたどり着けるよう記録を残しておきます。
そもそもの話はVivadoSDK2017.3からQSPI Flashでブートした場合QSPIの書き換えができないように仕様が変わったことです。これはQSPI Flashに書き込まれたプログラムを誤って上書きしないようにするためのようです。このためQSPI Flashを書き換える際はJTAGモードでブートしてねというのが公式仕様です。
ですが、それ以前に製造されたボードでは明示的なJTAGモードに切り替えられるようなディップスイッチやジャンパを設けていないものがあります。また、ジャンパやスイッチは積みたくないこともあると思います。私の使っているtrenz electronicのTE0720も同様です。
Xilinxはそういったユーザー向けに書き込み時専用のFSBLファイルを用意して、
これをメモリにロードしてJTAGモードでブートすることで、書き込み可能にする仕組みを用意しました。trenz electronicもこれに沿ったFSBLファイルを用意していて、ビルド済みのfsbl_flash.elfファイルを配布しています。
が、vitis2019.2では不具合?でこの手法を使っても書き込み失敗します。
最初設定ミスかとさんざん悩みましたが、trenz electoronicのfourmへの書き込みをみると
不具合の可能性が高いように思います。
https://forum.trenz-electronic.de/index.php/topic,1286.msg6139.html#msg6139
不具合なのでそのうちXilinxが直すと思いますがいつになるかわかりません。
で、代替手段として、古いバージョンのvivadoをインストールしたいところですが
ディスク容量が馬鹿にならないです。
vivado 2016.4 Lab Editionを入れると2.5GBぐらいでインストールできます。
これでQSPI Flash memoryを消去し、
消去した状態からであればVitis2019.2でfsbl_flash.elfを使って書き込みできます。
ひでみのアイデア帳 Let's Vitis目次
- 2020/05/12 (Tue)
- 未選択 |
- CM(0) |
- Edit |
- ▲Top
vivado2019.2になってSDKがVitisに統合され移行する必要に迫られ調べ始めたのですが、ひでみさんが参考になる記事をいろいろ書かれていて、自分用に目次とリンク作りました。
勉強になります。
Let's Vitis(1) - Vitisとは?
Let's Vitis(2) - Vitisの使い方
Let's Vitis(3) - Linuxディストリビューションの構築
Let's Vitis(4) - ZynqMPSoCのブート
Let's Vitis(5) - FSBLのビルド
Let's Vitis(6) - FSBLの別のビルド方法
Let's Vitis(7) - fsblをデバッグするための設定方法
Let's Vitis(8) - PMU Firmwareのビルド
Let's Vitis(9) - Linuxディストリビューションのビルド
Let's Vitis(10) - BOO.BINの生成
Let's Vitis(11) - 「SDカードの生成」
Let's Vitis(12) - Platformの作成
Let's Vitis(13) - SDKの構築
Let's Vitis(14) - Platformの作成(続き)
Let's Vitis(15) - VitisでHello World
Let's Vitis(16) - FPGAアクセラレーション環境を構築
Let's Vitis(17) - FPGAアクセラレーションするプロジェクト
Let's Vitis(18) - Ultra96V2で動かしてみよう
robo-one 28th予選1位 & zynq制御コントローラ
- 2016/02/21 (Sun)
- 未選択 |
- CM(0) |
- Edit |
- ▲Top
今回からzynqを使った新しい制御コントローラになりました。
&バッテリーをLiHVに変更しました。
下記は予選の動画です。
4.5m走で記録は3.79秒でした。
4.5mを23歩で完走しました。計算上の実走行時間は3.68秒で
若干フライング気味でスタートして、計測装置側の反応遅れがあるので3.79秒という記録になったようです。
以前より加速度が20%程度、最高速度が3%程度上がってます。
下記が新しいzynqの制御コントローラです。
zynqはxilinx製で、CPUとFPGAが同一チップに入ったものです。
ドイツのTrenz Electornic社のTE0720というzynqのモジュールを使っています。
ARM Cortex-A9 dual-core 667MHz
1GByteDRAM,32MB Flash memory,1GbE
自作のIFボードにて下記IFを実装しています。
ICS 1.25Mbps x 6ch
RS485(kondo B3Mシリーズサーボ対応)3Mbps x 5ch
TTLレベル UART x 3ch
SPI(PS2コントローラ用)x 1ch
電源は9~24V対応で
大きさは40mm x 71mmです。
今回はICS 1.25Mbps x 6chを使って1ms周期で制御しています。
このボードの性能を使い切るにはまだだいぶかかりそうですが、
制御周期が上がっただけで応答が良くなったのは体感できますね。
下記は新しいバッテリーです。
hobbykingのTurnigy Bolt 1000mAh 4S 15.2V 65~130C High Voltage Lipoly Pack (LiHV)
ハイボルテージと言っても仕様上1セルあたり0.1v高いだけで、
充電完了電圧でも0.15v高いだけなので、電圧3.5%アップです。
充電電圧が異なるため、充電器から買い直しになってしまうのですが、
バッテリーチェッカーがハイボルテージ対応のものがまだ無くて
非常に不便なので、まだお勧めはできません。
が、3.5%でもまあ違うのは体感できました。
あ、そういえば前回のrobo-one 27thも予選1位だったのにブログ書いてないや。
まあ、その前に完走したときと同じ仕様だったので良いかな。
DARPA Robotics Challenge 行ってきました
- 2015/07/08 (Wed)
- 未選択 |
- CM(0) |
- Edit |
- ▲Top
そんなわけで? ロボット持ってDRC行ってきました。
再生開始位置の埋め込みがうまくいかないのでリンクはこちら
robo-one 25th予選1位
- 2014/09/23 (Tue)
- 未選択 |
- CM(0) |
- Edit |
- ▲Top
今回は脚長(302mm)に対する足裏の長さ(88mm)を人間と同等にしてチャレンジし、
4.5mを完走しタイムは6.67秒でした。
下記の映像はrobo-one公式のyoutube映像からのFrostyの走行部分のみの引用です。
4.5m を40歩でゴールしています。3つ目のゴムの障害物を左足で踏んだあたりからバランス崩し始めてぎりぎりゴールして直後に倒れました。ログの取得期間の設定 を間違えていて34歩めまでしかログが取れてなくて障害物のせいかどうかはよくわからず。大会の1週間前にちょっと小さい足で試してみたら割と歩けたの で、robo-one本選で試してみたくなりそのまま出場しました。会場でテストした時は1m程度で転んでいて、直前にパラメータを変更したぐらいだった ので完走できてラッキーでした。
次 の映像は足裏を元の大きさに戻して予選終了後に主催者にお願いしてエキシビジョンとして走行したものです。4.5mを25歩で完走しタイムは4.43秒で した。こちらの方も最後の方はバランスが若干乱れているのですがそのままゴールになだれ込んで完走できました。レーザーポインターを積んでいますが、これはスタート位置で方向を正確に合わせるためのものです。機体の方向を正確にゴールの中心に合わせ、 IMUで計測し軌道修正しながら走行します。それでも右側にちょっとずつずれています。計測精度が低いわけではなく、速度が上がると方向制御の効きが 悪くなったり、姿勢が乱れた影響で方向がずれたりといった現象が起きていて起動修正しきれていないという感じです。