-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc3.n
etnews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.
highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.n
ews.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-fo
r-mail
User-Agent: NewsTap/5.3.5 (iPhone/iPod Touch)
Cancel-Lock: sha1:2o2tyfeOy64TZjU7MwkBfara+NE=
Newsgroups: pl.misc.elektronika
Message-ID: <607ae383$0$546$65785112@news.neostrada.pl>
Subject: Re: karta SD i pamięć RAM na jednej magistrali - dziwne zachowanie
Content-Type: text/plain; charset=UTF-8
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
From: jacek <j...@f...pl>
References: <607ab8d9$0$508$65785112@news.neostrada.pl>
Date: 17 Apr 2021 13:32:51 GMT
Lines: 59
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.20.253.201
X-Trace: 1618666371 unt-rea-a-02.news.neostrada.pl 546 83.20.253.201:26994
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3986
Xref: news-archive.icm.edu.pl pl.misc.elektronika:764146
[ ukryj nagłówki ]Atlantis <m...@w...pl> wrote:
> Jest sobie układ z MCU STM32F107. Do magistrali SPI3 podłączone dwa
> urządzenia: karta SD oraz pamięć RAM 23LC1024. Każde z urządzeń z osobna
> dział prawidłowo. Mogę zapisywać i odczytywać dane do/z pamięci RAM, a
> karta SD jest prawidłowo obsługiwana przez FatFS. Każde z urządzeń jest
> aktywowane software'owo swoim własnym pinem CS.
>
> Bardzo konkretny problem pojawia się natomiast w bardzo konkretnej
> sytuacji. Mianowicie:
> 1) W programie mamy otwarty plik, z którego kilkanaście razy na sekundę
> czytana jest porcja danych.
> 2) Raz na 25 sekund wykonywany jest test zapisu i odczytu do/z pamięci
> 23LC1024. Trafia do niej pewna porcja danych, która następnie jest
> odczytywana.
>
> Problem pojawia się w momencie, gdy po zakończeniu ostatniej operacji na
> SPI RAM przychodzi czas na kolejną operację na karcie (czyli w
> opisywanym przypadku odczyt kolejnego fragmentu danych z pliku, chociaż
> próbowałem wstawiać też w tym miejscy operację zapisu do innego pliku i
> efekt był taki sam). Mianowicie wywalany jest wtedy błąd funkcji
> readSECTOR sterownika karty SD, którego numer wskazuje na odrzucenie
> komendy READ_SINGLE, wysłanej do karty (funkcja wysyłająca komendę
> odbiera z magistrali odpowiedź inną niż 0).
>
> Problem występuje raz, odczyty kolejnych porcji danych już tego błędu
> nie wywalają, to znaczy do czasu aż upłynie kolejnych 25 sekund i
> przyjdzie kolej odczytania porcji tuż po zakończeniu kolejnej operacji
> na pamięci SPI.
>
> Same operacje na RAM-ie poprzedzające ten błąd wykonują się prawidłowo.
>
> Dodatkowe informacje/co udało mi się wykluczyć:
> 1) Analizator stanów logicznych pokazuje, że linie CS obydwu urządzeń
> nigdy NIE znajdują się w stanie niskim jednocześnie.
> 2) Czas jaki upływa od podniesienia linii CS_RAM-u do upuszczenia linii
> CS_SD zdaje się nie mieć znaczenia. Normalnie pomiędzy tymi zdarzeniami
> upływa trochę ponad 3ms (pomiędzy operacjami jest jeden printf) ale
> próbowałem wstawiać tam ręcznie opóźnienia idące w setki ms - nie pomagało.
> 3) Magistrala SPI jest konfigurowana przy inicjacji karty SD. Sterownik
> pamięci RAM nie ingeruje w konfigurację magistrali. Przyjmuje stan
> zastany i jedynie wysyła/odbiera dane.
> 4) Nie używam RTOS-a. Wszystkie operacje są wykonywane sekwencyjnie w
> pętli głównej.
> 5) Nie używam przerwań do transmisji SPI ani nie inicjuję transmisji z
> funkcji obsługi przerwań.
> 6) Nie używam DMA do obsługi transmisji SPI.
>
> Ktoś ma jakiś pomysł co może być przyczyną tak dziwnego zachowania
> układu/programu? Co jeszcze mogę sprawdzić?
>
O ile dobrze pamietam to karta SD wymaga taktowania jeszcze po wyłączeniu
CS, albo przed aktywowaniem CS, jakies cyrki z tym są; to nie jest tak jak
normalne SPI.
Nie pamietam już dokładnie.
jp
Następne wpisy z tego wątku
- 17.04.21 17:14 Atlantis
- 17.04.21 18:38 Grzegorz Niemirowski
- 17.04.21 19:34 Marek
- 21.04.21 22:08 Atlantis
- 22.04.21 09:00 Marek
- 22.04.21 09:44 Atlantis
Najnowsze wątki z tej grupy
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
- Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie
- ciekawy układ magnetofonu
- Mikroskop 3D
- Jak być bezpiecznym z Li-Ion?
- Szukam monitora HDMI ok. 4"
- Obcinaczki z łapaczem
- termostat do lodowki
- SEP 1 kV E
Najnowsze wątki
- 2024-12-31 Szukam: czujnik ruchu z możliwością zaączenia na stałe
- 2024-12-31 Warszawa => Solution Architect (Java background) <=
- 2024-12-31 Warszawa => Starszy Konsultant AWS <=
- 2024-12-31 Warszawa => International Freight Forwarder <=
- 2024-12-31 Odpowiedzialność w spółce z oo
- 2024-12-31 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-31 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2024-12-31 Warszawa => Specjalista ds. bezpieczeństwa informacji i ciągłości
- 2024-12-31 8%
- 2024-12-31 Błonie => Administrator systemów <=
- 2024-12-31 Błonie => IT System Administrator <=
- 2024-12-31 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2024-12-31 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2024-12-31 Warszawa => Helpdesk - I linia wsparcia <=
- 2024-12-31 kabelek - kynar ?