Najprostszy programator JDM do PIC na elementach pasywnych. Domowy programator do sterowników PIC Programator Jdm z zewnętrznym zasilaniem

Najprostszy programator JDM do PIC na elementach pasywnych. Domowy programator do sterowników PIC Programator Jdm z zewnętrznym zasilaniem

10.09.2023

Jest to najprostsza konstrukcja do flashowania sterowników rodziny PIC. Niezaprzeczalne zalety - prostota, zwartość, zasilanie bez zewnętrznego źródła tego klasycznego układu programatora - sprawiły, że stał się on bardzo popularny wśród radioamatorów, zwłaszcza że obwód ma już 5 lat i przez ten czas dał się poznać jako prosty i niezawodne narzędzie do pracy z mikrokontrolerami.

Schemat ideowy programatora kontrolerów pic:

Sam układ nie wymaga zasilania, gdyż robi to poprzez port COM komputera, poprzez który sterowane jest oprogramowanie układowe mikrokontrolera. W przypadku trybu programowania niskonapięciowego wystarczające jest 5 V, ale wszystkie opcje wymiany (bezpieczniki) mogą nie być dostępne. Złącze do podłączenia portu COM-9 zamontowano bezpośrednio na płytce programatora PIC - okazało się to bardzo wygodne.

Płytkę można podłączyć bezpośrednio do portu, bez dodatkowych przewodów. przetestowane na różnych komputerach i podczas programowania MK serii 12F, 16F i 18F wykazały wysoką jakość oprogramowania sprzętowego. Proponowany układ umożliwia programowanie mikrokontrolerów PIC12F509, PIC16F84A, PIC16F628. Przykładowo, ostatnio, korzystając z proponowanego programatora, powstał mikrokontroler dla .

Do programowania wykorzystywany jest WinPic800 - jeden z najlepszych programów do programowania kontrolerów PIC. Program umożliwia wykonywanie operacji na mikrokontrolerach z rodziny PIC: odczyt, zapis, kasowanie, sprawdzanie pamięci FLASH i EEPROM oraz ustawianie bitów konfiguracyjnych.

Rozwój elektroniki postępuje w szybkim tempie, a coraz częściej głównym elementem urządzenia jest mikrokontroler. Wykonuje większość pracy i uwalnia projektanta od konieczności tworzenia skomplikowanych projektów obwodów, redukując w ten sposób rozmiar płytki drukowanej do minimum. Jak powszechnie wiadomo, mikrokontrolerem steruje się program zapisany w jego wewnętrznej pamięci. A jeśli doświadczony programista elektronik nie ma problemów z wykorzystaniem mikrokontrolerów w swoich urządzeniach, to dla początkującego radioamatora próba wpisania programu do sterownika (zwłaszcza PIC) może zakończyć się dużym rozczarowaniem, a czasem nawet małym pokazem pirotechnicznym w w formie chipsów do palenia.

Co dziwne, mimo całej wielkości Internetu, jest bardzo mało informacji o oprogramowaniu sprzętowym Kontrolery PIC, a materiał, który można znaleźć, jest bardzo wątpliwej jakości. Oczywiście można kupić programator fabryczny za nieadekwatną cenę i szyć do woli, ale co zrobić, jeśli dana osoba nie zajmuje się masową produkcją. W tym celu możesz złożyć prosty i niedrogi domowy produkt o nazwie Programista JDM zgodnie ze schematem poniżej (rysunek nr 1):



Rysunek nr 1 - obwód programatora


Od razu podam listę elementów dla tych, którzy są zbyt leniwi, żeby dokładnie przyjrzeć się schematowi:

  • R1 - 10 kOhm
  • R2 - 10 kOhm (obcięty). Regulując rezystancję tego rezystora należy podczas programowania uzyskać około 13V na pinie nr 4 (VPP). W moim przypadku rezystancja wynosi 1,2 kOhm
  • R3 - 200 omów
  • R4, R5 - 1,5 kOhm
  • VD1, VD2, VD3, VD4, VD6 - 1N4148
  • VD5 - 1N4733A (napięcie stabilizacyjne 5,1 V)
  • VD7 - 1N4743A (napięcie stabilizacyjne 13V)
  • C1 – 100 nF (0,1 µF)
  • C2 - 470 uF x 16 V (elektrolityczny)
  • SUB-D9F - złącze portu COM (MAMA lub SOCKET)
  • Gniazdo DIP8 - zależy od używanego kontrolera

Na schemacie zastosowano przykład podłączenia takich popularnych sterowników jak PIC12F675 I PIC12F629, ale to wcale nie oznacza, że ​​​​firmware innych serii FOTKA będzie niemożliwe. Aby zapisać program do sterownika innego typu wystarczy podłączyć przewody programatora zgodnie z rysunkiem 2, który pokazano poniżej.



Rysunek nr 2 - opcje obudów kontrolera PIC wraz z niezbędnymi pinami


Jak można się domyślić, obwód mojego programatora wykorzystuje obudowę DIP8. Jeśli naprawdę chcesz, możesz wykonać uniwersalny adapter dla każdego rodzaju mikroukładu, uzyskując w ten sposób uniwersalny programator. Lecz odkąd Kontrolery PIC Rzadko pracuję, to mi wystarczy.

Choć sam obwód jest dość prosty i nie sprawi trudności w montażu, to jednak wymaga też szacunku. Dlatego miło byłoby zrobić do niego płytkę drukowaną. Po kilku manipulacjach w programie Układ Sprintu, PCB, wiertarka i żelazo, powstał taki blank (zdjęcie nr 3).



Zdjęcie nr 3 - płytka programatora


Pobierz źródło PCB programu Układ Sprintu możesz skorzystać z tego linku:
(pobrań: 680)
W razie potrzeby można go zmienić, aby dopasować go do typu kontrolera PIC. Dla tych, którzy zdecydowali się na pozostawienie płytki bez zmian zamieszczam widok od strony części dla ułatwienia montażu (Rysunek nr 4).



Rysunek nr 4 - tablica od strony montażu


Jeszcze trochę czarów z lutownicą i mamy gotowe urządzenie zdolne do flashowania Kontroler PIC Poprzez Port COM Twój komputer. Efekt moich wysiłków, jeszcze ciepły i nie zmyty z topnika, pokazany jest na zdjęciu nr 5.



Zdjęcie nr 5 - programator zmontowany


Od dziś pierwszy etap na drodze do firmware Kontroler PIC, dobiegło końca. Drugi etap będzie obejmował podłączenie programatora do komputera i pracę z programem IC-Prog.
Niestety nie wszystkie współczesne komputery i laptopy są w stanie współpracować z tym programatorem ze względu na banalny brak Porty COM, a te, które są instalowane na laptopach, nie zapewniają niezbędnych do programowania 12 V. Postanowiłem więc zwrócić się do mojego pierwszego komputer, która już dawno pokryła się kurzem i czekała na swoją najlepszą godzinę (i wreszcie nadeszła).
Włącz więc komputer i przede wszystkim zainstaluj program IC-Prog. Można ją pobrać ze strony autora lub pod tym linkiem:
(pobrań: 778)
Podłączamy programator do Port COM i uruchom nowo zainstalowaną aplikację. Do prawidłowego działania konieczne jest wykonanie szeregu manipulacji. Początkowo musisz wybrać rodzaj kontrolera, który będziesz szyć. Mam to PIC12F675. Na zrzucie ekranu nr 6 pole wyboru kontrolera jest podświetlone na czerwono.



Zrzut ekranu nr 6 - wybór typu mikrokontrolera




Zrzut ekranu nr 7 - ustawienie sposobu nagrywania sterownika


W tym samym oknie przejdź do „zakładki” Programowanie" i wybierz element " Sprawdź podczas programowania”. Sprawdzanie po programowaniu może spowodować błąd, ponieważ w niektórych przypadkach oprogramowanie samo ustawia bezpieczniki blokujące odczyt SR. Aby się nie oszukać, lepiej wyłączyć tę kontrolę. Krótko mówiąc, podążamy za zrzutem ekranu nr 8.



Zrzut ekranu nr 8 - konfiguracja weryfikacji


Kontynuujmy pracę z tym oknem i przejdźmy do zakładki „ Są pospolite„. Tutaj musisz ustawić priorytet programu i koniecznie go użyć NT/2000/XP sterownik (zrzut ekranu nr 9). W niektórych przypadkach program może wyświetlić monit o zainstalowanie tego sterownika i wymagane będzie ponowne uruchomienie. IC-Prog.



Zrzut ekranu nr 9 - ustawienia ogólne


Skończyliśmy z tym oknem. Przejdźmy teraz do ustawień samego programatora. Wybierz z menu " Ustawienia"->"Ustawienia programisty"lub po prostu naciśnij klawisz F3. Pojawi się następujące okno, pokazane na zrzucie ekranu nr 10.



Zrzut ekranu nr 10 - okno ustawień programatora


Przede wszystkim wybierz typ programatora - Programista JDM. Następnie ustaw przycisk radiowy na korzystanie ze sterownika Okna. Następnym krokiem jest wybór Port COM, do którego podłączony jest programator. Jeśli jest tylko jeden, nie ma żadnych pytań, ale jeśli jest więcej niż jeden, sprawdź w menedżerze urządzeń, który z nich jest aktualnie używany. Suwak opóźnienia we/wy służy do regulacji prędkości zapisu i odczytu. Może to być potrzebne na szybkich komputerach i jeśli pojawią się problemy z oprogramowaniem - parametr ten należy zwiększyć. W moim przypadku domyślnie pozostało równe 10 i wszystko działało dobrze.

To wszystko, jeśli chodzi o konfigurację programu. IC-Prog się skończył i można przejść do procesu samego oprogramowania, ale najpierw czytamy dane z mikrokontrolera i widzimy, co jest na nim zapisane. W tym celu na pasku narzędzi kliknij ikonę mikroukładu z zieloną strzałką, jak pokazano na zrzucie ekranu nr 11.



Zrzut ekranu nr 11 - proces odczytu informacji z mikrokontrolera


Jeżeli mikrokontroler jest nowy i nie był wcześniej flashowany to wszystkie jego komórki pamięci zostaną wypełnione wartościami 3FFF, z wyjątkiem ostatniego. Będzie zawierać wartość stałej kalibracyjnej. Jest to bardzo ważna i unikalna wartość dla każdego kontrolera. Od tego zależy dokładność pomiaru czasu, którą ustawia producent wybierając i ustawiając tę ​​samą stałą. Zrzut ekranu nr 12 przedstawia komórkę pamięci, w której będzie zapisana stała podczas odczytu sterownika.



Zrzut ekranu nr 12 - wartość stałej kalibracyjnej


Powtarzam, że wartość jest unikalna dla każdego chipa i nie musi zgadzać się z tym, co pokazano na rysunku. Wiele osób z powodu braku doświadczenia nadpisuje tę stałą i później Kontroler PIC zaczyna działać niepoprawnie, jeśli projekt wykorzystuje taktowanie z wewnętrznego oscylatora. Radzę spisać tę stałą i przykleić etykietę z jej wartością bezpośrednio na kontrolerze. W ten sposób unikniesz wielu problemów w przyszłości. Wartość jest zapisana - przejdźmy dalej. Otwieramy plik oprogramowania sprzętowego, który zwykle ma rozszerzenie .klątwa. Teraz zamiast napisów 3FFF, bufor programowania zawiera kod naszego programu (zrzut ekranu nr 13).



