Currently, 32-bit chips have the largest market share of microcontrollers used in embedded systems, yet 8- and 16-bit chips are also frequently used. Microcontrollers of this type are built using well-known cores, which have been extensively tested and refined thanks to their long presence on the market. The tools for these microcontrollers have also been improved over the years and designers now have a set of excellent compilers and function libraries at their disposal, greatly enhancing the software development process. In modern systems, additional functionalities are also implemented, extending the range of applications in which microcontrollers can be used.
Event System is a powerful tool minimizing the load on the microcontroller core. It allows you to establish simple dependencies between events. The conditional instructions will be executed without the core being involved (or even re-activating the core). An example is the button operation independent of the program code. Exceeding the set potential difference on the comparator may result in, e.g., triggering the peripheral on the pin, starting counting, etc. This functionality reduces the amount of code required to operate the device and increases the responsiveness of the microcontroller.
Configurable Logic Cell
Configurable logic cells (CLC) are similar tools, also active in the reduced power consumption mode. It allows you to perform logical operations on signals from external and internal sources (counter, register) and transfer the result of the operation to one of the peripherals or output pins. This allows you to avoid conditional statements in your program code. The CLC module performs the functions of logic gates (AND, OR, XOR, NOT and their combinations), latches or flip-flops without the energy-consuming wake-up procedure.
Zero Cross Detector
The ZCD module is used to trigger interrupts when an AC signal crosses through the ground potential or zero-volt threshold (against the GND of the microcontroller). The microcontroller’s built-in circuit can sample the voltage directly from the power line – the only passive components required are a current limiting resistor, connected in series, and (optionally) a pull-up resistor. An equivalent analogue circuit would require significantly more components. The ZCD functionality allows for effective triac control (dimming of lights, regulation of heating), monitoring of energy quality (period measurement) or limiting EMI in circuits controlling the AC supply of a given device (switching on when the sine wave is close to zero eliminates sudden voltage peaks and the EMI caused by them). Moreover, the periphery can be configured to signal a specific type of exceedance (rising curve, falling curve, or both). The ZCD signal does not need to be handled by software and can be connected to one of the I/O pins of the microcontroller.
Even the best-designed digital circuits that execute error-free and repeatedly revised code may “crash”. This problem can occur for many reasons, sometimes unrelated to the functions performed by the code. It may be exceeding the allowed operating temperature or disturbance on the power line. Watchdog timers (WDT) counters, which work independently of the program, are the primary protection against such situations. When instructions take longer to execute, WDT resets the microcontroller. In the case of the AVR128DB family, it is possible to program a “time window” ( Window Mode Watchdog Timer, WWDT ), which can be used to execute the program. In the event of such a check, the operation of the device will be interrupted and restarted from the beginning, both in the case of too long and too short a period between responses from the core. In the latter case, it is possible that part of the instruction was not carried out, which may have negative consequences – especially if the skipped operation was directly related to the protection of the circuit or the operator of the device (e.g., undetected signal from a limit switch).
Cyclic Redundancy Check (CRC/SCAN)
Checksum generation and verification is a commonly used way to ensure efficient communication between circuits in microprocessor systems. Unfortunately, the software implementation of such verification consumes a lot of the computing power of the circuits involved and can additionally slow down their operation. Especially with 8-bit units running at a limited (to save power) frequency. The latest microcontrollers from Microchip (both PIC and AVR) have been equipped with peripherals that automatically generate a checksum (even as a 32-bit polynomial) and place it in a register accessible to the program. The functionality known as SCAN allows the CRC to directly access the memory of the microcontroller, which further improves the checksum calculation efficiency.
Examples of the use of CIP modules in specific applications and the benefits that their use brings when creating circuits implementing complex functionalities are shown in the following videos prepared by the manufacturer.