SSブログ

K3NG キーヤー ARM 系 Arduino を試してみた [Arduino]

 K3NG キーヤーのスケッチで ARM 系 Arduino を試してみました。

K3NG キーヤーのシールド基板も届いたので、それと組み合わせる ARM 系 Arduino を試してみました。
前回は、Aarduino Due、 Seeeduino Cortex-M0+、Seeeduino XIAO の3つを試しましたが、今回はシールドを直接 載せられる Aarduino Due、 Seeeduino Cortex-M0+ でスケッチのコンパイルに問題が無いかを見ていきます。

〔Seeed Studio Seeeduino Cortex-M0+ Board〕
i2c scanner
警告:ライブラリWireはアーキテクチャsamdに対応したものであり、アーキテクチャSeeeduino_SAMD_zeroで動作するこのボードとは互換性がないかもしれません。
最大262144バイトのフラッシュメモリのうち、スケッチが12008バイト(4%)を使っています。
----
コンパイルは通りますが、標準ライブラリの Wire で警告が出ます。

K3NG Keyer
Arduino:1.8.12 (Windows 10), ボード:"Seeeduino Cortex M0+"
k3ng_keyer:1239:23: fatal error: avr/wdt.h: No such file or directory
#include <avr/wdt.h>
^
compilation terminated.
exit status 1
avr/wdt.h: No such file or directory
----
コンパイル・エラーで落ちます。

〔Arduino Due〕
i2c scanner
最大524288バイトのフラッシュメモリのうち、スケッチが24944バイト(4%)を使っています。
Atmel SMART device 0x285e0a60 found
Erase flash
done in 0.031 seconds
Write 27212 bytes to flash (107 pages)
[ ] 0% (0/107 pages)
[== ] 9% (10/107 pages)
[===== ] 18% (20/107 pages)
[======== ] 28% (30/107 pages)
[=========== ] 37% (40/107 pages)
[============== ] 46% (50/107 pages)
[================ ] 56% (60/107 pages)
[=================== ] 65% (70/107 pages)
[====================== ] 74% (80/107 pages)
[========================= ] 84% (90/107 pages)
[============================ ] 93% (100/107 pages)
[==============================] 100% (107/107 pages)
done in 5.241 seconds
Verify 27212 bytes of flash
[ ] 0% (0/107 pages)
[== ] 9% (10/107 pages)
[===== ] 18% (20/107 pages)
[======== ] 28% (30/107 pages)
[=========== ] 37% (40/107 pages)
[============== ] 46% (50/107 pages)
[================ ] 56% (60/107 pages)
[=================== ] 65% (70/107 pages)
[====================== ] 74% (80/107 pages)
[========================= ] 84% (90/107 pages)
[============================ ] 93% (100/107 pages)
[==============================] 100% (107/107 pages)
Verify successful
done in 4.833 seconds
Set boot flash true
CPU reset.
----
コンパイルは通りましたので、ダウンロードしてみます。
問題なく、動きました。
1-i2c_scanner.jpg

K3NG Keyer
Arduino:1.8.12 (Windows 10), ボード:"Arduino Due (Programming Port)"
D:\From WWW\Arduino\K3NG\k3ng_cw_keyer-master\k3ng_keyer\k3ng_keyer.ino: In function 'void service_async_eeprom_write()':
k3ng_keyer:5917:7: error: 'EEPROM' was not declared in this scope
EEPROM.update(ee++, *p++);
^
exit status 1
'EEPROM' was not declared in this scope
これは Due には EEPROM が無いので、K3NG キーヤーのサイトで対応方法を調べるしかないですね。
まぁ、どちらも素直には行きません。どちらかというと Due の方がハードルが低そうではあります。

K3NG キーヤーの Github Wiki に書かれていました。
Arduino Due Hardware

To compile the code for the Arduino Due, uncomment HARDWARE_ARDUINO_DUE in keyer_hardware.h.

The Due does not have EEPROM memory like the other Arduino boards. So either you must run the code without EEPROM functionality, or install an external EEPROM. Support for the E24C1024 EEPROM is available; compile in FEATURE_EEPROM_E24C1024. If you do not install external EEPROM hardware, you cannot compile in FEATURE_MEMORIES and all settings will be volatile (they will not survive a reboot). You will also notice that the keyer does the beep-boop-beep-boop-beep-boop at power up to indicate that it is initializing with “factory” settings. This is because there is no EEPROM to pull settings from and the code thinks it is being booted up for the first time.

やはり I2C 接続の EEPROM を載せないと駄目なようです。
同じ基板で AVR マイコンと ARM の両方を使えるようにしようと思いましたが、基板を分けないと駄目ですね。Due では EEPROM が必要ですが、I2C のレベル変換が無くなります。ボードの価格も Mega と Due ではさほど変わりません。中華互換ボードならかなり安くなります。
なので、K3NG キーヤーのシールドは2種類作ってみようかと思います。

しかし、HARDWARE_ARDUINO_DUE を探してみたら
k3ng_keyer.ino(550): It is no longer necessary to specify HARDWARE_ARDUINO_DUE in keyer_hardware.h. It is automatically detected now.
とあります。
この辺り、今の K3NG キーヤーは複雑になりすぎているので、もうちょっと調べないといけないですね。
それに STM32F103C もサポートしているようなので、こちらも確認してみます。
う~ん、複雑になりすぎだ。

次に Due とメモリ関係の設定を見直して、コンパイルが通るように試してみようと思います。
明日には Mega の方のシールドで使うジャンパーピンが届くので、まず、Mega の I2C が通信できるかどうかのところから調べてみるつもりです。
シールド基板が分かれるのと、スケッチもそれに合わせて分けないといけないので混乱しそう。
nice!(3)  コメント(0) 

nice! 3

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。