How To Use Jenkins In Embedded System Testing by blog_1buq8n - March 23, 2022December 20, 20230 This article explains Jenkins and Ceedling in embedded systems. This is divided into two parts, Installation and testing with Ceedling. I didn't understand much about Jenkins, what it does and how it will be useful in embedded product development. So, I have decided to dig into this topic on "How To Use Jenkins In Embedded systems". There is a lot of documentation about Jenkins. Most of them are outdated, for instance, when I started to install Jenkins on Ubuntu, it did not go well. Before we jump into subject, We at neudeep.com provide consultancy service at affordable price for development and unit test automation for embedded systems. Feel Free to contact us. In this article I will explain more
How To Install Ceedling On Windows Testing by blog_1buq8n - December 14, 2021December 20, 20230 This post shows ways about how to install ceedling on windows operating system with the latest updates. Ceedling as you know is a powerful tool for unit testing and is used mostly for testing C language code in embedded system. There are various tools for embedded testing like pclint, parasoft, vectorcast, tessy and few AI powered intelligent tools. What makes embedded system unit testing tools different than application testing tools is it utilizes components like hardware, real time operating system and cross compilation. Please note unit testing will not find bugs in your code but it will help you to reduce bugs in system testing and build robust software. This post will discuss about ceedling installation and related issues. Install
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.
SAME54 I2C Driver Issue Solved embedded by blog_1buq8n - September 10, 2019October 10, 20190 If you are reading this post that means you are using ATMEL or Microchip controller. We are using ATSAME54 micro from microchip, it is ARM based cortex-M4 series controller. In our application we have around eight I2C ( Inter-integrated Circuit) slave devices connected. I2C slave devices includes, RTC, onboard temperature sensor, FRAM, LED drivers etc. Well as you know all I2C slave devices can be addressed using their addresses. Well as most of guys does we too have downloaded sample code from start.atmel.com and tested. We have SAME54 explained pro and we brought PCA9685 LED driver. This is simple I2C based LED driver and is easily available, its schematic and design also available from adafruit. With sample code and its
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
How To Use Two Timers In Same Project embedded by blog_1buq8n - July 29, 2019August 22, 20210 If you are using SAM series controller you probably have came across this question, How do i implement two timer which generate two interrupt at different time in same project? or How we can use two timer in same project in SAME54 controller? Well SAM series controller are ARM-based MCUs and MPUs from ATMEL now Microchip. We are using ATSAME54P20A ie SAME54 explained pro board to evaluate the functionality of it. So created new project using start.atmel.com with TC0 and TC1 along with WDT and interrputs. The project tree looks as below, This project works well and TC0 timer interrupt is working but TC1 timer interrupt is not working. Following is code for initialization and using
How To Write RTOS Safe ISR For ATSAME embedded by blog_1buq8n - July 26, 2019August 22, 20210 In our application it is required to use FreeRTOS API functions from an interrupt service routine(ISR). Good thing about FreeRTOS is it has provided interrupt safe API, meaning one can use FreeRTOS API functions from ISR, as they have provided two versions of some API. Functions intended for use from ISRs have “FromISR” appended to their name eg. xQueueSendFromISR How to set correct priority levels if I want to call an ISR-safe function from interrupt? Because the maximum level of configKERNEL_INTERRUPT_PRIORITY is 1 and the minimum preemption Priority level of any interrupt source e.g. and edge interrupt is 15. That means it is above the max. level of configKERNEL_INTERRUPT_PRIORITY. In our application we were using xQueueSendFromISR() from IRQ10 ie 'EIC_10_IRQn', to
How To Use WDT On Free RTOS Running ATSAMEx embedded by blog_1buq8n - July 24, 20190 After doing some google and spending almost 4 hours on choosing right place to start WDT, we have decided to share our learning here. Well we are using ATSAME54P19/20 controller from Microchip formally Atmel. Watchdog timer - WDT works well without Free RTOS (10.0) but when WDT is enabled along with RTOS it simply does not work well. In big while(1) embedded applications with no RTOS you can always initialize WDT after peripheral initialization and feed/touch WDT in while/main loop. In case of RTOS there are multiple tasks/threads and to be specific in case for Free RTOS when you try to enable WDT right before vTaskStartScheduler(); call it simply does not work. Tried with following solutions - like configure