2011-01-01から1年間の記事一覧

ATtiny10 用プログラム (6)

#define によるモード設定の続きです。 #define USE_ADC // PB2 (pin 4) = freq control AD input でシンボル「USE_ADC」を定義すると、可変周波数のモードになり、PB2 (4 番ピン) に入力されるアナログ電圧を内蔵 8 ビット AD で 変換して得られた 0 〜 255…

ATtiny10 用プログラム (5)

「sin_tn10.c」プログラムの最初の部分にある #define で定義されるシンボルで設定される各種のモードについて説明します。 まず、 #define OSCCAL_ADJ (0) は、アドレス 0x39 にある OSCCAL レジスタに設定されるデフォルト値に足しこむ補正値の定義です。 …

ATtiny10 用プログラム (4)

ATtiny10 用のサイン波発生プログラムを作りました。 (12/27 追記: 「sin_tn10.c」で USE_ADC 未定義の場合にコンパイル・エラーになる問題と、「stab128.S」の 2 の補数計算のバグを修正したプログラムに差し替えました) フェーズ・アキュムレータとサイン…

ATtiny10 用プログラム (3)

DDA (Digital Differential Analyzer) を利用して、サイン/コサイン波形を出力する ATtiny10 用プログラム「var_test.c」を下に示します。 8 ビット phase correct PWM を利用していて、PB0 (ピン 1) および PB1 (ピン 3) から PWM 繰り返し周波数 15.625 kH…

ATtiny10 用プログラム (2)

今回は、gcc (Atmel AVR 8-bit GNU Toolchain 3.3.0.364) を使用した ATtiny10 用の C プログラムの話題です。 以下の話はバージョン 3.3.0.364 についてのもので、当然、バージョンが変われば状況も変化する可能性があります。 「米粒 AVR」こと ATtiny10 …

ATtiny10 用プログラム (1)

この「プログラム」は、ターゲット・マイコン上で走るプログラム自体のことで、それをフラッシュ・メモリに書き込む「プログラム」作業のことではありません。 以前に ATtiny13 用に m-系列ノイズを発生させるアセンブラ・プログラムを作成しましたが、それ…

Arduino を使った ATtiny10 の書き込み (4)

今回は、 ブレッドボード・シールドの製作 ターゲットへのプログラム書き込み後に自動でそのターゲット・プログラムが走り出すようにするためのスケッチの修正点 を取り上げます。

Arduino を使った ATtiny10 の書き込み (3)

今回は前回の記事に関して、いくつかの補足を示します。 まず、前回は、ライセンスについて明記しませんでしたが、このプログラムは Atmel の AVR918 のソースにわずかな変更を加えただけなので、もともとの Atmel のライセンス条件がそのまま適用されるもの…

Arduino を使った ATtiny10 の書き込み (2)

Arduino を AVR918 相当のデバイスとして機能させるスケッチ「Arduino918」を作って、ATtiny10 の書き込みに成功しました。 バイナリ・スケッチ・サイズは 2612 バイトです。 スケッチのアーカイブ・ファイルと readme ファイルを以下の Yahoo ボックスに置…

Arduino を使った ATtiny10 の書き込み (1)

最近話題の「米粒 AVR」こと 6 ピン SOT-23 パッケージの「ATtiny10」を私も手に入れましたが、TPI (Tiny Programming Interface) 方式の ATtiny10 に対応したプログラム書き込み器は持っていません。 新たなデバイス/ハードウェアの購入や、書き込み器の組…

3V単一電源動作の VCF (13)

Arp 型のアンチログ回路を、複合トランジスタではなく、ディスクリートの 2SA1015 と 2SA1815 とを使った場合の VCF 発振周波数の測定結果のグラフを下に示します。 前回と同様に、低域で周波数が高くなる現象があり、気になって、いろいろ調べていました。 …

3V単一電源動作の VCF (12)

アンチログ回路部分を、PNP と NPN トランジスタの組み合わせによる、いわゆる Arp 型の方式のものに変え、レゾナンスを上げて VCF を発振させた発振周波数の特性を測定してみました。 下に回路図を示します。

3V単一電源動作の VCF (11)

3V単一電源動作の VCF 回路を、ブレッドボード上に実際に回路を組んで実験してみました。 現在、アナログ・シンセサイザー・システムの VCF モジュールとして評価するための環境はないので、単に PC で発生させた信号を入力して、出力の波形観察、周波数特性…

3V単一電源動作の VCF (10) - 3Vトランジスタ・ラダー回路のシミュレーション (1)

前回の記事「3V単一電源動作の VCF (9)」は 2009 年 3 月 24 日付けだったので、約 1 年半ぶりになりますが、3 V 電源で動作するトランジスタ・ラダー型 VCF の実験を再開しました。 Minimoog の回路では、ラダー 4 段 + 差動入力段 + アンチログ出力の、合…

PIN フォトダイオードによるガンマ線検出回路 (10)

「PRA」(Pulse Recorder and Analyser) を使って、「やさしお」を実際に測定して得たパルス高ヒストグラムから、gnuplot によりグラフをプロットしたものを下に示します。 PRA のデフォルトでの最大測定時間 89478 秒 (約 25 時間) かけて 342 個のパルスを…

PIN フォトダイオードによるガンマ線検出回路 (9)

フォトダイオード・アンプ出力を PC のサウンド入力と接続し、WaveSpectra でバックグラウンドのノイズを観測した結果を下に示します。 上側のトレースが「時間波形」で、下側の青い線が 300 回平均して求めたスペクトルです。 PD アンプの LPF の特性により…

PIN フォトダイオードによるガンマ線検出回路 (8)

現在、実験中の回路を下に示します。 これは、 9 月 10 日の記事の当初の回路に、次のような変更を加えたものです。 初段チャージアンプの帰還抵抗を 20 MΩ に アナログ・コモン電圧を発生させる分圧回路のコンデンサの容量を増強 OP アンプ段間の直流阻止用…

PIN フォトダイオードによるガンマ線検出回路 (7)

今回の実験回路の波形整形は、簡易的な方法で行っていますが、それを説明する前に、Maxim のアプリケーション・ノート AN2236 の回路を題材に、もうちょっと「ちゃんとした」方法について、LTSpice によるシミュレーションで示したいと思います。 Spice シミ…

PIN フォトダイオードによるガンマ線検出回路 (6)

以前の記事で、オシロでアンプの出力パルスを観察すると、パルスが「太い」ものが混じっていることについて書きました。 どうも、これは、フォトダイオードの性質によるものらしいことが分かりました。 そこで、アンプのフィルタ部の回路定数を変更し、パル…

PIN フォトダイオードによるガンマ線検出回路 (5)

今回は、ピーク・ホールド/トラック回路の説明をします。 回路図を下に再掲します。 この回路をブレッド・ボード上に組んで実験しています。 回路図の上部で、OP アンプが 3 段縦続になっているのがピーク・ホールド/トラッキング部で、1 段目と 3 段目はゲ…

PIN フォトダイオードによるガンマ線検出回路 (4)

PC のサウンド・インターフェースを利用して、MCA (Multi Channel Analyzer) の機能を実現するフリー・ソフトウェア Pulse Recorder and Analyser - PRA を使って、ガンマ線のスペクトルを求める実験をしています。 が、あまり良好な結果は得られていません…

PIN フォトダイオードによるガンマ線検出回路 (3)

今回は、LTSpice によるトランジェント解析で、パルス出力の時間波形を求めます。 波形自体は、すでに 9 月 10 日の記事に掲載してあります。 シミュレーションに使用した回路図を下に示します。 OP アンプのマクロ・モデルとしては、LTSpice 組み込みの LTC…

PIN フォトダイオードによるガンマ線検出回路 (2)

今回からは、主に LTSpice を使って回路動作を見ていきます。 まず、初段のいわゆる「チャージ・アンプ」部の回路を下に示します。 (a) が、ここでの実験回路、(b) が MAXIM アプリケーション・ノート AN2236 の回路で、それぞれ動作の原理を示すために簡略…

PIN フォトダイオードによるガンマ線検出回路 (1)

またまた、シンセとは離れて、PIN フォトダイオードによるガンマ線検出回路の実験をしています。 世の中では、浜松ホトニクスの S6775 を使った事例が多いようですが、価格は秋月でも 1 個 500 円であり、うまく行かなかった場合のダメージが大きいので、受…

円周率の計算 (10)

アセンブリ言語による arctan 公式による円周率の計算プログラムを、8 ビット縛りで STM8S-Discovery 用に、16 ビット縛りで PC (x86 プロセッサ) 用に作成しました。 ソース・プログラムは、両者とも 500 行を超えるので、この blog 上には置かず、web サイ…

円周率の計算 (9)

8 月 20 日の記事で検討した spigot アルゴリズムの変更点を、8 月 15 日の記事の Arduino 用のスケッチに適用し、乗除算部分をインライン・アセンブラによる 8 ビット演算に置き換えたプログラムを下に示します。 (Spigot 関数の部分のみ) 全体のスケッチの…

円周率の計算 (8)

8 月 20 日の記事で検討した、spigot アルゴリズムを base = 100、つまり 100 進数として扱う場合に 8 ビット演算におさまる条件は、100 進に限らず、他の場合でも有効であることが分かりました。 それは、 num[] の初期値を base にかかわらず「2」とする …

円周率の計算 (7)

STmicroelectronics 社の開発環境 ST Visual Develop (STVD) 用の spigot アルゴリズムのアセンブラ・ソースプログラムを下に示します。 STM8S Discovery 上で実行すると、PD5/UART2_TX 端子 (コネクタ CN4 の 10 番ピン) から 38.4 kbps シリアルでπの値を…

円周率の計算 (6)

「8 ビット縛り」の 8 ビット・マイコンとして、次は手持ちの STM8S Discovery (STmicroelectronics 製、STM8 コア) を選びました。 STM32F103 を使ったフラッシュ・ライタ/デバッグ・インターフェース部分と、切り離し可能な STM8S ターゲットボード部分と…

円周率の計算 (5)

8 月 13 日版のプログラム・リストを下に掲載します。 (8 月 17 日追記: コメント中の aran255 の公式の 44*acot(2072) の符号が誤っていたのを修正しました。 プログラム本体には誤りはありません。)