Zrzut ekranu nr 13 - firmware załadowany do bufora programowania


Napisałem powyżej, że wiele osób niechcący nadpisuje stałą kalibracyjną. Kiedy to się dzieje? Dzieje się tak po otwarciu pliku oprogramowania sprzętowego. Wartość stała automatycznie zmienia się na 3FFF a kiedy już rozpoczniesz proces programowania, nie będzie już odwrotu. Na zrzucie ekranu nr 14 zaznaczona jest komórka pamięci, w której wcześniej znajdowała się stała 3450 (przed otwarciem plik szesnastkowy).

Któregoś dnia postanowiłem złożyć prosty miernik LC do pic16f628a i oczywiście trzeba było go czymś sflashować. Kiedyś miałem komputer z fizycznym portem COM, ale teraz mam tylko USB i płytkę pci-lpt-2com. Na początek złożyłem prosty programator JDM, ale jak się okazało, nie chciał on współpracować ani z płytką pci-lpt-com, ani z adapterem usb-com (niskie napięcie sygnałów RS-232). Potem pospieszyłem szukać programistów do usb pic, ale tam, jak się okazało, wszystko ograniczało się do użycia drogiego pic18f2550/4550, którego oczywiście nie miałem, a szkoda używać tak drogich MK, jeśli bardzo rzadko coś robię na szczytach (wolę av- Tak, flashowanie ich nie stanowi problemu, są znacznie tańsze i wydaje mi się, że łatwiej jest na nich pisać programy). Po długim czasie szperania w Internecie w jednym z wielu artykułów na temat programatora EXTRA-PIC i jego różnych wariantów, jeden z autorów napisał, że Extrapic działa z każdym portem COM, a nawet adapterem USB-COM.

Obwód tego programatora wykorzystuje konwerter poziomów logicznych max232.

Pomyślałem, że jeśli używasz adaptera USB, bardzo głupio byłoby dwukrotnie konwertować USB na usart TTL, TTL na RS232, RS232 z powrotem na poziomy TTL, jeśli możesz po prostu pobrać sygnały TTL z portu RS232 z USB- układ konwertera usart.

Więc zrobiłem. Wziąłem układ CH340G (który ma wszystkie 8 sygnałów portu COM) i podłączyłem go zamiast max232. I to właśnie się wydarzyło.

W moim obwodzie jest zworka jp1, która nie jest w dodatkowym piku, zamontowałem ją bo nie wiedziałem jak zachowa się wyjście TX na poziomie TTL, więc umożliwiłem jej odwrócenie na pozostałej wolnej NAND element i jak się okazało było OK, na pinie TX jest logiczny, dlatego po włączeniu na pinie VPP jest 12 V, ale podczas programowania nic się nie stanie (chociaż można odwrócić TX w oprogramowaniu) .

Po złożeniu płytki przyszedł czas na testy. I tu przyszło główne rozczarowanie. Programista został natychmiast zidentyfikowany (za pomocą programu ic-prog) i zaczął działać, ale bardzo powoli! W zasadzie – zgodnie z oczekiwaniami. Następnie w ustawieniach portu com ustawiłem maksymalną prędkość (128 kilobodów) i zacząłem testować wszystkie znalezione programy dla JDM. W rezultacie PicPgm okazał się najszybszy. Mój pic16f628a został w pełni sflashowany (hex, eeprom i konfiguracja) plus weryfikacja przez około 4-6 minut (odczyt jest wolniejszy niż zapis). IcProg również działa, ale wolniej. Nie było żadnych błędów programistycznych. Próbowałem też flashować eeprom 24c08, efekt ten sam - wszystko szyje, ale bardzo wolno.

Wnioski: programator jest dość prosty, nie zawiera drogich części (CH340 - 0,3-0,5 $, k1533la3 ogólnie można znaleźć wśród złomu radiowego), działa na każdym komputerze, laptopie (a nawet tabletów można używać na Windows 8/10 ). Minusy: jest bardzo powolny. Wymaga także zewnętrznego zasilania dla sygnału VPP. W rezultacie wydawało mi się, że w przypadku rzadkiego migania 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: „Uczyniłem go z tego, co było”. Zestaw części jest bardzo różnorodny: zarówno SMD, jak i DIP.

Dla tych, którzy odważą się powtórzyć obwód, prawie każdy będzie odpowiedni jako konwerter USB-Uart (ft232, pl2303, cp2101 itp.), Zamiast k1533la3, odpowiedni będzie k555, myślę, że nawet seria k155 lub zagraniczny analog 74als00, może nawet działać z logicznymi elementami NOT typu k1533ln1. Dołączam własną płytkę drukowaną, ale każdy może przerysować tam okablowanie pod kątem elementów, które były dostępne.

Lista radioelementów

Przeznaczenie Typ Określenie Ilość NotatkaSklepMó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 kOhm

3

Szybkie złożenie ulubionego układu na mikrokontrolerze nie stanowi problemu dla wielu radioamatorów. Jednak wiele osób rozpoczynających pracę z mikrokontrolerami staje przed pytaniem, jak je zaprogramować. Jedną z najprostszych opcji programisty jest programator JDM.

Programista ProgCode v 1.0

