Category tech.

現行の最新は V2 Plus (V2.3) または V2 Plus4 だけど、 これらが出る直前に V2.2 を買ってしまったのでちょっと残念な感じ。とはいえ V2.2 と V2.3 はハードウェア的には非常に差分が少ないようなので、改造してみた。Upgrade your NanoVNA v2 to v2 Plus を参考にしてやれば良い。

変更を加える箇所

  • R311 10 -> 68
  • C318 220nF -> 10nF
  • C321 10μ -> 100nF
  • L302 22μH (変更なし参考)




ファームウェアのバックアップ

bootloader も含めてファームウェアのすべてをバックアップしておく。

接続

よく売ってるやすい ST-Link V2 というやつを使う 参考

メインボード上にスルーホールがありシルクも印刷されているので普通に繋ぐだけ。

スルホール用テストワイヤを使うと楽

backup and restore 手順

まず一応書きこまれている内容をバックアップしておく

openocd を使う場合

読みこみ (ダウンロード)

openocd -f interface/stlink.cfg -f target/stm32f3x.cfg -c init -c "reset init"  -c "flash read_bank 0 backup.bin 0x0000000 0x40000" -c exit

書きこみ (アップロード)

openocd -f interface/stlink.cfg -f target/stm32f3x.cfg  -c "program backup.bin 0x08000000 verify reset exit"
st-flash を使う場合 (書けない)
$ st-flash read backup.bin 0x08000000 0x8040000
st-flash 1.4.0
2020-10-27T01:00:56 INFO common.c: Loading device parameters....
2020-10-27T01:00:56 INFO common.c: Device connected is: F1 High-density device, id 0x17010414
2020-10-27T01:00:56 INFO common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0x40000 bytes (256 KiB) in pages of 2048 bytes

ただ、これを st-flash で書こうとすると失敗してしまう……

$ st-flash write backup.bin 0x08000000
st-flash 1.4.0
2020-10-27T01:02:39 INFO common.c: Loading device parameters....
2020-10-27T01:02:39 INFO common.c: Device connected is: F1 High-density device, id 0x17010414
2020-10-27T01:02:39 INFO common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0x40000 bytes (256 KiB) in pages of 2048 bytes
2020-10-27T01:02:39 INFO common.c: Ignoring 864 bytes of 0xff at end of file
2020-10-27T01:02:39 INFO common.c: Attempting to write 261280 (0x3fca0) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x0803f800 erased
2020-10-27T01:02:41 INFO common.c: Finished erasing 128 pages of 2048 (0x800) bytes
2020-10-27T01:02:41 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2020-10-27T01:02:41 ERROR flash_loader.c: unknown coreid, not sure what flash loader to use, aborting! coreid: 2ba01477, chipid: 414
2020-10-27T01:02:41 WARN flash_loader.c: Failed to write flash loader to sram!
2020-10-27T01:02:41 ERROR common.c: stlink_flash_loader_init() == -1
stlink_fwrite_flash() == -1
exit 255

bootloader

bootloader は Serial Number によって何かが異なるらしく、実際間違った bootloader を書きこむと BBGAIN の値がおかしくなったり、起動しなくなったりする。とにかく現状をバックアップしておけば元には戻せるので、バックアップは大事。

レポジトリにある bootloader は V2_2 用で、最新版は事情があって今のところ公開されていないらしい。現時点では Discord で開発者にコンタクトをとってビルドしてもらう必要がある。が、そのうち SN を指定してビルド・ダウンロードできるページを作るらしいので急ぎじゃないのなら待ってればいいかも。

どういう変更点なのか

該当箇所の回路図

  • 前段の AD8342 はミキサ
  • GS8722C は2回路入りオペアンプ (11MHz)
  • MXD8641 は SP4T スイッチ。オペアンプの増幅率を決めている

なのでここの一連の回路はミキサ出力を ADC 前にフィルタ・増幅する回路になる。


R311, C318, L302 はローパスフィルタで、カットオフは変更前は約72kHz、変更後は34kHz。noise improvement はここのカットオフ変更によるものだと思う。

C321 は交流増幅のための直流カットキャパシタだと思うが、小さくすることで反応性を上げてスキャン速度を上げられるようにしたのだと思う。違うかも

メモ: ADCのサンプルレート

S-A-A-2 の場合 ADC は MCU のものを直接使っている。

  • V2.2 では 300kHz board_v2_1/board.cpp (v2_1 と v2_2 は同じ)
    • ADC のクロックは 6MHz
  • V2.3 では 1500kHz board_v2_plus/board.cpp
    • ADC のクロックは 30MHz
  1. トップ
  2. tech
  3. S-A-A-2 (NanoVNA V2) V2.2 から V2.3 への変更

久しぶりに動かしてみたシリーズ。STM32F103C8 + ChibiOS の環境でやってみた。

基本的に ST7735 を使った液晶 などとプロトコルそのものは一緒なので、コードは流用できる。が、ハマってしまった。

  • SCL: SCK
  • SDA: MOSI
  • RES: RESET
  • DC: Data/Command
  • BLK: Backlight control (float で良い)

ハマったところ: CS (チップセレクト) がない

写真を見たらわかるが CS 信号がピンヘッダに出ていない。どうやら GND に接続されているらしい。この状態だと CPOL (極性) を 1、CPHA を 1 (いわゆる SPIMODE=3) にしないとダメなようだった。

そして CS の制御ができないと何が困るか、というとクロック信号を不要に発生させるとグリッチが発生してしまう。

今回はSPIデバイスのオン/オフを都度都度行っていた関係でどうしてもクロックに余計な信号が入っていたので、それをなくしたら動いた。

参考文献

  1. トップ
  2. tech
  3. 1.3inch ST7789 240x240 SPI TFT 液晶

ZeroPlus LAP-C と sigrok pulseview の組合せについては書いたことがあるけど、ビルドする必要があったり、UI 的にいまいち使い勝手がよくなかった。

けどそれは2014年の話で、それから6年が経ち、改めて PulseView を使ってみたら大変進化していて、普通に使えた。各プラットフォームでビルド済みのものがダウンロードできる し苦労する点はない。

試しに STM32 の SWD を解析してみたがうまく動いている。トリガのかけかたも簡単 (A1 の右側についてるアイコンがトリガのマーク)

プロトコルアナライザも豊富にみえる。設定も簡単で何も悩むところはなかった。

  1. トップ
  2. tech
  3. ロジックアナライザ sigrok PulseView + ZeroPlus LAP-C