PIC三昧(14) MSSP(SPI)で23LC512にRWしてみる、PIC16F18855

PIC16F18855_23LC512_schematic
Joseph Halfmoon

前回はI2C(マスタ)の接続の練習にMicroChip社製24LC64 シリアルE2PROMを使用しました。今回はSPI(マスタ)の接続練習に、やはりMicroChip社製の23LC512 シリアルSRAMを使用してみます。PIC16Fと同じMicroChip社製品なのだから繋がらん筈がないっと。

“PIC三昧(14) MSSP(SPI)で23LC512にRWしてみる、PIC16F18855” の続きを読む

モダンOSのお砂場(72) UNO R4、RA4M1でFreeRTOS、Notify

Tasks_Take_Give
Joseph Halfmoon

前々回、TaskのSuspendとResumeをやっています。これは停める相手の都合などお構いなしに停止するという乱暴な?ものでした。今回は「待っているのでよろしく」「起きてください」とお互いに尊重しあいながら停止、再開できるNotifyを練習してみます。お互いにGive and Takeちゅうことですかい。

“モダンOSのお砂場(72) UNO R4、RA4M1でFreeRTOS、Notify” の続きを読む

レトロな(3) AltairZ80シミュレータ上のCP/MでDDT

DDT001
Joseph Halfmoon

GDB(GNUのデバッガ)は今も活躍してますがそれは縁の下っす。プログラマの表に見える「煌びやかな」IDE環境の奥底でひっそりと動いておりますな。GDBレベルでデバッグする、というのは最近やらんな。今回使用してみるのはCP/M-80のデバッガDDTです。インテル8080用のデバッガっす。シンボリックですらないです。

“レトロな(3) AltairZ80シミュレータ上のCP/MでDDT” の続きを読む

GoにいればGoに従え(34) DevicesでHCSR04センサを動かす、TinyGo

HCSR04_DUT
Joseph Halfmoon

このところ御本家Go言語の標準ライブラリを試用してましたが、今回はTinyGoユニークなものに復帰。TinyGoのライブラリ「Devices」は各種の周辺デバイスを接続するときに役立つライブラリです。以前に使ったときは簡単接続、便利便利という感じでした。でもね。ちょっとメンドイことがないわけでもないです。まずは電源ね。

“GoにいればGoに従え(34) DevicesでHCSR04センサを動かす、TinyGo” の続きを読む

MicroPython的午睡(122) Thonny IDE、シリアルプロッタを使ってみる

plotterDemo
Joseph Halfmoon

MicroPythonプログラムをマイコンに書き込むための開発環境としてThonny IDEを使わせていただいております。リトアニアエストニア製ね。しかし何時ものことですがウカツ。Thonny IDEにもシリアルプロッタ機能が組み込まれていたのね。Arduino IDEに搭載の機能と似た機能です。知ってりゃ使っていたよ、もう。

“MicroPython的午睡(122) Thonny IDE、シリアルプロッタを使ってみる” の続きを読む

PIC三昧(13) MSSP(I2C)で24LC64に読み書きしてみる、PIC16F18855

24LC64wPIC16F18855_u
Joseph Halfmoon

PIC16Fのペリフェラル回路を経めぐっております。今回はMSSPです。SPIもしくはI2Cとして使用できる同期式シリアルインタフェースのモジュールです。今回は同じマイクロチップ社製の24LC64をI2C接続。MCCが何でも簡単にしてくれるのでこれもチョロイとか思ったらそうでもないっす。I2Cもいろいろあるからね。
“PIC三昧(13) MSSP(I2C)で24LC64に読み書きしてみる、PIC16F18855” の続きを読む

モダンOSのお砂場(71) UNO R4、RA4M1でFreeRTOS、ISRからQUEUE

InterruptHandler
Joseph Halfmoon

前回はタスクの一時停止と再開でしたが、その横で割り込みも使ってました。しかし割り込みとタスクの関係性は薄かったデス。そこで今回は、タスク側とも「分かり合える」スケジューラのタイムスタンプをQueueを使って送信することで割り込み発生タイミングをタスク側に伝えてみたいと思います。

“モダンOSのお砂場(71) UNO R4、RA4M1でFreeRTOS、ISRからQUEUE” の続きを読む

