PIC18F458 – podłączenie do JDM, konfiguracja PICPgm, programowanie mikrokontrolera
Pytanie
Jak podłączyć PIC18f458 pod programator jdm oraz jak prawidłowo skonfigurować program PICPgm aby zaprogramować ten procesor?
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- Połącz PIC18F458 z programatorem JDM pięcioma liniami ICSP:
MCLR/VPP → VPP (≈13 V), VDD → +5 V, VSS → GND, RB7 → PGD (DATA), RB6 → PGC (CLOCK).
- W PICPgm w zakładce Hardware wybierz „JDM Programmer”, wskaż fizyczny port RS-232 (COM1/COM2), a w Device wybierz „PIC18F458”.
- Sprawdź komunikację („Detect”), załaduj plik HEX i uruchom „Program”.
Kluczowe punkty
• Zasilanie układu z osobnego, stabilnego +5 V.
• Używać natywnego portu RS-232 – przejściówki USB-RS232 zwykle nie dostarczą właściwych napięć.
• Krótkie przewody (<15 cm) i kondensatory 100 nF przy obu parach VDD-VSS.
Szczegółowa analiza problemu
1. Połączenia sprzętowe (ICSP)
Sygnał ICSP |
Pin PIC18F458 (PDIP-40) |
Linia w typowym JDM |
Pin DB-9 RS-232 |
Uwagi |
VPP (/MCLR) |
1 |
VPP |
4 (DTR) |
\(\approx 12–13\text{ V}\) w fazie programowania |
PGC (CLK) |
39 |
CLOCK |
3 (TXD) |
Poziom logiczny ±8…12 V |
PGD (DATA) |
40 |
DATA |
7 (RTS) |
Dwukierunkowa linia danych |
VDD |
11, 32 |
+5 V (zewn.) |
– |
Stabilizator 5 V, min. 100 mA |
VSS |
12, 31 |
GND |
5 (GND) |
Wspólna masa |
Dodatkowo:
• Niepodłączone piny zostawić „w powietrzu” lub w aplikacji docelowej.
• W czasie programowania linie RB6/RB7 nie mogą być obciążone (rezystory, LED-y, logika).
• Kondensator 100 nF przy każdej parze VDD-VSS oraz 10 µF elektrolityczny przy stabilizatorze.
2. Algorytm JDM a wymagania PIC18F458
Układy z rodziny PIC18F wymagają:
\[
V{PP_H} \approx 12{,}5\text{ V}, \quad V{DD} = 4{,}5\ldots5{,}5\text{ V}, \quad t_{ENS} > 5\ \mu\text{s}
\]
Napięcie to w klasycznym JDM generowane jest bezpośrednio z linii DTR/RST RS-232. Na współczesnych komputerach amplituda ±6 V może być niewystarczająca; dlatego:
• Stosuj komputer stacjonarny z prawdziwym portem COM lub „legacy bracket” na płycie głównej.
• W razie problemów rozważ modyfikację JDM (wzmacniacz tranzystorowy dla VPP) lub przejście na nowszy programator (PICkit 4/5, SNAP).
3. Konfiguracja PICPgm – krok po kroku
- Hardware → Hardware Settings
• Programmer: „JDM Programmer”
• Port: COM1/COM2 (wg Menedżera Urządzeń)
• Domyślne stany sygnałów – nie odwracaj, chyba że użyto nietypowej wersji JDM.
- Hardware → Detect Programmer – komunikat „JDM programmer detected”.
- Device → Select Device – „PIC18F458”.
- Device → Read Device ID – potwierdzenie poprawnego połączenia (ID ≈ 0x05E0).
- File → Load HEX – wczytanie pliku.
- Device → Configuration – sprawdź/ustaw fuses (np. OSC=HS, WDT=OFF).
- Opcje (Settings → Programming): zaznacz „Erase before” i „Verify after”.
- Device → Program Device – obserwuj log (Erase → Program → Verify). Typowy czas 20–60 s.
Aktualne informacje i trendy
- Programatory JDM są traktowane jako rozwiązanie legacy; Microchip rozwija interfejs USB-HS zasilający układ docelowy (PICkit 4/5, MPLAB SNAP).
- Nowe laptopy pozbawione RS-232 praktycznie uniemożliwiają użycie JDM bez kłopotliwych modyfikacji.
- W środowisku open-source popularny staje się PicPengo/PicKit2-clone na STM32 lub RP2040, oferujący wyższe prędkości i obsługę debugowania.
Wspierające wyjaśnienia i detale
- Sekwencja ICSP: najpierw \(\text{V}_{DD}\), potem \(\text{V}_{PP\_H}\), następnie sygnały PGC/PGD. PICPgm automatyzuje kolejność, ale JDM musi ją fizycznie umożliwić.
- Przewody ekranowane nie są konieczne; ważniejsza jest mała pętla masy i krótka długość.
- Przy długich sesjach programowania zadbaj o chłodzenie stabilizatora 5 V (wzrost prądu podczas zapisu pamięci EEPROM).
Aspekty etyczne i prawne
- Zwróć uwagę na ustawienie bitów Code Protection. Odczyt chronionego kodu bez zgody właściciela narusza licencje i prawo autorskie.
- Upewnij się, że korzystasz z legalnego firmware’u JDM oraz najnowszej wersji PICPgm (licencja GPL-compatible).
Praktyczne wskazówki
- Jeżeli po „Detect” pojawia się błąd, zmniejsz prędkość programowania: Settings → Timing, zwiększ opóźnienie CLK.
- Sprawdź VPP multimetrem podczas fazy programowania – powinno przekraczać 11,5 V.
- Dodaj diodę Schottky’ego (1N5819) szeregowo z VPP, aby ochronić port COM w razie zwarcia.
- Wyłącz w BIOS funkcję „Serial Port Power Save”, jeżeli dostępna – zapobiega obniżeniu amplitudy linii.
Ewentualne zastrzeżenia lub uwagi dodatkowe
- Porty RS-232 w płytach głównych nowszych niż ~2010 r. często dają tylko ±5 V; to za mało na wiarygodne 13 V VPP → możliwe błędy Verify.
- JDM nie obsługuje debug-in-circuit – do prac rozwojowych rozważ PICkit + MPLAB X IDE.
- Przy mikrokontrolerach wlutowanych w aplikację upewnij się, że kondensatory kwarc/włączniki nie obciążają RB6/RB7 (dodaj rezystory 1 kΩ w szereg lub odłącz przez zworki).
Sugestie dalszych badań
- Porównaj alternatywne tanie programatory USB-ICSP (K150, CH341A-PIC-mode) – mają własny zasilacz VPP.
- Zbadaj PicPengo (STM32F103) lub openocd-pic; oferują tryb „fast-programming” dla PIC18F i wbudowane USB CDC.
- Przetestuj w praktyce wpływ długości linii PGD/PGC na integralność sygnału, mierząc oscyloskopem czasy narastania.
Krótkie podsumowanie
Do zaprogramowania PIC18F458 programatorem JDM: połącz pięć linii ICSP (MCLR/VPP, VDD, VSS, PGD, PGC), zasil mikrokontroler stabilnym 5 V, użyj natywnego portu RS-232. W PICPgm wybierz „JDM Programmer”, port COM i układ „PIC18F458”, sprawdź ID i wykonaj Erase-Program-Verify. Pamiętaj, że JDM to rozwiązanie starsze i w przypadku problemów lepiej przejść na nowoczesny programator USB-ICSP z obsługą debugowania.
Pytanie
Czy PICPgm powinien prawidłowo wykryć programator JDM bez podłączonego do niego procesora?
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- TAK – funkcja „Detect Programmer” w PICPgm prawidłowo wykrywa elektronikę programatora JDM nawet wtedy, gdy do złącza ICSP nie jest wpięty żaden mikrokontroler.
- Detekcja ta polega wyłącznie na sprawdzeniu odpowiedzi linii RS-232 (DTR, RTS, TXD ↔ CTS, DSR, RI, DCD) i nie wymaga obecności układu PIC.
Szczegółowa analiza problemu
-
Mechanizm detekcji w PICPgm
• Program rezerwuje wybrany port COM i przełącza linie wyjściowe (DTR, RTS, TXD).
• Poprzez rezystory, diody i tranzystory programatora JDM sygnały trafiają na wejścia CTS/DSR/RI/DCD.
• PICPgm odczytuje stany wejściowe i porównuje je z oczekiwanym „wzorcem JDM”.
• Jeśli zgodność jest ≥ 90 % (próg określony w kodzie źródłowym projektu), wyświetla komunikat „JDM programmer detected on COMx”.
-
Przebieg kolejnych operacji
Test „Detect Programmer” (PC ↔ JDM) ─► OK
Następnie „Detect Device” (PC ↔ JDM ↔ PIC) ─► wymaga już zasilonego układu PIC, poprawnego VPP (~12,5 V) i linii PGD/PGC.
-
Dlaczego czasem wydaje się, że detekcja zależy od układu?
• W niektórych klonach JDM tranzystory obciążają linie tylko wtedy, gdy VDD=5 V trafia przez ICSP – brak zasilania może zafałszować pętlę zwrotną.
• Starsze rewizje PICPgm (≤ 0.9.8) po nieudanym teście wejść statusu próbowały od razu przejść do odczytu ID – stwarzało to wrażenie, że „programator nie został wykryty, gdy nie ma procesora”. Aktualne wersje (≥ 2.7) rozdzielają oba etapy jasno (potwierdza to dokumentacja on-line i testy użytkowników z 2023–2024 r.).
-
Wymagania elektryczne
• Natywny port RS-232 ±8…±12 V (laptopy/konwertery USB-RS232 zwykle ±5 V lub 0/5 V – mogą nie przełączyć tranzystorów).
• Sprawny kabel DB-9, brak zimnych lutów, prawidłowe diody Zenera (np. 5V1, 13V).
• Programator JDM nie generuje 5 V – układ musi być zasilany zewnętrznie, ale samo wykrycie programatora tego nie wymaga.
Aktualne informacje i trendy
- JDM-y uznaje się dziś za rozwiązania hobbystyczne; przemysł przeszedł na programatory USB (PICkit 4, MPLAB Snap).
- Porty COM z zasilaniem ±12 V znikają z nowych płyt głównych; rośnie liczba zgłoszeń „programator nie wykryty na laptopie” – problem nie leży w PICPgm, lecz w zaniżonych poziomach napięć.
- PICPgm 2024 nadal utrzymuje wsparcie dla JDM, ale autorzy zalecają przesiadkę na interfejs „Tait-Classic” lub „PICPgm-USB”.
Wspierające wyjaśnienia i detale
- Pętla zwrotna JDM to w istocie prosty tester logiczny:
DTR →(R, D)→ CTS/RI, RTS → DCD/DSR.
- PICPgm nie korzysta z linii danych RX/TX – komunikacja odbywa się przez linie modemowe sterujące.
- Oprogramowanie mierzy czasy narastania; gdy napięcie szczytowe portu spada poniżej ~7 V, amplituda na liniach statusu może być odczytana jako „0” i test nie przejdzie.
Aspekty etyczne i prawne
- Brak istotnych implikacji prawnych; JDM to konstrukcja open-hardware.
- Należy jednak zwrócić uwagę na bezpieczeństwo ESD – programator nie posiada galwanicznej izolacji, dlatego praca przy wyższych napięciach sygnałów RS-232 wymaga uziemienia chassis PC.
Praktyczne wskazówki
- Sprawdź poziomy na pinach 4, 7 i 3 DB-9 multimetrem (powinny być ok. +9 V względem GND).
- W menu Hardware → Hardware Settings wybierz prawidłowy COM, kliknij „Detect Programmer”.
- Jeśli wykrywanie się nie powiedzie:
– podmień kabel,
– uruchom PICPgm jako Administrator,
– przetestuj na komputerze z natywnym RS-232 lub kartą PCIe-RS232.
- Dopiero po pozytywnym teście podłącz zasilony układ PIC i wybierz „Read Device ID”.
Ewentualne zastrzeżenia lub uwagi dodatkowe
- Niektóre minimalistyczne wersje JDM (tzw. „Baby-JDM”) nie mają pełnej pętli zwrotnej – wówczas PICPgm może zgłaszać „programmer not detected” mimo sprawnego portu.
- Konwertery USB-RS232 z FT232R lub CH340C działają z JDM tylko po modyfikacji zwiększającej napięcie wyjściowe (w praktyce nieopłacalne).
Sugestie dalszych badań
- Analiza wpływu obniżonej amplitudy ±5 V na niezawodność detekcji – pomiary oscyloskopowe.
- Modernizacja klasycznego JDM: wymiana części bipolarnej na sterowniki MOSFET-owe zasilane z 5 V, co umożliwi użycie tanich układów CP2102/CH340E.
- Migracja do nowszych, otwartych programatorów USB-CMSIS-DAP.
Krótkie podsumowanie
Program PICPgm rozróżnia dwie fazy: detekcję samego programatora JDM (test linii RS-232) oraz detekcję mikrokontrolera. Pierwsza z nich w pełni działa bez podłączonego układu PIC. Jeśli test „Detect Programmer” kończy się niepowodzeniem, przyczyn należy szukać wyłącznie w połączeniu PC-JDM – a nie w braku procesora.
Pytanie
Który schemat programatora jdm jest najbardziej funkcjonalny?
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- Za najbardziej funkcjonalny uznaje się wariant Enhanced JDM / JDM-v3 (+ICSP, zewnętrzne VDD, tranzystorowe VPP).
- Łączy on wszystkie zalety rodziny JDM (niski koszt, prostota, RS-232) z:
• pełną obsługą układów 8-, 14-, 18-, 28- i 40-pinowych PIC10/12/16/18,
• programowaniem EEPROM 24Cxx, 93Cx6, 59Cxx,
• stabilnym zasilaniem +5 V z zewnętrznego źródła i poprawnie przełączanym VPP ≈ 13 V,
• buforowaniem i zabezpieczeniem linii PGC/PGD,
• złączem ICSP oraz autodiagnostyką pętli RS-232.
Szczegółowa analiza problemu
-
Definicja „funkcjonalności”
• Zakres obsługiwanych układów (PIC-y, EEPROM-y)
• Niezawodność zapisu/odczytu pamięci Flash i EEPROM
• Odporność na różnice w poziomach sygnałów współczesnych portów RS-232
• Możliwość pracy w trybie ICSP bez wyjmowania układu
-
Porównanie głównych odmian JDM
Cecha / Wersja |
JDM v1 (klasyczny) |
JDM v2 |
JDM-ISO |
JDM-v3 / Enhanced |
Zasilanie VDD |
Pasożytnicze z RS-232 |
Jak v1 |
Jak v1 |
Zewnętrzne +5 V |
VPP (~13 V) |
Bezpośrednio z DTR |
Bezpośrednio |
Bezpośrednio |
Zewn. źródło + klucz tranz. |
Zakres układów |
Do PIC16F84A |
+PIC12, 24C |
Specjalist. Smart-card |
PIC10–18F + EEPROM |
Gniazdo 40 pin |
Nie |
Nie |
Nie |
Tak |
ICSP |
Brak |
Opcjonalnie |
Opcjonalnie |
Pełne, 6-pin |
Autotest RS-232 |
Ograniczony |
Ograniczony |
Tak |
Pełny |
Odporność na niskie ±5 V |
Niska |
Średnia |
Średnia |
Wysoka |
-
Kluczowe elementy Enhanced JDM
• Stabilizator 78L05 (VDD) i Zenera 13 V (VPP)
• Klucz PNP/NPN (np. BC557/BC547) przełączający VPP
• Rezystory 330 Ω–1 kΩ w szereg z PGC/PGD
• Kondensatory 100 nF + 10 µF przy VDD/MCLR
• Diody ochronne na liniach RS-232
-
Teoretyczne podstawy
Port RS-232 w nowych PC daje zwykle ±5 … ±8 V przy < 6 mA. Pobór prądu PIC-a przy zapisie Flash dochodzi do 30 mA. Zewnętrzne VDD-5 V i tranzystorowe VPP eliminują spadki napięcia i błąd „Verify failed”.
-
Praktyka i kompatybilność
• Programator wykrywany przez PICPgm, IC-Prog, WinPic, PonyProg.
• Działa z natywnym COM; konwertery USB-RS232 tylko z układami FTDI/Prolific o wyjściu ≥ ±7 V.
Aktualne informacje i trendy
- Fizyczne porty COM zanikają; laptopy oferują głównie USB.
- Microchip promuje USB-programatory (PICkit 4/5, MPLAB Snap) w cenie 40–60 USD.
- Społeczność Open-Source rozwija klony PICkit-2/3 na STM32/CH32 z ceną < 10 USD.
Wspierające wyjaśnienia i detale
- Dlaczego nie samo „JDM2”? W oryginale nadal brak zewn. VDD – przy nowoczesnych PIC18F to główne źródło problemów.
- JDM-ISO jest funkcjonalny wyłącznie w niszy kart inteligentnych; ma ograniczony zasięg VPP.
Aspekty etyczne i prawne
- Programowanie kart inteligentnych bywa objęte licencjami operatorów; nieuprawnione modyfikacje mogą naruszać prawo telekomunikacyjne.
- Napięcia > 13 V na MCLR bez kontroli mogą uszkodzić układ lub port PC – zachować procedury ESD.
Praktyczne wskazówki
- Utrzymuj długość przewodów ICSP < 15 cm i prowadź GND równolegle.
- Mierz VDD i VPP bez obciążenia i pod obciążeniem; tolerancja:
VDD = 4,8 … 5,2 V, VPP = 12 … 13,2 V.
- Do testów używaj procedury „Detect Programmer” w PICPgm.
- Jeśli musisz użyć USB-RS232 – wybierz FT232R + włącz w CP210x „Enhanced RS-232 ±12 V” (jeśli dostępne).
Ewentualne zastrzeżenia
- Cała rodzina JDM jest technologią „legacy”; przy braku natywnego COM niezawodność spada.
- Brak obsługi debugera ICSP-debug; tylko programowanie.
Sugestie dalszych badań
- Budowa mikroprzetwornicy Boost 5 → 13 V sterowanej z linii DTR (eliminuje zewn. 13 V).
- Portowanie firmware PICkit-2 na AVR/STM32 jako tani zamiennik.
- Analiza możliwości emulacji portu COM z wysokimi poziomami ±12 V na USB-C PD.
Krótkie podsumowanie
Enhanced JDM / JDM-v3 z zewnętrznym +5 V, tranzystorowym przełączaniem VPP i pełnym ICSP to dziś najbardziej funkcjonalny schemat w rodzinie JDM. Zapewnia szeroką kompatybilność i wysoką niezawodność mimo ograniczeń RS-232. W nowych projektach rozważ jednak przejście na programatory USB (PICkit 4/5, Snap), które oferują debugowanie, lepsze wsparcie narzędziowe oraz odporność na zanik fizycznych portów RS-232.
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.