Additional PSRAM ID that works plus goodies

Ah, OK, I begin to see the light o_O This is where the poor orphaned
Code:
static const uint32_t flashBaseAddr = 0x00800000;
starts to make sense. It ought to have been set (maybe from FLSHA1CR0) and then used throughout the LittleFS code, not a bunch of magic 0x00800000 numbers.

So @xxxajkdo you have any plans to test the larger parts?
Yeah I DO plan on getting and testing the 16MB part. Will be nice I suppose to have 16MB RAM *AND* flash at the same time.
 
I think the part number is IS66WVS16M8FBLL-104NLI - but I can't find anyone who has stock, including ISSI themselves. Datasheet at https://www.issi.com/WW/pdf/66-67WVS16M8FALL-BLL.pdf ; it's a 128Mb/16MB part, so that confusion isn't the case, for once...

Agree .. supporting vapourware chips is definitely NOT sensible :)
It's available as the ALL part I believe, which (while it violates voltages) should work just like the 8MB part did, hopefully. If it smokes, I'm only out a few dollars...
There's also other PSRAM vendors as well... I just haven't looked around yet. An adapter should be totally doable as well...
 
Ah, now I see "if one wanted to try to use two 32MB" probably means 32 Mbit, which is actually 4 Mbyte. Or maybe I've misunderstood?

But I also see a lot of talk about the 8 Mbyte constants as a problem....

So please allow me to ask again, where can I buy any of these chips with more than 8 Mbyte size? I tried a search at Mouser (the only distributor I could find with stock) and only came up with the 4 Mbyte and 8 Mbyte sizes. Did I miss something?

I want to be clear that I will only consider changing Teensy startup code and linker script published by PJRC to accommodate larger chips when they are actually available on the market. I don't care about bit patterns are defined in "Table 6.2 ID Register" for chips that aren't available to buy. Until the chip larger than 8 Mbyte actually can be purchased, I'm considering all this discussion of supporting larger memory a "what if" conversation about future parts (that don't actually exist today).
No, 32mBYTE is correct. The interface can support up to 512MBytes total as-per the data sheet.
All depends on what's out there, and what is adaptable, e.g. there's BGA variants that could be adapted on a thin adapter board.
 
APS12804O-SQRH-SN is an option... everything it seems is dropping to 1.8v these days... ugh.
 
…so it’s not an option. Running it at 3.3V will destroy it. The Absolute Maximum specs are in the datasheet for a reason :)
 
Actually, possible, with adapting it. Give chip 1.8v, and use zener+resistors to clamp i/o ;-)
No...
1747594284066.png


1747594576441.png


The need for a ~375R series resistor for every Teensy output signal, to limit the current to 4mA, might not be a showstopper. But the Teensy's minimum VIH is 0.7x3.3V=2.31V, way above the nominal output voltage of 1.8V from the PSRAM (as the datasheet shows, it could actually be as low as 0.8x1.8V=1.44V, but that's fairly unlikely. Probably.)

Maybe it would be just about possible to hack something together with a 1.8V regulator and some level shifters, though they'd have to be pretty good to work at 88MHz, but I remain unconvinced it's worth the effort. Seems to be a fairly new part, with the Rev A datasheet being January this year, so perhaps the 3.3V part will eventually make its appearance.
 
That's where you use a bidirectional transceiver IC that does dual voltage and doesn't require the DIR pin.
I've done something similar with optoisolators to achieve the same effect for 3.3v <--> 5v single-wire interfaces manually.
The other way to get it to work is by using diodes that are reverse-biased, but I never tried this bidirectionally. DTL logic is quite ancient, and nothing new. Basically turns the signal into open collector, and only needs a pull-up, but again, there are already single chip solutions for this that can do 1.2 <--> 5v to 1.2 <-->5v without any need to indicate direction.

For example:
Screenshot_20250521_224120.png
 
I've got hold of a few IS66WVS16M8FBLL chips (3.3V 16MByte), and have managed to get the cores to initialise them correctly. Two of them show up as 32MB, and the standard PSRAM test passes. I don't have a lot of Teensy 4.1s knocking about, so the current setup will need to be torn down to test 16+8MB, and 16+Flash. I have not yet looked at fixing LittleFS to play nicely, but I'm hopeful that the previous wisdom in this thread will set me on the right path!

Code changes can be found here. It'll become a PR as and when I've done more testing, and have a candidate LittleFS update to go with it. Currently it only accepts 8MB and 16MB parts, but could readily be changed to accommodate a wider range of manufacturters and sizes.

Key changes are:
  • detect and size PSRAM on both sets of pads
  • update FLEXSPI2 registers accordingly, if the size is not 8MB
  • FLEXSPI2 region size increased to 32MB (that caused me some head-scratching for a while...)
  • Linker file updated to make ERAM region 32MB
 
That's cool! Where did you buy the IS66WVS16M8FBLL chips?
Thanks - I'm quite pleased myself!

Unfortunately there's still nowhere one can buy the IS66WVS16M8FBLL - they're still only showing as "sampling" on the ISSI site. Hard to say when distributors might have stock; the datasheet is Rev A January 2025, so maybe they're waiting for a huge corporate order? I really have no idea hoiw the semiconductor industry works...
 
