To use AVR for USB, the key point is whether the chip itself has built-in USB support. The currently available options for chips are 1:
- ATmega8U2
- AT90USB82
- ATmega16U2
- AT90USB162
- ATmega32U2
- ATmega16U4
- ATmega32U4
- AT90USB646
- AT90USB647
- AT90USB1286
- AT90USB1287
Currently, only ATmega32u4 is still being sold. However, due to semiconductor supply shortages, it is probably not available for purchase without special channels.
It will only be shipped on 11/23 next year, that's the reality. Semiconductor shortages are gradually affecting the upstream supply, and one day it will silently sweep through our daily lives. On the other hand, it's a miracle that big companies like Apple can still release new phones and computers steadily.
Among Arduino boards, the only one that uses ATmega32u4 is probably the Pro Micro. However, it seems that the original manufacturer no longer sells it, and it's mostly boards made by other manufacturers, with varying quality.
Currently, I am using Aideepen (Amazon link, no affiliation even if you buy it). It requires soldering the pins by yourself, and you need to use the old bootloader in the Arduino IDE to burn it. There is also a small probability of encountering errors, but since it is sold at such a low price, I just make do with it.
Another option is to decisively abandon AVR and directly use STM32 or the newly released Raspberry Pi Pico with RP2040.