So-net無料ブログ作成
検索選択

MC9S08SH4 のギャング出力でPWMは使えるか? [HCS08]このエントリーを含むはてなブックマーク#

2579176

MC9S08SH4 でギャング出力の実験では、ギャング出力でLEDを点灯させました。 LEDの明るさがPWMで変えられたら、きっとうれしいよね。

ギャング出力の制御

MC9S08SH8のデータシートでは、ギャング出力は汎用入出力ポートの一機能として記述されています。

  1. すべてのポートは、出力設定になる
  2. すべてのポートは、PTCD0の値を出力する
  3. すべてのポートは、PTCDS0に従って強さが決定される
  4. すべてのポートは、PTCSE0に従ってスルーレートが決定される

これらは、すべて汎用ポートとしての動作の説明です。 PTC0には、TPM1CH0もつながっているのでPWM出力が出るかも知れないと思い確認してみました。

ギャング出力は、PWM制御できない

実験の結果、ギャング出力は、PWMでは制御できないことがわかりました。 つまり、PWMを使いたければ、ソフトウェアで何とかしなくちゃいけません。 これでは、ギャング出力をハードウェアで実装した意味が薄れていませんか?

ギャング出力をソフトウェアで制御しなくてはならないので、短い周期のPWMを実現することはできなくなりました。 たとえば、DC-DCコンバータを作ろうとした場合、周期を長くしなくてはならないので、必然的にインダクタンスを大きくしなくてはならないので、コイルも大きくなります。 さらに、あまりPWMパルスの周波数を下げると、可聴周波数に達するのでコイルが鳴くことが予想されます。 こりゃ、困ったね。

GNGCレジスタが何度も変更できる?

今回の実験には、おなじみの ProcessorExpert を使用しました。 よくできたもので、 ProcessorExpert では、リセット直後に GNGC を設定するようになっています。 これなら、安全のため一回しか書き込めないようになっているGNGCレジスタを確実に設定できます。

ところが、ところが、そうとは知らない私は、 main() に GNGC レジスタを書き換えるコードを書いてしまったのでした。 でも、動いてるよ? 何で?

実は、初版の MC9S08SH4/8 には、「GNGCレジスタが複数回書き込める」というエラッタが存在しましたが、このエラッタは第2版では消えていました。 私が取り寄せた MC9S08SH4 は、 2M84G のマーキングがあるので、当然、このエラッタは解決済みと思っていましたが、解決されていなかったのかな? ちょっと、問い合わせてみるか。

参考文献

MC9S08SH8
MC9S08SH8のデータシートです。 なんと、すでに第3版になっているそうです。
MSE9S08SH8_0M84G
初版(第0版)MCUのエラッタ(既知の問題点)リストです。 ここには、GNCGレジスタが複数回変更できるという問題が記述されています。
MSE9S08SH8_2M84G
第2版MCUのエラッタ(既知の問題点)リストです。 ここには、GNCGレジスタの問題が記述されていないので、解決したかと思ったのですが。

関連文献

HCS08 Unleashed: Designer's Guide to the HCS08 Microcontrollers

HCS08 Unleashed: Designer's Guide to the HCS08 Microcontrollers


nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。