Thanks - I'm quite pleased myself!

Unfortunately there's still nowhere one can buy the IS66WVS16M8FBLL - they're still only showing as "sampling" on the ISSI site. Hard to say when distributors might have stock; the datasheet is Rev A January 2025, so maybe they're waiting for a huge corporate order? I really have no idea hoiw the semiconductor industry works...
Have none yet myself. The code to operate these are based on the datasheet.

Been also looking into using 8bit wide PSRAM via an adapter... Hmmmm :)
 
I've got hold of a few IS66WVS16M8FBLL chips (3.3V 16MByte), and have managed to get the cores to initialise them correctly. Two of them show up as 32MB, and the standard PSRAM test passes. I don't have a lot of Teensy 4.1s knocking about, so the current setup will need to be torn down to test 16+8MB, and 16+Flash. I have not yet looked at fixing LittleFS to play nicely, but I'm hopeful that the previous wisdom in this thread will set me on the right path!

Code changes can be found here. It'll become a PR as and when I've done more testing, and have a candidate LittleFS update to go with it. Currently it only accepts 8MB and 16MB parts, but could readily be changed to accommodate a wider range of manufacturters and sizes.

Key changes are:
  • detect and size PSRAM on both sets of pads
  • update FLEXSPI2 registers accordingly, if the size is not 8MB
  • FLEXSPI2 region size increased to 32MB (that caused me some head-scratching for a while...)
  • Linker file updated to make ERAM region 32MB
Fantastic!!!
So basically it works??
 
@h4yn0nnym0u5e

Quick question - with this chip was there hardware changes you had to make to get it working?
Nope, it’s a 3.3V part, same footprint as the standard 8MB PSRAM, and a glance through the FlexSPI commands used vs. the datasheets suggested nothing needed changing apart from allowing the new chip ID and detecting its size (shamelessly cribbed from @xxxajk’s posts and code…).

So I “just” worked my way through the various software changes needed and viola, a stringed instrument … no, wait … voila, a Teensy with 32MB of PSRAM.
 
Thanks - I'm quite pleased myself!

Unfortunately there's still nowhere one can buy the IS66WVS16M8FBLL - they're still only showing as "sampling" on the ISSI site. Hard to say when distributors might have stock; the datasheet is Rev A January 2025, so maybe they're waiting for a huge corporate order? I really have no idea hoiw the semiconductor industry works...
I found these stockists using Google:
z.png
 
None of the parts on your list appears to be the IS66WVS16M8FBLL. Most web searches seem quite happy to give you some vaguely-related part if there isn't an exact match, unfortunately.
 
Perhaps someone should alert Spark Fun about the availability/opportunity.
Certainly they'd have some ability to order quantity with enough buying power.
 
The SOIC 16MB parts aren't in stock anywhere but you can get the BGA version. Since the software changes look to be minor, I sent a note to ISSI to see what the deal on availability is as a larger PSRAM option would be a nice upgrade for Teensy. I'll post here if I hear back.

Have you by chance tested these at the higher 133MHz rate?
 
Last edited:
Perhaps someone should alert Spark Fun about the availability/opportunity.
Certainly they'd have some ability to order quantity with enough buying power.
Perhaps, but I fear their buying power would be measured in tens of thousands per annum at best, and ISSI probably wouldn't be interested in spinning up the fab lines for fewer than a million. I'd love to be wrong about that, and they must have had some reason to develop the part in the first place ... maybe their customer hasn't placed the first big order yet?

The SOIC 16MB parts aren't in stock anywhere but you can get the BGA version.
Can you point me to the web page or PDF datasheet for "the BGA version"? Looking at this page, and filtering for 128MB 3.3V parts, some BGA devices show up, but they're 24-pin ones with a completely different interface.

Have you by chance tested these at the higher 133MHz rate?
Nope. I'm a crusty old fart who believes datasheets when they say 104MHz is the maximum clock rate.
 
The BGAs use a different interface since they have more pins available, but I am "guessing" that they are probably using the same die which gives me some hope that the SOIC-8 parts may not be far behind if it is simply a matter of repackaging the die. Having said that, I also have friends in the IC business that said that getting the dies packaged is actually the hardest part of the whole process of getting chips to market.

On the max clock rate, its good to push the boundaries to see how much overhead there is in the design even if its not used plus Teensy is only running at 88Mhz, so leaving quite a bit on the table. Next thing you know you are going to tell me I can't run the ST7796 faster than 16MHz ;~)

Here is the code snippet to save you the time searching for it... just in case.
Code:
/Reset clock to 132 Mhz. 
      CCM_CCGR7 |= CCM_CCGR7_FLEXSPI2(CCM_CCGR_OFF);
      CCM_CBCMR = (CCM_CBCMR & ~(CCM_CBCMR_FLEXSPI2_PODF_MASK | CCM_CBCMR_FLEXSPI2_CLK_SEL_MASK))
          | CCM_CBCMR_FLEXSPI2_PODF(4) | CCM_CBCMR_FLEXSPI2_CLK_SEL(2); // 528/5 = 132 MHz
      CCM_CCGR7 |= CCM_CCGR7_FLEXSPI2(CCM_CCGR_ON);
 
Back
Top