There are some minor updates in the final code. I have used different instructions for Read and Fastread commands in case of memories with size>=256Mb. This is to make sure that the memory address is always 32bit. This is explained in the article as well. The link is in the description.
In your videos you use delays to allow the W25Q Erase and Write instructions to complete. Is it not better to read the BUSY status until zero? Thank you so much for posting these videos.
If the numBLOCK is set to more than 512, the read/write doesn't work. I have W25Q01JV (1Gbit) so my numBLOCK is 2048. With this the RxData when monitored changes to 255 [0 to 19]. Doesn't show the correct data I sent.
@@ControllersTech I'm using the same function you provide in the video. Just moved it to main.c and removed the button pressed thing. I've tried writing different sizes. Issue persists. If I keep the numBLOCK to 512, the data in RxData changes, but to 255. If I write 5 bytes, then RxData[1...5] changes but to 255. Not what I attempted to write.
Can u contact me on telegram (link is in the description). I need to see the output. Also i just pushed an update to the write function in the part 4. Please download that to write the data.
if (No_Of_Blocks16)&0xFF; // MSB of the memory Address tdata[2] = (memAddr>>8)&0xFF; tdata[3] = (memAddr)&0xFF; // LSB of the memory Address } Dear sir can you please explain me that why you make an AND (&) operation with )0xFF with (memAddr>>16)
if you have time please make videos on Quectel mc60 modules . if you are going make videos on Quectel modules then please use try code only using that module. what i mean is do not use esp32 or any other microcontroller and send AT commands to the Quectel modules. there are are ZERO videos in youtube . i hope you will make videos on this rare modules.
There are some minor updates in the final code. I have used different instructions for Read and Fastread commands in case of memories with size>=256Mb. This is to make sure that the memory address is always 32bit. This is explained in the article as well. The link is in the description.
In your videos you use delays to allow the W25Q Erase and Write instructions to complete. Is it not better to read the BUSY status until zero? Thank you so much for posting these videos.
Yes it is and i have updated it in the lastest video.
Is FATFS operation possible on W25Qxx memory ?
Hello, I couldn't understand why we put offset.
Hello... how u stored the data “Hello world” at 2 different locations in the memory W25Q32? i browse thru your code its not there?
Its explained in part 4. This video focuses on reading the data from memory.
@@ControllersTech Then for this tutorial2 how u gonna see the RxData "Hello world" at Live Expression ??
@@ControllersTech do you suggest i should do part4 first then back to part2 so that to write the "Hello world" in the flash??
Sure. But part 4 uses this code to read and verify data. That is why this was written first.
Where did you write Hello world in your code ?
Described in the PART4.
Thank you for this tutorial.
what should I do for 64MB data is not gating tored "uint8_t RxData[512];"
If the numBLOCK is set to more than 512, the read/write doesn't work. I have W25Q01JV (1Gbit) so my numBLOCK is 2048. With this the RxData when monitored changes to 255 [0 to 19]. Doesn't show the correct data I sent.
It should work, there is no separate condition for 1gig memory.
How are you writing data ? And how many bytes are you writing?
@@ControllersTech I'm using the same function you provide in the video. Just moved it to main.c and removed the button pressed thing.
I've tried writing different sizes. Issue persists. If I keep the numBLOCK to 512, the data in RxData changes, but to 255. If I write 5 bytes, then RxData[1...5] changes but to 255. Not what I attempted to write.
Can u contact me on telegram (link is in the description). I need to see the output.
Also i just pushed an update to the write function in the part 4. Please download that to write the data.
@@ControllersTech I have posted the same query on your Discord today.
@abhijithekv ok check discord then.
I am trying to write in the memory but I am in eneble to do that
if (No_Of_Blocks16)&0xFF; // MSB of the memory Address
tdata[2] = (memAddr>>8)&0xFF;
tdata[3] = (memAddr)&0xFF; // LSB of the memory Address
}
Dear sir can you please explain me that why you make an AND (&) operation with )0xFF with (memAddr>>16)
if you have time please make videos on Quectel mc60 modules . if you are going make videos on Quectel modules then please use try code only using that module. what i mean is do not use esp32 or any other microcontroller and send AT commands to the Quectel modules. there are are ZERO videos in youtube . i hope you will make videos on this rare modules.