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
  • 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?

Reply
  • 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?

Children