STM32F4 SRAM data lost - backup

I use backup SRAM and RTC in STM32F407. I have a diode between VDD and VBAT and 2.2u capacitors connected to VCAP_1 and VCAP_2. 3v CR1220 battery is connected to VBAT. Now the issue is that I sometimes lose SRAM data and RTC settings when VDD power is off and battery voltage is above 3V. If the voltage is under 3V the issue cannot be reproduced.
My init code
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_RCC_BKPSRAM_CLK_ENABLE(); // additional code for Backup RAM enable
HAL_PWR_EnableBkUpAccess(); // additional code for Backup RAM enable
HAL_PWREx_EnableBkUpReg(); // additional code for Backup RAM enable
HAL_PWR_DisableBkUpAccess();
Reading from SRAM
HAL_PWR_EnableBkUpAccess();
BKPSRAM_Read16(add);
HAL_PWR_DisableBkUpAccess();
Is there any explanation for this? Is anything else I can check or measure?

Related

How to code ADAfruit Clue to store sensor data in the Flash memory or RAM?

Using ADAfruit clue and coding it via the Arduino IDE to run and print Acceleration readings using the Accel+Gyro sensors we have in the ADAfruit Clue board.
We can print the instantaneous acceleration readings on the Clue screen and also on the Serial monitor.
What if we want to store the readings of 30s in the Flash/RAM memory?
What if we want to run the program if there is an external command given and stop the program after 30 seconds of running it?
A few more questions related to storage of data are as follows:
Should we use Flash memory or RAM to store data? why?
Will (1MB or 256kB) be it be able to record and store 30 seconds data?
How to export the stored data to another device?

WebRTC probing drops down transfer bit rate

I am currently using Webrtc to stream a game. It's a custom WebRTC implementation inside the game engine.
Both the client and the server easily support 100+ Mbps upload speed. Currently, i have locked the max bitrate to 80 Mbps, which is supported.
The issue happens when the webrtc probes for the connection speed, it drops down to 7-8 mbps then it slowly goes back up to 80mbps.
Which drops again when a webrtc-probing happens.
I have linked a video below of the issue.
https://drive.google.com/file/d/1coI3rrGVf4OAFnt2oeSCx0zFJznvfyQv/view?usp=sharing
What could the issue be and is there any solution to fix it?

Behaviour of redis client-output-buffer-limit during resynchronization

I'm assuming that during replica resynchronisation (full or partial), the master will attempt to send data as fast as possible to the replica. Wouldn't this mean the replica output buffer on the master would rapidly fill up since the speed the master can write is likely to be faster than the throughput of the network? If I have client-output-buffer-limit set for replicas, wouldn't the master end up closing the connection before the resynchronisation can complete?
Yes, Redis Master will close the connection and the synchronization will be started from beginning again. But, please find some details below:
Do you need to touch this configuration parameter and what is the purpose/benefit/cost of it?
There is a zero (almost) chance it will happen with default configuration and pretty much moderate modern hardware.
"By default normal clients are not limited because they don't receive data
without asking (in a push way), but just after a request, so only asynchronous clients may create a scenario where data is requested faster than it can read." - the chunk from documentation .
Even if that happens, the replication will be started from beginning but it may lead up to infinite loop when slaves will continuously ask for synchronization over and over. Redis Master will need to fork whole memory snapshot (perform BGSAVE) and use up to 3 times of RAM from initial snapshot size each time during synchronization. That will be causing higher CPU utilization, memory spikes network utilization (if any) and IO.
General recommendations to avoid production issues tweaking this configuration parameter:
Don't decrease this buffer and before increasing the size of the buffer make sure you have enough memory on your box.
Please consider total amount of RAM as snapshot memory size (doubled for copy-on-write BGSAVE process) plus the size of any other buffers configured plus some extra capacity.
Please find more details here

can i read and write data to mass storage flash drive by lpc1768 itself alone?

i want use lpc1768 to read and write to usb mass storage device
should i use this Fig30?
Fig30
or this Fig29?
Fig29
for reading and writing to USB MASS STORAGE DEVICE?
I'm asking about hardware design of it
The USB Mass storage device is obviously an USB device and thus your LPC17xx circuit must supply the +5 volts VBUS line. That is figure 31 in the datasheet.
But that also means you have to implement the difficult USB host in the LPC17xx, and SCSI for mass storage.
You could use figure 30 (OTG) if you needed to connect the lpc17xx itself to host like a PC.
Note that SD cards are much simpler to use (via SPI) in Software. And they can be faster: 25 MBit/s instead of 12 MBit/s via USB.

VB.NET: To Monitor Disk Usage

I was wondering if disk usage monitoring is programmatically possible in VB.NET?
I will be using this to monitor our system clones, there is one point that the clones in the queue will fail because of lack of disk space so instead of always scrambling to see what we can delete, I will create an app that will monitor disk space usage and set a threshold, once the threshold is reached it will send an automatic email.
Gracias!
Available disk space can be found with DriveInfo Class:
Console.WriteLine(New DriveInfo("C:").AvailableFreeSpace)
However it may be necessary to use GetDiskFreeSpaceEx (kernel32).
See also Get free disk space