goo blog サービス終了のお知らせ 

としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC16F690を動かす。。。その4

2013-02-07 05:29:46 | PIC16F690

おはようございます。

としぶぅ~です。

 

本日はかなり暖かくなる。。。とニュースで言っております。

春一番が吹くとか・・・・まじですか!?

 

さて本日は、

昨日の続きでI2Cのマスターモードについて書いてある部分の翻訳を・・・・

<colgroup><col width="405" /> </colgroup>
13.13 マスタ・モード
オペレーションのマスタ・モードは、スタートとストップの状態の検知による割り込み発生を使う事により、ファームウェアの中でサポートされます。
ストップ(P)およびスタート(S)ビットはリセットまたはSSPモジュールがディセーブルされた時クリアされます。
ストップ(P)およびスタート(S)ビットはスタートとストップの状態を元に固定されるでしょう。
P-ビットがセットされるか、バスがアイドル状態、また、SとPの両方のビットがクリアされている時、I2Cバスのコントロールが得られるかもしれません。
マスタ・モードでは、SCLとSDAのラインは対応するTRISB<6および4>ビットをクリアすることにより操作されます。
出力レベルは、PORTB<6および4>の値に関係なく、常に”Low"。
したがって、データを送信する場合、「1」データ・ビットはTRISB<4>ビット・セット(入力)しなければならない。また、「0」データ・ビットはTRISB<4>ビットをクリアしなければいけない(出力)。
同じシナリオはTRISB<6>ビットを用いてSCLラインをtrueにする。
プルアップ抵抗は、I2Cモジュールの適切なオペレーション用のSCLとSDAのピンに外部につけなければならない。
次のイベントがSSP割り込みフラグビット(SSPIF)をセットするでしょう(もしイネーブルになれば、SSP割り込みが生じるでしょう):
・スタートコンディション
・ストップコンディション
・操作のデータ転送、バイト送信/受信マスタ・モードは、スレイブモードのアイドル(SSPM<3:0>=1011)、又はスレイブアクティブのどちらかをやめることができます。
マスターとスレーブモードの両方がイネーブルになる時、ソフトウェアは割り込みの元を区別する必要があります。

こんな感じでしょうか・・・・

いまひとつよくわからない部分もありますが、とりあえずやれそう?・・・ですかね(笑)

今日はもう時間がないので、明日からプログラムをさわって順にI/Oポートの挙動を

見ていきたいと思います。

 

時間がないですね・・・・もっとじっくりやれればいいんですが・・・・

ま、地道が大事です。

タイトルでもあるように毎日続ける事が重要!

めげずにがんばります。

 

今日はこんな感じで・・・・

ではみなさまきょうもよい一日を~(^o^)

 

 

 


PIC16F690を動かす。。。その3

2013-02-06 05:50:28 | PIC16F690

おはようございます。

としぶぅ~です。

 

本日は関東方面雪ですって?

たいへんですね。。。。。静岡県は。。。雨ですね・・・・

関東の方気をつけください。

 

さて今日はPIC16F690のI2Cのマスターモードのマニュアル読みです。

英語マニュアルの翻訳・・・・WEB翻訳で・・・・ぐちゃぐちゃでわかりずらいですね・・・わかるように

自分で手直ししながらなにすればいいのか現在確認中です。

下記がSSPモジュールのポートブロック図(データシートから抜粋)

こんなかんじになっているんですね・・・

あと、参考書入手・・・・こちらも同時に読んでいこうと思います。

ぱらぱらとめくりましたが、結構細かく書いてあります。

I2Cもでてますね~

お勉強します^^

 

さて本日はこのへんでタイムアップです。

翻訳すると時間がすぐなくなる・・・・だめだ(笑)

 

それでは皆様本日もよい一日を~(^o^)

 


PIC16F690を動かす。。。その2

2013-02-05 05:13:09 | PIC16F690

おはようございます。

としぶぅ~です。

 

今日は寒いですね・・・・

さっ・・・きょうもがんばりましょう!

 

本日はPIC16F690を使用するに当たってPIC16F690がどんなPICかを見てみようと思います。

PIC16F88とあまり変わらないと思いますが。。。。

データシートから抜粋しました。

I/OがRA0~RA5(6port)、RB4~RB7(4port)、RC0~RC7(8port)です。

I/Oのみ使用すれば18ポート使用可能!

ADコンバータは、AN0~AN11と12個もあります。REF入力はAN1と兼用。

コンパレータ有り

PWM有り(ECCP)

EUSERT(UART)有り。。。。1系統

SSP(I2C/SPI)有り。。。。。1系統

外部割り込みはPortAとPortBの10ポートで設定可能

内部プルアップもPortAとPortBの10ポートで設定可能

です。

コアはPIC16F88と同じです。

 

内部PLLで8MHz動作・・・・外部クロックを使用すれば20MHz動作・・・・かな。。。たしか

一度ここも確認してみようと思います。

 

タイマーは、8bitx2と16bitx1あります。

I2Cは。。。。あれ。。。これもPIC16F88とおなじか?(笑)

Farmware コントロールモード・・・・ってま、ソフトでくめってことか。。。。。?

ちょっと面倒だけど手順作ってやってみますかね。。。やれない事はない!けど・・・めんどう(笑)

SSPSTATレジスタとSSPCONレジスタを駆使すればソフト制御でできるように見えますね・・・・

