Renesas Synergy™

FAQ 1007268 : V853による、SRAMアクセス (アプリケーション・ノート p.40) に関して AD0を使用した場合、 ハーフアクセスで 0番地以降にデータを書き込み、バイト・アクセスで読出しをした時、 問題が起きるとのことですが、なぜでしょう?

お問い合わせのように、CPUの A0~を SRAMの A0~に接続したとして、
外部の 0番地にハーフワードで書き込みを行った場合を考えます。
なお、簡単のためにアドレスとデータは分けて書きます。

 この場合、V853はアドレスとして 00000を出力し、D0-D7 には
偶数番地用のデータ (ここでは 00) を出力、D8-D15には奇数番地用の
データ (ここでは FF) を出力し、LBENUBENをアクティブとして、
書き込みを行います (下図参照)。この時メモリ側から見ると、
偶数番地用メモリの 0000番地には 00 が書かれ、奇数番地用のメモリの
0000番地には FF が書かれる事になります。

V853
~~~~~~~~~~~~|                |~~~~~~~~~~~~~~~~|
     A0-16  |_______0000_____| ADDRESS=0000   |
            |   |            |                | 偶数番地用
     D0-7   |________00______| DATA=00        | SRAM
            |   |            |                |
     LBEN   |________________| ENABLE         |
            |   |            |________________|
            |   |
            |   |
            |   |            |~~~~~~~~~~~~~~~~|
            |   |___0000_____| ADDRESS=0000   |
            |                |                | 奇数番地用
     D8-15  |________FF______| DATA=FF        | SRAM
            |                |                |
     UBEN   |________________| ENABLE         |
___________ |                |________________|


 一方、バイト・アクセスで同じ内容を書き込む事を考えます。
まず、0000番地に 00を書き込むとすると、V853はアドレスとして、
00000を出力、D0-D7に 00を出力、LBEN だけアクティブにします。

 これにより、偶数番地用のメモリの 0000番地には 00 が書かれる事に
なります (上のハーフワードの場合と同じ結果になります)。

V853
~~~~~~~~~~~~|                |~~~~~~~~~~~~~~~~|
     A0-16  |_______0000_____| ADDRESS=0000   |
            |   |            |                | 偶数番地用
     D0-7   |________00______| DATA=00        | SRAM
            |   |            |                |
     LBEN   |________________| ENABLE         |
            |   |            |________________|
            |   |
            |   |
            |   |            |~~~~~~~~~~~~~~~~|
            |   |___0000_____| ADDRESS=0000   |
            |                |                | 奇数番地用
     D8-15  |________XX______| DATA=XX        | SRAM
            |                |                |
     UBEN   |________________| DISABLE        |
___________ |                |________________|


 次に 0001番地に FFを書き込む場合には、V853はアドレスとして
00001を出力し、D8-15に FFを出力、UBENだけをアクティブにします。

 これにより、基数番地用のメモリの 0001番地に FFが書かれる事に
なります。つまり、上記のハーフワードの場合とは異なるアドレスに
書き込まれることになります。このことから、ハーフワード・アクセス
とバイト・アクセスで異なるメモリへのアクセスとなるのがおわかり
頂けるかと思います。

V853
~~~~~~~~~~~~|                |~~~~~~~~~~~~~~~~|
     A0-16  |_______0000_____| ADDRESS=0000   |
            |   |            |                | 偶数番地用
     D0-7   |________XX______| DATA=XX        | SRAM
            |   |            |                |
     LBEN   |________________| DISABLE        |
            |   |            |________________|
            |   |
            |   |
            |   |            |~~~~~~~~~~~~~~~~|
            |   |___0000_____| ADDRESS=0000   |
            |                |                | 奇数番地用
     D8-15  |________FF______| DATA=FF        | SRAM
            |                |                |
     UBEN   |________________| ENABLE         |
___________ |                |________________|


 次に 0002番地へのアクセスを考えると、偶数番地用メモリのアドレス
には 0002が入力される事になります。つまり、偶数番地用メモリの
0001番地にはアクセスできないことになります (0001が出力されるのは
0001番地へのバイト・アクセスのときだけであり、そのときに偶数番地用
メモリが選択されることは無いため)。このことから、メモリの容量の半分
しか使えない事になります。

V853
~~~~~~~~~~~~|                |~~~~~~~~~~~~~~~~|
     A0-16  |_______0002_____| ADDRESS=0002   |
            |   |            |                | 偶数番地用
     D0-7   |________00______| DATA=00        | SRAM
            |   |            |                |
     LBEN   |________________| ENABLE         |
            |   |            |________________|
            |   |
            |   |
            |   |            |~~~~~~~~~~~~~~~~|
            |   |___0002_____| ADDRESS=0002   |
            |                |                | 奇数番地用
     D8-15  |________FF______| DATA=FF        | SRAM
            |                |                |
     UBEN   |________________| ENABLE         |
___________ |                |________________|


 以上のような問題を避けるために、アプリケーション・ノートに記載され
たように V853の A0は使用せず、A1~をメモリの A0~に接続して使用
します。この結果 V853のメモリ・アドレスと各メモリの対応は以下の
ようになります。
 これで、ハーフワードでもバイトでも正しくアクセスでき、無駄も
無くなります。

  V853                  偶数番地用メモリ  奇数番地用メモリ
   00 ------------------------- 00
   01 ------------------------------------------00
   02 ------------------------- 01
   03 ------------------------------------------01
   04 ------------------------- 02
   05 ------------------------------------------02

適用製品
V853
他にご質問がございましたら、リクエストを送信してください