2012年02月19日 秋月のAKI-PIC2プログラマボード改 昨日、秋月のAKI-PIC2プログラマボード用のコネクター関連の部品を買ってきて、接続ケーブルを作りました。 あと、Chaosさんのアドバイスで、ボードの一部を改造(ダイオードと10KΩを追加)しました。 PIC 16F88も買ってきたし、進捗がかなり遅いですが、次のステップに進めそうです。 タグ :#練習用
2012年02月10日 PIC16F88のコンフィグレーション PIC16F88のコンフィグレーションを考えてみました。 下記は、PICの動作モードなどを設定するコンフィグレーションです。 __CONFIG(_INTRC_IO & _WDT_OFF & _PWRTE_ON & _MCLR_OFF & _BODEN_ON & _LVP_OFF & _CPD_OFF & _WRT_PROTECT_OFF & _DEBUG_OFF & _CCP1_RB0 & _CP_OFF) __CONFIG(_FCMEN_OFF & _IESO_OFF) _INTRC_IO(内蔵クロックを使用:100) WDT_OFF(ウォッチドッグタイマを利用しない) PWRTE_ON(起動時電源が安定してから動作開始の指定をする:0) _MCLR_OFF(マスタ・クリア・リセット無効:1) _BODEN_ON(瞬停対策リセットする:0) _LVP_OFF(低電圧書き込み許可指定:0) _CPD_OFF(EEPROMへのプロテクト無効:1) _DEBUG_OFF(デバッグ無効:1) _CCP1_RB0(CCP1の出力ピンの指定:1) _CP_OFF(プログラム保護しない:1) _FCMEN_OFF(フェールセーフクロックモニタ無効:0) _IESO_OFF(クロックの内部・外部切り替え:0) 電子ボリュームの流れは、こんな感じに成ると思います。 1. 初期化 2. タイマー(遅延)2秒 3. MUTE信号Hi(1) 4. アナログVR電圧値を読込みA/D変換 5. マップのデータに変換 6. 電子VRにデータを送る 7. アナログVR電圧値を読込みA/D変換 8. 過去に送ったデータと比較して変化が有ったら電子VRにデータを送り書換 9. 7.に戻る 遅延方法として、遅延関数を作る必要があるのか? 次は、タイマーの遅延方法を考えてみたいと思います。 タグ :#練習用
2012年02月09日 減衰量テーブル2 Chaosさんに作って戴いた、Aカーブ曲線(数値表)に合わせて128(7bit)の減衰量テーブルを作ってみました。(EXCELでHEX変換ができるとChaosさんに教わったので早速EXCELでやってみました。) また、NJW1159の減衰量は8ビット中、上位7ビットがデータで、最下位の1ビットは使っていません。後処理を簡単にするため、この最下位1ビット分を含めた減衰量テーブルを作りました。 減衰量テーブルはこんな感じです。 const unsigned char VR_ATT[128] = { 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC. 0xBC, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xB8, 0xB8, 0xB8, 0xB8, 0xB6, 0xB6, 0xB6, 0xB4, 0xB4, 0xB4, 0xB2, 0xB2, 0xB2, 0xB0, 0xB0, 0xAE, 0xAE, 0xAC, 0xAC, 0xAC, 0xAA, 0xAA, 0xA8, 0xA8, 0xA6, 0xA6, 0xA4, 0xA2, 0xA2, 0xA0, 0xA0, 0x9E, 0x9C, 0x9C, 0x9A, 0x9A, 0x98, 0x96, 0x94, 0x94, 0x92, 0x90, 0x90, 0x8E, 0x8C, 0x8A, 0x8A, 0x88, 0x86, 0x84, 0x82, 0x80, 0x80, 0x7E, 0x7C, 0x7A, 0x78, 0x76, 0x74, 0x72, 0x70, 0x6E, 0x6C, 0x6A, 0x68, 0x66, 0x64, 0x62, 0x60, 0x5E, 0x5C, 0x5A, 0x58, 0x56, 0x54, 0x52, 0x50, 0x4C, 0x4A, 0x48, 0x46, 0x44, 0x42, 0x3E, 0x3C, 0x3A, 0x38, 0x34, 0x32, 0x30, 0x2C, 0x2A, 0x28, 0x24, 0x22, 0x20, 0x1C, 0x1A, 0x18, 0x14, 0x12, 0x0E, 0x0C, 0x08, 0x06, 0x02, 0x00}; Chaosさん、有難う御座いました。 ♪(о ̄∇ ̄)/ PICは、16F88(18pin)を使う予定です。 使用するPICのI/O端子については、input(アナログVR)、output(DATA、CLOCK、LATCH、MUTE)の計5端子(input 1個、output 4個)となります。 16F88のデータシートからアナログinputが使えるのは、17pin,18 pin,1 pin,2 pin,3 pin, (12 pin,13 pinは、PIC書込み用の為使用しない) outputが使えるのは(Buffer TTLタイプ)、17 pin,18 pin,1 pin,2 pin,6 pin,7 pin,8 pin,9 pin,10 pin,11 pin, (12 pin,13 pinは、PIC書込み用の為使用しない) さて、どのピンを使えば良いか悩みます。 データシートでは、8pinがSPI data outになっているのでこの8pinをDATA-out端子にします。その隣9pinをCLOCK-out端子、10pinをLATCH-out端子、6pinをMUTE端子とします。最後にinputは、18pinをアナログVR端子とします。 NJW1159との配線レイアウトは、考慮していません。 こんな適当な決め方で良いのか? 次は、CONFIGの設定を考えます。 タグ :#練習用
2012年02月07日 ヘッドフォンアンプ基板 バランス型ヘッドフォンアンプの方も少し進めることにした。 DACに使用したアンプが、そのままヘッドフォンアンプに使えるように設計しておいたので、かなり手間がはぶけた。 部品が足らなくなり一時中止、部品の購入数を間違えた。 間に合えば、このバランス型ヘッドフォンアンプに、電子ボリュームを使いたい。 タグ :#練習用
2012年02月07日 減衰量テーブル Aカーブボリュームの図を描いて、減衰量テーブルを作ってみました。 Aカーブを作るのが、案外と難しくこの様なカーブになりました。 減衰量テーブルは、こんな感じになりました。 const unsigned char VR_ATT[64] = { 0x00, 0x06, 0x0B, 0x0F, 0x13, 0x16, 0x19, 0x1C, 0x1F, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3E, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56. 0x57, 0x58, 0x58, 0x59, 0x59, 0x5A, 0x5A, 0x5B, 0x5B, 0x5C, 0x5C, 0x5D, 0x5D, 0x5E, 0x5E, 0x5F, 0x5F, 0x7F}; 次は、A/Dコンの使い方を、勉強しないと。 タグ :#練習用