こんにちはマイコン制御

May FORTH be with you.

メモ/攻略対象を変えてみる

・PLCの授業はベルトコンベアーの制御の例題集をバリバリ解いてます。タイムチャート通りに動かすまでは簡単だけど安全性とか考えだすと途端に歯ごたえのある問題に。
f:id:SenjiNiban:20150925111337j:plain

・LPC1114について調べるのは続けているのですが、あまりにも今の自分のレベルにとっては求道的というかストイックになりすぎて、もう少し手軽なマイルストーンが欲しいというか前進している感じが欲しくなってしまいました。
それで、LPC1114にターゲットを絞る前に検討していたSTMのSTM32F334R8を触ってみることに。akizukidenshi.com
STM32F334R8にはAnalogOutがペリフェラルとして用意されているので今やってるPWMの作業は置いておいて音に取り組めます。正直、LPC1114のPWMでの音はパルス波以外は現状ノイジーでこのままだとオモチャとしてはOKだけれども、自分の曲の中で使えるかというとかなり厳しいものでした。

・それで実際に触ってみたところ、3.3Vだと最初は手持ちのスピーカーだとちょっと出力不足でしたが、スイッチサイエンスさんのヘッドフォンアンプでサンプルのサイン波を鳴らしたところ、かなり綺麗な音がちゃんとした出力で鳴らせました。これならいい感じです。
早速自分が作ったシンセエンジンをちょっと修正して鳴らしてみたことろ、CPUスピードを考えてなかったのでエラいスピードとなりましたが実用レベルのS/Nで鳴りました!あーこりゃいいわー。

・mbedのAudioOutのAPIを調べたところ、PwmOutと同じ浮動小数点のほかint16でもデータ渡せるので、そういう意味でもスッキリします。本当はPwmOutでベアメタルだ!と思っていたんですが、Monolistにも出ていた方式は、結局nxpが用意しているC言語のライブラリと気がついてしまって「あー…」とちょっとモチベーションが下がったり。その代わり、C言語インラインアセンブラもやってみようかな、とか新たな目標も出来ました。

ARMで学ぶ アセンブリ言語入門

ARMで学ぶ アセンブリ言語入門

・LPC114でしていた勉強は音もそうですがCPU自体を知るための勉強でもあったのでLPC1114自体に現状不満があるわけでもないし、LPC1114も使いこなせばかなりイケると踏んでいますが、自分の実力だとそれなりのパワーを使って、取り敢えず実用になるものを完成させる、というのでモチベーションエンジンにガソリンを注ぐという意味ではアリだという事にしました。

・読み返すと、このブログでも勘違いが多くて、もし参考にしようと検索でたどり着いた人がいたら申し訳ないのですが。勉強メモということで何卒ご容赦を。

・ということで当座のターゲットをしばし変更。価格としては10倍になってしましたがまあそれでも1500円なんで、バカスカ予備を置いておくわけには行きませんが何とかお小遣い程度で。

・CPUスピードとアナログアウトもそうですが単純にRAMとフラッシュROMの容量もデカイので、Forthもそのまま実装できそうです。細かいところを攻める楽しさは、もうちょっと実力をつけてからのお遊びということで。そんな通ぶるより先にC言語のポインタを使いこなせよ、って感じです。あと以前ローカルでコンパイルできない問題のことを書きましたが、STM32F334だとコンパイルできました。それとLPC1114でもシリアル通信のところを削るとコンパイルできたり。ローカルでのコンパイルだとターゲットのROM・RAM容量のチェックがオンライン時より厳しいのかもしれません。

・ちなみに自分の理想とする通のお遊びってのはこんな感じ。

ボクのLPC810工作ノート

ボクのLPC810工作ノート

これでミニシンセとか作っている人がいるんです。イカす。
Products - Gembox Synth | g200kg Music & Software