AT SAMの部屋(10) XiaoでもGo! GCLK.CLKCTRLレジスタを全ダンプ

results
Joseph Halfmoon

Go言語でMCU向けのプログラムが書けるTinyGoを使ってみています。前回は発振器まわりの制御レジスタを直接読んでみました。今回はクロックジェネレータ関係を調べようと思ったのですが1点障害あり、unsafeなモジュールなどにご登場いただいてしまいました。厳格なようでいてそんな操作もできるTinyGoはMCU向き?

“AT SAMの部屋(10) XiaoでもGo! GCLK.CLKCTRLレジスタを全ダンプ” の続きを読む

手習ひデジタル信号処理(38) M系列信号を使う白色雑音の発生その1

MSeq16_LFSR
Joseph Halfmoon

今回から白色雑音(ホワイトノイズ)の発生に入ります。ちょっと問題だったのは手元にゲートレベルの「回路図」から論理シミュレーションする環境が無かったという件。今時「回路図」書いて「論理」でもないものな~。しかたがないのでアナログシミュレータのLTspiceで論理シミュレーションしてしまいました。出来るのですがクセが強い。

“手習ひデジタル信号処理(38) M系列信号を使う白色雑音の発生その1” の続きを読む

AT SAMの部屋(9) XiaoでもGo!TinyGoでレジスタ直接アクセス、大丈夫か?

SYSCTRL_DUMP
Joseph Halfmoon

Go言語でMCU向けのオブジェクトを生成できるTinyGoは便利です。テキトーに書けば「動いてしまう」のでとってもお楽。しかし古色蒼然たる「ベアメタル派」としてはMCUがどんな設定で動いているのだか知らないと気持ちが悪いです。それに後で周辺回路を直接制御もしたいです。今回はMCUの根っこ、発振回りの設定を確認。

“AT SAMの部屋(9) XiaoでもGo!TinyGoでレジスタ直接アクセス、大丈夫か?” の続きを読む

AT SAMの部屋(8) XiaoでもGo!TinyGoでSPI、27LC512接続

xiao23LC512_EC
Joseph Halfmoon

第5回でTinyGoでI2Cを制御、今回はSPIを制御してみます。接続するのは米MicroChip社製の23LC512 SPI Serial SRAMです。メモリを相手にSPIの読み書きを確認する目論見。Xiao搭載のSAMD21G18は32KバイトRAM、もし一時保存領域が足らないような場合には利用するのもありか。

“AT SAMの部屋(8) XiaoでもGo!TinyGoでSPI、27LC512接続” の続きを読む

鳥なき里のマイコン屋(157) M5StackでもGo!TinyGoで6機種目

M5StackDUT
Joseph Halfmoon

Go言語プログラムをマイコン(MCU)へクロスコンパイルしてくれるTinyGoの動作確認M5Stackで6機種目となりました。Arm、RISC-Vとやってきましたが今回は初のESP32マイコン(Tensillica Xtensa LX6コア)です。コンパイルは問題なし、しかし書き込みに至ってちとトラブリましたです。

“鳥なき里のマイコン屋(157) M5StackでもGo!TinyGoで6機種目” の続きを読む

AT SAMの部屋(7) XiaoでもGo!TinyGoでポーリング、結果はChannelへ

pollingApin
Joseph Halfmoon

前回端子からの割り込みやってしまいました。普通は先にポーリングだったかなあ、ということで今回は端子のポーリングしてみます。ポーリングはGoroutineにお任せして、結果はchannelで受け取ると。ついでに無関係なLEDもチカチカさせたりして並行に処理している雰囲気をだすってもんかと。ありがち?

“AT SAMの部屋(7) XiaoでもGo!TinyGoでポーリング、結果はChannelへ” の続きを読む

AT SAMの部屋(6) XiaoでもGo! TinyGoでタクトスイッチからの割り込み受け

XiaoDUT_schematicA
Joseph Halfmoon

Go言語プログラムをマイコンで走らせることができるTinyGoの練習台にSeeduino Xiaoを使っております。Xiaoだろうと他のボードだろうと、ArmだろうとRISC-Vだろうと、似たようなソースで似たようなことができる気がします。ハードが異なる部分は要対応ですが。今回はスイッチからの割り込みを受けてみます。

