Antworten:
Dies sind die ISP-Pins (In System Programming). Sie werden verwendet, um den Mikrocontroller ohne Verwendung des Bootloaders zu programmieren.
Der Bootloader ist ein Programm, das bereits in den Flash des Mikrocontrollers geladen wurde und das Laden des Programms über die seriellen Tx & Rx-Leitungen in den Mikrocontroller ermöglicht und daher kein Programmiergerät erfordert.
Die Verwendung des ISP kann nützlich sein, wenn:
Die Standardverbindung für den ISP ist ein 100 mil 6-poliger Header (2x3).
Auf dem Arduino Uno befinden sich zwei ISP-Header, da sich tatsächlich zwei Mikrocontroller auf der Platine befinden. Es gibt den Hauptmikrocontroller (auch bekannt als ATmega328P), mit dem das Programm ausgeführt wird, das Sie auf die Arduino-Karte laden. Der zweite Mikrocontroller (ATmega16U2 oder ATmega8U2) wird als USB-Schnittstelle verwendet. Er wandelt die USB-Signale in serielle Daten um, die an den UART des ATmega328P (dh Tx & Rx) angeschlossen sind.
Das folgende Dokument beschreibt den ISP und beschreibt die im ISP-Header verwendeten Pins und deren Anbindung an den Mikrocontroller usw.:
[PDF] AVR: In-System Programming - Atmel
BEARBEITEN: Wie Majenko richtig hervorhebt, kann der dem ATmega328P am nächsten gelegene 2x3-ISP-Header auch zum Verbinden von Sensoren und Controllern verwendet werden, die über die serielle periphere Schnittstelle (SPI) kommunizieren.
Weitere Informationen zur seriellen Peripherieschnittstelle und zur SPI-Bibliothek finden Sie unter: https://www.arduino.cc/en/Reference/SPI
Der am USB-Anschluss ist ICSP für den USB-Schnittstellenchip. Das andere ist ICSP für den Hauptchip und dient gleichzeitig als (jetzt Standard-) SPI-Schnittstelle für Abschirmungen.