LPC8xx

LPC810M021FN8 (20) -- トラ技 ARM ライタ (1)

トランジスタ技術 2014 年 3 月号付録の「トラ技 ARM ライタ」で LPC810 と LPC1114FN28/102 に書き込めることを一応確認しました。 これは、LPC1114FN28、LPC810 両対応の LPC800-MAX 用ファームウェアを書き込んで、トラ技 ARM ライタを mbed インターフェ…

LPC810M021FN8 (19) -- アナログ・コンパレータ (4)

LPC800 ユーザ・マニュアル (UM10601) に掲載されているアナログ・コンパレータの図を簡略化したものを下に示します。 ハードウェア信号が直接に受け渡しされる系統に限り表示してあり、割り込みやレジスタ経由での信号出力の系統については省略してあります…

LPC810M021FN8 (18) -- アナログ・コンパレータ (3)

1 月 29 日付けの記事で使用した LPC810 プログラムのソース・リストと、コンパイル結果のオブジェクトの HEX ファイルを掲載します。 今回はリストの掲載だけで、詳しい説明については次回以降に回します。 LPC810M021FN8 を「単体」コンパレータとして使う…

LPC810M021FN8 (17) -- アナログ・コンパレータ (2)

前回はグラウンド・レベルから電源レイルまでスイングする、「大振幅」のロジック出力をコンパレータ入力に与えて伝達遅延時間を測定しました。 今回は「小振幅」(±50 mV) の信号をコンパレータ入力に与えた場合の伝達遅延時間を測定します。 測定に使用した…

LPC810M021FN8 (16) -- アナログ・コンパレータ (1)

LPC810 では、アナログ・コンパレータの入出力をピンに出すことができ、 電源電圧 3.6 V 〜 1.8 V 入出力レイル・ツー・レイル ハイ・インピーダンス CMOS 入力 の「単体」のコンパレータとして扱えます。 出力に関してはスイッチ・マトリクスで任意のピンに…

LPC810M021FN8 (15) -- ディジタル SCR (3)

8 ビット AVR 用のディジタル SCR プログラムでは、動作を変えるためにはプログラム自体を変更しなければならなかったので、動作モードを表すシンボルを定義して使っていました。 LPC810 のプログラムではハード的に実現しているので、動作の変更は、単に内…

LPC810M021FN8 (14) -- ディジタル SCR (2)

SCT (State Configurable Timer) の H 側カウンタがまるまる空いているといっても、「ディジタル SCR」を実現するためには、以下のようなリソースが必要です。 コンパレータ入力 (アナログ入力) のための入力ピン 2 本あるいは 1 本 SCT イベント 2 個 SCT …

LPC810M021FN8 (13) -- ディジタル SCR (1)

これまで 8 ビット AVR では、6 ピンの ATtiny10 と 8 ピンの ATtiny13 とに対して、コンパレータ + ワンショット・タイマの機能を持つ「ディジタル SCR」プログラムを作成し、VCO の構成要素のひとつとして利用してきました。 「8 ピンつながり」ということ…

LPC810M021FN8 (12) -- リセット・ピンを出力ポートとして使う

今回は「小ネタ」です。 LPC810M021FN8 では、8 ピン DIP の 1 番ピンがリセット端子になっていますが、「スイッチ・マトリクス」機能により IO ポート (P0_5) あるいは内蔵モジュールのいずれかの入出力端子として機能するように切り換えることができます。…

LPC810M021FN8 (11) -- 無限音階オルガン (2)

LPC810M021FN8 版の無限音階オルガン・プログラムのソース・プログラムを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。また、3 段 RC LPF の回路例を 1 月 7 日の記事に追加しました。

LPC810M021FN8 (10) -- 無限音階オルガン (1)

LPC810M021FN8 版の無限音階オルガン・プログラムができました。 8 ピンしかないので、当然、MIDI 入力のみに対応し、簡易キーボードはありません。 ソースは近日中に公開することとして、今回はオブジェクトの HEX ファイルのみを掲載します。 プログラム・…

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

今回は、 NXP 社の表現で「Single Edge PWM mode」 STmicroelectronics 社の表現で「Edge Aligned PWM mode」 と呼ばれる、デューティーに応じて PWM 波の一方のエッジの位相のみ変化して、もう一方エッジの位相は変化しない方式 (「重心位置」の位相は変化…

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…