Po raz pierwszy zdałem sobie sprawę, że dodatkowy układ scalony SMD w pobliżu portu USB Arduino UNO jest w rzeczywistości pełnoprawnym mikrokontrolerem, pomyślałem, że tak tylko konwerter USB na port szeregowy. Dalsze badania tego chipa dały mi więcej pytań niż odpowiedzi.
Po pierwsze, dlaczego Arduino zdecydowało się na użycie Atmega16U2 jako konwertera USB na port szeregowy? Czy nie mogli zamiast tego zdecydować się na układ FTDI? Natknąłem się na to zdanie w serwisie Quora „Najlepsze jest to, że możesz także programować i tworzyć własne aplikacje na 16u2, jeśli masz szeregowy programator w obwodzie”. Jak dokładnie czy to działa?
A co z dwoma pozostałymi zestawami złączy na płycie? (oprócz dwóch głównych rzędów nagłówków) Te oznaczone jako ICSP i JP2? Czy JP2 dla 16U2? Czytałem, że można ich użyć do wypalenia kodu na Atmega328P, aby można go było modyfikować, ale nie nadpisywać. Jakie są inne zastosowania 16U2 w Arduino UNO?
Komentarze
- FTDI jest droższe niż 16U2 AFAIK. Przykłady przeprogramowania to: używanie go jako urządzenia USB MIDI lub HID.
- @Wesley Lee Jak właściwie to przeprogramować chociaż?
- Jest dla niego oddzielny nagłówek ISP / ICSP. Następnie użyj czegoś takiego jak Arduino jako ISP, Atmel ICE itp. (Nie mam teraz czasu, ale być może będę w stanie napisać odpowiedź i post p hotos wkrótce)
Odpowiedź
Pierwszy powód, dla którego sądzę, że jest to cena:
- FT232 na octopart : 2,65 ~ 3 USD
- Atmega16U2 w octopart : 2,12 ~ 2,2 USD
Prawdopodobnie mogą uzyskać znacznie lepsze oferty, biorąc pod uwagę, że Atmega328 również pochodzi z Atmel (obecnie Microchip).
O programowanie:
Jest kilka projektów, które zmieniają Atmega16U2 w urządzenie MIDI przez USB lub HID, na przykład niektóre repozytoria: 1 , 2 , 3 . Myślę, że użyłem drugiego i działa dobrze.
Możesz go zaprogramować za pomocą programatora ISP / ICSP, takiego jak Atmel ICE (poniżej) lub Arduino ISP .
Użyj pinów ISP przy Atmega16U2:
Komentarze
- " Prawdopodobnie mogą uzyskać znacznie lepsze oferty " – Nie byłbym ' zdziwiony, gdyby częścią tej decyzji było to, że Atmel zaproponował zespołowi Arduino ukochaną ofertę w tej kwestii.
- @duskwuff – to prawda, mogło być na odwrót!