お世話になります。近藤です。
AKI-H8にもう1CH、RS232Cポートが必要になり
8251(NEC製 D8251AFC)を追加しましたが、はまってます。
回路は もともと128KBのSRAMを追加してあったので、
以下のようにしました
1.8251のD0-D7 → SRAMのD0-D7に接続
2.8251のC/Dは CPUはA0に接続
3.8251のRDは CPUのRDに
4.8251のWRは CPうのHWRに
5.8251のCSは CPUのCS2に
6.8251のDSRとDTR、 CTSとRTSはそれぞれ
接続
以上です。これでエリア2の偶数番地がdata、奇数番地が
コントロール、ステータスになっているはずと思います。
エリア2には、他のデバイスはマップされていません。
この状態で、CS2を有効にして、8251にアクセスしても
ステータス読むと常に0になってしまいます。
#define USART_C (*(volatile unsigned char *)0x40001) /* P1
Address*/
#define USART_D (*(volatile unsigned char *)0x40000) /* P1
Address*/
void main( void )
{
unsigned char c;
char text[10];
USART_C = 0;
USART_C = 0;
USART_C = 0;
USART_C = 0x40;
USART_C = 0x4e;
USART_C = 0x36;
c = USART_D;
sprintf(text, "Data = %d\n\r", c);
こんな感じのプログラムですが、textを表示すると
0になってしまいます。
CLOCKは供給されている事は確認できてます。
どなたか、フォローお願いします。