ESP32 IDF STPM32/33 SPI Issue Solved by neudeep - January 12, 20220 This post discusses ESP32 IDF STPM32/33 SPI Issue and its solution, There are lot of issues reported on GitHub and aurdinio forum. Well ESP32 is from Espressif Systems and is a popular IoT controller used in embedded systems. While COVID-19 had accelerated most of the touchless and wireless features in any sort of product, these controllers like ESP32, ESP8266 had proven their time to market. In our product, While using SPI of ESP32, We are using esp32 wroom32. In our Smart Meter IoT Application Software, we need to read the internal registers of STPM32/33. As ESP32 is interfaced with STPM32/33- a popular metering module - over SPI. For that purpose, we are using SPI protocol. STPM32/33 has SPI peripheral which
Calibrate STPM32/33 For Smart Energy Meter embedded by neudeep - August 21, 2021October 30, 20210 In this tutorial, we will see how to calibrate STPM32/33. STPM32 is an ASSP (Application Specific Standard Product) for metering applications. It is designed for measurement of power and energies in a power line with high accuracy. It provides instantaneous voltage and currents, active, reactive and apparent powers, and energies. Lets start with how to Calibrate STPM32/33 For Digital Smart Energy Meter. Introduction To Energy Calibration Calibration is the process of comparing reading on one piece of equipment or system, with another piece of equipment. The other piece of equipment that has been calibrated and referenced to a known set of parameters. After the design phase, any tolerance of the real components from these values or device internal parameter drift can
Smart Meter IoT Application Software embedded by neudeep - January 26, 2021September 11, 20210 In this how to guide on Using ESP IDF with STPM32, we are going to build Smart Meter IoT Application Software. This will use SPI interface for communication between esp32 wroom32 and STPM32/33 energy metering application. Using this sample code I will show you how to build mobile application for smart energy meter with Metrology Accuracy of class 0.2. In Indian households most of the energy meters are of accuracy class 1. After reading this guide you will know how to build digital energy meter suitable for advanced metering infrastructure (AMI) and is compatible with smart grid communication technologies with support of distributed generation (DG). Building smart meter IoT application software requires four things, hardware, firmware, mobile application software and webserver.
JSON libraries HelloWorld by neudeep - November 22, 2019November 22, 20190 JSON libraries 1.frozen Output JSON objects in C as JSON formatted strings and parse JSON formatted strings back into the C presentation of the JSON objects. FEATUES: • C and C++ complaint portable. • Several extra format specifiers supported. JSON token: This stucture contains- Pointer pointing to beginning of the value. Value length Type of the token Token types are string,number,true,false,null, object start, object end,array start and array end. API’s: • json_scanf Scans json string directly into c/c++ variables. • json_printf Print c/c++ variables directly into output stream. • json_setf Modifies existing json_string.
Modbus Master Stack On ATSAME54 With RTOS embedded by neudeep - September 7, 2019September 7, 20190 In previous post we discussed about how to port modbus slave stack on ATSAME54. This post we will discuss on how to port modbus master stack on SAME microcontroller. You can download example freemodbus master stack for reference from FreeModbus. We have referred the 'AT91SAM7X_FREETROS' example project. You can follow the steps from previous post for creating directory of project files. Instead of modbus slave stack, add modbus master stack. In addition, We are using FreeRTOS in our project. So In top level directory we have added FreeRTOS V9.0.0 . Please refer to modifications in port specific files described in previous post. So lets begin with issues while port modbus master stack on SAME, Without an operating systems there are
Port Modbus Slave Stack On ATSAME54 embedded by neudeep - July 30, 20190 We are referring modbus server stack implementation for SAM3X and We want to port it on SAME54P20A. First we have downloaded the example project for SAME54P20A which is using Usart_Asynchrnous module from Atmel START. Then create new top level directory for project files. Following files needs modification while porting, they are present in sub directory named 'port' which will contain all port specific files, portserial.cporttimer.cportevent.cportother.cport.h Atmel start project is having makefile in sub-directory 'gcc'. Add these port specific files paths in makefile. Then add modbus stack folder to top level directory which is having all the modbus specific functions. For compilation we hav to add these all file paths in makefile which is in gcc directory. We have to first
Ceedling Unit Testing With ATSAME54 Testing by neudeep - May 17, 2019May 20, 20190 This post is continuation of previous post on how to mock local variable in ceedling, please check out previous post before continuing with this article. Another issue is having to add all the microchip files. When CMock gets a hold of the header file it looks at all the functions defined there and generates several mock functions for each. In one program, we are dealing with 4 pins of microcontroller. The pin numbers and its functions are defined in file 'atmel_start_pins.h' which is included in our project. But inside this file there are definitions for all the pins and 'hal.gpio.h' file is included. Inside 'hal.gpio.h' file, another files are included. The original atmel_start_pins.h file is like below, We need
How To Mock Local Variable In Ceedling embedded by neudeep - May 17, 2019August 30, 20210 In embedded system product development there are quite number of tools and framework for unit testing the C code. In this blog post I will explain about how to mock local variable in ceedling for unit testing. Ceedling is one of the widely used open source framework for your test driven product development (TDD) in embedded systems. What is Ceedling 'Ceedling' is open source framework used in unit testing, in our project which involves embedded system development we are using 'ceedling' framework. Ceedling works together with Unity and CMock. Both are are open source tools for testing C code. Ceedling has feature of automatic generation of mock. Read more about ceedling features in our previous blog post. Unit Testing Tools Unit
Software Unit Testing With Ceedling Testing by neudeep - March 12, 2019August 29, 20210 Ceedling is one of the best test automation framework for doing unit testing of your embedded C software system code. Unit testing is code that calls some other code to check if it performing as expected. Ceedling is specifically designed for running unit tests for C language code. Ceedling has feature of automatic generation of mock. Unity is a unit test framework.CMock creates the fake versions of other modules. Using these fake versions we can verify whether our module is working correctly or not.Ceedling include unit test framework(Unity) and Mocking framework(CMock).It requires Ruby to run as Ceedling build system uses rake files. Ceedling comes with a command line tool that can be used to generate the project. Check out details on how
Python for Beginners HelloWorld by neudeep - February 25, 2019February 25, 20190 Python is a programming language.Python can be used on a server to create web applications. "Hello, World!" Program: print("Hello, World!"); output:Hello world In this program, we have used the built-in print() function to print Hello, world! string. Variables and Literals: Unlike other programming languages, Python has no command for declaring a variable. A variable is created the moment you first assign a value to it. a = 5 print("a =", 5) output:a = 5 Operators: Operators are used to perform operations on variables and values. Python divides the operators in the following groups: Arithmetic operatorsAssignment operatorsComparison operatorsLogical operatorsIdentity operatorsMembership operatorsBitwise operators x = 20 y = 30 print('addition=', x+y) Output: addition= 18 in above program instead of + operator we also use *,,/,% etc. Get Input from User: In Python, you can use input() function to take input