Hi all:
I have an board which nWBE(Write byte enable) connects nSBHE of cs8900a. It operates in 8 bit mode.Since cs8900a is in IO mode after resetting, I should read the relative internal register. But it seems that I cannot read the high byte. Datasheet of cs8900a says: it operates in 16-bit mode and it can be operates in 8 bit mode.But when I read the product identification., high 8 bits seems not to be read.
1)system data bus has been set as 8-bit mode:*(volatile unsigned char *)(BASE_ADDR + 0x300 + 0xA) = 0x00; val = *(volatile unsigned char *)(BASE_ADDR + 0x300 + 0xC); /* val should be 0x0e. It is right.*/
*(volatile unsigned char *)(BASE_ADDR + 0X300 + 0xA) = 0x01; val = *(volatile unsigned char *)(BASE_ADDR + 0x300 + 0xD); /* val should be 0x63. but it is 0x0E */2)system data bus has been set as 16-bit mode:
*(volatile unsigned short *)(BASE_ADDR + 0x300 + 0xA) = 0x0000; val = *(volatile unsigned short *)(BASE_ADDR + 0x300 + 0xC); /* val should be 0x630e.but it is 0xe10e */I have read the AN181, but it seems not to give any clues how to operate the internal registers in 8-bit mode in IO mode.
Anybody have an idea??
Thanks in advance.
Michael