HCS300 – programowanie układu KeeLoq: CH341A, CH347T czy PICkit 4/5?

Pytanie

czy Układ HCS300 da się zaprogramować za pomocą CH341A lub CH347T

Odpowiedź Sztucznej Inteligencji


Bezpośrednia odpowiedź na pytanie

‒ W standardowej konfiguracji NIE da się poprawnie zaprogramować układu HCS300 za pomocą programatorów CH341A ani CH347T.
‒ Kluczowe przyczyny: brak wysokiego napięcia VPP ≈ 12-13 V oraz brak zaimplementowanego w oprogramowaniu autorskiego protokołu programowania KeeLoq.

Szczegółowa analiza problemu

  1. Wymagania HCS300
    • Tryb programowania „High-Voltage Serial” (HVSP): DATA, CLK, VDD oraz pin VPP ≈ 12 … 13 V.
    • Pamięć OTP (klucz producenta, numer seryjny) + 16-B EEPROM (licznik synchro).
    • Sekwencja czasowa i ładunki programujące opisane w nocie „HCSxxx Memory Programming” (Microchip DS41256).

  2. Możliwości CH341A / CH347T
    • Interfejsy: UART/I²C/SPI (+ JTAG/SWD w CH347T).
    • Linie I/O pracują wyłącznie na 3,3 V lub 5 V; brak przetwornicy HV.
    • Popularne aplikacje (AsProgrammer, NeoProgrammer, libusb-ch347-nor-prog) obsługują wyłącznie typowe układy 24xx/25xx, brak wsparcia HCS-KeeLoq.

  3. Konsekwencje
    • Bez VPP nie zostanie zapisana pamięć OTP → układ pozostanie niezaprogramowany lub częściowo (z ryzykiem uszkodzenia).
    • Nawet po dostarczeniu zewnętrznego VPP potrzebny jest pełny stack programowy generujący ramki KeeLoq z właściwym timingiem (np. 70 µs CLK).
    • Żadne powszechne GUI dla CH34x nie posiada „Device-ID = HCS300”.

Aktualne informacje i trendy

‒ Microchip promuje PICkit 4/5 + MPLAB IPE (2024 r. – wsparcie utrzymywane), ICD 4, SNAP.
‒ Na GitHubie pojawiają się projekty open-source (np. ioelectro/hcs-programmer-soft), najczęściej wykorzystujące STM32 lub Arduino + przetwornicę step-up; do CH34x brak stabilnego fork’a.
‒ Rynek serwisowy korzysta z gotowych „klonerów pilotów” (Silca, Keyline, Elprotronic) – implementacja HVSP i KeeLoq w sprzęcie.

Wspierające wyjaśnienia i detale

• VPP – napięcie programujące potrzebne do „przepalenia” komórek OTP; typ. 12,5 V, 2–5 ms.
• OTP – po jednorazowym zapisie nie można zmienić klucza; błędne dane = układ do kosza.
• KeeLoq – własny 64-bitowy algorytm Microchip; ramki programowe różnią się od standardów SPI (CS/DO/DI).
• CH347T ma wewnętrzny regulator 5 V → 1,8 V, ale brak HV.

Aspekty etyczne i prawne

• HCS300 stosuje się w systemach zabezpieczeń (bramy, alarmy, RKE). Nieautoryzowane klonowanie kluczy narusza prawo telekomunikacyjne i może być kwalifikowane jako przestępstwo.
• Programując cudze piloty należy uzyskać zgodę właściciela i producenta systemu.

Praktyczne wskazówki

  1. Użyj oficjalnego PICkit 4/5 – koszt ≈ 250 – 350 zł, gwarancja poprawnego VPP.
  2. Oprogramowanie MPLAB IPE: Device → HCS300, wpisz Manufacturer Key, Serial, Optional Data, Verify.
  3. Jeśli koniecznie CH34x:
    ‒ Zbuduj przetwornicę HV (MC34063 lub LT3484) i podaj VPP na pin układu.
    ‒ Napisz własny sterownik wykorzystując DLL WCH (wch-ch341/347-lib) – tryb bit-bang SPI, 100 kHz.
    ‒ Zaimplementuj sekwencję: Enter Programming → Load Data → Row Write → Verify.
    ‒ Zabezpiecz układ przed overshoot >14 V (TVS 15 V).

Ewentualne zastrzeżenia lub uwagi dodatkowe

• Implementacja DIY zajmuje więcej czasu niż zakup PICkit; ryzyko uszkodzenia OTP jest wysokie.
• W sieci krąży sprzeczna dokumentacja (stare rewizje z VPP=11 V) – stosuj DS41256 B lub nowszą.

Sugestie dalszych badań

• Analiza alternatywnych enkoderów (ATAES132A, NXP SAF360x) z niskonapięciowym programowaniem.
• Opracowanie open-source pluginu do libusb-ch347 z pełną obsługą KeeLoq.
• Testy odporności EM na zakłócenia przy HVSP – publikacja w IEEE Transactions on EMC.

Krótkie podsumowanie

CH341A/CH347T nie dostarczają wymaganego napięcia VPP ani nie mają zaimplementowanego protokołu KeeLoq, dlatego w konfiguracji fabrycznej NIE nadają się do programowania HCS300. Najpewniejszym, najszybszym i najbezpieczniejszym rozwiązaniem jest użycie dedykowanego programatora Microchip (PICkit 4/5, ICD 4) lub specjalistycznych klonerów HCS. Jeśli dysponujesz czasem oraz wiedzą, możesz potraktować CH34x jako interfejs SPI i napisać własne oprogramowanie, ale wymaga to dodatkowego hardware’u HV i pełnej implementacji sekwencji programowania.

Oceń odpowiedź:
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.