Propeller programming parallel flash chip
dr hydra
Posts: 212
in Propeller 1
Has anyone used a microchip parallel flash chip such as SST 39VF010? I’m looking to use one as a ROM device with my propeller chip. I’m reading the data sheet for information on programming the chip, however, the example only shows programming for one byte. Ex..load data AAH @ 5555H then load data 55H @2AAAH then load data A0H @ 5555H then load my data @ my address waiting for end of program..done.
I’m looking to program a buffer of 32K of data. Do I need to repeat all the load data steps for each data write or should the program loop after the three (setup) load data items and program each of my bytes then waiting for end of program? The data sheet also state “Before programming, the sector where the byte exists must be fully erased”. So I’m thinking the data would have to be programed in a buffer type loop, instead of one byte at a time; or it would fail writing multiply bytes in a sector
I’m looking to program a buffer of 32K of data. Do I need to repeat all the load data steps for each data write or should the program loop after the three (setup) load data items and program each of my bytes then waiting for end of program? The data sheet also state “Before programming, the sector where the byte exists must be fully erased”. So I’m thinking the data would have to be programed in a buffer type loop, instead of one byte at a time; or it would fail writing multiply bytes in a sector
Comments
They're 16 Mbit SPI serial flash (8 pin SOIC).
The second issue is related to the data# polling and toggle bit in the internal program operations of the memory chip. Byte programming is data AAH at 5555H--- data 55h at 2aaah ----data a0h at 5555h ----then data(your data) at address(your address)...seems simple...however, the next step Data# polling or toggle bit seems to reverse the data lines from receiving data to ouputting data. How does this effect the propeller pins. Will it cause damage to the propeller? Do you need to change the pins from output to inputs? Not sure how that works?
Conversely, with WRN & CEN low the memory is expecting Data-IN, so prop pins need to drive valid data at the time WRN is released to HI
It is common to place series R's of 220~470 R on general device programmers, to protect each side and that covers damaged/reversed memory parts too...
Your code could drive pins, then read-back to confirm a match, and signal an error if ever a miss-match occurs.
Some programmers also raise/lower Vcc when doing verify, to confirm margins, depends how complex you want this
If this is just to store data, rather than to program many parallel parts, why not use a SPI part instead ?
Thank you for the response...so if I understand correctly, the problem with a propeller pin receiving input information (3.3v) when set as output ports, is that the current draw could exceed the max mA, causing damage to the pin(s). Is that correct?? Therefore the series resistor will limit the current draw on the pins...keeping both the propeller and memory chip within a safe range on the mA draw. If that is true, I can include the resistors and I should be fine. Plus, I'm or already planning on using 3.3Ks on the data lines for the 5v issue with the memory chips.
PS...the parallal flash are need for speed...serial SPI would be too slow for the graphics on working on:) ALso, I'm stuck using 5v flash memory chips because I need DIP(s) and the only DIP flash memory chips I can find are 5v
Or maybe PLCC package, sockets on 0.1" ?