掲示板


[記事リスト] [返信する] [新着記事] [過去ログ] [ワード検索] [留意事項] [管理用]

記事No 1174
タイトル CCPの発振回路
投稿日 : 2018/06/07(Thu) 14:11:16
投稿者 臼井 英治   <e.usui@maitec.co.jp>
参照先
> > > > > > > > > > > おせわになります。
> > > > > > > > > > > PIC16F887Aで音楽用の発振回路を
> > > > > > > > > > > PICBASICコンパイラで製作して
> > > > > > > > > > > うまく動作しています。
> > > > > > > > > > >
> > > > > > > > > > > 同じ回路をPIC16F1769でつくり
> > > > > > > > > > > 同じくソフトをPICBASICで作りましたが
> > > > > > > > > > > CCP1出力から、指定の周波数の
> > > > > > > > > > > パルスが発振しません。
> > > > > > > > > > >
> > > > > > > > > > > ハード、ソフト上でアドバイスがあれば
> > > > > > > > > > > よろしくお願いいたします。
> > > > > > > > > >
> > > > > > > > > > CCPx 出力は、PPS設定が必要では?
> > > > > > > > >
> > > > > > > > > PIC16F1769では
> > > > > > > > > たとえば、CCP1はRC5ピンなので
> > > > > > > > > PICBASIC1で
> > > > > > > > > define CCP1_REG PORTC
> > > > > > > > > define CCP1_BIT 5
> > > > > > > > >
> > > > > > > > > とやったのですがうまくいきません。
> > > > > > > >
> > > > > > > > CCP1_out -> RC5 PPS設定は
> > > > > > > > RC5PPS = %01100
> > > > > > >
> > > > > > > PICBASICのHPWMコマンドでうまくいかず
> > > > > > > FREQOUTコマンドでは、パルスが出ます。
> > > > > > > HPWMコマンドがきれいな矩形波なので
> > > > > > > できれば使いたいのですが。
> > > > > >
> > > > > > PICBASIC が手元に無いので確認はできませんが
> > > > > > HPWM ; TMR2 , FREQOUT : TMR1
> > > > > > 基準となるタイマの違いだと思います
> > > > > >
> > > > > > PIC16F1769 は、TMR2 PWM が拡張され 他のPICとは設定に違いがあります
> > > > > >
> > > > > > XC8 で PWM 1kHz 確認 ( PIC16F1769 8MHz )
> > > > > >
> > > > > > RC5PPS = 0x0C ; // RC5 : CCP1_out
> > > > > > T2PR = 250-1;
> > > > > > T2CLKCON = 1; // FOSC4
> > > > > > T2CON = 0b10110000; // T2ON 1:8 8MHz / 4 / 8 / 250 = 1kHz
> > > > > > CCPR1 = T2PR<<1; // PWM 50%
> > > > > > CCP1CON = 0b10001100; // PWM mode FMT=0
> > > > > > TRISCbits.TRISC5 = 0; // RC5 OUTPUT
> > > > > >
> > > > > > PICBASIC SFRレジスタ設定データと比べて下さい
> > > > > 申し訳ありませんが、具体的にどのようなツールで
> > > > > 確認したらいいのかわかりません。
> > > > > PICBASIC上でTMR2のレジスタをどのように
> > > > > 書き換えて設定したらいいのでしょうか。
> > > >
> > > > 参考先と同じ様に、SFRレジスタとして定義され読み書き可能な筈です
> > > > RC5PPS,T2CLKCON の設定値を パソコン側へシリアル転送して
> > > > 確認します HSEROUT
> > > >
> > > > SFRレジスタの内容は、日本語データシートで確認して下さい
> > > ありがとうございます。
> > > PCへのシリアル転送はやっていないのですが
> > > レジスタの設定を
> > > RC5PPS = %00001100
> > > T2CLKCON = 1
> > > CCP1CON = %10001100
> > > として
> > > HPWMで発振するようになったのですが
> > > 発振周波数とデユーテイ比が設定どうりに
> > > なりません。
> > > HPWM 1,127,1000で
> > > CCP1出力、50%、1000Hzの設定ですが
> > > 波形は、89%、2000Hzになります。
> > > なにかマスクがかかっていて
> > > 制限があるのでしょうか
> >
> > HPWM が、PIC16F1769 未対応と思われます
> > 直接 SFRレジスタに設定して下さい
> >
> > デユーテイ比は、CCPR1H に上位8ビット CCPR11L に下位8ビット設定 T2PR=250-1 の時有効値は 0-1000 になります
>
> 訂正

PICBASIC開発元のmicroEnginerring Labs社のサポート担当者と

メールでやり取りし、PICBASICでPIC16F1769上でHPWMコマンドが

使えるようにソフトを改良してもらいました。


具体的には

WindowsのProgramFiles/PBP3のシステム内に

改造した、PIC16F1769.PBPINCとHPWM_TxCON_PS64_TxCLKON.HWLIBを

コピーして、PICBASICソフト上でhpwmtmr8というコマンドをdefine文で定義したら

動作しました。

どうも、いろいろ知恵をいただき、ありがとうございました。

- 関連一覧ツリー (▼ をクリックするとツリーを一括表示します)


- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ
参照先
画像UP
暗証キー (英数字で8文字以内)
投稿キー (右画像の数字を入力) 投稿キー


- 投稿記事修正/削除フォーム -
処理 No 暗証キー

- WebForum -