eGospodarka.pl

eGospodarka.plGrupypl.misc.elektronika › PIC24fj256da210 - dziwne zachowanie GPIO
Ilość wypowiedzi w tym wątku: 23

  • 1. Data: 2019-08-07 14:04:05
    Temat: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Atlantis <m...@w...pl>

    Eksperymentuję właśnie z mikrokontrolerem PIC24fj256da210. Złożyłem
    własną płytkę prototypową i powoli z nią eksperymentuję. Udało mi się
    odpalić timer, UART, USB i zamigać paroma diodami.
    Zauważyłem natomiast dziwne zachowanie niektórych pinów GPIO. Mianowicie:

    Mam na płytce cztery diody LED, podłączone do pinów RB0..RB3. Te na RB1
    i RB2 migają prawidłowo. Natomiast RB0 i RB3 nie jestem w stanie
    uruchomić. Wszystkie piny są ustawione jako cyfrowe wyjścia, no i
    znajdują się na tym samym porcie...
    Nie byłem też w stanie zmienić stanu RB12 oraz coś jest nie tak z SPI
    (wydaje mi się, że PPS skonfigurowany prawidłowo). Podejrzewam, że
    przyczyna może być ta sama.

    Ktoś ma jakiś pomysł co do tego, co może być nie tak? Czyżby coś o
    wyższym priorytecie było domyślnie włączone po resecie, roszcząc sobie
    prawo do niektórych pinów?


  • 2. Data: 2019-08-07 14:39:03
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: cezar <c...@t...pl.nospam>

    On 07/08/2019 13:04, Atlantis wrote:
    > Eksperymentuję właśnie z mikrokontrolerem PIC24fj256da210. Złożyłem
    > własną płytkę prototypową i powoli z nią eksperymentuję. Udało mi się
    > odpalić timer, UART, USB i zamigać paroma diodami.
    > Zauważyłem natomiast dziwne zachowanie niektórych pinów GPIO. Mianowicie:
    >
    > Mam na płytce cztery diody LED, podłączone do pinów RB0..RB3. Te na RB1
    > i RB2 migają prawidłowo. Natomiast RB0 i RB3 nie jestem w stanie
    > uruchomić. Wszystkie piny są ustawione jako cyfrowe wyjścia, no i
    > znajdują się na tym samym porcie...
    > Nie byłem też w stanie zmienić stanu RB12 oraz coś jest nie tak z SPI
    > (wydaje mi się, że PPS skonfigurowany prawidłowo). Podejrzewam, że
    > przyczyna może być ta sama.
    >
    > Ktoś ma jakiś pomysł co do tego, co może być nie tak? Czyżby coś o
    > wyższym priorytecie było domyślnie włączone po resecie, roszcząc sobie
    > prawo do niektórych pinów?
    >

    Nie znam sie ale ludzie na forach piszą że trzeba pisać do LATx a nie do
    PORTx

    c.


  • 3. Data: 2019-08-07 17:45:42
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Marek <f...@f...com>

    On Wed, 7 Aug 2019 14:04:05 +0200, Atlantis <m...@w...pl>
    wrote:
    > Ktoś ma jakiś pomysł co do tego, co może być nie tak? Czyżby coś o
    > wyższym priorytecie było domyślnie włączone po resecie, roszcząc
    > sobie
    > prawo do niektórych pinów?

    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.

    --
    Marek


  • 4. Data: 2019-08-08 20:57:34
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Atlantis <m...@w...pl>

    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?


  • 5. Data: 2019-08-09 07:06:47
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Atlantis <m...@w...pl>

    Ok, próbowałem debugować i widzę, że problem jest trochę inny, niż się
    wydaje. O dziwo winny nie jest sterownik SPIFlash, ale biblioteka USB z
    MLA. Nie wiem dlaczego, ale problem ujawnia się dopiero wtedy, gdy
    włączę obsługę SPIFlash.

    Co udało mi się ustalić:
    1) Ustawiłem funkcję do obsługi przerwań "trap".
    2) Po wystąpieniu błędu uruchomione zostaje przerwanie "_AddressError".
    3) Prześledzenie wywołań na stosie wygląda następująco: main() ->
    f_mount() -> USBHostInit(). Poniższa linia ma wywoływać _AddressError:

    pCurrentEndpoint = usbDeviceInfo.pEndpoint0;

    Jakiś pomysł co do tego, co może być nie tak?

    Heap ustawiony ze sporym zapasem (10k). Sam MCU ma sporo pamięci RAM
    (96k), a w chwili obecnej 76% jest wolne na stos.


  • 6. Data: 2019-08-10 10:31:42
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Marek <f...@f...com>

    On Fri, 9 Aug 2019 07:06:47 +0200, Atlantis <m...@w...pl>
    wrote:
    > wydaje. O dziwo winny nie jest sterownik SPIFlash, ale biblioteka
    > USB

    Pamiętam miałeś kiedyś wyjątek przy uruchomieniu USB hid na pic32 a
    to ta sama biblioteka.... Co to wtedy było? A może to ten sam
    problem?

    --
    Marek


  • 7. Data: 2019-08-10 13:15:48
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Atlantis <m...@w...pl>

    On 10.08.2019 10:31, Marek wrote:

    > Pamiętam miałeś kiedyś wyjątek przy uruchomieniu USB hid na pic32 a to
    > ta sama biblioteka.... Co to wtedy było? A może to ten sam problem?

    Problem już rozwiązałem. Okazało się, że należało zmniejszyć rozmiar
    sterty w ustawieniach linkera.


  • 8. Data: 2019-08-10 15:06:11
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: heby <h...@p...onet.pl>

    On 10/08/2019 13:15, Atlantis wrote:
    >> Pamiętam miałeś kiedyś wyjątek przy uruchomieniu USB hid na pic32 a to
    >> ta sama biblioteka.... Co to wtedy było? A może to ten sam problem?
    > Problem już rozwiązałem. Okazało się, że należało zmniejszyć rozmiar
    > sterty w ustawieniach linkera.

    Nie dobrał się prawidłowy po wybraniu procesora?

    Mialem kiedyś wpadkę z SAM7 atmela, dostarczone przez nich skrypty
    linkera miały błedy adres pamięci flash. Ale oni mieli taki wtedy
    bałagan z plikami .h i linkerem że pod koniec sprawdzałem każdą linijkę
    ręcznie bo ilośc bugów można było wyjasnić tylko ciężką pracą zespołu
    N-studentów w trybie czołgowym.


  • 9. Data: 2019-08-10 17:38:51
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Marek <f...@f...com>

    On Sat, 10 Aug 2019 15:06:11 +0200, heby <h...@p...onet.pl> wrote:
    > Nie dobrał się prawidłowy po wybraniu procesora?

    Przecież rozmiar określa programista wiedząc ile tego będzie
    potrzebowal na malloc

    --
    Marek


  • 10. Data: 2019-08-10 17:40:25
    Temat: Re: PIC24fj256da210 - dziwne zachowanie GPIO
    Od: Marek <f...@f...com>

    On Sat, 10 Aug 2019 13:15:48 +0200, Atlantis <m...@w...pl>
    wrote:
    > Problem już rozwiązałem. Okazało się, że należało zmniejszyć rozmiar
    > sterty w ustawieniach linkera.

    Zmniejszyć? Jakby była za mała i zabrala to co potrzebuje linker
    na min stos plus zmienne globalne wyrzuciłby błąd...

    --
    Marek

strony : [ 1 ] . 2 . 3



Szukaj w grupach

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: