eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPIC24fj256da210 - dziwne zachowanie GPIO › Re: PIC24fj256da210 - dziwne zachowanie GPIO
  • Data: 2019-08-08 20:57:34
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 07.08.2019 17:45, Marek wrote:

    > W jaki sposób ustawiasz porty na cyfrowe? Należy używać io API wtedy ma
    > się pewność że inne nadrzędne peryferia portu zostaną wyłączone.

    Za pośrednictwem rejestrów. Z tego co widzę biblioteka do obsługi
    peryferiów dla PIC24 jest dość uboga - nawet autorzy podręczników z
    którymi miałem do czynienia operowali bezpośrednio na rejestrach. No
    chyba, że jest jakaś wersja Harmony dla PIC24 - z tymi bibliotekami
    jeszcze nie eksperymentowałem.

    W każdym razie problem udało mi się rozwiązać, chociaż nie jestem pewien
    co jest przyczyną. Po prostu zamiast wpisywać od razu wartość do
    rejestru konfigurującego piny na cyfrowe/analogowe, ustawiłem wszystkie
    jako analogowe, a potem pojedynczo poustawiałem te, które mnie
    interesowały. Zadziałało. Możliwe, że we wcześniejszej wersji gdzieś
    miałem błąd, którego nie mogłem się doszukać.

    Udało mi się uruchomić SPI oraz podłączony do niego ENC28J60, razem z
    TCP/IP (biblioteka z MLA). Działa też FatFS podpięty do biblioteki USB
    MSD Host.

    Pojawił się jednak problem, gdy próbowałem uruchomić FatFS z pamięcią
    SPI Flash (układ z serii SST25*). Wykorzystałem sterownik od Microchipa,
    który bez problemu działał na PIC32, ale jego kod jest napisany w sposób
    uniwersalny i zawiera sekcje do kompilacji warunkowej dla PIC24.
    Sterownik się kompiluje, ale jakakolwiek operacja ale każda operacja na
    nośniku jakiej próbowałem (formatowanie, montowanie itp.) powoduje reset
    mikrokontrolera. W rejestrze RCON mam ustawiony bit IOPUWR.

    Zgodnie z dokumentacją:

    "An illegal opcode detection, an illegal address mode or uninitialized W
    register is used as an Address Pointer and caused a Reset".

    Ktoś ma jakiś pomysł co do możliwej przyczyny? W jaki sposób dalej to
    debugować, aby ustalić dokładne miejsce wystąpienia problemu?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: