秋月電子でSTM32C011J4M7という8ピンマイコンを売ってます.@140円.
これでも32bitCPUでTIMER, UART, ADC, DMAなどが一通り入ってます.
たった8ピンなので、VDD,VSS,DEBUGに喰われてしまうと4ピンしか余りません.こんなCPUで何ができるのか?sin波発生器でも作ろうかと思うけど、これにはDACは内蔵してないんですよね.
そこで、1bit DACなら1ピンあれば出力できますから、やってみようかと思います.
シグマデルタADCについては当ブログで解説を書いたことがあります. →こちら
このブロック図で1bit streamが出てくるはずです.Vinは計算で発生させたsin波とします.
青: Vin sin波の数値をplotしたもの
赤: out 1bit stream=1bit DAC (PWMになっている)
以上で、programによってsin波の1bit streamを得られました.
Cのsourceをこちらに置きます.変数名はブロック図と同じにしてあります.そんなに厄介なことはやってません.
以上はLinux上で計算しましたが、短いsource codeですからSTM32の内部でも同じ計算をできます.
それは何を意味するかというと、
1)STM32に自力でbit streamを計算させれる
2)STM32のRAM上にsin1波分の1bit streamを展開できる
3)DMAでcyclicに同1bit streamをGPIO出力してやれば
4)STM32は1bit DAC型のsin波発生器になれる
5)ただし外付けLPFは必要
DMAでどうやってGPIO出力するかはこれから考えます.
memory to peripheralなDMAをTIMERでトリガすれば良いのでなんとかなるかと思うんだが.
追記:STM32C011の仕様を確認しました.GPIOへ向けてDMAする機能は無い模様.外部へserial出力でき、かつDMAも可能なIFは、I2Sだけらしい.192kspsで32bitならば12MHzのbit streamを出力できるはずです.
追記2:STM32F207という大きめのCPUでsin波を出せました.レポは後日.
かしこ
こちら
返信削除>CH32V003というSOP8の32bit RISCV中華マイコン。
ではなかったのですね・・・
※こちらは、まず最初に環境をそろえるのが大変かも。
まだよく理解してないのですが、「RISC-V」マイコンは、色んな所で出してますが、みーんな、
・個別の開発環境が必要
なのでしょうかね?
※まぁ、「ARM」だって、それぞれ個別だから、同じことか。なんか、面倒だな・・・
そういう意味では、「Arduino」が動けば、それだけでいい
削除(実際は、裏で「個別のライブラリ」に、リンクしてるのですが、表からは見えないので無視)
から、やっぱりお手軽でいいな。
そうなんです.
削除CH32VはArduinoIDEを使いますが、peripheralの細かい設定に手が届かないかもしれなくて、一旦休みとしました.
STM32はSTM32CubeIDEがしっかりしたlibraryを使えるので頼もしいです.
CH32Vでもやってみたいものです.
#I2Sからbit streamのsin波が出ました
>peripheralの細かい設定に手が届かないかも
削除そうそう。例の「Longan Nano」の Arduino も、このあいだ、また見てみたのですが、結局、
・何も変わってない(最終更新日が、3年前のまま・・)
ので、未だに「A/D」「D/A」が、Arduino から使えません(ハードウエアはあるのですが・・・)
※Arduino のソース上に、コメントで「後は自分で implement してね」って、書いてある(笑)
「RISC-V」系は、意外にこういうのが多い。まだまだ「発展途上」です。
やはりそうゆうのありますか.
削除しかしADDA使えないのは宝の持ち腐れ.あんまりじゃ.
STM32からの脱却はなかなか進まないかも.
>STM32からの脱却
削除「紛(まが)い物」(笑)にさえ気を付ければ、やっぱり、
・STM32
なのかなー、という気はする。
※逆に、「自分で標準環境」を、構築して流行らせれば、
・有名人になれるチャンス!
かも知れません。
(私も、「お金と時間があれば」やりたいけど、両方ともないので・・・)
「Hiraduino」とか、作ってたりして(笑)今がチャンスです
先日のST32F103の偽物は酷くて、TIM割り込みすらbugってるというトンデモないchipのようです.ありゃつかえん、ひー
削除Hirapy-pillでも作りましょう.
アイテンド製STM32F103をもっているのですが大丈夫でしょうか?
削除中華の店なので偽か
packageの刻印は本物っぽいにもかかわらず妙なところが動かないので、1匹いれば30匹の法則はあるかも
削除>当ブログで解説を書いたことがあります. →こちら
返信削除アナログアタマなので、2902オペアンプICと555で(秋月価格で合計90円)積分器+D-FF構成の非同期シグマデルタADCをシミュレーションしたことがありますが、S/Hを使うという発想はありませんでした。フロントエンドの積分器のオフセットはそのまま出力に現れるだけで、飽和はしないので動作しそうでした。同期回路にする場合はS/Hを使う方向が自然なんでしょうね。しかし、「差分だからハイパスになるんだよ平坂理論」を非同期回路のどこに適用していいのかわからないー
S/HはADCだともいえるので、デルタシグマ回路はアナログ回路と離散値回路の中間みたいなもので理解しにくいんですよね.
削除最近はあまり使われないかもなスイッチトキャパシタフィルタも連続/離散の中間みたいなもんで面白いけど判りにくいったらないです.
>当ブログで解説を書いたことがあります
返信削除あ、これもう「8年前」の記事なんだ・・・
(そりゃぁ、自分も年取るわけだ。しかも、この数日前の記事が「親父が失踪した」と来たもんだ。光陰矢の如し。少年易老學難成 (少年老いやすく学なりがたし)
古いですねぇ.
削除失業して13年ぐらい経ちました.光陰矢の如し.
やってるジャンルは中学生の頃と同じですが.