Kintesis QuadSPI Transmit Buffer does not transmits more 0x10 words to the attached N25Q256A

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Kintesis QuadSPI Transmit Buffer does not transmits more 0x10 words to the attached N25Q256A

跳至解决方案
1,288 次查看
bvsrkrishnarao
Contributor II

I am working on the TWR-POS-K81, with a on board N25q256A, when trying to program the NOR flash, QuadSPI block in the K82F doesn't transmit anything more than 0x10 words

the TBDR register seems to accepts only 0x10 words (64bytes) of data and freezes and loops waiting for QuadSPI_SR:TXFULL is always '1'to clear, The QuapSPI_BSR:TRCTR shows 0x20 and QuadSPI_TBSR:TRBFL - 0x10, the QuadSPI_SR:TXFULL is always '1'.

Trying to clear and check QuadSPI_FR:TBFF as per the document doesn't seem to help.

The LUT instruction programmed is

[16] = 0x08180432,  (0x32 is QUAD INPUT FAST PROGRAM)  I am running Extended-SPI mode

[17] = 0x22FF,

Any insights and help is most welcome

Thanks

Krishna

0 项奖励
回复
1 解答
1,205 次查看
bvsrkrishnarao
Contributor II

I could solve the issue, by putting in some delay at each read of the QuadSPI_SR::TXFULL

Here is code snippet

while(QuadSPI_BRD_SR_TXFULL(base)){for (volatile uint32_t i=0; i < 100; i++) __ASM("nop");}

Earlier the driver would just loop if the TXFULL flag was set, while writing into TBDR register, just putting the delay seemed to have solved the issue.

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,206 次查看
bvsrkrishnarao
Contributor II

I could solve the issue, by putting in some delay at each read of the QuadSPI_SR::TXFULL

Here is code snippet

while(QuadSPI_BRD_SR_TXFULL(base)){for (volatile uint32_t i=0; i < 100; i++) __ASM("nop");}

Earlier the driver would just loop if the TXFULL flag was set, while writing into TBDR register, just putting the delay seemed to have solved the issue.

0 项奖励
回复
1,205 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi Krishna,

Thank you for the share info.

Hope your answer could help other customers.

best regards,

Ma Hui

0 项奖励
回复