鳥なき里のマイコン屋(147) ラズパイPico、C/C++SDK、マルチコアで割り込み2

MULT_INTR_EC
Joseph Halfmoon

前回、マルチコアの両方にGPIO割り込みを入れてみましたが、割り込み受付後のタイマ処理が上手く行きませんでした。暫定対策したものの、実はそれもダメダメでした。今回はタイマ処理が上手く行かなかった理由を調査。対策打って「安定して動いている」ように「今のところ」見えているところまでやってみました。継続試験中。

“鳥なき里のマイコン屋(147) ラズパイPico、C/C++SDK、マルチコアで割り込み2” の続きを読む

鳥なき里のマイコン屋(146) ラズパイPico、C/C++SDK、マルチコアで割り込み1

MULTI_GPIO_INTR_DUT
Joseph Halfmoon

折角2コア積んでいるラズパイPicoなのに、大分前にちょっと2コアで動かしただけでした。これでは宝の持ち腐れです。無理にでも2コア使う方針といたしました。ま、動かしてみないと身に染みないこともあるっと。今回は2コアで外部端子からの割り込みを受けてみました。早速のお間抜けあり。

“鳥なき里のマイコン屋(146) ラズパイPico、C/C++SDK、マルチコアで割り込み1” の続きを読む

鳥なき里のマイコン屋(145) ラズパイPico、C/C++SDKでDMAを使ってみる

PicoDMA_DUT_EC
Joseph Halfmoon

今回はラズパイPicoのDMAC(Direct Memory Access Controller)を使ってみるために、前回の母艦PCのArduino環境から母艦ラズパイ4のC/C++SDK環境に戻ってまいりました。とりあえず最低線ということでソフトウエアトリガのメモリ間転送をやってみたのですが、ラズパイPicoのSDK楽です(別シリーズでやったDMAC実験に比べ。) “鳥なき里のマイコン屋(145) ラズパイPico、C/C++SDKでDMAを使ってみる” の続きを読む

鳥なき里のマイコン屋(144) ラズパイPico、Arduino環境で外付けRTC接続

RPi_RTC4543_DUT
Joseph Halfmoon

前回、PlatformIOがいつの間にかラズパイPicoのRP2040に対応(Arduinoプラットフォームのみ)していたので吉例のLチカでその動作を確認しました。今回は、外付けのRTCからカレンダ時刻を読み込んで「使えるじゃん」と納得する、と。普通にArduinoのつもりでプログラムできる感じなのでSDKに比べると大分敷居が下がった感じもします。個人の好みだけれども。

“鳥なき里のマイコン屋(144) ラズパイPico、Arduino環境で外付けRTC接続” の続きを読む

鳥なき里のマイコン屋(143) ラズパイPico、PlatformIOでArduino

Wiz000
Joseph Halfmoon

半年くらい前にはラズパイPicoに対応していなかった筈のPlatformIOが「Arduinoプラットフォーム」でPico対応をしていました。自分では何もしていないのですが、PC上でラズパイPicoのオブジェクトを生成できるようになってました。ボーっとして生きていても「自動で」世間の変化に追従できる?ありがたし。 “鳥なき里のマイコン屋(143) ラズパイPico、PlatformIOでArduino” の続きを読む

鳥なき里のマイコン屋(142) ラズパイPico、SDKでUart入出力

uartTest_EC
Joseph Halfmoon

以前、ラズパイPico上のMicroPythonでUart通信を行ったことはあったのですが、C/C++SDKではstdoutの出力先としての利用ばかりでした。今回C/C++SDKでも双方向の通信をやりたかったのでちょっと実験してみました。そして、長らく誤解してきたことにも気づきました。

“鳥なき里のマイコン屋(142) ラズパイPico、SDKでUart入出力” の続きを読む

鳥なき里のマイコン屋(141) ラズパイPico、ハードウエア割り算器の利用

DividerEC
Joseph Halfmoon

前回は浮動小数点数の計算でしたが、今回は整数の割り算です。組み込みMCUのプログラマには「割り算は避ける」習性が刷り込まれています(個人の感想です。)せいぜい2のべき乗の割り算に帰着させて右シフトで逃げます。しかしラズパイPicoでは割り算、あまり苦になりません。ハードウエアの割り算器を搭載。

“鳥なき里のマイコン屋(141) ラズパイPico、ハードウエア割り算器の利用” の続きを読む

鳥なき里のマイコン屋(140) ラズパイPico、float計算でROMを呼んでるよね

