現行の最新は 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