Author |
|
MicroBlocks Guru


Joined: 12 May 2012 Location: Thailand
Online Status: Offline Posts: 2196
|
Posted: 28 April 2016 at 2:07pm | IP Logged
|
|
|
Yeah those are a great find.
I was looking but somehow my google fu is letting me down a bit this week.
Not only a great space saver but also when placing it, it is much more easy and less time consuming. One placement instead of four.
My concern now is that i planned on those parts to be optional.
The memory chips are soic's so still not to difficult to add later. I am not sure about the resistor array, although it looks like the spacing is about 0.5mm which is not too bad.
edit: I did get those two extra resistor squeezed in, but now i am intrigued by those resistor arrays as they can be a real timesaver.
__________________ Microblocks. Build with logic.
|
Back to Top |
|
|
Grogster Guru


Joined: 31 December 2012 Location: New Zealand
Online Status: Offline Posts: 6455
|
Posted: 28 April 2016 at 3:27pm | IP Logged
|
|
|
@ matherp - If I wanted to use your code as a method to store my database for a system I have, but NOT use it as a logger per-se, can I just use the raw Cfunctions?
I don't care about wasted or unused space on any one page, and every single entry in the database would have it's own page. As the chip has 4096 pages, there are plenty of pages for my purposes without caring at all about wasted space on any one page.
So, essentially, just pagewriting and page reading to strings.
With that in mind, and if the answer to that is 'Yes', the other thing I want to know is that does the Cfunction 'Erasechip' format and write the indexes, or are the indexes handled by the rest of the BASIC code? I think it is the latter, based on a quick look.
I don't even need indexes, as the pages would be memory-mapped, and certain data would be stored on certain pages and would never change as far as addressing is concerned.
I am going to have a play with this tomorrow with any luck, but while I sleep, you might be able to answer if I can pervert your concept to use it like this or not.
__________________ Smoke makes things work. When the smoke gets out, it stops!
|
Back to Top |
|
|
piclover Senior Member

Joined: 14 June 2015 Location: France
Online Status: Offline Posts: 133
|
Posted: 28 April 2016 at 3:41pm | IP Logged
|
|
|
MicroBlocks wrote:
There is one hint in the datasheet:
WARNING: if the /WP or /HOLD pins are tied directly to the power supply or ground during standard SPI or DUAL SPI operation, the QE bit should never be set to a 1.
The QE bit stands for 'Quad Enable'.
If that bit is set then the /WP and /HOLD pin will be IO pins that can cause a short.
|
|
|
Nice find !... On the data sheet I found (http://www.farnell.com/datasheets/1674439.pdf), there is not even a "warning" word used (CTRL F + "warning" -> no result)... Plus, on page 12, figure 5 (block diagram), both W# (=WP) and H# (=HOLD) are clearly represented as inputs only, while DQ0/DQ1 are indeed represented as I/O...
Go figure !
|
Back to Top |
|
|
matherp Guru

Joined: 11 December 2012 Location: United Kingdom
Online Status: Offline Posts: 2634
|
Posted: 28 April 2016 at 4:02pm | IP Logged
|
|
|
Quote:
If I wanted to use your code as a method to store my database for a system I have, but NOT use it as a logger per-se, can I just use the raw Cfunctions? |
|
|
Yes: the usage should be obvious from the Basic code. You can use a string variable as the buffer but it must be length 255
Quote:
the other thing I want to know is that does the Cfunction 'Erasechip' format and write the indexes, or are the indexes handled by the rest of the BASIC code? I think it is the latter, based on a quick look. |
|
|
The latter, erasechip just erases and checks that the erase has worked (all bytes =&HFF)
|
Back to Top |
|
|
Zonker Guru


Joined: 18 August 2012 Location: United States
Online Status: Offline Posts: 703
|
Posted: 28 April 2016 at 10:16pm | IP Logged
|
|
|
Is there a way to use these chips to store pictures of other types of data that could be used as resource data for the LCD displays..?
|
Back to Top |
|
|
Grogster Guru


Joined: 31 December 2012 Location: New Zealand
Online Status: Offline Posts: 6455
|
Posted: 29 April 2016 at 1:51am | IP Logged
|
|
|
@ matherp - Great, thanks. I hope to get a chip wired up this weekend and play about with it.
__________________ Smoke makes things work. When the smoke gets out, it stops!
|
Back to Top |
|
|
Grogster Guru


Joined: 31 December 2012 Location: New Zealand
Online Status: Offline Posts: 6455
|
Posted: 29 April 2016 at 12:56pm | IP Logged
|
|
|
I can't get the test code(matherp's MM+ code) to respond past this point:
You have to press hardware-reset to recover - CTRL+C does not work.
My instinct is telling me that the JDEC ID being FFFFFF means perhaps no response from the SPI chip?
EDIT: Also, this chip(W25Q80BV) should be getting ID'd as 8Mbit, not 16Mbit....
CS pin is correct - 14 in this case, and yes, changed line 4 to reflect that.
I have fitted a chip to a 5" LCD module, in the spare footprint, and connected F_CS to pin14 of the MM+.
The problem might be that F_CS is connected to 3v3 at the moment, so I knew that pulling CS low would short out the power supply via the MM when pin14 goes low, so I have a 4k7 in series with pin14. However, this is probably where the root of my problem is, yes?
The MM+ cannot pull the CS line low enough, with a direct connection to 3v3 on the CS pin, and 4k7 to pin14 on the MM+, correct?
F_CS is on an internal layer of the controller PCB which is four-layer, so cutting the direct connection to 3v3 on F_CS is difficult - hence the 4k7 in the pin14 side of things, but I think this is making the SPI chip deaf as a post to the MM+ trying to pull CS low, personally.
Any comments, suggestions, confirmation of my thoughts etc welcomed.
Edited by Grogster on 29 April 2016 at 12:58pm
__________________ Smoke makes things work. When the smoke gets out, it stops!
|
Back to Top |
|
|
matherp Guru