GoにいればGoに従え(33) byte型とbytes.Buffer型、TinyGo

Byte_Bytes_EC
Joseph Halfmoon

前回はcomplex128型などを使ってしまいました。マイコンでも使えるということで心強いけど滅多に使わんのではないかと。一方、普段から一番お世話になりそうなのが byte型であります。そして「byte」に似たものに「bytes」という標準パッケージがあり、そこにはbytes.Buffer型が存在。どんなもんだか。

“GoにいればGoに従え(33) byte型とbytes.Buffer型、TinyGo” の続きを読む

PIC三昧(12) FSM(信号測定タイマ)を使ってみる、PIC16F18855

SMT_PinMGR
Joseph Halfmoon

ほとんどのマイコンではタイマの横にコンペア/キャプチャ/PWMといった入出力チャネルがぶら下がっていてそれらを駆使することで入力イベントの時間間隔とか、パルス幅、周期といったことを測定できます。勿論PICマイコンも同様なことを出来るのですが、専用のFSMモジュールが用意されてます。専用モジュールなので設定もお楽。

“PIC三昧(12) FSM(信号測定タイマ)を使ってみる、PIC16F18855” の続きを読む

MicroPython的午睡(121) ESP32版、ULPで電圧を測ってみる

ESP32ULP_ADC_DUT
Joseph Halfmoon

ここ数回、ESP32(Xtansaコア機)が搭載する「3つめの」プロセッサ・コア、ULPをMicroPythonから試用中です。前回はデジタル信号の入力を試行。今回はアナログ信号の監視に使えないか実験してみます。なかなかいい感じでないかい。メインが寝ている裏でひっそりと監視するのにULPはピッタリだな。やっぱり。 “MicroPython的午睡(121) ESP32版、ULPで電圧を測ってみる” の続きを読む

モダンOSのお砂場(70) UNO R4、ルネサスRA4M1でFreeRTOS、サスペンド

ArduinoUNO_R4_DUT
Joseph Halfmoon

タスクの一時停止(suspend)と再開(resume)を実験しようとしたのですが、勝手な割り込み端子への思い込みに足をすくわれました。Arduino UNO R4は32ビット機になったわけだし、その辺の端子はみな割り込みに使えるんじゃね?大間違い!Arduino UNOの伝統にのっとり、2番、3番だけなのね。律儀。
“モダンOSのお砂場(70) UNO R4、ルネサスRA4M1でFreeRTOS、サスペンド” の続きを読む

GoにいればGoに従え(32) math/cmplxをTinyGoで使う、ムムム早合点?

complexResults
Joseph Halfmoon

前回のキャリーだの、ボローだのの世界はこの老人には慣れ親しんだ世界にて居心地が良かったです。しかし今回使ってみるのは math/cmplxパッケージです。浮動小数点数ですらちょっと敷居が高いのに、そいつらの上に君臨する複素数はできれば避けたいデス。そんなこと考えていたら挙動不審。ムムムこの挙動はどゆこと?早合点よ。

“GoにいればGoに従え(32) math/cmplxをTinyGoで使う、ムムム早合点?” の続きを読む

PIC三昧(11) DSM(データ信号変調器)を使ってみる、PIC16F18855

DSM_pins
Joseph Halfmoon

別件でFM変調をやったので、今回はPIC16F搭載のペリフェラルDSMをつかってFSK変調をやってみます。DSMはパルス信号対象ですが、FSK、PSK、OOKで変調することができるモジュールです。変調波をキャリアに同期する機能などのオプションもあり優れものじゃないかと。変調してくれとクリクリするだけで変調OK、お楽。

“PIC三昧(11) DSM(データ信号変調器)を使ってみる、PIC16F18855” の続きを読む

MicroPython的午睡(120) ESP32版、ULPでパルス幅を測ってみる

ESP32ULP_INs
Joseph Halfmoon

ESP32(Xtansaコア機)が搭載する「3つめの」プロセッサ・コアULPをMicroPythonから制御するための環境をESP32 DevKitC機にインストール済です。これは使ってみるしかないです。ということでまずはハイパルスのパルス幅を測定してみることにいたしました。まあね、できるっちゃできるけれども。
“MicroPython的午睡(120) ESP32版、ULPでパルス幅を測ってみる” の続きを読む