Electronics development. About microcontrollers on the fingers



    Thinking about a technology startup, you don’t have to be an ace in electronics at all, a narrow specialist with knowledge of the basics of marketing is much more likely to have a good idea, but even ordering someone to develop it, you need to navigate the capabilities of the modern elemental base and present the price of the solution. Otherwise, you can demand the impossible, or get a device with overpriced costs on an outdated element base.
    Under the cut, an attempt to briefly and simply tell about the capabilities of modern microcontrollers to people far from them. For those who have the idea of ​​a new electronic device, but have no idea what a microcontroller is. Those who want to take the first step from entertaining experiments with the Arduino platform to designing their own devices can also find simple but useful tips in it. I tried, not dwelling on the technical details, for this purpose it is not enough for the book to state the essence and give some simple but useful tips on circuitry to prevent beginners from elementary errors.

    Summary of the article:


    As microcontrollers conquered the world
    ARM architecture - today the market leader in microcontrollers
    Competition with younger brothers
    on laying asphalt, the benefits of sleep and its varieties
    very briefly about the technology and how to appear Series MCU
    Peripherals simplest ARM microcontroller for half a dollar
    The cheapest way to get additional features
    And what will add the transition to the Cortex-M4, in addition to the price increased a couple of times?
    Cortex-M7 - when you want more ...


    Code protection, upgradeability and diversity have helped microcontrollers conquer the world


    Any smart device requires control. In most cases, microcontrollers are doing this today - chips that combine a microprocessor core, memory and peripheral modules that are responsible for communication with other components of the device and the outside world.

    Microcontrollers are jack of all trades. One microcontroller is capable of replacing dozens of specialized microcircuits that would be necessary to perform the required functions if the microprocessor would play the role of the calculator.

    One of the indisputable advantages of the microcontroller is that the program under which it runs is hidden inside its body (in the section called “program memory”) and is very well protected from hacking, of course, if the microcode developer took care of this by activating the built-in mechanisms protection. Thus, you get protection of intellectual property as much as possible today.

    What cannot be hacked can be copied. Why try to read the code embedded in the microcontroller of the program using expensive, ingenious devices, if it is easier and cheaper to find a professional who can write it again? Perhaps the result will be even better, and the functionality is richer than that of the prototype. Yes, it costs money, but the content of the FLASH memory of today's microcontrollers is so well protected that attempts to rude “hacking” will cost even more. In addition, the problem of intellectual property is being solved, and you, along with the source codes of the program, get the opportunity to develop and improve your device.

    Program memory, in modern universal microcontrollers, is rewritable, and the rewriting process can be repeated more than ten thousand times. It begs the use of this fact for updating software in order to eliminate errors found in it or to expand the functions of an already working device. This is quite simple to implement - adding a special section of code called a “bootloader” to the program, you get the opportunity to update the software of your device in various ways: at the service point (if the device has a special connector hidden inside the case), connecting it to computer via USB, via a network or even a wireless interface. The main thing is to provide the device with the necessary peripherals for this. By providing software updates,It is possible that insidious purposes. For example, take control of the things of your “smart home” or spy with the help of the WEB camera installed by you at home.

    ARM Architecture - Today's Microcontroller Market Leader


    Since the time of King Peas, microcontrollers are usually divided according to the capacity of the data on which they conduct operations. In the vast majority of cases, today, in new developments, it is worth choosing 32-bit microcontrollers with an ARM core. There are a huge number of modifications and you can always choose the instance that is best suited to solve your problem. Depending on the set of functions and performance, the price of a chip can range from tens of cents to tens of dollars.
    Microcontrollers (MCUs), depending on the architecture of the computing core, are usually divided into large families. Today, for the development of devices of small and medium complexity, the most popular microcontrollers with cores from Cortex-M0 to Cortex-M7. The larger the number, the greater the computing (and not only) capabilities, price and maximum power consumption. The succession of architecture played an important role in the popularity of ARM. A developer can modify the program code of his previous developments with minimal costs, moving from microcontrollers of one manufacturer to chips of another and migrating between cores with different performance.


    Competition with younger brothers


    However, the ARMs didn’t steer. I well remember the times when the 8-bit microcontrollers were the absolute market leaders and, from the occupied positions, 16-bit colleagues tried to push them unsuccessfully, but, ironically, only 32-bit older brothers managed to do this. It so happened that by the time of their appearance, chip manufacturing technologies greatly reduced the cost of integrating large volumes of FLASH memory into them. Taking this opportunity, programmers began to switch from assembler to a higher level language - C, whose structure perfectly laid down on 32-bit architecture. As a result, 32-bit microcontrollers performed calculations much faster than their 8 and 16 bit colleagues, but there was one problem - they had higher current consumption.

    Therefore, at first, they were used in cases where greater computational performance was required.

    It is known that the average current consumption of the computing core of the microcontroller increases significantly with an increase in its clock frequency. At first, 8-bit models of microcontrollers had noticeably lower consumption at a similar frequency and, in addition, were able to work from a low clock frequency, up to 32 kHz.

    The power consumption of microcontrollers strongly depends on the clock frequency of the core and the periphery, in order to regulate it, they began to use the PLL-based clock frequency generating unit, widely used in radio transmitting devices. This made it possible to widely vary the clock frequency without changing the master quartz resonator. Peripheral modules do not have to have the same clock frequency as the computing core. To reduce their power consumption, the frequency began to be fed to them through dividers with a program-controlled division ratio. Introduced the ability to disable unused modules. These measures greatly reduced power consumption, but it still remained significantly more than that of 8 bit ones.

    For a short time, parity developed - 32-bit MCUs captured the niche of top-end applications, and 8-bit ones confidently held positions in devices for which low power consumption was important. It persisted until the 32 bit MCUs mastered perfectly the "pulse" mode of operation.

    8-biters, by then, also learned how to do this, but, due to poor performance, they had to stay awake much more and, as a result, they began to lose in energy consumption, especially in tasks requiring calculations, as the picture below illustrates.



    About laying asphalt, the benefits of sleep and its varieties


    So, microcontrollers learned to believe so well that they began to do their work very quickly and most of the time they were forced to “beat the bucks”, devouring energy to perform idle cycles. On self-powered devices, this greatly reduces battery life or battery life on a single charge.

    Watch the construction workers laying the asphalt. They sharply intensify their work when a truck arrived with a new portion of asphalt, and after laying it slows down. So microcontrollers can increase and decrease the core clock frequency. However, this is not so easy for them as for workers - the frequency of operation of the entire internal periphery will also change at the same time, therefore, its sensitive parts will have to be reconfigured.
    Isn’t it easier, having done all the work quickly, to get some sleep. Often, yes. Moreover, the types of sleep of microcontrollers differ even more dramatically than in humans.

    You can just take a nap. In this case, our chip is always ready and as soon as the timer alarm rings or it was disturbed by an external interrupt, it wakes up almost instantly. As a person during a nap can relieve stress, but not really get enough sleep when you are constantly pulled, so the microcontroller can reduce its energy consumption in this mode “only” every 10 times, this mode is called SLEEP.

    The best way to sleep well is to undress, go to bed, close the curtains on the window and turn on the alarm. However, after such a dream, you will not immediately get into work. You will have to at least rinse with cold water and get dressed. The microcontroller also has this mode, when it limits the number of external stimuli and turns off the main clock generator. This is the STOP mode. It can reduce consumption by 1000 times, but it will take a significant amount of time to get out of it.

    Now, imagine that before bedtime you drank a fair dose of sleeping pills, turned off the alarm and telephone, and closed all windows and doors. This will be STAND BY mode. The microcontroller can be removed from this mode only with the help of special conclusions, and most of the memory of what he did before such a dream will be lost forever, you will have to start work again. But being in this mode, the MCU consumes another half as much.

    The latter, a very exotic mode, already reminds someone who cannot be left without special equipment. In this case, only a special generator works , however, which is part of the microcontrolleron a separate watch quartz, which can operate from its own power source and have literally a few bytes of RAM, the purpose of which is to remind the microcontroller of the state from which it fell into this coma. If the remaining parts of the microcontroller, at the same time, are disconnected from the power supply, then the power consumption may already be one ten thousandth of the active mode.

    When choosing a power saving mode, you need to remember the consequences of the application :

    • the deeper the dream, the longer the awakening
    • the deeper the dream, the less ways to get the microcontroller out of it
    • the deeper the sleep, the less information remains about the previous state of the microcontroller
    • To achieve the minimum declared values, in many modes it is necessary to take additional measures, for example - disconnecting peripherals
    • To minimize the power consumption of the device as a whole, it is necessary to correctly design the circuitry of the entire device
    • To minimize the power consumption of the device as a whole, you need to make sure that the other components and circuits also have micropower in an inactive mode. It’s stupid to make enormous efforts to lower the microcontroller’s consumption below one microampere and, at the same time, use a cheap stabilizer with a self-consumption current of 100 microamperes in the device, but this is very common
    • for the successful use of deep sleep modes, not only the program, but also the circuitry, must be carefully thought out, otherwise, instead of saving, you can get very serious problems - rarely happening, but the device “freezes up” for an inexplicable reason, or waking up too often and, like result, consumption is orders of magnitude higher than expected


    If your programmer with a circuit engineer has blamed each other for the first time for curvature and, together, the manufacturer for publishing unrealistic numbers in datasheets on a microcontroller, and your device is putting batteries an order of magnitude faster than you expected, this is a reason to at least turn to independent highly qualified experts.

    Shortly about manufacturing technology and how microcontroller series appear


    The physically active part of the microcontroller, like the vast majority of other microcircuits, is usually formed on a monosilicon wafer (let's call it, in this context, a chip). The chips occupy a very small area, but it is technologically profitable to produce large-diameter plates, therefore, usually a large number of chips, like honeycombs, are placed on one large plate and formed during one technological process. Subsequently, the plates are cut into pieces, receiving individual chips, which are placed in the case.Topology development and debugging of technological processes of a new chip is very expensive, and the space occupied by a single chip on a plate is usually not large. It is profitable for manufacturers to produce chips in large batches, but users need microcontrollers in different cases - it is important for someone to get a smaller and cheaper case, on the other hand, more outputs are needed to control an LCD or external memory with a parallel interface. It is profitable for manufacturers to cover all niches so that customers do not run over to competitors without finding the model that is optimal for themselves.

    It is often more profitable to release a large batch of one universal chip and place it in different cases than to launch a dozen different ones. For chips placed in cases with a small number of pins, some of the ports (in this context, by ports we mean contact pads on the surface of the chip that serve to communicate with the outside world) simply remain unconnected. Often manufacturers go further - to increase the demand and price of microcontrollers with a large number of legs, they artificially cut off the functionality of those with fewer ones - disable some functions, limit the amount of available memory, etc.

    So on the basis of one chip they form a series of microcontrollers that differ significantly in memory size and a set of peripheral modules, sometimes at times in price. At the same time, the chips installed in them can be cut from the same plates. Since the area on which one chip is located is small, its contribution to the cost of the final product is also small and can be sacrificed. It becomes beneficial to disable additional memory and other functions, for example, at the testing stage - either with the help of once programmable configuration bits, or by burning the jumpers with a laser. Only for the most mass products does it make sense to create a slightly modified photo template for this. Moreover, it is not necessary that there will be physically absent unused memory, it, again, can simply be turned off by removing jumpers in the template.


    So from one standard chip design a whole series of microcircuits is formed.

    The periphery of the simplest ARM microcontroller for half a buck


    The processor core is the brain, but in order for it not to be like a “spherical horse in a vacuum”, analogs of the senses and limbs are required.

    In the microcontroller, their role is played by the conclusions on the case, to which the ports (pads) of the chip can be connected inside the case. In turn, through internal switches, various peripheral modules can be connected to the same port.
    To begin, consider the periphery of one of the simplest series from ST based on the Cortex-M0 core - stm32F03.



    For this series we have the following set of basic functions:
    Real Time Clock (RTC)which can be powered by a separate output and operate from a separate low-frequency resonator. This module consumes extremely little energy, in the event of a power failure, it can work for hours on a charged capacitor, or for years on a small battery built into the device. In addition, it can serve as an alarm clock, removing the microcontroller from the state of even the deepest sleep at a predetermined time.

    Watchdog- a guard dog that prevents the microcontroller from falling asleep forever, for example, falling into an endless cycle or going to an nonexistent address. Its working principle is simple. The programmer sets the anti-freeze protection timer for a certain period of time, say for a second, and starts it. Then he places, in the places of the program chosen by him, short sections of code that restart the timer from zero. If there is no timer reset in a second, WatchDog considers that something is wrong with the program and suits the microcontroller to restart. The program starts working from the beginning, and it is possible to determine whether the initiator of the WatchDog reset was and take this fact into account at startup.

    Universal Digital Purpose Input-Output GPIO- This is the most common feature that most microcontroller pins support. They can be configured either as inputs or as outputs.

    Consider working as an input. If the voltage at the input of the microcontroller is less than a certain threshold (usually close to half the power supply), then it is perceived as a logical zero, otherwise as 1. Digital inputs usually have a very high input resistance, so if they are left unconnected, their state may to jump from zero to one and back, under the influence of electromagnetic fields. In order to prevent this from happening, there are special modes when the input inside the chip is connected through a resistance of 20-50 KOhm with the plus power of the microcontroller (pull-up) or minus (pull-down).

    If the outputs are configured with digital outputs, then they can be programmatically converted to a high level equal to the power supply voltage of the microcontroller , or low. There are more tricky modes, but we will not go into excessive details.

    Tips for novice developers
    The conclusions of the microcontroller are jack of all trades, but simple rules should be followed so as not to disable them. Despite all the precautions taken by the chip manufacturers, they are afraid of static and overvoltage, so you should not connect them directly to connectors that go beyond the board. It is necessary, in this case, to take measures - either use special integrated protection components, or provide a suppressor, a zener diode or protective diodes in the circuit, plus install a current-limiting resistance in the gap between the terminal output and the port.



    The figure above shows a portion of the circuit designed by me for the device (satellite modem), with elements of the simplest protection of the ports of the microcontroller. X4 - connector for external communications. We are interested in contacts 5-7, to which panic buttons are connected. An alarm is a ground fault, therefore, in the normal state, the microcontroller's supply voltage must be present on the ports, which is provided by the R24-R26 resistors with a nominal value of 1 KOhm. The VD4-VD6 suppressors limit the voltage to 5 volts, this is permissible because the microcontroller I use, although it is powered by 3.3 volts, has ports that are tolerant to 5 volts. Resistors R29-R31 at 100 Ohms.
    Such protection will save the ports of your microcontroller from external overvoltages. For some microcontrollers, individual ports are not afraid of voltages exceeding their supply voltage. So, for many STM32Fxx microcontrollers, almost all ports being configured as digital can work with 5 volt circuits, but if they work in analog mode, for example, as an ADC input, they lose this ability and this must be taken into account when designing the circuit.

    Please observe safety precautions. Do not leave the free, hanging in the air ports of the microcontroller configured as inputs, especially in devices that sometimes go into deep sleep - this can at least significantly complicate the process of passing your device an EMC test (electromagnetic compatibility). If you leave them with inputs, it is better to short them to ground or power. Or programmatically configure the outputs.

    There is another life hack. Sometimes they can be left as an entrance and shorted to another circuit. This helps in case of very dense tracing to lead the conductor “through” the microcontroller, which is especially important for dual-layer boards.

    Using the ports of the microcontrollers as outputs, it is also worth checking with the datasheet. Individual ports may have different restrictions on the maximum current that can be obtained from them without fear of their failure - load capacity. In addition, the chip itself has a maximum load capacity of all outputs in a total that should not be exceeded.
    The last thing I want to mention is that the output ports of the ARM microcontrollers do not respond to program instructions instantly, like in 8-bit microcontrollers. They are controlled via the bus, and their speed depends on the clock frequency of the corresponding node, which can be changed programmatically. If you want a quick reaction, take care to increase this frequency, if it is more important to reduce power consumption, on the contrary, select a lower speed mode.

    Temperature sensor The microcontroller has its own temperature sensor, although not very accurate, nevertheless it can, with certain assumptions, be used to measure the temperature inside the device.

    Unique serial number Each microcontroller has its own unique serial number assigned to it at the factory. A very convenient feature that can be used to organize the mass production of your products.

    Interfaces for data exchange Various microcontrollers of this series can have several of the most common interfaces that greatly facilitate communication with other chips and the outside world:

    • USART is an asynchronous serial port, often used to communicate with a computer; there it is called COM or RS232 , modems and other devices.
    • SPI is a high-speed interface that so many chips have, such as external memory
    • I2C is a two-wire interface designed to communicate with sensors and other peripherals at a short distance and low exchange rates. Its big plus is that at the same time dozens of different devices can be connected to one bus

    All these interfaces are easy to implement programmatically using regular GPIOs, but they will work much slower and consume a lot of computing core resources.

    An analog-to-digital converter ADC or ADC on which you will have to dwell in more detail.

    An extremely useful module that can measure the voltage of analog signals. He estimates them in fractions of the value of the reference signal source, in our case it is the supply voltage of the analog module of the microcontroller, which can be equal to or slightly lower than the main supply voltage of the chip. The theoretical accuracy of the ADC depends on its capacity. In modern microcontrollers, the 12-bit ADC of successive approximation is most often used, less often 10 and how exotic it is 16.



    When powered by 3 volts, the 12-bit ADC of the microcontroller will have a resolution of 3/4096 = 0.00073 Volts - better than one millivolt.

    But in practice, achieving this ideal is not easy.

    Details for Beginners
    In practice, everything is far from being so beautiful and the accuracy of measurements can be reduced for many reasons. Below I list the basic, well-known to any experienced electronics engineer, as well as simple but effective ways to reduce their harmful effects to a minimum
    voltage source instability of the ADC

    • use linear stabilizers with good parameters to power the MCU
    • use highly stable voltage sources to power the analog part of the MCU

    impulse noise on the power of the ADC

    • connect analog power to digital through simple low-pass filters - apply power to the analog part of the MCU via inductance and install a ceramic capacitor with an XR7 dielectric with a capacity of 100 nanofarads in the immediate vicinity of the microcontroller’s input, and even better, turn on a tantalum capacitor with one capacity in parallel with it - two microfarads.

    impulse noise at the input of the ADC

    • pass the input signal through at least a simple low-pass filter consisting of a resistor and a capacitor. To combat interference from transmitting radio paths and short pulsed interference, a single capacitor with an NP0 dielectric of several tens picofarads installed between the input and ground, in the immediate vicinity of the ADC input, is sometimes sufficient.
    • do not save on blocking capacitors, at least of the microcontroller itself, install them in the immediate vicinity of each power output and in other places recommended by the manufacturer of the recommended rating
    • carefully choose the location of the components and follow the rules for tracing the power circuits and especially the “ground”, ideally, the analog and digital lands should be connected at one point - next to the output of the analog ground of the microcontroller

    high output impedance of the signal source , it is dangerous because at the start of the measurement of the ADC of the sequential approximation, which is most often used in microcontrollers, its input consumes some non-zero current and this can lead to a decrease in the true voltage value, since the signal is actually supplied through the divider voltage.

    • choose the correct ADC settings, for example, in many microcontrollers you can increase the charging time of the input circuit, though here you have to compromise, reducing performance
    • install buffer amplifiers based on the op-amp (operational amplifier), or voltage followers, at the input of the ADC. Choosing them on the basis of the cheapest is not worth it, you can not improve, but worsen the situation, and significantly. If you do not have enough of your own experience, it is better to search specifically recommended by manufacturers for such applications



    Above is a section of a real circuit for supplying power to the analog part of a microcontroller in a battery-powered device. In this case, I used the ADC to digitize the signal from the analog MEMS microphone, and therefore it made sense to separate not only analog power, but also analog ground into a separate circuit. In most cases, this is redundant, in order to really benefit from it, you also need the correct trace.

    The entire digital part of the microcontroller is powered from the VBUT circuit. Just in case, I give the values ​​of the elements: R5-10 Ohm, C10 0.1 μF, without inductors L1 and L2 BLM18PG471SN1D in most cases, you can do.



    Another interesting example from my practice. In the board, which housed a large number of high-power ASIC chips, it was necessary to measure their temperature. The easiest and cheapest way is to use high-resistance thermistors. As filters, I used capacitors of a sufficiently large capacity, taking advantage of the fact that the temperature changes relatively slowly. To digitize sound, such a trick would definitely “not ride”.

    It remains to mention another important feature of the ADC, characteristic of microcontrollers. Actually, the ADC modules in it are usually one or two, but there can be many inputs. In the described series, module 1, and the inputs can be up to 16. How so? Very simple, the inputs are connected to it through a switch. If you are going to measure voltage from 10 inputs, then you must organize a cycle - sequentially switch the switch to each of 10 inputs and make a measurement. This must be taken into account when calculating measurement times. In this series, the ADC is theoretically capable of taking a measurement in 1 microsecond. It turns out that a full cycle of 10 measurements will take you exactly more than 10 microseconds!

    A direct access system to the DAP or DMA memory is another important thing. This module allows you to send data from the periphery to memory or vice versa.

    For example, with its help you can allocate a piece of memory to store data coming from the ADC and make a circular buffer from it. Next, the ADC starts in the data reading mode at regular intervals. Using DMA mechanisms, the read data will, without the participation of the kernel, independently, byte by byte, be placed in a dedicated buffer. When the buffer is completely full, the kernel will receive a signal and begin processing them programmatically, and the DMA system will start the boot process from the beginning. Since DMA has several channels, no one bothers to implement for our case automatic output to USART of data from the buffer. As a result, we get the process of transferring the read from the ADC to USART that works without using the kernel, and not the simple work of the programmer on the DMA configuration will pay off handsomely.

    PWM or PWM pulse-width modulation module , due to the limitations of the article, we will not dwell on it in detail, I note only that it is an extremely useful and widely used function with which it is possible to control the brightness of LEDs, engine speed, steering machines, design intelligent DC -DC converters and even sound synthesize.

    What can I get by adding 30 cents?

    Switching to Cortex-M0 +. The cheapest way to get extra features


    And what additional buns does the microcontroller of the latest series offer with the core slightly more modern than the Cortex-M0 +, at a cost of 20-50 cents more expensive than the analogs in the above series in terms of body and number of outputs?

    Table of differences between series



    • maximum clock frequency doubled
    • from 2 to 1.7 volts the minimum supply voltage drops
    • ADC is able to work two and a half times faster
    • two channels of a 12-bit digital-to-analog converter appeared. This is an extremely useful function, with the help of which it is possible to form a signal of a given voltage at the terminals with an accuracy better than 1 mV, for example, arbitrary waveforms in the audio frequency range
    • comparators appeared - devices for comparing the values ​​of two analog signals, it can be useful to say when determining the moment of overcurrent
    • Added USB interface through which you can connect devices to a computer. Of particular interest is the availability of power management options for implementing a USB type3-C compatible interface. I talked about him in one of my articles on Habré
    • AES accelerator for 256-bit encryption / decryption procedures appeared
    • UART got the opportunity to work in sleep modes and hardware support for LIN protocols (a simple network, widely used in the automotive industry), IRDA (data transfer protocol via infrared LEDs, remember television remotes), SIMcard ...
    • Extended timers and PWM module
    • the upper limit of the temperature range of operation rose to 125 degrees
    • increased reliability due to the expansion of restart modes in case of power problems
    • Added an “honest” hardware random value generator - a useful feature in cryptography

    Well, for many applications, an insignificant addition in price completely pays for itself, since you can refuse to switch to more expensive microcontrollers of higher model series.

    And what will add the transition to the Cortex-M4, in addition to the price increased a couple of times?




    • The maximum clock frequency rises to 80 MHz
    • A block appeared to speed up floating point calculations
    • Of course, the maximum internal memory has increased
    • Models with 100 legs or more support working with external static memory
    • USB learned to work in HOST mode
    • The CAN interface controller appeared. This is a very promising interface designed for highly reliable applications. He began his victorious march with the automotive industry and has been waging a protracted war with the long-obsolete RS-485 in the extremely conservative industrial automation industry for almost 20 years.
    • An interface for connecting SDcard has appeared. A very useful feature - add a holder for 50 cents to your device and get a removable storage medium of tens of gigabytes in size! Most cards manage to work on the usual SPI, but much slower
    • They added a built-in Operational Amplifier with a wide variety of operating modes. Thanks to this and previous functions, for my last project of a wireless stethoscope, I had to stop the choice on M4 instead of M0 +. As a result, it became possible to control the signal amplification from the MEMS microphone and save tens of hours of audio recordings of the heart's work on the SD card
    • The crypto module learned how to read HASH functions in hardware.
    • The controller of touch applications is improved and now supports not only buttons, but also scroll elements

    Cortex-M7 - when you want more ...




    In the overwhelming number of projects, the capabilities provided by the above kernels are enough, but exceptions also happen. Personally, this happened to me only a couple of times, and only once for a really good reason - it required high performance for preparing data for the ASIC, an Ethernet controller and a CAN-FD bus with an increased exchange rate.

    If at the level of universal microcontrollers with Cortex 4 cores and lower, in my subjective opinion, ST is now the leader in terms of price / functionality, then in the area of ​​higher-performance chips it is inferior to ATMEL, or rather, MICROCHIP, which has recently absorbed it. Therefore, I opted for the ATSAMV71 series, starting at $ 6.

    In addition to the above (Ethernet controller and CAN-FD bus), by and large, we get a kernel with an accelerator of operations that significantly increases productivity, operating at a clock frequency of up to 300 MHz, interfaces for connecting a video matrix and support for dynamic memory.

    In conclusion, I will ask those who have experience in communicating with microcontrollers I will ask you to choose the appropriate answer to the question.

    Only registered users can participate in the survey. Please come in.

    What microcontrollers do you most often use in your designs?

    • 28.4% 8 bit 133
    • 1% 16 bit 5
    • 4.9% 32 bit, but with a kernel other than ARM 23
    • 4% c core ARM Cortex-M0 19
    • 1.9% c core ARM Cortex-M0 + 9
    • 15.8% c core ARM Cortex-M3 74
    • 14.1% c core ARM Cortex-M4 66
    • 2.7% c core ARM Cortex-M7 13
    • 1.2% with ARM core but more productive than Cortex-M7 6
    • 2.3% I use microcontrollers exclusively as part of debugging kits 11
    • 14.1% use microcontrollers exclusively as part of Arduino compatible boards 66
    • 4.2% lower than single-board computers do not fall 20
    • 4.9% other 23

    Also popular now: