4 posts / 0 new
Last post
Jpelochino
Offline
Last seen: 3 years 9 months ago
Joined: 2015-03-04 05:49
Issues with External SPI Flash

I have a custom design PCBA that mimics the beacon reference design (exact same circuit). For reference, I am running from a primary lithium cell and bucking. However, I am using AT25XE011 as my external flash. The FW I am running is your DA14580_BEACON_3.40.6-> dialog_beacon_fh. The beacon does function, can boot from flash (and SmartSnippets can connect and erase/write/read external flash thru JTAG), and advertises.

However, I am experiencing an unexpected current flow and battery sag through the memory ic, which ultimately leads to a very short battery life and run time. I have isolated this down to the CS pin. When I attach an AT25XE011 to the WLCSP breakout board from the pro-kit, I get the exact same behavior. Looking at the CS pin with a scope, it does not stay high after the initial memory read on bootup, which I would expect (de-selected when not in use, pulled up or pushed up internal to the DA14580). I can add a pullup (used a 10k in testing) from the CS line to the battery power rail which removes the battery sag. However, the CS pin isn't pulled all the way to the battery rail (I'm seeing a ~0.75V differential with a battery voltage at ~2.9V), so there is current flow across the resistor and/or through the memory IC.

Can you provide any insight into the source of the problem? Are there GPIO settings for the CS pin that need to be adjusted? Does the AT25XE011 behave differently than the W25X10CL?

Thanks,
John

Device: 
BB_Dialog
Offline
Last seen: 2 months 1 week ago
Staff
Joined: 2013-12-05 14:44
Hi John,

Hi John,

we checked it:
both the AT25XE011 and W25X10CL use the same Power-Down command, and same CS pin logic (CS: High = Standby mode).

And our beacon software pulls the CS line (DA14580's P0_3) high after booting from the SPI flash.
No need to add or change GPIO settings.

Could you check the CS/P0_3 state of the DA14580 when the Flash is disconnected?

best regards, BB_Dialog.

 

Jpelochino
Offline
Last seen: 3 years 9 months ago
Joined: 2015-03-04 05:49
When the Flash is

When the Flash is disconnected, the CS/P0_3 toggles a bunch (when trying to boot from flash that isn't there I'm assuming) and then it goes low and stays low.

Have you connected AT25XE011 to your circuit to determine how it behaves?

Thanks,
John

Jpelochino
Offline
Last seen: 3 years 9 months ago
Joined: 2015-03-04 05:49
For others that might run

For others that might run into this issue, this is the response obtained from technical support which appears not to respond to question here in the forum.

RESPONSE: "This is a common issue. The following should help you resolve it.

The reason the Flash is adding so much extra current to the application is due to the floating chip select pin. Any IO pin on the DA14580 is Hi-Z after boot-up and must be set to an output high.

I ran our template sample application on a PRO Development board which allows me to monitor the current consumed by the Flash. Here are my observations:

· Running our template project from Flash unmodified, the Flash consumes 3.4mA (yes milliamp! – your battery will be drained in hours)

· If I simply change the code to hold chip select high after boot-up, the Flash consumes 8.4uA (Not too bad, but can be improved as you can see below)

· Adding the power down mode (writing 0xB9 to the Flash), the Flash consumes 0.3uA. The use of this feature requires a secondary bootloader placed in OTP!!! If you rely on the ROM bootloader, the Flash will only come out of power down mode on power cycle, so a reset while in this mode will brick your device until you power cycle the flash. A secondary bootloader will fix this issue.