2009年10月28日水曜日

エラーアンプ付きスイッチングレギュレータ メモ

○出力電圧の計算
エラーアンプのー端子(FB端子)に戻す電圧で決まる。
具体的には出力電圧を抵抗分圧した電圧を戻してやる。で、エラーアンプはスイッチングレギュレータの内部で作られた参照電圧とFB端子の電圧を比較して次段にあるコンパレータの参照電圧を作る。コンパレータのもう一方の端子には三角波が入力されていて、エラーアンプの出力電圧が変わればデューティも変わって出力電圧が変化する。

フィードバックループ概略
出力電圧が下がる→FB端子(ー端子)電圧下がる→エラーアンプ出力上がる→コンパレータの参照電圧上がる→デューティ比が増加 or 減少(外付けのパワトラがPNPかNPNかP型かN形かで増加するか減少するかは変わる)→出力電圧上がる

2009年10月25日日曜日

外部メモリのアドレス線接続についてメモ

バス幅が16bitのメモリを接続する場合は、
以下のようにマイコンのアドレス線を1bitシフトダウンする。

<16bitメモリとマイコンのアドレス線接続>

マイコンのアドレス端子    外部メモリのアドレス端子
A1-------------------------------A0
A2-------------------------------A1
A3-------------------------------A2


バス幅が32bitメモリを接続するんなら2bitシフトダウンして以下のようになる

<16bitメモリとマイコンのアドレス線接続>

マイコンのアドレス端子    外部メモリのアドレス端子
A2-------------------------------A0
A3-------------------------------A1
A4-------------------------------A2

なんでシフトするかといえば、たぶんマイコンはバイトアクセスするつもりでアドレッシングするからだと思う。(=バス幅が8bitのメモリがくっついているつもりでアドレッシングする)
だから、アドレス線が16本あるマイコンが0バイト目をアクセスしたいときには
A[0:16]=0x0000
1バイト目だったら
A[0:16]=0x0001
2バイト目だったら
A[0:16]=0x0002
とアドレス出力する。


○16bitバスのメモリがくっついている場合
マイコンが0バイト目のデータが欲しくて
A[0:16]=0x0000
というアドレスを出力すると
メモリは0バイト目から16bit分をデータバスに吐き出す。
つまり、0バイト目と1バイト目を吐き出す。
この場合は余分な1バイト目がくっついているけど、マイコンが欲しい0バイト目も出てきているから問題ない。余分な分は無視すればいいのだから。
では、マイコンが1バイト目のデータが欲しいときどうなるか?
A[0:16]=0x0001
というアドレスをメモリがもらうと、1 x 16bit目から16bit分を吐き出す。
つまり、2byte目と3byte目がでてきてしまう。
これにはマイコンが欲しかった1バイト目は含まれていない。
こんな問題が起きてしまうので、1bitシフトダウンしておく。
こうすれば、ぴったりマイコンが欲しいと思ってアドレッシングしたデータが出てくる。

16bitメモリだから1bitシフトだが、32bitならもう1bitシフトしないといけないので結局2bitシフトすることになる。