Spisu treści:

Zrozumienie ICSP dla mikrokontrolerów PIC: 4 kroki (ze zdjęciami)
Zrozumienie ICSP dla mikrokontrolerów PIC: 4 kroki (ze zdjęciami)

Wideo: Zrozumienie ICSP dla mikrokontrolerów PIC: 4 kroki (ze zdjęciami)

Wideo: Zrozumienie ICSP dla mikrokontrolerów PIC: 4 kroki (ze zdjęciami)
Wideo: 01. Arduino - dlaczego NIE? a jeśli TAK to JAK? (wady i zalety płytek arduino) 2024, Listopad
Anonim
Zrozumienie ICSP dla mikrokontrolerów PIC
Zrozumienie ICSP dla mikrokontrolerów PIC

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?

Dlaczego ICSP?
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?

Co to jest ICSP?
Co to jest ICSP?
Co to jest ICSP?
Co to jest ICSP?
Co to jest ICSP?
Co to jest ICSP?
Co to jest ICSP?
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?

Jak ICSP?
Jak ICSP?
Jak ICSP?
Jak ICSP?
Jak ICSP?
Jak ICSP?
Jak ICSP?
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

Programiści ICSP
Programiści ICSP
Programiści ICSP
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: