NAND Configuration

Steve Tsai startec at ms11.hinet.net
Mon Aug 12 02:30:24 EDT 2002


> 
> On Sat, 2002-08-10 at 09:54, Steve Tsai wrote:
> > That's the fault of our board. We can not adujst a proper 
> chip_delay, 
> > so we add a circuit to check the ready bit and it does not 
> have these 
> > errors so far. Do you think chip_delay can be used with 
> NAND flash? I 
> > don't think it is good idea to use chip_delay.
> > 
> I'm pretty sure, that chip_delay is working. 
> 
> Cite from data sheet:
> '..Page Read... by writing 00h to the command register along 
> with three address cycles. ... The 528 bytes of data within 
> the selected page are transferred to the data registers in 
> _LESS_ than 10us(tR). The system controller _CAN_ detect the 
> completion of this data transfer(tR) by analyzing the output 
> of R/B pin. Once the data in a page is loaded into the 
> registers, they may be read out by sequential RE pulse of 
> 70ns/50n(K9F2808Q0B:70ns,
> K9F2808U0B:50ns) period cycle. High to low transitions of the 
> RE clock take out the data from the selected column address 
> up to the last column address. '
> 
> As tR is defined as a max value of x ms, it's safe to use it. 
> I tested this, when we started the work on JFFS2/NAND. I 
> could verify with the scope, that R/B high transition was 
> always within the specified time. 
> 
> For program and erase we use a different scheme. If we have 
> no access to the R/B pin, we read back the Status Register. 
> Bit 6 is a mirror of R/B pin.
> 
> 
> If increasing of chip_delay has no effect on your device, 
> could you verify all the other timing constraints ? AS you 
> use chipselects for WE and RE, are you sure that data hold 
> time (tdh) is guaranteed ? Usually tdh on a CPU is specified 
> from the rising egde of WE, which is earlier than the rising 
> egde of a CS.
> 
> Have you ever tried to set chip_delay to 1 ? Then you should 
> get a bunch of errors.
> 

We use udelay function here, but I found that ARM uClinux can not
provide a stable delay function. I write my own delay function and I
will not get errors. I will use ready bit , because it make the JFFS2
drivers faster.

Steve Tsai





More information about the linux-mtd mailing list