Ten program działa na Windows XP. Umożliwia programowanie sterowników PIC średniej rodziny (PIC16Fxxx) poprzez port COM komputera. Wskaźnik podłączenia programatora (w prawym górnym rogu okna) zmienia kolor na czerwony, jeżeli na wybranym w ustawieniach porcie nie ma programatora. Jeżeli programator jest podłączony, program go wykrywa, a wskaźnik w prawym górnym rogu przyjmuje postać pokazaną na rysunku 1.

Po lewej stronie okna programu znajduje się panel sterowania. Panel ten można zminimalizować klikając na przycisk na pasku narzędzi lub klikając w lewą krawędź okna (jest to wygodne, gdy okno programu jest zmaksymalizowane do pełnego ekranu).

Rysunek (zrzut ekranu programu ProgCode v1.0)


Jeżeli do programu zostanie wczytany plik HEX, wówczas zaleca się najpierw wybrać z listy sterowników MK, dla którego przeznaczony jest załadowany firmware. Jeśli tego nie zrobimy, plik przeznaczony dla mikrokontrolera z pamięcią większą niż wybrana na liście zostanie odcięty i część programu zostanie utracona - w przypadku tej opcji wczytania pliku wyświetli się ostrzeżenie.

Jeśli tak się nie stanie, możesz wybrać żądany kontroler po załadowaniu pliku do programu.

Format pliku SFR

Programator ProgCode wspiera pracę z własnym formatem plików. Pliki te posiadają rozszerzenie .SFR i pozwalają na przechowywanie dodatkowych informacji o programie przeznaczonym dla mikrokontrolera. Plik ten przechowuje informacje o typie mikrokontrolera. Dzięki temu nie musisz martwić się o wstępny wybór typu MK w ustawieniach podczas ładowania pliku SFR.

Ustawienia portu i protokołu przy podłączaniu programatora

Po zainstalowaniu programu domyślnie ustawione są wszystkie ustawienia niezbędne programiście do pracy z układem JDM podane na tej stronie.
Odwrócenie sygnału w powyższym obwodzie jest potrzebne tylko dla wyjścia OutData, ponieważ w tym obwodzie sygnał jest odwracany przez pasujący tranzystor. Na wszystkich pozostałych pinach inwersja jest wyłączona.



Opóźnienie impulsu może być równe 0. Jego regulacja jest przewidziana dla „szczególnie trudnych” instancji sterownika, których nie da się sflashować. To samo tyczy się limitu pauzy w nagrywaniu – domyślnie wynosi on zero. Zwiększenie tych ustawień znacznie wydłuży czas programowania sterownika.

Pole wyboru „sprawdź przy zapisie” powinno być zaznaczone, jeśli chcesz „w locie” sprawdzić wszystko, co jest zapisane w mikrokontrolerze pod kątem poprawności i zgodności z plikiem źródłowym. Jeśli odznaczysz to pole, sprawdzenie nie zostanie w ogóle przeprowadzone i nie pojawią się żadne komunikaty o błędach, nawet jeśli takie błędy rzeczywiście występują.
Wybierz prędkość portu - prędkość może być dowolna. Dla programisty JDM parametr ten nie ma żadnego znaczenia.

Windows XP wykorzystuje buforowanie informacji przesyłanych przez porty COM. Są to tak zwane bufory FIFO. Aby uniknąć błędów podczas programowania poprzez JDM, należy wyłączyć ten mechanizm. Można to zrobić w Menedżerze urządzeń systemu Windows.

Przejdź do panelu sterowania, a następnie:
Administracja - Zarządzanie komputerem - Menedżer urządzeń

Następnie wybierz port do którego podłączony jest programator JDM (np. COM1) - spójrz na właściwości - zakładka parametry portu - dodatkowe. I odznacz pole „Użyj buforów FIFO”

Rysunek - Konfigurowanie portu COM do pracy z programistą JDM



Następnie uruchom ponownie komputer.


Lokalny eksplorator projektu

Oprócz bezpośredniego programowania sterowników, program udostępnia wygodną przeglądarkę projektów na MK, znajdujących się zarówno w lokalnych folderach komputera, jak i w Internecie. Zrobiono to ze względu na łatwość obsługi. Często niezbędne projekty znajdują się w różnych folderach i trzeba poświęcić czas na dotarcie do odpowiedniego katalogu, aby obejrzeć projekt. Tutaj możesz łatwo dodać niezbędne foldery do listy folderów i wyświetlić dowolny projekt za pomocą dwóch lub trzech kliknięć myszką.

Po dwukrotnym kliknięciu w panelu przeglądarki dowolny plik otworzy się w samym programie - dotyczy to zdjęć, plików html, doc, rtf, djvu (z zainstalowanymi wtyczkami), pdf, txt, asm. Plik można również otworzyć poprzez dwukrotne kliknięcie w przeglądarce za pomocą zewnętrznego programu zainstalowanego na komputerze. W tym celu na liście „Powiązania plików” należy wpisać rozszerzenie żądanego typu pliku. Jeśli nie określisz ścieżki do programu otwierającego, system Windows domyślnie otworzy plik w programie (jest to wygodne przy otwieraniu archiwów, które nie zawsze są wyraźnie otwarte). Jeśli na liście podana jest ścieżka do programu otwierającego, plik zostanie otwarty w określonym programie. Wygodnie jest przeglądać w ten sposób pliki takie jak SPL, LAY, DSN.

Rysunek (zrzut ekranu przeglądarki programu ProgCode v1.0)



Tak wygląda okno ustawień powiązania plików:




Przeglądarka projektów internetowych

Przeglądarka projektów w Internecie, podobnie jak lokalna przeglądarka projektów, pozwala za pomocą kilku kliknięć szybko przejść do żądanej witryny w Internecie, obejrzeć projekt i, jeśli to konieczne, natychmiast sflashować program w MK.



