doggie's Home


電子工作

Cypress PSoC のページです。


・アナログモジュールをいじる

miniなdevelopment環境(手ぶれごめんなさい)

というわけで、Invention Boardでの開発環境が整いました。

さて何しましょう?なのですが、それはおいておいていろいろテストです。

デザインフローはPastel Magicさんのページのチュートリアルを見ていただくこととして....。

 

 

1.正弦波を作ってみる(とりあえず出ましたバージョン)

 

  PSocで正弦波を作る手段としては、

     

     A.テーブルを用意して、D/Aコンバータから出力。

     B.三角関数で...D/A出力。

     C.矩形波を出力して、LPFを通して正弦波に。

 

  というのを思いつきました。

  このうちPSoCならでは....という理由でC案を試してみます。

 

 

まず、PSoCで矩形波の元としては、Counter,Timer,PWMとありますが、

見た感じシンプルそうな(笑)PWM8を使いました。

 

全体の設定(Global Resource)

 

Global Resource
CPU_Clock 24_MHz (SysClk/1)
32K_Select Internal
PLL_Mode Disable
Sleep_Timer 512_Hz
VC1= SysClk/N 10
VC2= VC1/N 6
VC3 Source VC1
VC3 Divider 10
SysClk Source Internal 24_MHz
SysClk*2 Disable No
Analog Power SC On/Ref High
Ref Mux (Vdd/2)+/-(Vdd/2)
AGndBypass Disable
Op-Amp Bias High
A_Buff_Power High
SwitchModePump OFF
Trip Voltage [LVD (SMP)] 4.64V (5.00V)
LVDThrottleBack Disable
Supply Voltage 5.0V
Watchdog Enable Disable

 

 

 

・ディジタル部の結線はこんな感じです。

 

 

ふーんと見てるだけじゃなくて、配線設定してくださいね。

Pinの設定と画面真ん中より右のちっちゃい正方形を設定します。

 

 

PWM8の設定

 

User Module Parameters
Clock VC3
Enable High
Compare Out Row_0_Output_3
Terminal Count Out None
Period 240
Pulse Width 120
Compare Type Less Than Or Equal
Interrupt Type Terminal Count
Clock Sync Sync to SysClk
Invert Enable Normal

 

 

 

・次いでLPFの設定です。

 

Filters-LPF2を選択します。LPFはASAとASBの2ブロックを使いますので、その組み合わせ

選択画面が出ます。

とりあえず、"Select LPF2VA"を選択してOKします。(あとでブロックを選択-右クリメニューで変更できます。)

あと、一応PGA(Programmable Gain Amp)を追加しておきます。

フィルタの定数は、モジュール選択-右クリックで現れるメニューのFilter Design Wizardでも設定できます。

OKで終われば、Designに反映されます。

特性も確認できるので、一度見てみてください。

 

 

結線はこんな感じ

 

 

 

ここでポイントは、PGAの入力Pin(Port_0_7)が先のPWM出力Pinと同じということです。

ということは、外部結線なしにディジタル部からアナログ部に接続できるということです。

(Pastel Magic BBSのJUNK-BOXさんのノウハウです。ありがとうございました。)

 

また、アナログモジュールは最高クロック周波数が決まっています。

相当ハマりました。不思議な現象に見舞われます。

最初、VC*の分周比の設定や、クロックマルチプレクサの設定デフォルトだったので、

とんでもないクロックが供給されていたことになります。

アナログなのになんでクロック?って感じですが、スイッチド・キャパシタ構成ですからね。

データシート、要確認です。

 

この画面では、クロックのマルチプレクサ、ACB入力セレクタ、AnalogBUsの出力バッファ、Pinの設定が必要です。

 

 

PGAの設定

 

User Module Parameters
Gain 0.500
Input AnalogColumn_InputSelect_2
Referrence AGND
AnalogBus Disable

 

 

LPF2の設定

 

User Module Parameters
C1 1
C2 1
C3 2
C4 31
CA 32
CB 32
Input ACB02
AnalogBus AnalogOutBus_2
CompBus DISABLE

 

これらを設定してConfigのGenerate Applicationを実行します。

これで回路情報のコードが生成されます。

 

 

 

・Application Editor関連

ViewからApplication Editorを選択します。

PSoC内蔵マイコンのプログラミング画面です。

 

main.cはこんな感じです。

 

 

void main()
{

// Insert your main routine code here.

PGA_1_Start(PGA_1_MEDPOWER); 
LPF2_1_Start(LPF2_1_HIGHPOWER);

PWM8_1_DisableInt(); 
PWM8_1_Start(); 

}

 

これでBuildして書き込めば完成。

 

 

 

 

 

・出力波形(秋月電子で売っているOSZIFOXを使用)

 

 

PWM出力(Port_0_7)

 

 

正弦波出力(Port_0_4)

 

おまけ

OSZIFOXの本体液晶画面

 

[つづく.]  

  


HOMEへ

電子工作topへ


著作権情報
最終更新日 : 2004/07/05.