Hi,
I'm using 16bit adress device.
But I don't konw pin connection.
C6747 device have EMIFA_A[12:0] interface.
How Can I use EMIFA for 16bit address device.
Pleas, inform me.
Brady.
Thanks & Regards.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I'm using 16bit adress device.
But I don't konw pin connection.
C6747 device have EMIFA_A[12:0] interface.
How Can I use EMIFA for 16bit address device.
Pleas, inform me.
Brady.
Thanks & Regards.
Hi Brady,
What is the device you are trying to use?
Please refer to the TRM of C6747 http://www.ti.com/lit/ug/spruh91b/spruh91b.pdf which states the pin descriptions of EMIFA_A.
Assuming, If your device is an SDRAM, please refer to section 18.2.4.2 which deals about interfacing the column and row address bits of SDRAM.
In the data sheet,http://www.ti.com/lit/ds/symlink/tms320c6747.pdf, it illustrates EMIFA connection examples which may help you better ( "C6745/6747 Connection Diagram: SDRAM, NOR, NAND" )
regards,
Shankari.
--------------------------------------------------------------------------------------------------------
Please click the Verify Answer button on this post if it answers your question.
--------------------------------------------------------------------------------------------------------
Hi Norman,
I want to know detail connection.
BA[1:0] -> A[1:0], EMA_A[12:0] -> A[14:2]
Is it right?
Please, inform me
Brady
Thanks&Regards
The figure describes the connection accurately. Please elaborate as to what you do not understand. I'll repeat the diagram with soem C code.
For an 8-bit data device:
DSP A[14] -> EMA_A[12] -> 8-bit Device A[14]
...
DSP A[2] -> EMA_A[0] -> 8-bit Device A[2]
DSP A[1] -> BA[1] -> 8-bit Device A[1]
DSP A[0] -> BA[0] -> 8-bit Device A[0]
char x0;
char x1;
p = (char *)0x60000000; // CS2
x0 = *p++; // dsp addr = 0x60000000, dev addr = 0x0000
x1 = *p++; // dsp addr = 0x60000001, dev addr = 0x0001
For a 16-bit data device:
DSP A[14] -> EMA_A[12] -> 16-bit Device A[13]
...
DSP A[2] -> EMA_A[0] -> 16-bit Device A[1]
DSP A[1] -> BA[1] -> 16-bit Device A[0]
DSP A[0] -> BA[0] -> Not used
short x0;
short x1;
p = (short *)0x60000000; // CS2
x0 = *p++; // dsp addr = 0x60000000, dev addr = 0x0000
x1 = *p++; // dsp addr = 0x60000002, dev addr = 0x0001
I would guess that your assumption is correct. That is for 16-bit devices EMA_B[0] is remapped to EMA_A[13]. The TRM appears to use C6748 limits of 23 address lines. I did not know of this feature. I have never used it and cannot comment on it. I am surprised that your device (16-bit data bus) has an A[0] pin. Unless it can handle 8-bit data as well. Terms are confusing here. TI docs uses A[0] as least significant 16-bit word in a 16-bit device. Your diagram uses A[0] as least significant 8-bit byte.
Thanks for your reply.
Can you provide example sw?
Please, inform me.
Thanks & Regards.
I want to use address 0x6000-0000 ~ 0x6000-ffff.
I want to know appropriate solutions.
Can you provide solution?
Thanks & Regards.
Sorry, I don't understand what you are asking. An appropriate solution requires a clearly stated problem. For 0x60000000 ~ 0x6000FFFF, that would be CS2. You will need connect CS2 to your device. Follow the TRM to configure EMIFA CS2.
Thanks for reply.
I need detail information that register setting to change EMA_A[13] from EMA_BA[0].
I want detail information that included address and value.
I can't find related information to TRM document.
Thanks & Regards.
I am guessing that once you choose 16-bit data mode, EMA_A[13] automatically becomes EMA_BA[0]. EMIFA CS2 is configured through CE2CFG. You will also need to setup the PINMUX for EMIAF. You might have enable the EMIFA module in PSC. Are you using an OS? Base metal? StarterWare?