Podczas przeglądania projektów w Internecie, jeśli na stronie projektu znajduje się link do pliku z rozszerzeniem SFR (jest to format pliku programu ProgCode), to po kliknięciu na niego plik taki otworzy się w nowym zakładce programu i jest od razu gotowy do flashowania w mikrokontrolerze.
Listę linków można edytować za pomocą przycisku „Edytuj”. Otworzy się okno umożliwiające edycję listy linków:





Opis procesu programowania chipa

Większość nowoczesnych układów scalonych zawiera pamięć flash programowaną przy użyciu I2C lub podobnych protokołów.
Pamięć wielokrotnego zapisu znajduje się w sterownikach PIC, AVR i innych, układach pamięci takich jak 24Cxx i podobnych, różnych kartach pamięci, takich jak MMC i SD, zwykłych kartach flash USB podłączanych do komputera za pomocą złącza USB.

Rozważmy zapisanie informacji w pamięci flash mikrokontrolera PIC 16 F 628 A

Istnieją 2 linie DATA i CLOCK , przez który jest przesyłanyInformacja. Linia ZEGAR służy do zasilania impulsów zegarowych i linii DANE do przesyłania informacji.

Aby przesłać 1 bit informacji do mikrokontrolera należy ustawić 0 lub 1 (w zależności od wartości bitu) na linii danych (DATA) i spowodować spadek napięcia (przejście z 1 na 0) na linii zegara ( ZEGAR).
Jeden bit dla kontrolera nie wystarczy. Czeka jeszcze pięć, aby potraktować tę 6-bitową wiadomość jako polecenie. Kontroler bardzo lubi polecenia, a one muszą składać się z 6 bitów – taka jest natura PIC 16.
Oto lista i znaczenie poleceń, które PIC jest w stanie zrozumieć. Poleceń nie jest zbyt wiele - słownictwo tego kontrolera jest niewielkie, ale nie myśl, że jest to całkowicie głupie - są urządzenia z mniejszą liczbą poleceń

„LoadConfiguration” 000000 - Ładowanie konfiguracji

„LoadDataForDataMemory” – 000011 – Ładowanie danych do pamięci danych (EEPROM)
„InkrementAdres” 000110 – Zwiększ adres PC MK
"ReadDataFromProgramMemory" 000100 - Odczyt danych z pamięci programu
„ReadDataFromDataMemory” 000101 - Odczyt danych z pamięci danych (EEPROM)
„BeginProgrammingOnlyCycle” 011000 - Rozpocznij cykl programowania
„BulkEraseProgramMemory” 001001 – Całkowite kasowanie pamięci programu
„BulkEraseDataMemory” 001011 – Całkowite kasowanie pamięci danych (EEPROM)

Sterownik reaguje na te polecenia w różny sposób. Na różne sposoby po wydaniu polecenia musisz kontynuować z nim rozmowę.
Aby rozpocząć pełnoprawny proces programowania, należy również przyłożyć napięcie 12 woltów do styku MCLR sterownika, a następnie przyłożyć do niego napięcie zasilania. W tej sekwencji zasilania napięciem ma pewne znaczenie. Po włączeniu zasilania, jeśli PIC jest skonfigurowany do pracy z wewnętrznego oscylatora RC, może rozpocząć wykonywanie własnego programu, co jest niedozwolone podczas programowania, ponieważ awaria jest nieunikniona.
Wstępne zasilanie 12 woltów do MCLR pozwala uniknąć takiego rozwoju.
Podczas zapisywania informacji w pamięci flash programów MK po poleceniu

„LoadDataForProgramMemory” 000010 - Ładowanie danych do pamięci programu

konieczne jest przesłanie samych danych do sterownika - 16 bitów,
które wyglądają tak:

„0xxxxxxxxxxxxxx 0.”

Krzyżyki w tym słowie są samymi danymi, a zera na krawędziach są wysyłane jako ramka - taki jest standard dla PIC 16. W słowie jest tylko 14 bitów znaczących. Ta seria sterowników ma 14-bitowe polecenie formacie reprezentacji.
Po zakończeniu transmisji słowa danych, PIC czeka na następne polecenie.
Ponieważ naszym celem jest zapisanie słowa w pamięci programu MK, kolejnym poleceniem powinno być polecenie

„BeginEraseProgrammingCycle” 001000 – Rozpocznij cykl programowania

Po jego otrzymaniu kontroler rozłącza się ze światem zewnętrznym na 6 milisekund, które są mu potrzebne do zakończenia procesu rejestracji.

Sygnały na pinach mikrokontrolera generowane są przez komputer przy pomocy specjalnych programów – programistów. Do transmisji sygnału można wykorzystać porty COM, LPT lub USB. Z programatorem JDM współpracują programy takie jak PonyProg, IsProg, WinPic800.


Obwód programatora JDM

Na rysunku pokazano bardzo prosty obwód programatora. Choć obwód ten nie realizuje kontroli kolejności podawania napięcia, jest on bardzo prosty i możliwy jest bardzo szybki montaż takiego obwodu przy użyciu minimalnej liczby części.
Rysunek (obwód programatora JDM)


Jednym z pytań przy podłączaniu programisty do komputera jest to, jak zapewnić selektywną izolację. Aby uniknąć uszkodzenia portu COM w przypadku nieprawidłowego działania obwodu. Niektóre konstrukcje wykorzystują układ scalony MAX232, który zapewnia selektywną izolację i dopasowanie poziomu sygnału. W tym schemacie problem rozwiązano prościej - wykorzystując zasilanie bateryjne. Poziom sygnału pochodzącego z komputera jest ograniczony przez diody Zenera VD1, VD2 i VD3. Pomimo prostoty obwodu programatora JDM, można go wykorzystać do programowania większości typów mikrokontrolerów PIC.

Zworka pomiędzy pinami COM6(DSR) i COM7(RTS) jest zaprojektowana tak, aby program mógł stwierdzić, że programator jest podłączony do komputera.

Podłączenie wyjść programatora do konkretnego MK zależy od typu MK. Często na płytce programatora montuje się kilka paneli, które są przeznaczone dla konkretnego typu sterownika.

Tabela pokazuje przeznaczenie nóg niektórych typów MK podczas programowania.

Mikrokontrolery PIC16F84 i PIC16F84A mają taki sam układ pinów przeznaczony do programowania.



Przyporządkowanie pinów dla mikrokontrolerów serii PIC16Fxxx w zależności od rodzaju obudowy jest w większości przypadków standardowe, jednak jeśli są co do tego jakiekolwiek wątpliwości, wówczas najpewniejsze jest sprawdzenie arkusza danych pod kątem konkretnego egzemplarza MK. Część dokumentacji dostępna jest na rosyjskiej stronie internetowej http://microchip.ru Kompletny zbiór arkuszy danych i innej dokumentacji znajduje się na stronie internetowej producenta mikrokontrolera PIC: http://microchip.com

Indeks projektów

Program umożliwia bezpośrednie przejście do strony indeksu, obejrzenie opisu żądanego projektu za pomocą kilku kliknięć i natychmiastowe flashowanie programu w kontrolerze.



Jeśli chcesz sflashować sterownik wybranym firmware kliknij na plik SFR np. Timer_a.sfr
Program pobiera plik z serwera do nowej karty.



Następnie pozostaje tylko włożyć MK do gniazda programatora, jeśli nie zostało to jeszcze zrobione, i kliknąć przycisk „Zapisz wszystko”.
Program jest nagrany w MK. Następnie należy włożyć sterownik do płytki urządzenia i urządzenie jest gotowe do pracy.

Jakie pierwsze kroki powinien podjąć radioamator decydując się na montaż obwodu na mikrokontrolerze? Oczywiście potrzebny jest program sterujący - „oprogramowanie układowe”, a także programista.

A jeśli z pierwszym punktem nie ma problemów - gotowe „oprogramowanie układowe” jest zwykle przesyłane przez autorów obwodów, to z programistą sprawy są bardziej skomplikowane.

Cena gotowych programatorów USB jest dość wysoka i najlepszym rozwiązaniem byłoby złożenie ich samodzielnie. Poniżej schemat proponowanego urządzenia (zdjęcia można kliknąć).

Głównym elementem.

Panel instalacyjny MK.

Oryginalny diagram został pobrany ze strony LabKit.ru za zgodą autora, za co mu serdecznie dziękuję. Jest to tzw. klon autorskiego programatora PICkit2. Ponieważ wersja urządzenia jest „lekką” kopią autorskiego PICkit2, autor nazwał swoje opracowanie PICkit-2 Lite, co podkreśla łatwość montażu takiego urządzenia dla początkujących radioamatorów.

Co potrafi programista? Za pomocą programatora można flashować najbardziej dostępne i popularne mikrokontrolery serii PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A itp.), a także układy pamięci EEPROM serii 24LC. Dodatkowo programator może pracować w trybie konwertera USB-UART i posiada część funkcji analizatora stanów logicznych. Szczególnie ważną funkcją programatora jest obliczenie stałej kalibracyjnej wbudowanego generatora RC niektórych MCU (na przykład PIC12F629 i PIC12F675).

Potrzebne zmiany.

Konieczne są pewne zmiany w układzie, aby przy pomocy programatora PICkit-2 Lite możliwe było zapisywanie/kasowanie/odczyt danych z układów pamięci EEPROM serii 24Cxx.

Ze zmian wprowadzonych w schemacie. Dodano połączenie między pinem 6 DD1 (RA4) a pinem 21 panelu ZIF. Pin AUX służy wyłącznie do pracy z układami pamięci 24LC EEPROM (24C04, 24WC08 i analogi). Przesyła dane, dlatego na schemacie panelu programującego jest oznaczony słowem „Dane”. Podczas programowania mikrokontrolerów pin AUX zwykle nie jest używany, chociaż jest potrzebny przy programowaniu MK w trybie LVP.

Dodano także rezystor podciągający 2 kOhm, który podłącza się pomiędzy pinami SDA i Vcc układów pamięci.

Wszystkie te modyfikacje wykonałem już na płytce drukowanej, po złożeniu PICkit-2 Lite według oryginalnego schematu autora.

Układy pamięci 24Cxx (24C08 itp.) są szeroko stosowane w domowym sprzęcie radiowym i czasami trzeba je flashować, na przykład podczas naprawy telewizorów CRT. Do przechowywania ustawień wykorzystują pamięć 24Cxx.

Telewizory LCD wykorzystują inny typ pamięci (pamięć Flash). Mówiłem już o tym, jak sflashować pamięć telewizora LCD. Jeśli ktoś jest zainteresowany, niech zajrzy.

Ze względu na konieczność pracy z mikroukładami serii 24Cxx musiałem „dokończyć” programator. Nie trawiłem nowej płytki drukowanej, po prostu dodałem niezbędne elementy na płytkę drukowaną. To jest to, co się stało.

Sercem urządzenia jest mikrokontroler PIC18F2550-I/SP.

Jest to jedyny chip w urządzeniu. MK PIC18F2550 wymaga „flashowania”. Ta prosta operacja powoduje zamieszanie dla wielu osób, ponieważ pojawia się tak zwany problem „kurczaka i jajka”. Nieco później opowiem Ci, jak to rozwiązałem.

Lista części do montażu programatora. W wersji mobilnej przeciągnij tabelę w lewo (przesuń palcem od lewej do prawej), aby zobaczyć wszystkie jej kolumny.

Nazwa Przeznaczenie Ocena/parametry Marka lub typ produktu
Dla głównej części programisty
Mikrokontroler DD1 Mikrokontroler 8-bitowy PIC18F2550-I/SP
Tranzystory bipolarne VT1, VT2, VT3 KT3102
VT4 KT361
Dioda VD1 KD522, 1N4148
Dioda Schottky’ego VD2 1N5817
diody LED HL1, HL2 dowolne 3 wolty, czerwony I zielonyświecące kolory
Rezystory R1, R2 300 omów
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kiloomów
R7, R8, R14 100 omów
R9, R10, R15, R16 4,7 kOhm
R11 2,7 kOhm
R13 100 kiloomów
Kondensatory C2 0,1 µm K10-17 (ceramiczny), importowane analogi
C3 0,47 mikrona
Kondensatory elektrolityczne C1 100 uF * 6,3 V K50-6, importowane analogi
C4 47 uF * 16 V
Cewka indukcyjna (dławik) L1 680 µH zunifikowany typ EC24, CECL lub domowy
Rezonator kwarcowy ZQ1 20 MHz
Gniazdo USB XS1 typu USB-BF
Sweter XT1 dowolny rodzaj „skoczka”
Do panelu instalacyjnego mikrokontrolera (MK)
panelu ZIF XS1 dowolny 40-pinowy panel ZIF
Rezystory R1 2 kOhm MLT, MON (moc od 0,125 W i więcej), importowane analogi
R2, R3, R4, R5, R6 10 kiloomów

Teraz trochę o szczegółach i ich przeznaczeniu.

Zielony Dioda LED HL1 zapala się, gdy programator jest zasilany, oraz czerwony Dioda HL2 świeci, gdy dane są przesyłane pomiędzy komputerem a programatorem.

Aby zapewnić wszechstronność i niezawodność urządzenia, zastosowano gniazdo USB typu XS1 „B” (kwadratowe). Komputer korzysta z gniazda USB typu A. Dlatego nie można pomylić gniazd kabla połączeniowego. Rozwiązanie to wpływa również na niezawodność urządzenia. Jeśli kabel stanie się bezużyteczny, można go łatwo wymienić na nowy, bez konieczności lutowania lub prac instalacyjnych.

Jako cewkę 680 µH L1 lepiej zastosować gotową cewkę (np. typu EC24 lub CECL). Ale jeśli nie możesz znaleźć gotowego produktu, możesz samodzielnie wykonać przepustnicę. Aby to zrobić, należy nawinąć 250–300 zwojów drutu PEL-0,1 na rdzeń ferrytowy z cewki indukcyjnej typu CW68. Warto wziąć pod uwagę, że dzięki obecności PWM ze sprzężeniem zwrotnym nie ma potrzeby martwić się o dokładność pomiaru indukcyjności.

Napięcie do programowania wysokiego napięcia (Vpp) od +8,5 do 14 woltów jest wytwarzane przez kluczowy regulator. Zawiera elementy VT1, VD1, L1, C4, R4, R10, R11. Impulsy PWM są wysyłane z pinu 12 układu PIC18F2550 do podstawy VT1. Sprzężenie zwrotne zapewnia dzielnik R10, R11.

Aby zabezpieczyć elementy obwodu przed napięciem wstecznym z linii programowania podczas korzystania z programatora USB w trybie ICSP (In-Circuit Serial Programming), stosuje się diodę VD2. VD2 to dioda Schottky'ego. Należy go wybrać przy spadku napięcia na złączu P-N nie większym niż 0,45 wolta. Dioda VD2 chroni także elementy przed napięciem wstecznym, gdy programator pracuje w trybie konwersji USB-UART i analizatora stanów logicznych.

Używając programatora wyłącznie do programowania mikrokontrolerów w panelu (bez użycia ICSP) można całkowicie wyeliminować diodę VD2 (ja tak zrobiłem) i w jej miejsce założyć zworkę.

Kompaktowość urządzenia zapewnia uniwersalny panel ZIF (Zero Insertion Force – przy zerowym wysiłku instalacyjnym).

Dzięki niemu można „wpiąć” mikrokontroler w niemal każdą paczkę DIP.

Schemat „Panel instalacyjny mikrokontrolera (MK)” wskazuje, w jaki sposób należy zamontować w panelu mikrokontrolery o różnych obudowach. Instalując MK należy zwrócić uwagę na to, aby mikrokontroler w panelu był ustawiony tak, aby klucz na chipie znajdował się z boku dźwigni blokującej panel ZIF.

W ten sposób należy zainstalować mikrokontrolery 18-pinowe (PIC16F84A, PIC16F628A itp.).

A oto mikrokontrolery 8-pinowe (PIC12F675, PIC12F629 itp.).

Jeśli chcesz sflashować mikrokontroler w obudowie do montażu powierzchniowego (SOIC), możesz użyć adaptera lub po prostu przylutować do mikrokontrolera 5 pinów, które są zwykle wymagane do programowania (Vpp, Clock, Data, Vcc, GND).

