Category:Flash
Knowlege
- 绝大多数的单片机和微控制器(ARM,x86),地址空间都是以字节为单位的,也就是说一个地址是一个字节。
- Flash存储器有个特点,就是只能写0,不能写1。所以如果原来的地址有数据了,意味着有一些位为0,这些位就相当于无效了。所以必须写之前确保他们都为1,只有擦除才可以。另外每次擦除都必须擦除一个4K大小的扇区,这是flash的特性所决定的。
- 对Flash操作前必需打开内部振荡器。
STM32 Code
Read, notice address should be 0x08006900 ... 0x08006910 ... 0x08006920
uint8_t dat1 = *(__IO uint32_t *)(0x08006900); uint8_t dat2 = *(__IO uint32_t *)(0x08006910); uint8_t dat3 = *(__IO uint32_t *)(0x08006920);
SPI Flash
- SST - SST25VF016B-50-4C-S2AF
- Winbond - W25Q64FVSSIG
- Simple wiring
D13, D12, D11, D10 of arduino to SPI flash - CLK, DO, DI and CS, 3V3 arduino to 3v3, wp, hold, and GND of arduino to GND
- Data need to be erased before write again.
- flash winbond W25Q SPI Flash
Programming
Programming by CH341
- Use tool CH341 Programmer from github, download below
- wiring please refer to page Flash#Pin_Wiring, use CE0 for this board
- Switch board power supply to 3V3, and MODE to others
- press "detect" in tools and you should see like this.
(Obsolete) Update on-board SPI-Flash
Here is an example of our MT7688AN board, flash uboot or firmware
- No need to connect anymore, use programmer power supply
- Connect pin VDD, MOSI, CLK, MISO, CS, GND
- Detect on board SPI Flash size 16Mb, which is W25Q128FVSSIG
- Upload you file, uboot or firmware
Pages in category "Flash"
The following 5 pages are in this category, out of 5 total.