- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have a problem with programming NVRAM on BCM920737TAG. I have tried every solution taht is available on this forum, but none solved my problem.
Here is the problem:
After i program board board (SW4 set to 1,2,3,4 are ON, 5,6,7,8 are OFF) with SDK NVRAM works ok. It remembers state correctly. Without pluging out USB i can set SW4 to all 8 switches to OFF and reset board and NVRAM sill work correctly – it remembers state when i reset board.
The problem starts when i plug out USB and plug in it again – NVRAM remember last state that was written before pluging out USB .
Could you help me to make NVRAM remember written data despite plugging out usb after programming device?
My Configuration:
My BCM920737TAG board is configured to use SFLASH (resistors are configured configured and BCM920737TAG_Q32.mk has set PLATFORM_NV ?= SFLASH). Board has Vout set to 3.3V. SW2 set to VUSB, SW3 set to VREG.
GPIO is configured as:
#define GPIO_PIN_WP 1
#define GPIO_SETTINGS_WP (GPIO_OUTPUT | GPIO_INIT_LOW | GPIO_WP)
const BLE_PROFILE_GPIO_CFG wiced_sense_gpio_cfg =
{
/*.gpio_pin =*/
{
GPIO_PIN_WP,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
/*.gpio_flag =*/
{
GPIO_SETTINGS_WP,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}
};
And bleprofile_WriteNVRAM(); bleprofile_Read NVRAM(); are used after bleprofile_GPIOInit(bleprofile_gpio_p_cfg); I even use bleprofile_WPEnable(0);.
Wiadomość była edytowana przez: Łukasz Tymczyna
Solved! Go to Solution.
- Labels:
-
FlashEEPROM
-
GPIO
-
SDK 2.X
-
WICED Sense
- Tags:
- bcm920737tag
- nvram
- sfalsh
- sflash tag3
- tag3 nvram options
- tag3 serial flash
- usb
- using serial flash tag3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you check your logic level voltages between the BCM and your NVRAM? I have found that the BCM logic levels can change when the USB voltage is removed from UART RX. I found in my setup that the logic levels were fine between my BCM and my external ADC... until I removed the USB and tried to run on battery and voltage regulator. Then the logic level high was too low. (dropped by .2 volts when I disconnect UART_RX from USB).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is the anomaly that ehoffman is describing: GPIO Output Logic Level Voltage Changes When UART_RX Disconnected
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please correct my if I am wrong. My BCM is configured to use SFLASH, so NVRAM should be located in SFLASH. I have measured VCC and WP on MX25U4035MI-25G and they are always both 3.31 V (board is configured to 3,3, so it is good value).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
All the variations of SW4 are not tested or documented anywhere, so let's back up and verify that a simpler configuration works.
Using the WICED Smart Quick Start Guide (SDK 2.x and TAG3 Board) as a reference:
1.
To program the TAG3 board with your PC connected via USB cable while using the NVRAM/EEPROM on the board (default configuration), you need the following configuration:
- Each of the eight DIP switches on the mini-switch SW4 set to ON.
- SW2 should be in the VUSB position (up) and SW3 should be in the VREG position (down)
This should work and no errors should be returned within the SDK during the process of programming the board.
2.
Now proceed to remove the USB cable, and run the unit off the CR2032 battery (make sure the voltage of the battery is correct and that it does not need to be replaced - see the other posts in this discussion as they demonstrate what happens when this occurs).
- Disconnect the tag from the PC USB interface
- Set the position of both switches (SW2/SW3) on the right side of the board to the VCOIN position
- The switches should now be set to the opposite positions of that used for programming.
- Install a CR2032 coin cell in the battery holder on the bottom of the tag and ensure that the battery polarity is correct.
The board should now be powered by the battery and your application running.
At this point, are you seeing the same state information being lost?
It's my understanding that in order to now use the external SFLASH vs EEPROM, there are some Resistor Settings you need to make that are defined in Table 2 of the Hardware User Guide (SDK 2.x and TAG3 Board)
Along with some undocumented changes to the Make File Settings and SW4 that are described here: Re: Change BCW920737TAG from EEPROM to SFLASH failed
Based on your settings described above, it sounds like you may already be using this thread for configuration.
This is a tricky item to get working on the TAG3 board, but I believe others have done so: zhaohua ewarrior yusun@broadcom.com dmiya janusw
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is no difference when i change switches to power board from battery. NVRAM remember last state from session when i programmed device and haven't pluged out usb.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I will try to ask around internally and see if I can find someone with experience running the board off the serial flash.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Lukasz,
We cannot reproduce this issue, sorry.
Thanks,
JT
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
My suggestion:
1. check the power swicth SW2 and SW3 whether is correct?
2. check the return value of bleprofile_WriteNVRAM whether is OK?