1. PROGRAMATOR PIC

Mam nadzieję, że mój artykuł pomoże niektórym radioamatorom przekroczyć próg od technologii cyfrowej do mikrokontrolerów. W Internecie i pismach amatorskich jest wielu programistów: od najprostszych do bardzo pokręconych. Mój nie jest bardzo skomplikowany, ale niezawodny.

Pierwsza wersja programatora przeznaczona jest do programowania 18 i 28 "pinowych" kontrolerów PIC. Programator oparty jest na schemacie z magazynu Radia nr 10 na rok 2007. Ale wybór kondensatora C7, eksperymenty z różnymi wersjami ICprog, PonyProg, WinPic i prędkości odczytu i zapisu nie przyniosły pożądanego rezultatu: udane programowanie uzyskiwano za każdym razem. I to trwało, dopóki zasilanie + 5 V programowalnego mikroukładu nie zostało wykonane osobno, a nie po 12-woltowym stabilizatorze. Okazało się, że taki schemat.

Obawiając się niepowodzeń narysowałem sygnet tak, aby płytkę wsunięto bezpośrednio do Com-portu, co nie jest łatwe ze względu na wszelkiego rodzaju „sznurówki” i niewielką odległość od obudowy. Okazało się, że jest to sygnet o nieregularnym kształcie, ale wkłada się go normalnie do portu COM i programuje bez błędów.

Z biegiem czasu wykonałem przedłużacz o długości około 1 metra. Teraz programator leży obok monitora i jest podłączony do portu COM. Działa dobrze: mikrokontrolery PIC16F84A, PIC16F628A, PIC16F873A zostały zaprogramowane wiele razy.

Uwaga: chip Max i diody LED są instalowane z boku drukowanych przewodów. Gniazda - ZIF-28, jedno z nich służy do 18-pinowego PIC. Panele są oznaczone pierwszymi nogami oraz numerami „18” i „28”. Transformator 220 15 V, 4 W jest zainstalowany w obudowie wtyczki adaptera. Po zainstalowaniu mikrokontrolera w gnieździe należy podłączyć do gniazdka. Tranzystory NPN niska moc wysokiej częstotliwości (300 MHz) w pakiecie do-92.

Chwilowo nie instalowałem złącza XP, a potem okazało się, że nie jest ono specjalnie potrzebne. Musiałem jakoś zaprogramować lutowany MK, więc włożyłem przewody bezpośrednio do ZIF i naprawiłem. Przeprogramowanie się powiodło.

Pracuję z programami ICprog i WinPic-800.

W IC-progu 1.05D następujące ustawienia programista:

  • Programista – Programista JDM
  • Port -Com1
  • Bezpośredni dostęp do portów.
  • Odwróć: wejście, wyjście i zegar (zaznacz).

W WinPic-800 –v.3.64f wszystko jest identyczne, ale nadal musisz ustawić „ptaka”, aby używał MCLR.

W Internecie można swobodnie i bezpłatnie pobierać te programy. Ale żeby życie było łatwiejsze, postaram się dołączyć wszystko, co niezbędne. Właśnie sobie przypomniałem: ile „bezużytecznych rzeczy” sam ściągnąłem z Internetu i ile czasu poświęciłem na demontaż tego wszystkiego.

  • Programista PCB
  • Program WinPic-800 ( )
  • Program IC-Prog()
  • Artykuł na temat IC-Prog.

2. PROGRAMATOR-2 DLA KONTROLERÓW PIC

Z biegiem czasu konieczne stało się zaprogramowanie 14 i 40 szczytów „pin”. Postanowiłem zrobić programator dla całej przeciętnej rodziny PIC. Schemat jest taki sam, dodano tylko dwa panele. Wszystko to mieści się w walizce z dawnego multimetru.

13 lutego 2014 r. Wprowadzono poprawkę na płytce drukowanej: od piątego pinu złącza RS232 ścieżka przechodzi do minusa mocy (a na poprzednim do szóstego pinu mikroukładu MAX). Nowy sygnet w "programer2-2".

Możesz zaoszczędzić jednego KREN-ku. Tych. podłącz cały obwód z jednego stabilizatora 5-woltowego. Nie instaluj VR3 i C9, ale załóż zworkę (oznaczoną linią przerywaną na schemacie). Ale Krenki jeszcze nie piłem. Wielokrotnie programowane PIC16F676, 628A, 84A i 873A. Ale nie próbowałem jeszcze 877.

Niektóre kondensatory są instalowane po stronie drukowanych przewodów. Rolki znajdują się w pozycji poziomej. Aby nie układać przewodów zainstalowałem C7 - 2szt i R12 - 3szt.

Bardzo ważne: obudowa złącza RS232 musi być podłączona do ujemnego zasilania.

Zasilanie (15 V) i programy są takie same jak w pierwszej wersji.

Lista elementów radiowych

Przeznaczenie Typ Określenie Ilość NotatkaWynikMój notatnik
Schemat 1
DD1 Układ scalony interfejsu RS-232

MAX232E

1 MAX232CPE Do notatnika
VT1-VT4 tranzystor bipolarny

2N3904

4 TO-92 Do notatnika
VDS1 Mostek diodowy

DB157

1 Do notatnika
VD1 dioda prostownicza

1N4148

1 Do notatnika
VR1, VR3 Regulator liniowy

L7805AB

1 Do notatnika
VR2 Regulator liniowy

KA78R12C

1 Do notatnika
C1 470uF 35V1 Do notatnika
C2, C3, C5, C6 kondensator elektrolityczny10uF 50V4 Do notatnika
C4, C8 kondensator elektrolityczny470uF 16V2 Do notatnika
C7 kondensator elektrolityczny1uF 25V1 Do notatnika
C11 Kondensator0,1 mF1 Do notatnika
R1, R7 Rezystor

10 kΩ

2 Do notatnika
R2 Rezystor

470 omów

1 Do notatnika
R3, R5, R11 Rezystor

4,7 kΩ

3 Do notatnika
R4, R10 Rezystor

2 kΩ

2 Do notatnika
R6, R8, R9 Rezystor

1 kΩ

3 Do notatnika
R12 Rezystor

240 omów

1 Do notatnika
HL1 Dioda LED 1 Czerwony Do notatnika
HL2 Dioda LED 1 Zielony Do notatnika
Schemat 2
DD1 Układ scalony interfejsu RS-232

MAX232E

1 MAX232CPE Do notatnika
VT1-VT4 tranzystor bipolarny

2N3904

4 TO-92 Do notatnika
VDS1 Mostek diodowy

DB157

1 Do notatnika
VD1 dioda prostownicza

1N4148

1 Do notatnika
VR1, VR3 Regulator liniowy

L7805AB

2 Do notatnika
VR2 Regulator liniowy

KA78R12C

1 Do notatnika
C1, C2, C4, C5 Kondensator10uF 50V4 Do notatnika
C3 kondensator elektrolityczny470uF 35V1 Do notatnika
C6, C9 kondensator elektrolityczny470uF 16V2 Do notatnika
C7.1-C7.3 Kondensator0.1uF3

Kiedyś postanowiłem zmontować prosty miernik LC na pic16f628a i oczywiście trzeba go było czymś sflashować. Kiedyś miałem komputer z fizycznym portem COM, ale teraz mam do dyspozycji tylko usb i kartę pci-lpt-2com. Na początek zmontowałem prosty programator JDM, ale jak się okazało nie chciał on współpracować ani z płytką pci-lpt-com, ani z przejściówką usb-com (niskie napięcie sygnałów RS-232). Potem rzuciłem się na szukanie programatorów pic usb, ale tam, jak się okazało, wszystko ograniczało się do użycia drogiego pic18f2550/4550, którego naturalnie nie miałem, a szkoda używać tak drogich MK, jeśli bardzo rzadko to robię coś na szczytach (wolę Avrs, nie ma problemu z ich flashowaniem, są znacznie tańsze i wydaje mi się, że łatwiej na nich pisać programy). Po długim grzebaniu w Internecie w jednym z wielu artykułów o programatorze EXTRA-PIC i jego różnych opcjach, jeden z autorów napisał, że extrapic działa z dowolnymi portami com, a nawet adapterem usb-com.

Schemat tego programatora wykorzystuje konwerter poziomów logicznych max232.

Myślałem, że jeśli używam adapter usb, to byłoby bardzo głupio zrobić dwukrotną konwersję poziomów usb na usart TTL, TTL na RS232, RS232 z powrotem na TTL, jeśli możesz po prostu pobrać sygnały TTL portu RS232 z układu konwertera usb-usart.

I tak zrobił. Wziąłem układ CH340G (który ma wszystkie 8 sygnałów com-port) i podłączyłem go zamiast max232. I tak się stało.

W moim obwodzie jest zworka jp1, której nie ma w dodatkowym piku, umieściłem ją bo nie wiedziałem jak zachowa się wyjście TX na poziomie TTL, więc umożliwiłem odwrócenie na pozostałym wolnym elemencie NAND i nie stracił, jak się okazało, bezpośrednio pin TX jest logiczny, a zatem po włączeniu na pinie VPP jest 12 woltów i nic się nie stanie podczas programowania (chociaż można programowo odwrócić TX).

