Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Keeloq dekoder na PIC16C54XT

psicho 15 Lis 2013 23:20 3663 4
  • #1 15 Lis 2013 23:20
    psicho
    Poziom 11  

    Witam,

    od kilku dni "męczę" się w dosłownym tego słowa znaczeniu z implementacją KEELOQ'a w swoim urządzeniu. Pomęczył bym się jeszcze kilka dni ale gonią mnie terminy i dlatego chciałbym poprosić o pomoc bardziej doświadczonych kolegów.

    Buduję układ z sercem Atmela gdyż z tymi procesorami miałem do tej pory najwięcej do czynienia. Niestety nie mam żadnego doświadczenia w mikrokontrolerach PIC i minimalną (o zgrozo, że zacząłem naukę elektroniki tak późno!) wiedzę na temat assemblera. Koniec wstępu czas opisać problem..

    W swoim układzie pragnę wykorzystać KEELOQ'a. Podpierając się dokumentacjami Microchipa (AN217) zbudowałem sobie programator układów HCS200. Do testów HCS200 wykorzystałem gotowy pilot z tymże układem (przelutowałem scalaka z pilota na zaprogramowanego przeze mnie scalaka). Jako odbiornik sygnału z pilota wykorzystałem układ AC-RX2. Do tego momentu wszystko wydaje się być ok.

    Do budowy dekodera KEELOQ znów podparłem się dokumentacją MICROCHIPA (AN663) i wykonałem układ na bazie procesora PIC16C54. Zamiast rezonatora RC wykorzystałem kwarc 4MHz. No ale tutaj mam problem.

    A więc...

    Programator zbudowany na podstawie dokumentacji Microchipa sygnalizuje diodą prawidłowe zaprogramowanie HCS200. Pilot wysyła jakieś dane, odbiornik coś odbiera gdyż wraz z naciśnięciem przycisku na pilocie miga dioda podpięta do LEARN_IND w układzie AN663. Jednak tak w kółko, nic więcej się nie dzieje tj nie zmieniają się stany logiczne wyjść S1...S4. Podczas zwierania /LEARN_INIT do masy (przycisk) zapala się dioda na LEARN_IND. Po puszczeniu przycisku dioda gaśnie gaśnie. Wciśnięcie przycisku pilota powoduje miganie diody LEARN_IND co około 0.5 sekundy. Jeśli przycisk /LEARN_INIT przytrzymam przez kilka sekund do momentu aż zgaśnie dioda (po wciśnięciu dioda się zapala, po kilku sekundach gaśnie, wtedy zwalniam przycisk) to naciśnięcie przycisku na pilocie powoduje szybkie miganie diody LEARN_IND.

    KEELOQ chcę tylko wykorzystać jako gotowiec do budowy swojego ukłądu, nie bardzo mam czas (choć chęci jak najbardziej) aby się zagłębiać w te procesory. Będę wdzięczny za wszelką pomoc. Poniżej zamieszczam kody programatora HCS200 i dekodera.

    Kod: asm
    Zaloguj się, aby zobaczyć kod



    drugi kod zamieszczam jako załącznik, gdyż nie wiem dlaczego ale elektroda mi go ucina w połowie...

    0 4
  • #2 18 Lis 2013 18:56
    psicho
    Poziom 11  

    Witam,

    Podsyłam zrzut pamięci EEPROM w układzie dekodera. Jakaś informacja się w niej zapisała po procedurze "uczenia". Nie za mało? W każdym razie nic więcej się nie dzieje.


    Keeloq dekoder na PIC16C54XT

    0
  • #3 19 Lis 2013 14:41
    nsvinc
    Poziom 35  

    Coś do mnie nie dociera - piszesz ze budujesz odbiornik na jakimś atmelu, to czemu uruchamiasz dekoder KEELOQ na nie-docelowym urządzeniu?...

    Portowanie kodu w asmie z PICa na AVR to raczej smutna robota. Nie lepiej napisać dekoder w C?

    0
  • #4 19 Lis 2013 18:45
    psicho
    Poziom 11  

    Już wyjaśniam. Buduję pewien nieco bardziej rozbudowany sterownik na atmelu. Wyjścia z KEELOQa chcę użyć jako sygnały wejściowe tego sterownika. Poza tym gdy znalazłem dokumentację keeloqa to doczytałem, że implementacja jest dozwolona tylko na procesorach Microchip.

    Po prostu chcę użyć keeloqa postawionego na PIC'u jako gotowy działający moduł, który później użyję w swoim sterowniku na atmelu. Nie chcę się zbytnio zagłębiać w PICe wiedząc, że więcej ich już nie użyję. Sądziłem, że gotowy projekt z dokumentacji Microchipa rozwiąże problem. Układ jednak nie działa i dlatego szukam pomocy tutaj.

    0