2013-12-01から1ヶ月間の記事一覧

LPC810M021FN8 (8) -- SCT を PWM として使う (5)

今回は、 NXP 社の表現で「Double Edge PWM mode」 STmicroelectronics 社の表現で「Center Aligned PWM mode」 と呼ばれる、デューティーに応じて PWM 波の立ち上がり/立ち下り両エッジが互いに反対方向に変位して「重心位置」を不変に保つ方式の話です。 …

LPC810M021FN8 (7) -- SCT を PWM として使う (4)

SCT の「イベント」は、 タイマ・カウント値とのコンペア・マッチ成立 入力 (CTIN) あるいは出力 (CTOUT) の、あらかじめ選択しておいた H レベル/L レベル/ライズ・エッジ/フォール・エッジのいずれかの発生 の 2 種の条件を、下のように組み合わせた マッ…

LPC810M021FN8 (6) -- SCT を PWM として使う (3)

LPC8xx に搭載されている SCT (State Configurable Timer) を PWM として応用する方法について述べます。 「ステート」は全く使用しなくても PWM は実現できますし、「キャプチャ」機能は PWM への応用には関係しないので、それらの機能については深入りしま…

LPC810M021FN8 (5) -- シリアル ISP (3)

リセット時に UART ISP 起動フラグと干渉しないように、外部クロック・オシレータの出力をアクティブにするのを遅らせる方式について追加の説明をします。 ブート ROM のプログラムが P0_1 をサンプリングして UART ISP の起動を判断するタイミングを外部か…

LPC810M021FN8 (4) -- SCT を PWM として使う (2)

LPC810 用に、毎度おなじみ DDA (Digital Differential Analyzer) アルゴリズムを使った sin / cos 波発生プログラムを作りました。 3 番ピンと 4 番ピンから PWM 波出力されるので、LPF を掛ければ音として聞くことができます。 正弦波の周波数は CPU クロ…

LPC810M021FN8 (3) -- SCT を PWM として使う (1)

今回は SCT (State Configurable Timer) を PWM として使うための初期設定プログラムを示します。 SCT モジュール自体や、プログラムの詳しい説明は次回以降に回します。 プログラムの開発環境としては、トランジスタ技術 2012 年 10 月号付属の DVD-ROM に…

LPC810M021FN8 (2) -- シリアル ISP (2)

LPC8xx では「システム・クロック」として、 12 MHz 内部 RC オシレータ ウオッチドッグ・タイマ用内部 RC オシレータ (9.3 kHz 〜 2.3 MHz) 外付け水晶振動子用 (内蔵) オシレータ 外部クロック入力 および (ウォッチドッグ・オシレータを除く) クロック源…

LPC810M021FN8 (1) -- シリアル ISP (1)

以前から発表されていたものの、やっと最近になって容易に入手できるようになった NXP 社の 8 ピン DIP の Cortex-M0+ マイコン LPC810M021FN8 を手に入れました。 当面の主な用途としては、MIDI 入力のみの「無限音階オルガン」を考えていますが、LPC1114FN…

FPGA 版 FM 音源 (26) -- EG シミュレーション (2)

FPGA (無印 Cyclone) 上にインプリメントした回路のトップ・レベルのブロック・ダイアグラムを下に示します。 実際には 2010 年 12 月 2 日の記事 (→こちら) のトップ・レベルの回路図に追加して実現しています。 もとの回路のゲート信号発生用カウンタと、…

FPGA 版 FM 音源 (25) -- EG シミュレーション (1)

約 3 年間放置していた「FPGA 版 FM 音源」を再開しました。 アタックとディケイのみを実装した EG を Verilog-HDL で書いて「ModelSim」でシミュレーションを行い、以前の記事の C プログラムでの実現と同様の結果を得ました。 アタック/ディケイ・タイムが…