fmul_fdiv_ec
Joseph Halfmoon

今回は1点確認するだけであります。ラズパイPico上で float型 を使ったら RP2040の内の「fast floating point」を呼んでくれているのだよね、と。ラズパイPicoで積極的にfloatを使いたいとは思わないのですが、昨日 Cortex-M4F機(STM32F446RE)の上で float していたので、Picoの上の浮動小数点はどうなの?と気になったためです。

“鳥なき里のマイコン屋(140) ラズパイPico、float計算でROMを呼んでるよね” の続きを読む

鳥なき里のマイコン屋(139) ラズパイPico、内蔵ADCから外付けDACへ「スルー」

RPicoAD2DA_EC
Joseph Halfmoon

前回は、ラズパイPicoにI2C接続の外付けのDAC、MCP4725を接続してノコギリ波など出力させてみました。今回はラズパイPicoの内蔵ADCで得たアナログ値をそのまま外付けDACに「転送」してアナログ波形を「再現」してみます。ぶっちゃけSTM32で昨日やった件のまねっこ。タイミングの取り方が異なるし、外付けDACは転送ネックだし、どうなることか。

“鳥なき里のマイコン屋(139) ラズパイPico、内蔵ADCから外付けDACへ「スルー」” の続きを読む

鳥なき里のマイコン屋(138) ラズパイPico、外付けDAC、MCP4725接続

Joseph Halfmoon

別シリーズにてSTM32マイコンのAD、DAを動かしているので、ラズパイPicoでもやってみるか、と思い立ちました。しかし、ラズパイPicoにはADの搭載はあるものの、DAはありません(PWMはあり。)また別件にてラズパイPico用の1ビットDACボードも頂いたのですが、今回は外付け12bit DAを接続してみます。

“鳥なき里のマイコン屋(138) ラズパイPico、外付けDAC、MCP4725接続” の続きを読む

鳥なき里のマイコン屋(137) ラズパイPico、C/C++SDKでPIO、サイド出力

LOGANADUT
Joseph Halfmoon

前回は、ラズパイPicoのユニークなPIO(Programable IO)でパラレル入出力をやってみました。ただし、出力タイミングはCPUからの書き込み次第でした。今回は、CPUタイミングを排除し、ハード側の一定のタイミングで出力するとともに、パラレル出力には必須のストローブ信号を付加してみたいと思います。

“鳥なき里のマイコン屋(137) ラズパイPico、C/C++SDKでPIO、サイド出力” の続きを読む

鳥なき里のマイコン屋(136) ラズパイPico、C/C++SDKでPIO、今度は入力

PIO002DUT_Schematic
Joseph Halfmoon

ラズパイPicoのPIO(Programable IO)、前回は任意のデータの8ビットパラレル出力を行ってみました。今回は、前回の8ビット出力に加えて、4ビットのパラレル入力を追加してみたいと思います。実験用に外付け回路を追加。でもまだまだPIOアセンブラは数行、極めてシンプルであります。

“鳥なき里のマイコン屋(136) ラズパイPico、C/C++SDKでPIO、今度は入力” の続きを読む

鳥なき里のマイコン屋(135) ラズパイPico、C/C++SDKでPIO、多ビット出力

PIO 8bit output
Joseph Halfmoon

ラズパイPicoのPIOですが、MicroPythonから使う方が簡単かな~などと思う今日この頃です。でもこちらのシリーズでは気を取り押してC/C++SDKでやります。さて、前回は単純bit-bangingでしたが、今回は任意の多ビットの値をPIO使って出力してみたいと思います。こんな進捗では何時までかかることやら。まあ急ぐ理由もなし。

“鳥なき里のマイコン屋(135) ラズパイPico、C/C++SDKでPIO、多ビット出力” の続きを読む

鳥なき里のマイコン屋(134) ラズパイPico、C/C++SDKでプログラマブルIO

PIO000_DUT
Joseph Halfmoon

他のマイコンでPIOと言えばパラレルIOでしょうが、ラズパイPico(のRP2040マイコン)では違います。プログラマブルIO。CPUとは独立に動作するIO専用のステートマシン。「MicroPython的午睡」シリーズで何度か使ってみましたが、C/C++から使うときはお作法が違う、ということで今回はPIO使ったオブジェクトのビルドのサンプル、bit-bangingを。

“鳥なき里のマイコン屋(134) ラズパイPico、C/C++SDKでプログラマブルIO” の続きを読む