SSブログ

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

  • 作者: Fabio Pereira
  • 出版社/メーカー: Booksurge Llc
  • 発売日: 2007/11/13
  • メディア: ペーパーバック

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

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

トラックバックの受付は締め切りました