An Introduction to USB Communication (Part 1)

USB (Universal Serial Bus) is an industry-standard used to specify cables, connectors, and protocols that are used for communication between electronic devices. Advantages: Self-configuring interface, no need for user configuration of speed, data protocol, etc.Capable of supplying power to small auxiliary devicesVarious communication speeds are supportedStandard connectorsError checking increases the communication reliability Limitations: Limited cable

2021-03-16T07:14:28+02:00By |Categories: Embedded Systems|Tags: |0 Comments

FreeRTOS: Using MCU Peripheral Drivers

Communication interfaces (I2C, SPI, UART, etc.) are some of the most commonly used microcontroller peripherals in embedded systems. In this introductory article, we will look at how low-level drivers for such peripherals can be used in FreeRTOS. Polled Drivers vs Interrupt-driven Drivers Based on the method used for getting information on events (e.g errors, operation

2021-03-08T06:23:40+02:00By |Categories: Embedded Systems|Tags: , |0 Comments

FreeRTOS: Using Software Timers

In this article, we will take a look at the software timers in FreeRTOS. A software timer allows a function to be executed at a set time in the future.FreeRTOS - RTOS software timer functionality and features description The function that is executed is referred to as a timer's callback function. The interval between starting

2021-01-03T18:53:29+02:00By |Categories: Embedded Systems|Tags: , , |0 Comments

Toolset for Debugging Embedded Programs

Writing programs that just work would make the development of embedded systems a lot easier. In practice, however, a considerable amount of time is devoted to finding and removing bugs from the code. This process is commonly known as debugging and there is no way of avoiding it. In this article, we will give an

2020-11-22T22:35:01+02:00By |Categories: Embedded Systems|Tags: |0 Comments

Install Django and Verify It

Django is a Python framework used to create websites. Installation is easy. The recommended way is to use pip. python -m pip install Django This will install Django and you will see something like this: Django instalation using pip After the installation is complete you can verify it using this code: import django print(django.get_version()) If

2020-11-15T21:15:44+02:00By |Categories: How To|0 Comments

FreeRTOS: LED Blinking And Button Polling

FreeRTOS is one of the most widely used open-source real-time operating systems (RTOS). In this article, we will look at a very simple FreeRTOS program: a push-button will enable/disable the blinking of an LED. The program is developed and tested using the LPCXpresso54102 board with NXP's LPC54102 microcontroller. The program can be easily adapted for

2020-10-20T23:58:11+03:00By |Categories: Embedded Systems|Tags: , |0 Comments

Using Callbacks in Firmware Development

In its classic form, a callback (aka callback function) is a function that is passed as an argument to another function. The function that accepts the callback as an argument is expected to call back on it (execute it) at a certain point in time. The callback mechanism allows a lower-level software layer to call

2020-10-05T09:01:21+03:00By |Categories: Embedded Systems|Tags: , |2 Comments

Bubble Sort Algorithm

Bubble sort is a simple comparison-based sorting algorithm. It is named like that because it sorts elements similar to the water bubble rising to the surface, i.e. after all iterations are completed, either lower or higher values bubble up towards the top index of the given array. By making multiple passes through an array with

2020-08-10T08:26:29+03:00By |Categories: Explained Simply|0 Comments

KiCad – Create Template

KiCad templates are used to create projects with common settings. Templates can contain everything you need for a new project, for example, table and graphic formating, board outlines, schematic elements, etc. You can create a KiCad template with the following easy steps: Create a project with the settings you needAdd a folder named meta in

2020-07-26T19:33:56+03:00By |Categories: How To|0 Comments

Aligned and Unaligned Memory Access

Unaligned memory access is the access of data with a size of N number of bytes from an address that is not evenly divisible by the number of bytes N. If the address is evenly divisible by N, we have aligned memory access. We can express this as Address/N, where Address is the memory address

2020-07-19T16:56:39+03:00By |Categories: Embedded Systems|Tags: , |0 Comments
Go to Top