Gotowy rysunek płytki drukowanej ze wszystkimi zmianami znajdziesz pod linkiem na końcu artykułu. Otwierając plik w programie Sprint Layout 5.0, korzystając z trybu „Drukuj”, można nie tylko wydrukować warstwę ze wzorem wydrukowanych przewodników, ale także podejrzeć rozmieszczenie elementów na płytce drukowanej. Zwróć uwagę na izolowaną zworkę łączącą pin 6 DD1 i pin 21 panelu ZIF. Musisz wydrukować rysunek tablicy w lustrzanym odbiciu.

Płytkę drukowaną można wykonać metodą LUT, a także marker do płytek drukowanych za pomocą tsaponlaka (tak zrobiłem) lub metodą „ołówkową”.

Oto zdjęcie rozmieszczenia elementów na płytce drukowanej (klikalne).

Podczas instalacji pierwszą czynnością jest przylutowanie zworek z ocynowanego drutu miedzianego, następnie zamontowanie niskoprofilowych elementów (rezystory, kondensatory, kwarc, złącze pinowe ISCP), następnie tranzystorów i zaprogramowanego MK. Ostatnim krokiem jest zamontowanie panelu ZIF, gniazda USB i uszczelnienie przewodów w izolacji (zworki).

„Firmware” mikrokontrolera PIC18F2550.

Plik oprogramowania sprzętowego - PK2V023200.hex musisz zapisać PIC18F2550I-SP MK w pamięci za pomocą dowolnego programatora obsługującego mikrokontrolery PIC (na przykład Extra-PIC). Użyłem programatora JDM JONIC PROG i programu WinPic800.

Możesz przesłać oprogramowanie sprzętowe do MCU PIC18F2550 przy użyciu tego samego zastrzeżonego programatora PICkit2 lub jego nowej wersji PICkit3. Oczywiście możesz to zrobić za pomocą domowego PICkit-2 Lite, jeśli któremuś z Twoich znajomych udało się go przed Tobą złożyć :).

Warto także wiedzieć, że „firmware” mikrokontrolera PIC18F2550-I/SP (plik PK2V023200.hex) jest zapisywany podczas instalacji programu PICkit 2 Programmer w folderze wraz z plikami samego programu. Przybliżona lokalizacja pliku PK2V023200.hex - „C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex” . Dla tych, którzy mają zainstalowaną 32-bitową wersję systemu Windows na swoim komputerze, ścieżka lokalizacji będzie inna: „C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex” .

Cóż, jeśli nie udało Ci się rozwiązać problemu „kurczaka i jajka” za pomocą proponowanych metod, możesz kupić gotowy programator PICkit3 na stronie AliExpress. Tam jest dużo taniej. O tym jak kupować części i zestawy elektroniczne pisałem na AliExpress.

Aktualizacja oprogramowania programatora.

Postęp nie stoi w miejscu i co jakiś czas Microchip wypuszcza aktualizacje swojego oprogramowania, m.in. dla programatora PICkit2, PICkit3. Naturalnie możemy również zaktualizować program sterujący naszego domowego PICkit-2 Lite. Aby to zrobić, będziesz potrzebować programu PICkit2 Programmer. Co to jest i jak z niego korzystać - trochę później. Tymczasem kilka słów o tym co należy zrobić aby zaktualizować firmware.

Aby zaktualizować oprogramowanie programatora, należy zamknąć zworkę XT1 na programatorze, gdy jest on odłączony od komputera. Następnie podłącz programator do komputera i uruchom programator PICkit2. Gdy XT1 jest zamknięty, tryb jest aktywowany program rozruchowy aby pobrać nową wersję oprogramowania sprzętowego. Następnie w Programmerze PICkit2 poprzez menu „Narzędzia” - „Pobierz system operacyjny PICkit 2” otwórz przygotowany wcześniej plik szesnastkowy zaktualizowanego oprogramowania. Następnie nastąpi proces aktualizacji oprogramowania programatora.

Po aktualizacji należy odłączyć programator od komputera PC i zdjąć zworkę XT1. W trybie normalnym zworka jest otwarta. Wersję oprogramowania programatora można sprawdzić poprzez menu „Pomoc” - „O programie” w programie PICkit2 Programmer.

Wszystko to dotyczy kwestii technicznych. A teraz o oprogramowaniu.

Praca z programistą. Programista PICkit2.

Aby pracować z programatorem USB będziemy musieli zainstalować na komputerze program PICkit2 Programmer. Ten specjalny program ma prosty interfejs, jest łatwy w instalacji i nie wymaga specjalnej konfiguracji. Warto zaznaczyć, że z programatorem można pracować korzystając ze środowiska programistycznego MPLAB IDE, jednak do flashowania/kasowania/odczytu MK wystarczy prosty program - PICkit2 Programmer. Polecam.

Po zainstalowaniu programu PICkit2 Programmer podłącz zmontowany programator USB do komputera. Jednocześnie się zaświeci zielony LED („zasilanie”), a system operacyjny rozpoznaje urządzenie jako „Programista mikrokontrolera PICkit2” i zainstaluj sterowniki.

Uruchom program programisty PICkit2. W oknie programu powinien pojawić się napis.

Jeśli programator nie jest podłączony, w oknie programu wyświetli się straszny komunikat i krótka instrukcja „Co robić?” po angielsku.

Jeżeli programator jest podłączony do komputera z zainstalowanym MK, program po uruchomieniu go wykryje i powiadomi nas o tym w oknie Programatora PICkit2.

Gratulacje! Pierwszy krok został zrobiony. O tym, jak korzystać z programu PICkit2 Programmer, mówiłem w osobnym artykule. Następny krok .

Wymagane pliki:

    Podręcznik użytkownika PICkit2 (rosyjski) weź lub.



© 2023 globusks.ru - Naprawa i konserwacja samochodów dla początkujących