年末に作成したやつです。
少し前にPSoCでDTMFエンコーダとデコーダをやりましたが、秋月を見ていたらDTMFのデコーダICを発見したのでPSoCでやってみました
回路図です。

DTMF信号の解析に成功するとCM8870PIのStD(pin15)がHighになるので、PSoCはGPIO割り込み(立ち上がり)で4bitデータを取得します。
実はICに付属している3端子の3.58MHzの発信素子の使い方がわからなくて、ICよりもこれに時間がかってしまったw
いやほんと、こういう基本的なものはすんなり使えるようにしておきたいものです
UPしたプロジェクトにはDTMFエンコードも入っていますが....
とりあえず鳴らすなら、モジュール配置して上のコードを書くだけ。
これでドラマ24でジャックバウアー達が使っている携帯電話のダイアル発信音が(発信間隔を倍速に設定すれば)再現できますwww
それにしてもCTUが使っている携帯端末ほしいなぁ。万能さに感激しました。それでいて電池の持ちも素晴らしい!
話が脱線しましたが、実用の際には発信音の長さや間隔を調整し、それにあわせてデコーダICの方もR1やC1を調整しなければならないようです。
僕は趣味で遊びレベルなのでこれでOKですけど。
プロジェクトです。
デザイナ: 5.0 SP6
デバイス: CY8C29466
コンパイラ:ImageCraft
PSoC_DTMF[CM8870].lzh
少し前にPSoCでDTMFエンコーダとデコーダをやりましたが、秋月を見ていたらDTMFのデコーダICを発見したのでPSoCでやってみました

回路図です。

DTMF信号の解析に成功するとCM8870PIのStD(pin15)がHighになるので、PSoCはGPIO割り込み(立ち上がり)で4bitデータを取得します。
実はICに付属している3端子の3.58MHzの発信素子の使い方がわからなくて、ICよりもこれに時間がかってしまったw
いやほんと、こういう基本的なものはすんなり使えるようにしておきたいものです

UPしたプロジェクトにはDTMFエンコードも入っていますが....
void main(void) { const char *pcPhoneNumber = "987654321015739"; M8C_EnableGInt; PGA_1_Start( PGA_1_HIGHPOWER ); DTMFDialer_1_Start( DTMFDialer_1_HIGHPOWER ); DTMFDialer_1_StartSamples(); DTMFDialer_1_DialFromRom( pcPhoneNumber ); }
とりあえず鳴らすなら、モジュール配置して上のコードを書くだけ。
これでドラマ24でジャックバウアー達が使っている携帯電話のダイアル発信音が(発信間隔を倍速に設定すれば)再現できますwww
それにしてもCTUが使っている携帯端末ほしいなぁ。万能さに感激しました。それでいて電池の持ちも素晴らしい!

話が脱線しましたが、実用の際には発信音の長さや間隔を調整し、それにあわせてデコーダICの方もR1やC1を調整しなければならないようです。
僕は趣味で遊びレベルなのでこれでOKですけど。
プロジェクトです。
デザイナ: 5.0 SP6
デバイス: CY8C29466
コンパイラ:ImageCraft