Joined: 11 December 2012 Location: United Kingdom
Online Status: Offline Posts: 2634
|
Posted: 29 April 2016 at 2:49pm | IP Logged
|
|
|
Quote:
The problem might be that F_CS is connected to 3v3 at the moment |
|
|
????? Not on any display I've tried (3.2", 4.3", 5", 7")
|
Back to Top |
|
|
Grogster Guru


Joined: 31 December 2012 Location: New Zealand
Online Status: Offline Posts: 6455
|
Posted: 29 April 2016 at 3:45pm | IP Logged
|
|
|
Sorry if my post was confusing. The controller board that the LCD plugs into, is a four-layer board, and one of the internal layers of that board, connect F_CS to 3v3.
I have run out of brain-power tonight, as it is 3:45AM, but tomorrow, I will hook up an Explore64 module to the LCD with jumper wires, which will allow me to get access to the SPI memory chip without the other controller board with the internal layer connection, which I am pretty sure must be what is stuffing things up.
I was just hoping to use a board I already had made, but that is not going to be the case. No biggie - will post another update tomorrow.
__________________ Smoke makes things work. When the smoke gets out, it stops!
|
Back to Top |
|
|
MicroBlocks Guru


Joined: 12 May 2012 Location: Thailand
Online Status: Offline Posts: 2196
|
Posted: 29 April 2016 at 4:57pm | IP Logged
|
|
|
Could you maybe unsolder the CS pin and bent it up slightly so that it does not connect to the pcb anymore and a wire directly to the uMite pin?
Maybe put some foil under the pin to prevent contact?
A 'hack' but easy enough to try.
__________________ Microblocks. Build with logic.
|
Back to Top |
|
|
panky Guru


Joined: 02 October 2012 Location: Australia
Online Status: Offline Posts: 600
|
Posted: 30 April 2016 at 3:23am | IP Logged
|
|
|
G,
If the CS pin is tied directly to 3.3V then a 4k7 resistor to the MM pin won't be any good whatsoever as all you will do is drop 3.3V across the resistor when the MM pulls the line low - CS will still have 3.3V on it!
panky
__________________ ... all the Maximites, almost all of the MicromMites, all the MM Extremes, all the ArmMites, and loving it!
|
Back to Top |
|
|
Grogster Guru


Joined: 31 December 2012 Location: New Zealand
Online Status: Offline Posts: 6455
|
Posted: 30 April 2016 at 7:29am | IP Logged
|
|
|
Yeah, pretty much what I was thinking too.
No matter WHAT you do, with CS tied directly high, you can't ever pull it low enough to make it respond, so it stays deaf to commands forever.
I hope to do a quick wire-up without the 4-layer board tonight.
Just the LCD module, and wired to an Explore64 module.
__________________ Smoke makes things work. When the smoke gets out, it stops!
|
Back to Top |
|
|