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.
Hello,
I’ve got about the emif being set to 16-bit databus mode instead of 32-bit mode. For the 16-bit mode if I write to a 16-bit word at an address offset in say chip select 4 such as 0x2000 – then on the physical emif address lines of the Delfino I am expecting to see 0x2000.
And if I write to address offset 0x2001 I will also see 0x2001 on the emif address pins of the Delfino. Am I correct in my assumption?
Additionally, I have the Delfino connected to an fpga. I’ve connected the full 32-bit databus of the emif and the 19-bit emif address bus of the Delfino to the fpga. In 16-bit mode, when I do a write of a register (16-bit) in the fpga over the emif will the emif databus bits[31:16] be equal to 0’s? And when I do a read of the same register in the fpga, is it okay to drive the same bits[31:16] with 0’s and have the 16-bit data be driven on bits[15:0]?
Hi,
EMIF address bus (A[x:0]) is 32bit aligned. For 16bit mode, BA1 acts as LSB of address hence you will see correct address on A[x:0, BA1].
Please refer "Figure 25-9. EMIF to 8-bit/16-bit Memory Interface" of device TRM.
Additionally, I have the Delfino connected to an fpga. I’ve connected the full 32-bit databus of the emif and the 19-bit emif address bus of the Delfino to the fpga. In 16-bit mode, when I do a write of a register (16-bit) in the fpga over the emif will the emif databus bits[31:16] be equal to 0’s?
Value on data bus [31:16] does not matter because byte enables will not be active for upper 16bits. You need to connect the byte enables correctly.
And when I do a read of the same register in the fpga, is it okay to drive the same bits[31:16] with 0’s and have the 16-bit data be driven on bits[15:0]?
Again, value on data bus [31:16] does not matter. EMIF will ignore that value because it's 16bit READ hence you don't have to force 0x0 on [31:16].
Regards,
Vivek Singh
Regards,
Vivek Singh
Our DSP software has the following settings for both async read and write:
(0/8/1). ->
Setup time = 1 emif clk
Strobe time = 9 emif clks
Hold time = 2 emif clks
Then, per figure 25-11 is the Delfino expecting the data to be valid on the third clk cycle of the strobe period?
Or is it expecting the read data to be valid on the 8th clock cycle of the strobe duration just before the EM1OE_n goes inactive?
And am I correct in assuming that for our settings I don’t have to use the emif wait signal, em1wait? Can I just extend the strobe time to allow for any delay that the peripheral chip will have in driving the read data on the emif databus?
Hi,
The number of cycles for each setting is configuration value + 1. If you have configured 2 for hold value then it'll be 3 cycle. Minimum hold is 1 cycle (programmed value 0) which is independent of strobe value.
And am I correct in assuming that for our settings I don’t have to use the emif wait signal, em1wait? Can I just extend the strobe time to allow for any delay that the peripheral chip will have in driving the read data on the emif databus?
You are right. Wait signal should be used if sometime data is available early and some time late. If it is fix delay then increasing the strobe value is good.
Regards,
Vivek Singh
I think there’s a misunderstanding in what I’m asking. I understand about the +1 in the config reg.
The item I’m not sure about is if the Delfino is expecting the read data to be valid 3 emif clock cycles after the falling edge of the em1oe_n signal.