明日からさわりながら進めたいと思います。

 

今日はこの辺で

 

みなさまよい一日を~(^o^)

 


PIC16F690を動かす。。。その1

2013-02-04 05:30:34 | PIC16F690

おはようございます。

としぶぅ~です。

 

今日からPIC16F690を使用していろいろやっていこうと思います。

STM32でやろうと思いましたが、ちょっと仕事が・・・と言い訳をしてしまいますが、

なかなか手がつかない状態になってしまっているので。。。

あと、急遽”I2C”を仕事で何とかしないといけないのでとりあえずすぐにでも知識を得られるように

積み上げがあるPICで先にやってみます。

 

で、まずI2Cを確認できるようにするためにI2Cで制御できるLCDボードを作ってみたいと思います。

方法は、市販のICを使用!

I2Cエキスパンダーという”I2C ⇔ パラレルI/O”変換するためのICを使用します。

8bitのI/OをコントロールできるのでLCDくらいは制御できるかなと思っています。

まずは回路図

こんな感じで作ろうと思います。

多分これで動くんではないかな???と思っています・・・ま、ぼちぼちいじって行きます。

I2CexpanderはNXPのPCF8574を使います。(以前購入しておいたもの・・・オークションだったかな?)

ブロック図はこちら(データシートから抜粋)

以前はPIC16F88でやろうと思っていたけど。。。。手がかかるのでこちらのほうが・・・・(笑)

つまり手抜きですか。。。。いやいや世の中にあるものを使用するのも自己啓発+知識向上という事で!

 

ま、こんな感じで進めていきます。

後、MPLABも”MPLAB X IDE”になったようですね。。。。また、こちらも使ってみてレポートしますね。

昨日使った感じでは。。。。

XC8で普通にHI-TECH Cで作ったプロジェクトはコンパイルできてました。。。

ただ、ターゲットに電源供給する方法が見つからなかった^^;

 

ま、今日は簡単にしておきます。

 

それでは今日はこのへんで

みなさまよい一日を~(^o^)

 

 


PIC16F690のデバッグ環境を試す!!。。。その2

2013-02-03 09:16:53 | PIC16F690

おはようございます。

としぶぅ~です。

 

今日はいい天気です。

どっかでかけようかな・・・・・

 

さて本日は昨日のPIC16F690をデバックできる確認のつづきです。

ま、とりあえずMPLAB IDEを立ち上げてPICKIT3+AC162061(デバッグオプション)+ターゲット

を接続!

こんな感じ

で、デバッグモードにすると・・・・

なんかエラーメッセージ・・・・これは多分電源がターゲットにないよ・・・・のメッセージだったように思います^^;

で、電源を供給するモードにします。

電源入れても大丈夫?

というワーニングがでて”OK"を押すと。。。

なんかIDが”00000000”になってます。

どうもデバイスIDがとれないようです。

いろいろやってみるが症状は同じ・・・・

「このボードで本当にうごくのか?」

と疑問・・・・・それともオークションで購入したボードがわるいのか?

。。。。しばし停滞中

 

ま、ハードを見てみる。

電源を供給した場合にターゲットに電源はちゃんといってるのか・・・・・!?

テスタでかくにんすると”3.3V”しかいってない・・・・デバッグボード上にはレギュレータはいってないのにな~

おかしいのでとりあえずボードはずして電源ラインの接続をみてみる

まずは、PICKIT3-2pin(VDD) <-> AC162061のインターフェースコネクタ-1pin

(ターゲットボードへのコネクタの1ピンです)

つながってない・・・・^^;

どうも18ピンにつながってるみたい・・・・

次に、PICKIT3-3pin(DGND) <-> AC162061のインターフェースコネクタ-20pin

(ターゲットボードへのコネクタの20ピンです)

つながってない・・・・^^;

どうも19ピンにつながってるみたい・・・・

ん?

これって、中継ボードのpin番号逆にふってある??

ということでPICKIT3をひっくりかえす・・・

 

 こんな感じ・・・・

MILAB IDEから電顕供給!

「おぉ」

電源供給したらちゃんとID取れるようになりました!

ターゲットのほうも・・・・

表示がうっすらと。。。。電源が供給できたようです。

では。。。

ターゲットにプログラムを流し込みます。 

ちゃんとできるようです。。。。

次にプログラムを走らせて見ます。

”RUN”ボタンをクリック

おぉ・・・ちゃんと走り出しました!!

ターゲットは

ちゃんと液晶に表示が出ました!

これはデバッグで動いてます・・・・ターゲットにはPIC乗ってませんので・・・・

最後にブレイクポイントをしかけてちゃんと止まるか確認・・・

緑の矢しるしのところで止まってます。

ブレイクポイントでしっかり止まる事確認!

下を見るとれじるたの内容もちゃんと変化して・・・取り込めています。

いい感じです。

 

これでいろいろできそうですね・・・・

PIC16F88に比べて、PIC16F690はピン数が多い=ポートが多い

機能も一通り使えます・・・・

ばりばり使えそうです。。。。。。さて・・・

これからなにをする??(笑)

 

ちょっとお仕事で使おうかな。。。。という事で前準備に使います。

 

明日から・・・・やれるかな・・・いやまたがんばります!!

 

では!

今日はいい天気です。みなさまよい一日を~(^o^)