ISP1507 ピッチ変換基板に書き込む方法のエントリを2つ書きました。
それはそれとして、開発言語も含めて今までどおりArduino IDEを使って開発したい、と考える人もいることでしょう。Adafruitが提供しているArduino Core for Adafruit Bluefruit nRF52 Boardsというファームウェアを書き込むことによりnRF52832チップ搭載基板でArduino IDEで開発することができるようになるので、ISP1507ピッチ変換基板でも試してみました。
書き込むのはfeather_nrf52832のファームウェア、feather_nrf52832_bootloader-0.3.2_s132_6.1.1.hexです(2020/07/03時点)。書き込むには冒頭に書いたように何らかの書き込み治具が必要です。
Arduino IDEの準備
基板を接続する前にArduino IDEにボード設定を読み込ませましょう。詳細はAdafruitのArduino Support Setupを見てもらうのがいいのですが、ざっくり説明すると
- 環境設定の「追加のボードマネージャのURL」に
http://adafruit.github.io/arduino-board-index/package_adafruit_index.json を追加 (2022/04/11修正)https://www.adafruit.com/package_adafruit_index.json - Arduino IDE再起動
- [ツール]-[ボード]-[ボードマネージャ...]でAdafruit nRF52 by Adafruitをインストール
でできます。そして今回使うのはISP1507なので、ボードにAdafruit Feather nRF52832を選びます。
基板の接続
ファームウェアの書き込みとArduino IDEの準備ができたら、USBシリアル変換基板とISP1507ピッチ変換基板を接続します。最低限つなぐ必要があるのはRXとTXとGNDの3本で、電源供給するならVcc、リセットを自動でやるならDTRをつなぎます(後述します)。USBシリアル変換基板の電源電圧は3.3Vにしてください。
ISP1507ピッチ変換基板 | USBシリアル変換基板 |
GND | GND |
P0_06 | RX |
P0_08 | TX |
Vdd | VCC(3.3V) |
nR(外部に部品が必要) | DTR |
P0_06、P0_08、nRの接続にはスルーホール用テストワイヤ TTW-200が便利です、と書こうと思ったのですが、このワイヤは両端ともスルーホール用のバネ端子なので今回の使い方ではちょっと使いにくいのでした。TTW-203ならよかったんですけどね(仕入部門に依頼しておきました)。
DTRと自動リセットについて
Arduino IDEでスケッチを書き込む時、Arduino Unoなどでは自動でリセットがかかります。これはDTR端子を使って実現しているのですが、単純にDTRをマイコンのリセット端子につなげばよいというわけではないのです。回路はこんなです。RESETはnR端子のことです。
コンデンサと抵抗、ダイオードで構成されています。コンデンサでと抵抗だけでも動くような気がしますが、それだとDTRがHighになったときにコンデンサにたまった電気が3.3Vに上乗せされてマイコンの最大絶対定格を超えてしまうので、逃がすためにダイオードが必要です(向きに注意してください)。
コンデンサと抵抗は家にあったやつを使ったんですが、ダイオードはなかったので買ってきました。1N4148というガラスパッケージのよく見るやつです。できればショットキーバリアダイオードのような順方向電圧(Vf)が低い物の方がいいんですが、ちょうどいいのがなかったのでこれにしました。
書き込むたびに手動でリセットすればいいのでもしダイオードなどがなくてもどうにかなります(だんだんめんどうにはなってきますが)。その場合はnR端子をGNDに接続した状態で「マイコンボードに書き込む」をスタートして、書き込みを始める直前にGNDから外せば書き込めます。失敗したらもう一度「マイコンボードに書き込む」をやり直して今度はタイミングよくリセットを解除しましょう。
LEDを光らせてみる
ISP1507ピッチ変換基板とAdafruitのFeather nRF52832では回路が違うので、サンプルスケッチがそのままでは使えません。定番のBlinkyでもLED_BUILTINの定義が違うので変更が必要です。LED_BUILTINを11に置き換えてください。
void setup() {
pinMode(11, OUTPUT);
}
void loop() {
digitalToggle(11);
delay(1000);
}
HIDデバイスになってみる
次にサンプルスケッチの中にあるhid_keyboardを試してみます。Adafruit Feather nRF52832用のスケッチ例の中にある[Adafruit Bluefruit nRF52 Libraries]-[Peripheral]-[hid_keyboard]です。
これを書き込んで、Bluetoothがあるパソコンでデバイスを探してみるとBluefruit52というデバイスが見つけられました。ISP1507ピッチ変換基板にはタクトスイッチなど付けていないのでこれで終わりにしましたが、このスケッチを改造していけば自分専用のBluetoothキーボードなども作ることができるでしょう。
ファームウェア入りも発売予定です
ファームウェア書き込み済みのISP1507ピッチ変換基板も販売できるよう現在準備中です。