Po złożeniu deski czas na testy. A potem przyszło główne rozczarowanie. Programista został określony natychmiast (za pomocą programu ic-prog) i zarobił, ale bardzo powoli! Zasadniczo należy się tego spodziewać. Następnie w ustawieniach portu COM ustawiłem prędkość maksymalna(128 kilobodów) rozpoczął testowanie wszystkich znalezionych programów pod kątem JDM. W rezultacie PicPgm okazał się najszybszy. Mój pic16f628a był w pełni sflashowany (hex, eeprom i config) plus weryfikacja gdzieś około 4-6 minut (ponadto odczyt jest wolniejszy niż pisanie). IcProg również działa, ale wolniej. Nie było błędów programistycznych. Próbowałem też sflashować eeprom 24c08, wynik ten sam - wszystko szyje, ale bardzo wolno.

Wnioski: programator jest dość prosty, nie ma drogich części (CH340 - 0,3-0,5 USD, k1533la3 można znaleźć generalnie wśród śmieci radiowych), działa na dowolnym komputerze, laptopie (można nawet korzystać z tabletów z Windows 8/10). Minusy: Jest bardzo powolny. On również wymaga zasilanie zewnętrzne dla sygnału VPP. W rezultacie, jak mi się wydawało, w przypadku rzadkiego flashowania szczytów jest to łatwa do powtórzenia i niedroga opcja dla tych, którzy nie mają pod ręką starego komputera z niezbędnymi portami.

Oto zdjęcie gotowego urządzenia:

Jak mówi piosenka: „Oślepiłem go tym, co było”. Zestaw części jest najbardziej zróżnicowany: zarówno smd, jak i DIP.

Dla tych, którzy odważą się powtórzyć schemat, prawie każdy (ft232, pl2303, cp2101 itp.) nadaje się jako konwerter usb-uart, zamiast k1533la3, k555 nadaje się chyba nawet seria k155 lub zagraniczny analog 74als00 prawdopodobnie będzie działać nawet z logicznymi elementami NOT, takimi jak k1533ln1. Załączam swoją płytkę drukowaną, ale okablowanie tam dla elementów, które były dostępne, każdy może sobie przerysować.

Lista elementów radiowych

Przeznaczenie Typ Określenie Ilość NotatkaWynikMój notatnik
IC1 ŻetonCH340G1 Do notatnika
IC2 ŻetonK1533LA31 Do notatnika
VR1 Regulator liniowy

LM7812

1 Do notatnika
VR2 Regulator liniowy

LM7805

1 Do notatnika
VT1 tranzystor bipolarny

KT502E

1 Do notatnika
VT2 tranzystor bipolarny

KT3102E

1 Do notatnika
VD1-VD3 dioda prostownicza

1N4148

2 Do notatnika
C1, C2, C5-C7 Kondensator100 nF5 Do notatnika
C3, C4 Kondensator22 pF2 Do notatnika
HL1-HL4 Dioda LEDKażdy4 Do notatnika
R1, R3, R4 Rezystor

1 kΩ

3

