
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

Programowanie mikrokontrolerów nie jest trudne. Budowanie programisty to świetny pierwszy projekt elektroniczny. Celem tego instruktażu jest wyjaśnienie prostej metody "programowania szeregowego w obwodzie" stosowanej w układach Microchip PIC.
Krok 1: Dlaczego ICSP?

Programowanie dużego układu DIP (przez otwór) jest łatwe. Włóż go do programatora w podstawce, wypal i wróć do obwodu aplikacji. Przetestuj i powtórz.
Sprawy stają się trudniejsze z mniejszymi (montowanymi powierzchniowo) chipami. Nie ma standardowych gniazd dla QFN, SSOP, QFP, a nawet dużych pakietów SOIC.300. Istnieją naprawdę drogie (100 dolarów) klipy, które można podłączyć do tych chipów i zaprogramować je. Dla każdego używanego typu chipów i liczby pinów potrzebny jest inny klips. Jest alternatywa. Nazywa się ICSP. ICSP oznacza „w obwodzie programator szeregowy (ing?)”. Jest to sposób programowania PIC, gdy jest jeszcze podłączony do obwodu aplikacji. Zgadza się, koniec z podmianą żetonów. Dlaczego ICSP? 1. Nie ma gniazd do programowania dla małych układów scalonych. Klipy są drogie. 2. Trudno jest przenosić żetony do i z programatora podczas rozwoju. Niemożliwe w przypadku części do montażu powierzchniowego.
Krok 2: Co to jest ICSP?




Do zaprogramowania PIC, gdy jest on podłączony do obwodu aplikacji, potrzeba pięciu połączeń. Dodaję 5-pinową listwę do moich płytek drukowanych, aby to połączenie było szybkie i łatwe. Podstawy programowania PIC. Do zaprogramowania PIC potrzebnych jest pięć połączeń. Zasilanie, uziemienie, napięcie programowania, zegar i dane.+ (Vdd)/-(Vss) Są to połączenia zasilania i uziemienia (Vdd, Vss). Dość standardowe. Jeśli używasz programatora z "rzeczywistymi" poziomami napięcia (NIE JDM2!), Twoja aplikacja może działać z własnego źródła po zaprogramowaniu, eliminując te połączenia. Vpp Jest to napięcie programowania. PIC wchodzą w tryb programowania, gdy ~13 woltów znajduje się na pinie MCLR/Vpp (zwykle pin 1 w nowoczesnych PIC, więcej na ten temat poniżej). Zegar/Dane lub PGC/PGD Linie zegara i danych są używane do zapisu i odczytu PIC oprogramowanie układowe. Są to zwykle te same styki, co PORTB6 i PORTB7. Ćwiczenie: Zidentyfikuj punkty połączenia ICSP na PIC na poniższych zdjęciach. Jeśli PIC pasuje, noś go. Dostaję wiele pytań dotyczących mojego projektu JDM2 na temat instrukcji. Najczęstsze to "Czy zaprogramuje PIC X?"' - oto jak możesz to stwierdzić: 1) Spójrz na arkusz danych. Znajdź „Schemat styków”, który wygląda jak na poniższym obrazku.2) Zidentyfikuj położenie styków, które muszą być podłączone do programowania (Vpp, Vdd, Vss, Data i Clock).3) Spójrz na połączenie gniazda na programista. Czy możesz dopasować wymagane piny do gniazda na programatorze?
Krok 3: Jak ICSP?




W zależności od projektu możesz teraz wykonać wszystkie wymagane połączenia i zaprogramować swój PIC. Jest kilka haczyków, o których powinieneś wiedzieć. Projekt dla ICSP jest ważny. Microchip dostarcza miłą notatkę do aplikacji PDF na temat projektowania dla ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744Oto kilka wskazówek i przykładów projektów ICSP z moich poprzednich instrukcji. Wskazówka nr 1, Poziom zagrożenia: WażneNie podłączaj niczego innego do ZEGARA oraz piny DATA (zwykle RB6 i RB7, PGC i PGD). Po prostu tego nie rób. Są sytuacje, w których bardzo sprytnym inżynierom uchodzi to na sucho, ale nie rób tego. Podzespoły dołączone do pinów przekrzywią sygnały zegara i danych, powodując nieprzewidywalne programowanie. Dodatkowo, jeśli kiedykolwiek będziesz chciał użyć debugera szeregowego w obwodzie, nie możesz. Po prostu tego nie rób. Porada nr 2 Poziom zagrożenia: Wybuchowe Zawsze używaj diody między napięciem programowania a napięciem systemu. Jeśli używasz MCLR (master clear) na PIC, musisz podać pewne napięcie na pin MCLR przez rezystor 10Kish. Jest to również pin, do którego przyłożysz ~13 woltów, aby wejść w tryb programowania. Umieściłem diodę 1n4148 (odpowiednik) między rezystorem a pinem MCLR/Vpp (jak pokazano na schemacie i renderowaniu poniżej). To utrzymuje napięcie programowania na pinie Vpp, zapobiegając zniszczeniu innych komponentów na twojej płycie. Wskazówka nr 3 Poziom zagrożenia: (ponownie) zmęczony Programowanie niskiego napięcia powstrzymuje cię, człowieku. Nigdy nie odniosłem sukcesu z LVP. Na własne oczy nigdy nie widziałem, jak działa (konsekwentnie). Po prostu ugryź kulkę i wydaj 2,50 USD na zbudowanie programatora JDM2.
Krok 4: Programiści ICSP


ICSP nie wymaga innego protokołu programowania. Programator oparty na gnieździe już wytwarza wymaganą sygnalizację, ale wysyła ją do gniazda, a nie przez przewody. Większość programistów gniazd może być wykorzystana jako ICSP poprzez połączenie przewodów z gniazda do obwodu aplikacji. Na przykład oryginalny programator JDM2 (tutaj: https://www.jdm.homepage.dk/newpic.htm) może być użyty do wykonaj programowanie ICSP, doprowadzając 5 wymaganych sygnałów do nagłówka. Można to zobaczyć w programatorze tutaj: https://www.belza.cz/digital/jdm.htm. Aby wszystko było pod ręką, przerobiłem ten projekt w Eagle Cad i dołączyłem go do tego instruktażu. Uważaj na orientację tranzystora, jeden ze śladów może być niepoprawny (zrobiłem to ponad rok temu, już nie pamiętam). Podobnie mój zaktualizowany programator JDM2 (tutaj: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) może być używany do ICSP, wkładając przewody do gniazd DIP i podłączając je do docelowego PIC. *****JDM2 używają funky napięcia… podłącz go do obwodu BEZ zewnętrznego zasilania (lub nawet uziemienia) podłączonego do obwodu aplikacji. Odłącz połączenia ICSP przed włączeniem zasilania. Niezastosowanie się do tego nie jest destrukcyjne, ale spowoduje nieudane programowanie******** Inną opcją jest (pół-)poprawny programator ICD. ICD pozwala kontrolować wykonywanie oprogramowania układowego na PIC poprzez ustawienie punktów przerwania w kodzie lub odczytywanie wartości pamięci i portów. ICD może również animować wykonanie kodu, zasilać obwód aplikacji i programować PIC. Robi to wszystko za pośrednictwem tego samego 5-pinowego połączenia ICSP, które omówiliśmy. Kilka klonów ICSP, które możesz zrobić samodzielnie, można zobaczyć tutaj: https://www.icd2clone.com/wiki/Main_Page. Zbudowałem PiCS (rev B) kilka miesięcy temu i uwielbiam go.
Zalecana:
Wykorzystanie mikrokontrolerów do obsługi i monitorowania systemu zdalnego nawadniania: 4 kroki

Wykorzystanie mikrokontrolerów do obsługi i monitorowania systemu zdalnego nawadniania: rolnicy i operatorzy szklarni dla taniego automatycznego systemu nawadniania. W tym projekcie integrujemy elektroniczny czujnik wilgotności gleby z mikrokontrolerem, aby automatycznie nawadniać rośliny, gdy gleba jest zbyt sucha, bez ingerencji człowieka
Programator ISP dla mikrokontrolerów AVR: 4 kroki

Programator ISP dla mikrokontrolerów AVR: Programator mikrokontrolerów to urządzenie sprzętowe wraz z oprogramowaniem, które służy do przesyłania kodu języka maszynowego do mikrokontrolera/EEPROM z komputera. Programator ISP dla mikrokontrolerów AVR to programator szeregowy, który wykorzystuje s
Komunikacja bezprzewodowa przy użyciu tanich modułów RF 433 MHz i mikrokontrolerów Pic. Część 2: 4 kroki (ze zdjęciami)

Komunikacja bezprzewodowa przy użyciu tanich modułów RF 433 MHz i mikrokontrolerów Pic. Część 2: W pierwszej części tej instrukcji zademonstrowałem, jak zaprogramować PIC12F1822 za pomocą kompilatora MPLAB IDE i XC8, aby wysłać prosty ciąg bezprzewodowo za pomocą tanich modułów TX/RX 433 MHz. Moduł odbiornika został podłączony przez USB do UART TTL reklama kabla
Zrozumienie miksowania kanałów: 4 kroki (ze zdjęciami)

Zrozumienie miksowania kanałów: Jeśli kiedykolwiek jeździłeś pilotem zdalnego sterowania, istnieje duża szansa, że używałeś miksowania, nawet jeśli o tym nie wiedziałeś. W szczególności, jeśli używałeś jednego joysticka lub gimbala do sterowania pojazdem, który wykorzystuje sterowanie poślizgowe lub
Pic 16F676 ICSP programowanie gniazda dla programatora PICkit 2: 6 kroków

Rys. 16F676 Gniazdo programowania ICSP dla programatora PICkit 2: Próbuję zbudować ten podwójny moduł silnika prądu stałego dla mojego projektu robota i nie miałem miejsca na umieszczenie listwy pinowej ICSP na płytce drukowanej. Więc szybko wyśmiewałem ten projekt