This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

problem in interfacing external RAM

I am using P89LVRD2BN which has 768 XDATA RAM.I tried to extend my XDATA by providing external RAM through 74LS373 LATCH.
so when I am definig more XDATA variables,I am expecting the variables shuld automatically assignd the addresses in External RAM.
But these thing are not happening.
My settings are EXTRAM = 0 and AO = 0.(Reset Values)

Parents Reply Children
  • I am using HMNR1288D RAM.It has only one chip enable pin.

    Variable intialisation:

    xdata unsigned char cCommonBuf1[500],cCommonBuf2[30];
    char xdata text[1256] _at_ 0x0800; /* array at xdata 0xE000 */
    

    so totally 1756 bytes which exceed the internal 768 bytes in ON chip RAM

    sample code:
    case 1:
    	memset(text,'a',500);
    	text[490] = 0;
    	if(!strncmp(text,"aaa",3))
    		SendByte('s');
    	else
    		SendByte('f');
    
    In simu;ator,when I am making a dry run,I am able to send 's' in my serial port.

    case 2:
    	memset(text,'a',500);
    	text[490] = 0;
    	if(!strncmp(text,"aba",3))
    		SendByte('s');
    	else
    		SendByte('f');
    In simu;ator,when I am making a dry run,I am able to send 'f' in my serial port.

    But in Real time interfacing with RAM,it is always sending 'f' to my hyperterm.

    whta is the problem?

  • But in Real time interfacing with RAM,it is always sending 'f' to my hyperterm.

    whta is the problem?


    Almost certainly your hardware. Dig out your oscilloscope, and check that your chip enable is actually getting enabled, and that the address/data lines move as expected.