Czas więc studiować mikrokontrolery, a następnie je programować, a także chciałem na nich montować urządzenia, których obwody są teraz w Internecie, no cóż, po prostu morze. Cóż, znaleźliśmy obwód, kupiliśmy kontroler, pobraliśmy oprogramowanie .... i co flashować czym ??? I tu pojawia się pytanie dla radioamatora, który zaczyna opanowywać mikrokontrolery - wybór programisty! Chciałbym znaleźć najlepszą opcję pod względem wszechstronności - prostoty układu - niezawodności. Programiści „markowi” i ich odpowiedniki zostały natychmiast wykluczone z powodu dość złożonego obwodu, który zawiera te same mikrokontrolery, które należy zaprogramować. Oznacza to, że powstaje „błędne koło”: aby zrobić programistę, potrzebny jest programista. Więc rozpoczęły się poszukiwania i eksperymenty! Na początku wybór padł na PIC JDM. Ten programator działa z portu COM i jest stamtąd zasilany. Został wypróbowany ta opcja, pewnie zaprogramował 4 na 10 kontrolerów, z osobnym zasilaczem, sytuacja poprawiła się, ale niewiele, na niektórych komputerach odmówił w ogóle niczego, a to nie zapewnia ochrony przed „głupcem”. Następnie zbadano programistę Pony-Prog. W zasadzie prawie taki sam jak JDM.Programator Pony-prog jest bardzo prosty obwód, zasilany przez port COM komputera, w związku z którym na forach, w Internecie bardzo często pojawiają się pytania o awarie podczas programowania jednego lub drugiego mikrokontrolera. W rezultacie wybór padł na model „Extra-PIC”. Spojrzałem na schemat - bardzo prosty, kompetentnie! Na wejściu znajduje się MAX 232, który konwertuje sygnały portu szeregowego RS-232 na sygnały odpowiednie do użycia w obwody cyfrowe z poziomami TTL lub CMOS, nie obciąża portu COM komputera prądem, ponieważ wykorzystuje standard operacyjny RS232, nie stanowi zagrożenia dla portu COM.Oto pierwszy plus!
Współpracuje z dowolnymi portami COM, zarówno standardowymi (±12v; ±10v), jak i niestandardowymi portami COM niektórych modeli nowoczesnych laptopów z liniami sygnałowymi niskiego napięcia, do ±5v - kolejny plus! Obsługiwane przez popularne programy IC-PROG, PonyProg, WinPic 800 (WinPic800) i inne - trzeci plus!
A wszystko to zasilane jest z własnego źródła zasilania!
Zdecydowano - musimy zbierać! Tak więc w magazynie Radio 2007 nr 8 znaleziono zmodyfikowaną wersję tego programatora. Umożliwiał programowanie mikrokontrolerów w dwóch trybach.
Istnieją dwa sposoby wprowadzenia mikrokontrolerów PICmicro w tryb programowania:
1. Przy włączonym napięciu zasilania Vcc zwiększ napięcie Vpp (na pinie -MCLR) od zera do 12 V
2. Przy wyłączonym Vcc podnieś Vpp od zera do 12 V, a następnie włącz Vcc
Pierwszy tryb przeznaczony jest głównie dla urządzeń wczesnego rozwoju, nakłada ograniczenia na konfigurację pinu -MCLR, który w tym przypadku może służyć jedynie jako wejście dla sygnału konfiguracji początkowej, a w wielu mikrokontrolerach istnieje możliwość obrócenia tego pinu w regularną linię jednego z portów. To kolejny plus tego programatora. Jego schemat pokazano poniżej:

Większe
Wszystko zostało zmontowane na płytce stykowej i przetestowane. Wszystko działa dobrze i stabilnie, nie zauważono żadnych usterek!
Narysowano sygnet dla tego programisty.
depositfiles.com/files/mk49uejin
wszystko zostało zmontowane w otwartej skrzynce, której zdjęcie znajduje się poniżej.




Kabel połączeniowy został wykonany niezależnie z segmentu kabla ośmiożyłowego i standardowych złączy Komovsky'ego, żadne złącza zero-modemowe tu nie zadziałają, od razu ostrzegam! Montaż kabla należy podjąć ostrożnie, natychmiast pozbyć się bólu głowy w przyszłości. Długość kabla nie powinna przekraczać półtora metra.
Zdjęcie kabla


A więc programator jest zmontowany, kabel też, czas sprawdzić całą tę ekonomię pod kątem działania, poszukać usterek i błędów.
Przede wszystkim zainstaluj program IC-prog, który można pobrać ze strony dewelopera www.ic-prog.com Rozpakuj program do osobnego katalogu. Powstały katalog powinien zawierać trzy pliki:
icprog.exe - plik powłoki programisty.
icprog.sys - sterownik wymagany do pracy pod Windows NT, 2000, XP. Ten plik musi zawsze znajdować się w katalogu programu.
icprog.chm — plik pomocy.
Zainstalowany, teraz trzeba by go skonfigurować.
Dla tego:
1. (Tylko dla Windows XP): Kliknij prawym przyciskiem myszy kliknij plik icprog.exe. Właściwości >> Zakładka Zgodność >> Zaznacz pole obok "Uruchom ten program w trybie zgodności dla:" >> wybierz "Windows 2000".
2. Uruchom plik icprog.exe. Wybierz "Ustawienia" >> "Opcje" >> zakładka "Język" >> ustaw język na "rosyjski" i kliknij "OK".
Zgadzam się ze stwierdzeniem "Musisz teraz ponownie uruchomić IC-Prog" (kliknij "OK"). Powłoka programisty uruchomi się ponownie.
Ustawienia" >> "Programista

1. Sprawdź ustawienia, wybierz port COM, którego używasz, kliknij "OK".
2. Następnie „Ustawienia” >> „Opcje” >> wybierz zakładkę „Ogólne” >> zaznacz pole „Wł. Sterownik NT/2000/XP" >> Kliknij "OK" >> jeśli sterownik nie był wcześniej zainstalowany w Twoim systemie, w wyświetlonym oknie "Potwierdź" kliknij "OK". Sterownik zostanie zainstalowany, a powłoka programisty uruchomi się ponownie.
Notatka:
W przypadku bardzo szybkich komputerów może być konieczne zwiększenie ustawienia opóźnienia wejścia/wyjścia. Zwiększenie tego parametru zwiększa niezawodność programowania, jednak zwiększa się również czas poświęcony na programowanie mikroukładu.
3. „Ustawienia” >> „Opcje” >> wybierz zakładkę „I2C” >> zaznacz pola: „Włącz MCLR jako VCC” i „Włącz nagrywanie blokowe” Kliknij „Ok”.
4. „Ustawienia” >> „Opcje” >> wybierz zakładkę „Programowanie” >> odznacz pozycję: „Sprawdź po programowaniu” i zaznacz pole „Sprawdź w trakcie programowania”. Kliknij OK.
Tutaj jest skonfigurowany!
Teraz chcielibyśmy przetestować programator na miejscu za pomocą IC-prog. A tutaj wszystko jest proste:
Następnie w programie IC-PROG, w menu, uruchom: Ustawienia >> Test programatora

Przed wykonaniem każdego elementu metodologii testowania nie zapomnij ustawić wszystkich „pól” w ich pierwotnej pozycji (wszystkie „haczyki” są odznaczone), jak pokazano na powyższym rysunku.
1.Ustaw „haczyk” w polu „Wł. Data Out” jednocześnie w polu „Data Input” powinien pojawić się „ptaszek”, a na styku (DATA) złącza X2 powinien być ustawiony poziom dziennika. „1” (co najmniej +3,0 V). Teraz zamknij styk (DATA) i styk (GND) złącza X2 między sobą, podczas gdy znak w polu „Data Input” powinien zniknąć, gdy styki są zamknięte.
2.Przy ustawianiu „haczyka” w polu „Wł. Taktowanie ”, na styku (CLOCK) złącza X2 należy ustawić poziom rejestrowania. "jeden". (nie mniej niż +3,0 V).
3. Przy ustawianiu „haczyka” w polu „Wł. Reset (MCLR) ”, na styku (VPP) złącza X3, poziom powinien być ustawiony na +13,0 ... +14,0 V, a dioda LED D4 (zwykle czerwona) powinna się zaświecić. Jeśli przełącznik trybu jest ustawiony do pozycji 1 zaświeci się dioda HL3
Jeżeli podczas testów żaden sygnał nie przechodzi, należy dokładnie sprawdzić całą ścieżkę tego sygnału, łącznie z kablem łączącym się z portem COM komputera.
Testowanie kanału danych programatora EXTRAPIC:
1. 13 wyjście układu DA1: napięcie od -5 do -12 woltów. Podczas ustawiania „tick”: od +5 do +12 woltów.
2. 12 wyjść układu Da1: napięcie + 5 woltów. Podczas zaznaczania pola: 0 woltów.
3. 6 układ wyjściowy DD1: napięcie 0 woltów. Podczas ustawiania „tick”: +5 woltów.
3. Układ wyjściowy 1 i 2 DD1: napięcie 0 woltów. Podczas ustawiania „tick”: +5 woltów.
4. 3 układ wyjściowy DD1: napięcie + 5 woltów. Podczas zaznaczania pola: 0 woltów.
5. 14 wyjście układu DA1: napięcie od -5 do -12 woltów. Podczas ustawiania „tick”: od +5 do +12 woltów.
Jeśli wszystkie testy zakończyły się pomyślnie, programator jest gotowy do pracy.
Do podłączenia mikrokontrolera do programatora można użyć odpowiednich gniazd lub wykonać przejściówkę na bazie gniazda ZIF (z zerową siłą docisku), np. tutaj radiokot.ru/circuit/digital/pcmod/18/.
Teraz kilka słów o ICSP - In-Circuit Programming
Kontrolery PIC.
W przypadku korzystania z ICSP na płytce urządzenia należy zapewnić możliwość podłączenia programatora. Przy programowaniu za pomocą ICSP do programatora należy podłączyć 5 linii sygnałowych:
1. GND (VSS) - wspólny przewód.
2. VDD (VCC) - plus napięcie zasilania
3. MCLR" (VPP) - wejście resetowania mikrokontrolera / wejście napięciowe programowania
4. RB7 (DATA) - dwukierunkowa magistrala danych w trybie programowania
5. RB6 (ZEGAR) Wejście zegara w trybie programowania
Pozostałe piny mikrokontrolera nie są wykorzystywane w trybie programowania w układzie.
Możliwość podłączenia ICSP do mikrokontrolera PIC16F84 w pakiecie DIP18:

1. Linia MCLR” jest odłączona od obwodu urządzenia za pomocą zworki J2, która otwiera się w trybie programowania w obwodzie (ICSP), przekazując wyjście MCLR pod wyłączną kontrolę programatora.
2. Odłączenie linii VDD w trybie programowania ICSP od obwodu urządzenia zworką J1. Jest to konieczne, aby uniknąć poboru prądu z linii VDD przez obwód urządzenia.
3. Linia RB7 (dwukierunkowa magistrala danych w trybie programowania) jest izolowana prądem z obwodu urządzenia rezystorem R1 o wartości nominalnej co najmniej 1 kOhm. W związku z tym maksymalny prąd dopływowy / odprowadzany dostarczany przez tę linię będzie ograniczony przez rezystor R1. Jeśli konieczne jest zapewnienie maksymalnego prądu, rezystor R1 należy zastąpić (jak w przypadku VDD) zworką.
4. Linia RB6 (wejście synchronizacji PIC w trybie programowania) oraz RB7 jest odizolowana prądowo od obwodu urządzenia rezystorem R2 o wartości nominalnej co najmniej 1 kOhm. Dlatego maksymalny prąd opadania/opadania dostarczany przez tę linię będzie ograniczony przez rezystor R2. Jeśli konieczne jest zapewnienie maksymalnego prądu, rezystor R2 należy zastąpić (jak w przypadku VDD) zworką.
Lokalizacja pinów ICSP dla kontrolerów PIC:


Ten schemat ma jedynie charakter poglądowy, lepiej wyjaśnić wnioski programistyczne z arkusza danych na mikrokontrolerze.
Rozważmy teraz oprogramowanie układowe mikrokontrolera w programie IC-prog. Rozważymy tutaj przykład konstrukcji rgb73.mylivepage.ru/wiki/1952/579
Oto schemat urządzenia


oto oprogramowanie układowe
Flashowanie kontrolera PIC12F629. Mikrokontroler ten wykorzystuje do swojej pracy stałą oscalową - jest to heksadecymalna wartość kalibracyjna wewnętrznego generatora MK, za pomocą której MK raportuje czas wykonywania swoich programów, co jest zapisywane w ostatniej komórce z danymi szczytowymi. Podłączamy ten mikrokontroler do programatora.
Poniższy zrzut ekranu pokazuje kolejność działań w programie IC-prog w czerwonych cyfrach.


1. Wybierz typ mikrokontrolera
2. Naciśnij przycisk "Odczytaj chip"
W oknie Kod ostatnia komórka będzie naszą stałą dla ten kontroler. Każdy kontroler ma swoją własną stałą ! Nie wymazuj, zapisz na kartce i przyklej na chipie!
Idziemy dalej


3. Naciśnij przycisk "Otwórz plik ...", wybierz nasze oprogramowanie. W oknie kod programu pojawi się kod oprogramowania układowego.
4. Schodzimy na sam koniec kodu, klikamy prawym przyciskiem myszy ostatnią komórkę i wybieramy w menu „obszar edycji”, wpisujemy wartość stałej, którą zapisaliście w polu „szesnastkowy”, klikamy „OK” .
5. Kliknij "zaprogramuj chip".
Rozpocznie się proces programowania, jeśli wszystko poszło dobrze, program wyświetli odpowiednie powiadomienie.
Wyciągamy chip z programatora i wkładamy go do zmontowanego układu. Włączamy zasilanie. Wciskamy przycisk start.Brawo działa! Oto wideo z flashera w akcji
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
Załatwiłem to. Ale co, jeśli mamy plik? kod źródłowy w asm asemblerze, ale potrzebujemy pliku firmware hex? Potrzebny jest tutaj kompilator. i tak jest - to jest Mplab, w tym programie można zarówno pisać firmware jak i kompilować. Oto okno kompilatora


Zainstaluj MPlab
Program MPASMWIN.exe znajdujemy w zainstalowanym Mplab, zwykle znajdującym się w folderze - Microchip - MPASM Suite - MPASMWIN.exe
Uruchommy to. W oknie (4) Przeglądaj znajdujemy nasz (1) kod źródłowy .asm, w oknie (5) Procesor wybieramy nasz mikrokontroler, klikamy Assemble, a oprogramowanie układowe pojawi się w tym samym folderze, w którym określiłeś kod źródłowy. to!
Mam nadzieję, że ten artykuł pomoże początkującym w opanowaniu kontrolerów PIC! Powodzenia!

Tak się złożyło, że zacząłem swoją znajomość mikrokontrolerów z AVR. Mikrokontrolery PIC na razie, na razie - ominięte. Niemniej jednak mają też unikalne, ciekawe do powtórzenia projekty! Ale te mikrokontrolery też trzeba sflashować. Piszę ten artykuł głównie dla siebie. Aby nie zapomnieć o technologii flashowania mikrokontrolera PIC bez problemów i bezsensownej straty czasu.

Jak zaprogramować mikrokontrolery PIC lub prosty programator JDM

Dla pierwszego układu - długo i ciężko próbowałem zrobić programator PIC według układów znalezionych w internecie - nic się nie stało. Szkoda, ale musiałem zwrócić się do znajomego, aby sflashować MK. Ale nie o to chodzi - ciągle biegać po znajomych! Ten sam znajomy doradził też prosty schemat, który działa z portu COM. Ale nawet kiedy to poskładałem, to i tak nie działało. W końcu nie wystarczy zmontować programator - trzeba też ustawić do niego program, który będziemy flashować. I to jest dokładnie to, czego nie dostałem. Cała chmura instrukcji w internecie, a kilka z nich mi pomogło...

Potem udało mi się sflashować jeden mikrokontroler. Ale ponieważ flashowałem go w warunkach dużego braku czasu, nie pomyślałem, aby zapisać chociaż link do instrukcji. A przecież później go nie znalazłem. Dlatego powtarzam – piszę artykuł, aby mieć własne instrukcje.

A więc programista mikrokontrolerów PIC. Proste, ale nie 5 przewodów jak na Mikrokontrolery AVR którego używam do dziś. Oto schemat:

Tutaj płytka drukowana ().

Złącze COM jest przylutowane pinami bezpośrednio do padów (najważniejsze to nie mylić z numeracją). Drugi rząd pinów jest połączony z płytką małymi zworkami (mówiłem bardzo niezrozumiale, tak). Postaram się dać zdjęcie... nawet jeśli jest przerażające (nie mam w tej chwili normalnego aparatu).
Najgorszą rzeczą jest to, że w przypadku mikrokontrolerów PIC potrzebne jest 12 woltów do oprogramowania układowego. I lepiej nie 12, ale trochę więcej. Powiedzmy 13. Lub 13,5 (przy okazji, eksperci - popraw mnie w komentarzach, jeśli się mylę. Proszę.). Nadal można gdzieś uzyskać 12 woltów. Gdzie jest 13? Właśnie wyszedłem z sytuacji - wziąłem świeżo naładowany akumulator litowo-polimerowy, który miał 12,6 wolta. Cóż, może nawet czteroogniwowa bateria z 16 woltami (w ten sposób sflashowałem jeden PIC - nie ma problemu).

Ale znowu robię dygresję. A więc - instrukcje dotyczące oprogramowania układowego mikrokontrolerów PIC. Szukamy programu WinPIC800 (niestety prosty i popularny icprog nie działał dla mnie) i konfigurujemy go tak, jak pokazano na zrzucie ekranu.

Następnie otwórz plik oprogramowania układowego, podłącz mikrokontroler i sflashuj go.

Proponowany programator oparty jest na publikacji z magazynu Radia nr 2, 2004, „Programowanie nowoczesnych PIC16, PIC12 na PonyProg”. To jest mój pierwszy programator, którego używałem do flashowania układów PIC w domu. Programator jest uproszczoną wersją programatora JDM, oryginalny układ posiada konwerter RS-232 na TTL w postaci układu MAX232, jest bardziej uniwersalny, ale nie da się go zmontować „na kolanie”. Ten schemat nie ma aktywny składnik, nie zawiera rzadkich części i jest bardzo prosty, można go zmontować bez użycia płytki drukowanej.

Ryż. jeden: Schemat obwodu programista.

Opis schematu
Schemat programatora pokazano na ryc. 1. Rezystory w obwodach CLK (taktowanie), DATA (informacja), Upp (napięcie programujące) służą do ograniczenia przepływającego prądu. Kontrolery PIC są chronione przed awarią przez wbudowane diody Zenera, dzięki czemu uzyskuje się pewną kompatybilność logiki TTL i RS-232. W prezentowanym układzie znajdują się diody VD1, VD2, które „odbierają” dodatnie napięcie od Port COM względem pinu 5 i przenieść go do zasilania sterownika, dzięki czemu w niektórych przypadkach można pozbyć się dodatkowego źródła zasilania.

Ustanowienie
W praktyce nie zawsze się zdarza, że ​​ten programator będzie działał bez regulacji od 1. razu, bo. działanie tego schematu jest silnie uzależnione od parametrów portu COM. Jednak mam na dwie matczyne Płyty gigabajtowe 8IPE1000 i WinFast pod XP wszystko działało od razu. Jeśli jesteś zbyt leniwy, aby poradzić sobie z niedziałającym, bardziej złożonym układem programatora, powinieneś spróbować złożyć ten. Oto kilka rzeczy, które mogą mieć wpływ:

Nowsza mata. pokładzie, programiści zwracają mniejszą uwagę na te porty, ponieważ te porty już dawno stały się przestarzałe. Możesz się tego pozbyć, kupując adapter USB-COM, choć ponownie zakupione urządzenie może nie być odpowiednie. Wymagane parametry to: zmienne napięcie należy zmienić co najmniej -10V na +10V (log. 0 i 1) względem piątego pinu złącza. Prąd wyjściowy musi być co najmniej taki, aby przy podłączeniu rezystora 2,7 kΩ między 5 pin a testowany pin napięcie nie spadło poniżej 10V (sam takich płytek nie widziałem). Ponadto port musi poprawnie określić napięcia pochodzące ze sterownika, przy poziomie napięcia zbliżonym do 0 V, ale nie większym niż 2 V, wykrywane jest zero, a odpowiednio przy powyżej 2 V wykrywane jest jedno.

Również problemy mogą wynikać z oprogramowania.
Dotyczy to zwłaszcza systemu operacyjnego LINUX, ponieważ ze względu na obecność emulatorów, takich jak wine, porty VirtualBox mogą nie działać poprawnie i wymaga od nich wielu funkcji. Bardziej szczegółowo omówię te kwestie w innym artykule.

Znając te cechy, zacznijmy budować.
W tym celu bardzo pożądane jest posiadanie programu ICProg 1.05D.
W menu programu należy najpierw wybrać w ustawieniach ew. port (COM1. COM2), wybierz programator JDM. Następnie otwórz okno „Sprawdzanie sprzętu” w menu „Ustawienia”. W tym menu należy kolejno zaznaczyć pola i zmierzyć napięcie na stykach podłączonego złącza za pomocą woltomierza. Jeśli parametry napięcia nie odpowiadają normie, to niestety może to być przyczyną niesprawności, wtedy będziesz musiał zmontować obwód z konwerterem RS-232 TTL. Po sprawdzeniu wszystkich pól wyboru należy upewnić się, że na diodzie Zenera powstaje napięcie zasilania około 5 V. Jeśli napięcia są normalne i nie ma błędów instalacji, wszystko powinno działać. Wkładamy kontroler do gniazda, otwieramy oprogramowanie układowe, programujemy. Pola wyboru, takie jak „Odwróć dane”, nie muszą być włączone (wszystkie są odznaczone). Nie zapominaj również, że niektóre partie sterowników mogą nie mieć dość standardowych parametrów i nie można ich flashować, w takich przypadkach za pomocą tego programatora możesz tylko spróbować zmniejszyć napięcie zasilania z 5 V do 3-4 V, podłączając odpowiednie. dioda Zenera, spójrz na kontroler pod kątem błędnej aktywacji trybu LVP (programowanie niskonapięciowe), jak temu zapobiec, możesz poczytać w internecie dla konkretnego typu kontrolera. Prawdopodobnie można zwiększyć napięcie programujące problematycznego sterownika tylko poprzez skomplikowanie obwodu poprzez wprowadzenie stopnia wzmacniacza ze wspólnym emiterem, zasilanego z dodatkowego źródła zasilania.

Teraz więcej o problemie z zasilaniem urządzenia. Programator został przetestowany z programami ICProg i konsolą picprog pod Linuxem, powinien działać z każdym, kto obsługuje JDM jeśli podłączysz dodatkowe źródło zasilania (podłączone jest przez rezystor 1kΩ do diody Zenera, diody z rezystorami w tym przypadku mogą być całkowicie wyłączony). Faktem jest, że algorytmy sterowania programisty dla poszczególnych programów są różne, program ICProg jest najbardziej bezpretensjonalny. Zauważono, że w systemie Windows ten program podniósł nieużywany kontakt 2 właściwe napięcie! zasilacz, ten sam program pod emulatorem w Linuksie na innej macie. Płyta nie była już w stanie tego zrobić, jednak znaleziono wyjście, usuwając zasilanie z napięcia programowania. Generalnie z ICProgem myślę, że można używać tego programatora bez dodatkowej mocy. W przypadku innego oprogramowania jest to mało prawdopodobne, na przykład „natywny” od Repozytoria Ubuntu picprog bez zasilania po prostu nie wykrywa programatora, wyświetlając komunikat "sprzęt JDM nie znaleziono”. Prawdopodobnie albo odbiera jakieś dane bez podania napięcia programującego, albo robi to zbyt szybko, aby kondensator filtra nie zdążył się jeszcze naładować.