eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikakarta SD na SPI zawiesza AtXmega128A3U › Re: karta SD na SPI zawiesza AtXmega128A3U
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.n
    et!aioe.org!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!n
    ewsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.p
    l!news.neostrada.pl.POSTED!not-for-mail
    Subject: Re: karta SD na SPI zawiesza AtXmega128A3U
    Newsgroups: pl.misc.elektronika
    References: <5ec5483f$0$546$65785112@news.neostrada.pl>
    <ra3mno$1oj$1@z-news.wcss.wroc.pl>
    From: Atlantis <m...@w...pl>
    Date: Wed, 20 May 2020 20:01:19 +0200
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
    Thunderbird/68.8.0
    MIME-Version: 1.0
    In-Reply-To: <ra3mno$1oj$1@z-news.wcss.wroc.pl>
    Content-Type: text/plain; charset=utf-8
    Content-Language: pl
    Content-Transfer-Encoding: 8bit
    Lines: 35
    Message-ID: <5ec5706f$0$542$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.27.168.12
    X-Trace: 1589997679 unt-rea-a-02.news.neostrada.pl 542 83.27.168.12:42336
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 2312
    X-Received-Body-CRC: 4093194322
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:753491
    [ ukryj nagłówki ]

    On 20.05.2020 18:43, a...@m...uni.wroc.pl wrote:

    > Przepraszam ze pytam o oczywistosc, ale czy sprawdziles zasilanie?
    > Karta do pracy swoje potrzebuje...

    Tak, to już sprawdziłem. Cały układ jest zasilany z przyzwoitego
    zasilacza impulsowego, a przy karcie jest obecny kondensator filtrujący.
    Ścieżka zasilająca w miarę gruba i niezbyt długa.

    Okazuje się, że winę za to zachowanie ponoszą najprawdopodobniej dwa
    błędy. Pierwszy wynikał z zastosowania zmiennych o niezdefiniowanej
    długości, zależnej od kompilatora. Na PIC24 zmienna miała właściwy
    rozmiar, ale na AVR przepełniła się przed osiągnięciem wartości mającej
    zakończyć pętlę.

    Samo to jednak nie usunęło problemu. Zacząłem wywoływać niskopoziomowe
    funkcje I/O bezpośrednio w pętli głównej programu. I faktycznie,
    writeSPI() zawiesza program, na pętli oczekiwania na zakończenie
    transmisji. Jeśli zakomentuję pętlę, zawias znika.

    Funkcja wygląda następująco:

    #define SD_SPI SPIE

    // send one byte of data and receive one back at the same time
    unsigned char writeSPI( unsigned char b) {
    SD_SPI.DATA = b;
    while(!(SD_SPI.STATUS & SPI_IF_bm));
    return SD_SPI.DATA;
    }// writeSPI

    Jakiś pomysł co do tego, co może powodować problem z tą flagą?

    W tym samym układzie mam już uruchomione inne urządzenie na SPIC - tam
    żadne problemy ne występują.

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: