Unlock the Gateway: Join the Embed Threads
Unlock the Possibilities: Dive In with Login Access
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Why is the "ADDR flag" cleared without reading the SR2
The reason for this automatic clearing of the ADDR flag without explicitly reading SR2 could be attributed to the nature of the I2C protocol and its hardware implementation. When the I2C peripheral detects that the slave address matches and the ADDR flag is set, it knows that the address phase has bRead more
The reason for this automatic clearing of the ADDR flag without explicitly reading SR2 could be attributed to the nature of the I2C protocol and its hardware implementation. When the I2C peripheral detects that the slave address matches and the ADDR flag is set, it knows that the address phase has been successfully completed. At this point, the I2C peripheral might automatically clear the ADDR flag as it transitions to the next phase of communication, which could involve reading or writing data.
In many microcontroller or peripheral implementations of the I2C protocol, this automatic clearing of the ADDR flag can help simplify software handling
See lessFOTA from scratch
Sure, I can guide you through the process of implementing FOTA (Firmware Over-The-Air) from scratch for your microcontroller. Please note that this is a high-level overview and you might need to dive deeper into certain areas based on your specific requirements. Here's a step-by-step approach: StepRead more
Sure, I can guide you through the process of implementing FOTA (Firmware Over-The-Air) from scratch for your microcontroller. Please note that this is a high-level overview and you might need to dive deeper into certain areas based on your specific requirements. Here’s a step-by-step approach:
Step 1: Bootloader Development
1. Bootloader Code: Create a bootloader code that runs on your microcontroller. This code will be responsible for checking and updating the firmware from the external flash.
2. Memory Mapping: Define memory sections for the application firmware and bootloader in your linker script. Ensure that your bootloader doesn’t overwrite the application firmware.
3. FOTA Mechanism: Implement a mechanism in your bootloader to check for a new firmware version. This could involve periodically querying a server for updates or listening for an update trigger from the GSM module.
4. External Flash Access: Write code in your bootloader to access and program the external flash memory where the firmware updates will be stored.
5. Application Jump: Implement a method to jump from the bootloader to the application firmware once the update is verified and successful.
Step 2: Setting Up a Server
1. Server Hosting: Choose a server or cloud platform to host your firmware files. You can use a simple web server, cloud storage, or dedicated FOTA services.
2. Firmware Storage: Upload your firmware binary (hex) files to the server. Organize these files according to versions for easy retrieval.
3. Version Control: Maintain a mechanism to keep track of the latest firmware version and provide information about available updates.
Step 3: FOTA Process
1. Firmware Check: In your application firmware, periodically or on-demand, query the server to check for a new firmware version. You can use the GSM module and AT commands to establish an internet connection and communicate with the server.
2. Download and Update: If a new version is available, download the firmware file from the server to your external flash memory. Ensure that the new firmware image is correctly written to the flash.
3. Backup Image: To save a backup image, before writing the new firmware, copy the current application firmware to a reserved area in the external flash.
4. Firmware Verification: After writing the new firmware, have a mechanism in place to verify the integrity of the firmware. This could involve checksums, hash functions, or digital signatures.
5. Application Restart: Once the new firmware is successfully verified, trigger a restart to jump to the updated application.
Remember that FOTA involves intricate details and can be quite complex. This outline provides a starting point, but you’ll need to dive into specifics of bootloader programming, flash memory access, GSM communication, and server setup. Be prepared for testing and debugging to ensure a robust FOTA solution.
Additionally, make sure to refer to documentation specific to your microcontroller, external flash, and GSM module to ensure compatibility and proper functioning.
See lessUart sending data
The problem you're encountering with UART (Universal Asynchronous Receiver-Transmitter) on your Nucleo-F446RE board may be attributed to several potential reasons. Given that you've noted that UART1 functions as expected while UART2 does not, it's likely that there are hardware or configuration-relaRead more
The problem you’re encountering with UART (Universal Asynchronous Receiver-Transmitter) on your Nucleo-F446RE board may be attributed to several potential reasons. Given that you’ve noted that UART1 functions as expected while UART2 does not, it’s likely that there are hardware or configuration-related issues influencing this disparity. To better assist you, could you provide a link to the relevant portion of your code for further examination? This could help identify the specific points of concern and provide more precise guidance for resolving the problem.
See lessRTC IN STM32 DATE PROBLEM
Hello, Can you please let me know that is there any fixed pattern like date is changed or any random date is set? Because there might issue into RTC or Timer library which are managing both date and time in which you are saying that time is properly managed while date is not there. Also there may beRead more
Hello,
Can you please let me know that is there any fixed pattern like date is changed or any random date is set?
Because there might issue into RTC or Timer library which are managing both date and time in which you are saying that time is properly managed while date is not there.
Also there may be issue into storage and calculation of timing like in which format time and date are stored.
Regards,
See lessRitesh Prajapati
What is an OS? What is the process done by OS?
Hello, There are mainly two different kind of OS comes into picture for embedded system perspective. 1. FreeRTOS or Lightweight OS which can be used to make Lightweight embedded products with scheduling and maultitasking support 2. Linux OS or Heavyweight OS which can be used to make Heavyweight embRead more
Hello,
There are mainly two different kind of OS comes into picture for embedded system perspective.
1. FreeRTOS or Lightweight OS which can be used to make Lightweight embedded products with scheduling and maultitasking support
2. Linux OS or Heavyweight OS which can be used to make Heavyweight embedded products with scheduling and multiple processing support with more RAM and Flash Memory
So, We first need to understand like which kind of OS you want to learn for embedded product development perspective then we can guide to you accordingly.
Regards,
See lessRitesh Prajapati
Multi-channel continuous DMA Conversions
Hello Kunnal, Would you please provide few more details regarding issue which you are facing at your end? 1. which controller are you using? 2. what is the ADC resolution you are using? 3. callback details and triggering mechanism. Regards, Ritesh Prajapati
Hello Kunnal,
Would you please provide few more details regarding issue which you are facing at your end?
1. which controller are you using?
2. what is the ADC resolution you are using?
3. callback details and triggering mechanism.
Regards,
See lessRitesh Prajapati
What is your level of experience in embedded system engineering?
Hello Alok, I have total 13+ years of experience into embedded system development specific for IoT and Linux Development. Throughout my 13 years at SLS, I have had the opportunity to work in various domains such as uCOS, Linux Bootloader, Linux Kernel, BSP Porting, and more. For the past five years,Read more
Hello Alok,
I have total 13+ years of experience into embedded system development specific for IoT and Linux Development.
Throughout my 13 years at SLS, I have had the opportunity to work in various domains such as uCOS, Linux Bootloader, Linux Kernel, BSP Porting, and more. For the past five years, I have been working on modules and chips for Home Automation and Industrial IoT products. My time at SLS has been a tremendous learning experience for me, both technically and non-technically.
Regards,
See lessRitesh Prajapati
What microcontroller architecture do you work with most frequently?
Hello Alok, Since last 5 years, I have worked mostly on ESP8266 and ESP32 Chipsets and Modules for different industrial and IoT based Home Application developments. Espressif ESP32 Chip or Module supports Wi-Fi and Bluetooth together with vast SDK support using which people can develop application eRead more
Hello Alok,
Since last 5 years, I have worked mostly on ESP8266 and ESP32 Chipsets and Modules for different industrial and IoT based Home Application developments.
Espressif ESP32 Chip or Module supports Wi-Fi and Bluetooth together with vast SDK support using which people can develop application easily.
Regards,
See lessRitesh Prajapati
Which communication protocol do you often use in embedded systems?
Hello Alok, We are generally or mostly used I2C, UART and SPI communication protocols into our hardware dependent application or project development. But, I prefer to use SPI Protocol most as we can get different benefits while using it like speed and others. Regards, Ritesh Prajapati
Hello Alok,
We are generally or mostly used I2C, UART and SPI communication protocols into our hardware dependent application or project development.
But, I prefer to use SPI Protocol most as we can get different benefits while using it like speed and others.
Regards,
See lessRitesh Prajapati
What is your preferred method for debugging embedded systems?
Hello Alok, Most common method for debugging is printf statements which people are using for any debugging or troubleshooting of issues. But, I preferred to use debugging tools like JTAG, Valgrind and other memory debugging tools using which we can trace out code step by step and can find out root cRead more
Hello Alok,
Most common method for debugging is printf statements which people are using for any debugging or troubleshooting of issues.
But, I preferred to use debugging tools like JTAG, Valgrind and other memory debugging tools using which we can trace out code step by step and can find out root cause of any fault or memory leakage easily.
Regards,
See lessRitesh Prajapati