If you have any questions or feedback, pleasefill out this form
Table of Contents
This post is translated by ChatGPT and originally written in Mandarin, so there may be some inaccuracies or mistakes.
To use AVR for USB, the main consideration is whether the chip itself has built-in support for USB. Currently, the available chip options include1:
- ATmega8U2
- AT90USB82
- ATmega16U2
- AT90USB162
- ATmega32U2
- ATmega16U4
- ATmega32U4
- AT90USB646
- AT90USB647
- AT90USB1286
- AT90USB1287
As of now, only the ATmega32U4 is still being sold, but due to the semiconductor supply shortage, it might be hard to purchase without special channels.
The earliest shipping date is November 23 of next year, which is the reality we face. The semiconductor shortage is gradually impacting upstream supply chains and could subtly infiltrate our daily lives. In contrast, it’s remarkable that large companies like Apple can still consistently release new phones and computers.
Among Arduino boards, the only one that uses the ATmega32U4 is probably the Pro Micro. However, it seems that the original manufacturer no longer sells it, and now it's mainly other manufacturers producing these boards, leading to varying quality.
Currently, I am using the Aideepen (Amazon link, and I don’t receive any commissions from the purchase). The pins need to be soldered by hand, and in the Arduino IDE, you must use the old bootloader to upload the code. There’s also a slight chance of encountering errors, but considering the low price, it's manageable.
Another approach is to decisively abandon AVR and go straight for STM32, or the hot-off-the-press Raspberry Pi Pico, or directly use the RP2040.
Footnotes
If you found this article helpful, please consider buying me a coffee ☕ It'll make my ordinary day shine ✨
☕Buy me a coffee