Moją zwykłą metodą przeprogramowywania AVR-ów (dotychczas ograniczoną do ATtiny13 i ATtiny2313) jest odłączenie układu od obwodu hosta, podłączenie go do innej płyty ze wszystkimi połączeniami ICSP, zaprogramowanie, a następnie wymiana. Ciągle jednak słyszę, że można zaprogramować układ na swoim miejscu (co, rozumiem, jest sednem ICSP).
Czy są jakieś specjalne względy sprzętowe, które należy wziąć pod uwagę przed zaprogramowaniem układu na miejscu? Na przykład obawiam się, że proces ICSP może uszkodzić elementy obwodu podłączone do tych samych styków AVR, które są używane dla ICSP. Czy od czasu do czasu trzeba dodać diody lub inny bufor do ochrony tych elementów?
Wiem, że to pytanie brzmi niejasno i chyba tak jest - ale nie podałem szczegółów mojego konkretnego obwodu, ponieważ interesują mnie bardziej ogólne zasady praktyczne. To znaczy, czy nigdy nie trzeba się tym martwić, czy odpowiedź naprawdę zależy od konkretnego obwodu, którego częścią jest MCU?
Użyj zworki lub przełącznika, aby fizycznie odłączyć nagłówek ICSP. W ten sposób możesz współdzielić piny z innymi funkcjami bez martwienia się i bez konieczności manipulowania innymi komponentami.
To wydaje się być najbardziej oczywistym i najbezpieczniejszym rozwiązaniem i właśnie tego używam.
(Moja pierwsza odpowiedź została usunięta, więc próbowałem dodać więcej szczegółów).
źródło
Niestety, nie można wykonać programowania obwodów dla odbiorników AVR, jeśli piny są wspólne dla innych funkcji, na przykład świecących diod LED. Chociaż może działać, nie jest to gwarantowane, ponieważ może spowodować, że wyjścia programatora lub µC spadną zbyt nisko, aby działało.
Inną alternatywą jest zamówienie wstępnie zaprogramowanych żetonów. Wiem, że Microchip oferuje to za swoje żetony, ale nie jestem pewien co do Atmela.
źródło