 Hello, and welcome back. In this section, we're going to continue looking at the STM32L0 architecture. If we look at the block diagram, we have already covered the system peripherals, so in this section, we will be covering the standard peripherals on the APBs common to most of the STM32 family. Let's start with the analog peripherals. The ADC on the STM32L0 is 12-bit just like the rest of the STM32 family. However, we have the ability to reach 16-bits with the new internal hardware oversampler. The ADC will run down to 1.8 volts, but if you require full speed, then a minimum of 2.4 volts will be required. This also means the ADC is available in low-power run mode down at 32 kHz operation. All other features on the ADC are flexible, like programmable sampling times, analog watchdog, and connection to the DMA, which are all inherited from the existing STM32 range. There is one DAC on the STM32L0 just like the DACs in the rest of the STM32 family. It is flexible with 8 or 12-bit output, left or right alignment, external triggering from a dedicated timer, and connection to the DMA. There are two zero crossing analog comparators available on the STM32L0. Comparator 1 can have a fixed internal voltage reference connected. Comparator 2 has rail-to-rail inputs. Both comparators can have all inputs and outputs connected to GPIO pins to make them as flexible as possible. Comparators can also be used to exit the device from low-power modes if the internal voltage reference remains switched on. The LCD segment driver on the STM32L0 can drive up to 224 segments on the largest pin count devices. Again, like the rest of the analog peripherals, the LCD is flexible, with programmable duty and bias. The device can use either the internal step-up voltage source or the external pin as highlighted in the power section, with the ability to control the contrast. This peripheral is self-contained and requires no external analog components. And unused segments and common pins can be returned back to general GPIO pins. The LCD can also run in the low-power modes if required, or disabled to save power. Just like the other devices in the STM32L family, the STM32L0 has a touch-sense controller based on the charge transfer principle. We support up to 24 channels split into 8 groups with one sampling cap for every 3 channels. During the acquisition sequence, there is no load on the CPU. For the touch-sensing, we provide a software library within the cube environment to assist with your design. Now we will have a look at the various timers on board the STM32L0. As this is a low-power device, the RTC is a very important timer. The RTC can be clocked from various sources as shown, with the LSE at 32.768 kHz being the most common. The time and date is all done in hardware, with only daylight saving being done in software. The RTC peripheral also has two tampers, two alarms, and periodic programmable wake-up. As long as the supply voltage remains within the operating range of the device, then the RTC will never stop, even under reset. We will look at the RTC in more details in the low-power peripherals section later. There are three general-purpose timers on the STM32L0, offering output compare, input capture, PWM, one-pulse mode, and encoder interface. Each timer connects to the various number of channels or GPIO pins. We have one basic timer with no external connections dedicated to generating a time base for the DAC. And new to the STM32 family, we have a dedicated ultra-low-power timer, which has the ability to run asynchronously. This timer will be explained in the low-power peripheral section later. Communications are the window to the outside world. We have two USARTs and one low-power UART on the STM32L0. The two USARTs are fully flexible, just like the USART on the rest of the STM32 family. All the frame parameters can be set to suit the external device you are communicating with. The USARTs support lots of different modes, like LIN, SMARTGARD, and ERDA. Both USARTs are supported by the DMA, and very importantly for low-power applications, both can wake the device from stop mode. The low-power UART will be covered in more detail in the low-power peripherals section later. The I2C peripheral on the STM32L0 is version-free, supporting standard, fast, and fast mode plus. Again, like all other peripherals, it is flexible, with different addressing modes and programmable timings, including clock stretching. The I2C is supported by the DMA, and again for low-power applications, it can wake the device from stop mode on address match. The SPI, like the I2C, is flexible, with the ability to do full or half-duplex, or even simplex synchronous transfers. CRC is also included within this peripheral. The SPI peripheral also supports the I2S functions, and like all the other communication peripherals, it is supported by DMA. The USB interface is available on the STM32L0X2 or 0X3 devices. It is crystal-lust to save costs, and supports the link power management and battery charger detection protocols. Just like the touch sensing, we have a software library within the cube environment already written to support the different classes, including firmware upgrades. This library is free of charge and provides all necessary functions for the USB protocol. We also provide a PID licensing service free of charge. Once you have created your application, you will need to secure your IP and maintain the integrity of your application. The technology used in this family is derived from our automotive products range. Therefore, we are able to provide true E-squared PROM rather than just emulated E-squared PROM in flash, with single-bit ECC for all non-volatile memory sections. There are two levels of readout protection, just like all STM32s, and write protection is available as well to protect code sections like bootloaders. We have a new peripheral, called firewall, which can protect selected code and data sections. And, as with all STM32s, the clock security system is available on the STM32L0, just in case there are any issues with the external crystal. We have a CRC feature on the STM32L0, which is fully programmable of varying bit size, or can use a default Ethernet polynomial. As this peripheral is connected to the AHB, it takes only four cycles for one 32-bit data word. The AES is available on the STM32L06X devices. It uses a 128-bit key and supports various modes of operation. Again, DMA support is provided to encrypt blocks of data without the need of the CPU. The random number generator peripheral is available on the STM32L0X2 or 0X3 devices. It is a true random number generator clocked by the 48 MHz HSI used by the USB peripheral. For low-power applications to save power, like all other peripherals, it can be disabled as required. The firewall is a new security peripheral designed to secure a selected region of flash, E-squared prom, SRAM, or any combination of the memory areas. At startup, you create the address range in each memory block to protect, then you enable the firewall. If the entry or exit procedure is not met, then a reset is generated. This protects from malicious code or bootloaders. Thank you for listening to this section.