• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2022年07月28日

[memo] RP2040 その2 (Arduino IDE)

[memo] RP2040 その2 (Arduino IDE) 最近、お気に入りなRP2040系マイコン。
中でも、RP2040-zeroがマイブームですね(w

特徴
・Dual Core 32bit ARM Cortex M0+ (~133MHz)
・RAM:264KB FLASH:2MB
・スルーホールピンのGPIO数が豊富(20本→ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,26,27,28,29)
・ハードウェアUART 2チャンネル
・ハードウェアSPI 2チャンネル
・ハードウェアI2C 2チャンネル
・PWM 16ポート(RP2040自体は30ポート全部利用可能)
・ADC 4ポート
・Arduino IDEでも開発できるので、過去の資産が有効利用できる (microPythonが標準的な開発環境?)
・Dual Coreなプログラムも簡単に実装できる
・小さい 18x23.5mm
・安い 800円くらい
など

rp2040のデーターシート
https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf


以下、前回のメモからの追記です。

■書き込み失敗の件
ボード定義 2.3.3ではかなり安定している。まだ、たまに失敗する。

■GPIO定義の件
基本は、
packages/rp2040/hardware/rp2040/2.3.3/variants/*/pins_arduino.h
で定義されているので、都度確認ですね。

■RP2040のUART/SPI/I2C
それぞれ2チャンネル利用できる。
利用できるGPIOは決まっている。
デフォルトのGPIOは、先のpins_arduino.hで定義されている。
それ以外で利用する場合は、GPIOを個別設定する必要がある。

変更方法
□UART0(Serial1)
Serial1.setTX(pin)
Serial1.setRX(pin)

□UART1(Serial2)
Serial2.setTX(pin)
Serial2.setRX(pin)

□SPI0(SPI)
SPI.setTX(pin) // MOSI
SPI.setRX(pin) // MISO
SPI.setSCK(pin)

□SPI1
SPI1.setTX(pin) // MOSI
SPI1.setRX(pin) // MISO
SPI1.setSCK(pin)

□I2C0(Wire)
Wire.setSDA(pin)
Wire.setSCL(pin)

□I2C1(Wire1)
Wire1.setSDA(pin)
Wire1.setSCL(pin)


使用できるGPIO
□UART0(Serial1)
RX: 1,13,17,29
TX: 0,12,16,28

□UART1(Serial2)
RX: 5,9,21,25
TX: 4,8,20,24

□SPI0 (SPI)
MISO(RX):0,4,16,20
MOSI(TX):3,7,19,23
SCK:2,6,18,22

□SPI1
MISO(RX):8,12,24,28
MOSI(TX):11,15,27
SCK:10,14,26

□I2C0(Wire)
SDA: 0,12,16,20,24,28
SCL: 1,5,9,13,17,21,25,29

□I2C1(Wire1)
SDA: 2,6,10,14,18,22
SCL: 3,7,11,15,19,23,27


■Dual Core (Arduino IDE+earlephilhower版の場合)
https://github.com/earlephilhower/arduino-pico

Core0用コードは、

void setup()
void loop()

でコーディング
Core1用コードは、

void setup1()
void loop1()

でコーディング
以上 ^^


■Software Reset
前回のメモでのコードでは動作しなかった。
別の方法をみつけたのでメモ。
(ハードウェアwatchdog timer機構を利用する方法)

extern "C" {
#include
};

void software_reset(){
watchdog_reboot(0,0,1);
watchdog_enable(1,false);
}


■Software Serial
RP2040では、PIOが8チャンネルあるので、これを利用している。

定義

SerialPIO NAME ( TXpin, RXpin, FIFOサイズ(未指定の場合32バイト) );
TXのみやRXのみの使い方もできる。
その場合は、使わない方の TXpin RXpinのところを、

SerialPIO::NOPIN

にする。

SofSoftwareSerial定義とRX,TXが逆なので注意。

標準のSoftwareSerialは、SerialPIOをwrapしている。


■EEPROM
EEPROMは実装されていないが、プラグラム用フラッシュ領域の最後の4KBくらいをEEPROMエミュレーション用で用意されている。
標準のEEPROMライブラリで利用できる。

■FileSystem
LittleFSやSD(FAT)など、Filesystem利用可能

■RTC
内蔵RTCあるけど、バックアップバッテリー機構がない。
起動時都度時刻設定すれば時計機能が利用できる。

■タイマー割り込み
https://www.arduino.cc/reference/en/libraries/rpi_pico_timerinterrupt/
ブログ一覧 | マイコンなど | パソコン/インターネット
Posted at 2022/07/28 10:50:18

イイね!0件



タグ

今、あなたにおすすめ

関連記事

これからの必需品!防犯グッズ
pcm********さん

YZF R7 新車整備+α(3.ワ ...
灸太郎くんさん

耕運機君をなおしてみた。
働くGT車さん

【おくるま学ぼう】 その61 パー ...
黒艶丸さん

この記事へのコメント

コメントはありません。

プロフィール

「@BGFK さん、ですよね〜😊居住確認入りますしね〜。引っ越し渦中は、マイナンバーと免許の住所変更を時間差でやって、どちらの自治体でも捨てれるようにしてました。😆」
何シテル?   05/08 18:45
NaOです。よろしくお願いします。 72年式です https://nao.soarer.org/ 活動拠点 富士宮→沼津→富士宮→沼津→富士→富...
みんカラ新規会員登録

ユーザー内検索

<< 2024/6 >>

      1
2345678
9101112131415
16171819202122
23242526272829
30      

リンク・クリップ

ヘッドライト(ロービーム)バルブ交換 
カテゴリ:その他(カテゴリ未設定)
2024/02/06 18:56:35
イナバガレーディア GRN-3662J 
カテゴリ:その他(カテゴリ未設定)
2023/12/23 21:46:57
プラグ交換 
カテゴリ:その他(カテゴリ未設定)
2023/12/12 11:26:43

愛車一覧

トヨタ ソアラ 10号 (トヨタ ソアラ)
IoTソアラ 10台目のソアラ グレード  3.0GT SUPER LIMITED ...
トヨタ ソアラ 13号 (トヨタ ソアラ)
13号です。 1JZ-GTE、5M/T(R154)換装済 @富士宮
ダイハツ ミラ ダイハツ ミラ
所有期間 1993/03/01 ~ 1996/07/18 ボディーカラー 赤
ダイハツ ミラ ダイハツ ミラ
期間: 2014/03/09 ~ 2014/04/27 型式: UA-L250S グレー ...

過去のブログ

2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2019年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation