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.
I am designing an embedded system using the TMS320F28335 DSC. There is a synchronous FIFO SN74V245 in it to help pace the image capture. I plan to repeatedly read the FIFO via XINTF mapped to Zone 0 and store the data in the internal RAM until there is enough to process. The results of processing will be stored in the external RAM via XINTF mapped to Zone 6.
My question is, I cannot find any explanation on back-to-back read or write operations on the TMS320F28335 XINTF. Can I be sure that all read accesses terminate with the XRD signal going high (inactive), even during back-to-back read operations?
Max,
XRD is low during the active cycles and high during lead and trail cycles even for back-to-back accesses. At least 1 lead cycle is
required so XRD will be high during this time. You can add more lead and trail time as well if you need XRD to be high longer.
Regards,
Nicholas Smith
Hello,
Is the same true for the Chip Select? Will the Chip Select always be enabled at the beginning of Lead and disabled at th end of Trial even though I am reading continuously form the same chip?
Hi Rubaiat Ali,
In my design that is now working properly, the XZCS0 signal also goes inactive after the XRD signal goes inactive. I cannot verify, however, if this is due to the assembly language code that's running at the time of this operation. The following is called from the C language, presumably with the AL register loaded with the number of pixels to acquire, the AR4 register with the memory location where to start putting the pixels:
_acq_one_line:
push XAR5
push XAR6
push XAR3
movz AR6,AL
movl XAR5,#0x004000
_acq_one_line_loop_up:
movz AR3,*+XAR5[0]
mov *XAR4++,AR3
banz _acq_one_line_loop_up,AR6-- ; loop if AR6!=0, decrease AR6
pop XAR3
pop XAR6
pop XAR5
lretr
Hope this helps,
Max Burkhart
_acq_one_line:
.if 1 ; this works
push XAR5
push XAR6
push XAR3
movz AR6,AL
movl XAR5,#0x004000
_acq_one_line_loop_up:
movz AR3,*+XAR5[0]
mov *XAR4++,AR3
banz _acq_one_line_loop_up,AR6-- ; loop if AR6!=0, decrease AR6
pop XAR3
pop XAR6
pop XAR5
lretr
.endif