“AT SAMの部屋(6) XiaoでもGo! TinyGoでタクトスイッチからの割り込み受け” の続きを読む

AT SAMの部屋(5) XiaoでもGo!秋月AQM1602をTinyGoで制御してみる

XiaoGoAQM1602
Joseph Halfmoon

Go言語で書いたプログラムをMCU上で走らせることができるTinyGoは、多くのマイコンボードをサポートしているだけでなく、定番の周辺デバイスも多数サポートしています。直接デバイスとしてのサポートが無くても、I2CやSPIといった標準インタフェースをサポートしてくれているので楽。今回は秋月製の定番LCDを接続。 “AT SAMの部屋(5) XiaoでもGo!秋月AQM1602をTinyGoで制御してみる” の続きを読む

モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE

KYINTR_EC
Joseph Halfmoon

前々回にZephyrのデバイスツリーが分かったかのようなことを書いてしまいましたが、あれは一時の気の迷いでしたね。全然分かっちゃおりませんでしたな。今回、スイッチから割り込みを受けようとしてまた迷宮に迷いこみました。そういう時は素直にサンプルソースなど真似してみるべしと。やってみました。 “モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE” の続きを読む

AT SAMの部屋(4) XiaoでもGo!Goroutineで並行処理、どこまでいけそう?

XiaoGoroutineEC
Joseph Halfmoon

Go言語で組み込みマイコンをプログラムできることを学んだのでGoしてます。マイブームってやつです。さて、Go言語には Goroutine という「簡易的な」並行処理の仕組みがあります。他の言語にもある Coroutine のGo版かと。時間シビアな目的には適さないような気もしますが、どのくらいな感じなの?

“AT SAMの部屋(4) XiaoでもGo!Goroutineで並行処理、どこまでいけそう?” の続きを読む

鳥なき里のマイコン屋(156) Wio TerminalでもGo! TinyGoで5機種目

wioTerminalTinyGo
Joseph Halfmoon

マイコン上でのGo言語(TinyGo)の動作確認、Wio Terminalにて5機種目であります。米MicroChip社のATSAMD51P20搭載、Arm Cortex-M4Fコアであります。既に確認済のSeeeduino XiaoのATSAMD21マイコンの上位機種です。例によって吉例Lチカ行ってみます。

“鳥なき里のマイコン屋(156) Wio TerminalでもGo! TinyGoで5機種目” の続きを読む

うさちゃんと一緒(7) TCPパケットをオウム返しでtelnet、Rabbit4000

telnet
Joseph Halfmoon

前回はUDPでしたが、今回はTCPのパケットをうさちゃん(Rabbit4000)にオウム返ししてもらいます。使うポートは23。telnetであります。Scapyも使ってみますが、TCPは3wayハンドシェイクしないといけないので本来の telnet コマンドにご登場願う、と。あれtelnetインストールしてなかった?

“うさちゃんと一緒(7) TCPパケットをオウム返しでtelnet、Rabbit4000” の続きを読む

鳥なき里のマイコン屋(155) RISC-VでもGo!TinyGoで4機種目 MaixBit

maixBitGOHELLO
Joseph Halfmoon

Go言語の動作確認、Androidスマホで始め、Linux機、Windows機でOK。TinyGoを導入し、ラズパイPicoSeeeduino XiaoBBC micro:bitと3機種でもOKです。今回はマイコン4機種目、64ビットRISC-V機、Kendryte K210搭載Sipeed MAiX Bit。

“鳥なき里のマイコン屋(155) RISC-VでもGo!TinyGoで4機種目 MaixBit” の続きを読む

モダンOSのお砂場(46) Zephyr、スレッド生成、ダブルLチカ STM32F401RE

ThreadA_VScode
Joseph Halfmoon

前回Zephyr OSのデバイスツリーの高い壁?を何とか乗り越えた?ので、今回はマルチスレッドに進みたいと思います。といっても前回作成のプログラムで2つ光らせていたLEDの片方を新設のスレッドの制御下に移すというだけのもの。なにはともあれマルチスレッド、と。

“モダンOSのお砂場(46) Zephyr、スレッド生成、ダブルLチカ STM32F401RE” の続きを読む