Zgadza się, są rozbieżności w tej bibliotece z dokumentacją. Ten FatFS pochodzi z CubeMX. Już sobie to ogarnąłem za pomocą wskaźnika na bufor LFN. Wykorzystałem wskaźnik znajdujący się w strukturze opisującej katalog, tylko czemu wskaźnik bufora LFN podpina do struktury katalogu zamiast do struktury samego pliku? Trochę dziwne. Poniżej struktura katalogu...
Witam, chciałbym stworzyć prosty układ pomiarowy, który by miał za zadanie pobrać w krótkim czasie sporą liczbę pomiarów (np 1000 pomiarów w ciągu sekundy przy 12 bitowym przetworniku adc) i jednocześnie zapisać te pomiary na kartę sd ( system plików fatfs ) po to aby móc swobodnie w dłuższym czasie przesłać otrzymane dane poprzez port rs232 na PC ....
Witam, Mam następujący problem. Chciałbym próbkować dane z akcelerometru, żyroskopu oraz magnetometru z częstotliwością 1 KHz, przez okres 7 sekund. Dane te chciałbym zapisać na karcie SD. Dotychczas aby zapisać dane na kartę SD korzystałem z biblioteki Fatfs (SDIO). Teraz jest to dość problematyczne, ze względu na czas realizacji zapisu. Dane muszą...
(at)maksym92 Być może masz problem z funkcją, która zapisuje blok. Nie sprawdzasz statusów zwracanych przez funkcję. Radzę uruchomić debugger i sprawdzić czy przykładowo nie masz timeoutu np tutaj: [syntax=c] wait = 0x7fff; // Recommended timeout is 250ms (500ms for SDXC) FIXME: 0x7fff is set by sight, need calculate more adequate value do { cmdres...
Odczytaj sektor o numerze: 0x00000800 (sector_read(0x00000800)) i pokaz jego zawartość. Jeżeli tam nic nie ma to znaczy że nie masz utworzonej żadnej partycji i musisz ją stworzyć.
Dzięki. Możliwe że bingo. Kanały Timer'a1 są akurat dzielone z interfejsem SPI2. Jeszcze dzisiaj to sprawdzę. [Edit] Miałeś rację. Kanał OC1 Timera1 kolidował z spi2. Skorzystałem z OC4 i fatfs ładnie działa we wszystkich konfiguracjach. dzięki Pozdrawiam
Do działającej konfiguracji FATFS z SDIO zapragnąłem dodać obsługę DMA będąc twardym gdyż 1 raz go używam. Jednak nie działa to jak powinno. Przeanalizowałem już wszelkie pomysły i do nowych niestety nie doszedłem. Kod funkcji read: [syntax=c]uint32_t SD_SDIO_read(uint8_t *buff, /* Pointer to the data buffer to store read data */ uint32_t sector, /*...
Dzięki wielkie! wałkowałem to ładne parę dni a takiej głupiej pomyłki nie zauważyłem ;) za to poznałem dość dobrze kod fatfs ;) ... oprócz zapisu TRZEBA także odczytać rejestr SPI...
[syntax=c] fr = f_mount(&FatFs, "0:", 0); fr = f_open(&fil, "0:filea.txt", FA_CREATE_ALWAYS | FA_WRITE); fr = f_write(&fil, "towrite", 6, &bw); [/syntax] Niestety, write zwraca FR_INVALID_OBJECT. Problem jest chyba z ścieżkami które podaje, wewnątrz f_open funkcja follow_path(&dj, path); zwraca FR_NO_FILE. Niestety glebszy debug się sypie bo nie mogę...
Witam. Jestem początkującym elektronikiem i mam pewien problem i biblioteką fatfs. Tj : nie wiem w ktorym miejscu w programie mam umieścić kod żeby móc czytać dane z karty i zapisywać do flasha. Czy to ma być w mainie ? . Dodam tylko że nie zależy mi na ciągłęj pracy proca z kartą, tylko o jednorazowe przegranie obrazków z karty do flasha dołączonego...
Pracuję nad opanowaniem obsługi karty SD za pomocą SDIO, z wykorzystaniem bibliotek FatFs. Test peryferiów od użytkownika Samuraj z tematu: [url=http://www.elektroda.pl/rtvforum/to... Kod od Samuraj działa, przy czym jest to test odczytu z karty, a ja mam problem z zapisem na kartę. Konfiguracja peryferiów i użyte biblioteki są takie...
Czy w STM32 przewody sygnałowe do karty SD trzeba jakoś specjalnie podciągać rezystorami, czy w dokładać jakieś w szereg do niektórych przewodów, aby był poprawny i pewny odczyt?
Cześć. Siedze już 2 dni nad kodem, prześledziłem wszystkie rejestry i nie wiem już co jest źle. Mam problem z komunikacją z kartą SD już na samym początku kiedy wysyłamy komendę CMD0 - przejście w tryb sterowania po SPI. Oto dołączam mój kod: Biblioteka SPI: PLIK Spi.h [syntax=c] /* * Biblioteka obslugi SPI */ #ifndef SPI_H #define SPI_H #include "stm32f37x.h"...
No właśnie. A ja za pomocą FatFs'a czytam poprawnie działającego wave'a na komputerze. Więc nie rozumiem czemu na płytce mam takie wartości. To musi być dobrze, tylko że ja czegoś nie rozumiem i ciężko mi znaleźć jakąś wskazówkę
Tak, SDHC ma zawsze 512. A co do tych SD2.0 muszę porównać z tym co analogiczne funkcje (pisane jednak inaczej na rodzinę F4) zwracają w sofcie dla rodziny F4. Dodano po 1 Hahaha, w wersji softu dla F4 w funkcji odczytu bloku jest na sztywno wpisane 512.
Właśnie teraz testuję sobie transfer z/do pena na STM32. Kod obsługi pena USB jest mocno oparty na firmware od ST do STM32F4 DISCOVERY. DO tego FatFS. Praktyczna (czyli już w systemie plików) prędkość zapisu/odczytu pliku to 720KB/s. Bez DMA.
Praca domowa, a dokładniej projekt. Styczności z płytkami STM'a nie miałem wcześniej, moją sytuację poprawia tylko fakt że znam trochę C oraz to że udało mi się od znajomego pożyczyć płytkę oraz moduł do odczytu kart SD (prowadzący nie chce ich nam udostępnić poza zajęciami (at)LChucki Bardziej chodzi mi o wyjaśnienie dlaczego tak, a nie inaczej. Fakt...
Bardzo dziękuję za informacje. Posiedziałem trochę wczoraj w nocy i: moduły DMA pamiętają adresy i pozostałe ustawienia. Po zakończeniu transferu wszystko jest przywracane w rejestrach. Jeżeli coś jest stałe, to nie trzeba tego za każdym razem ładować do rejestrów (jak w programach 2 i 3); wystarczy tylko ustawić bit DMA_CCR1_EN. Podpucha :) Rejestr...
Ok mam dwie funkcje do transmisji i odbioru przez SPI (Karta SD i FatFs): [syntax=c] static void xmit_spi (BYTE Data) // Wyslanie bajtu do SD { // Wyslanie bajtu while (!(SPI1->SR & SPI_I2S_FLAG_TXE)); SPI1->DR = Data; } static BYTE rcvr_spi (void) // Odebranie bajtu z SD { u8 Data = 0; // Wyslanie 0xFF while (!(SPI1->SR & SPI_I2S_FLAG_TXE));...
Okrojona itoa daje rade, krru twoja rada poprawiła nieco działanie - zamiast 125 pomiarów zapisuje aż 112, wcześniej różnica była większa i randomowo się zmieniała. Zastanawia mnie fakt taki: winą obarczałem prędkość zapisu na kartę ale jak zamiast 6 wysyłam 4 znaki to błąd jest taki sam. Bo długość nie ma znaczenia - i tak trzeba odczytać, zmodyfikować...
Cześć Mam problem z biblioteką FatFS. Inicjalizacja karty i odczyt działają bez zarzutów, problem zaczął się gdy próbowałem użyć funkcji f_write. W argumencie funkcji podaję wskaźnik do danych do zapisania, dane są zapisywane w pliku ale pierwsze 3 bajty zawsze mają wartość 0. Te 3 zera pojawiają się nie tylko w pliku ale i w pamięci pomimo że wskaźnik...
Myślę że nikt Ci nie da gotowej wskazówki gdzie jest błąd, musisz sam szukać. Robiłem podbną rzecz ale na mikrokontrolerze Microblaze w FPGA Xilinx i debugowałem każdy część kodu - szczególnie czy zawartość różnych sektorów odczytanych przez SPI zgadza się z tym co powinno być. Wiedziałem co zawiera 1,2,3,4.. sektor karty SD i odczytywałem to i wysyłełm...
Dalej wisi, przechodzi przez konfiguracje SPI2, niestety przy funkcji wait_ready() - > rcvr_spi() tutaj powinien nastąpić odczyt, niestety zwracana wartość data to 0. troche zmieniłem konfigurację na bardziej przyjazną, proszę o porady. SCK - PB13, MISO - PB14 , MOSI - PB15, CS_SD - PE15 [syntax=c] MAIN int main( void ) { SystemInit(); SPI_SD_Init();...
Witajcie. Zacząłem jakieś 2 miesiące temu przygodę z ARMami na przykładzie STM32. Moim celem jest przygotowanie samochodowego odtwarzacza mp3 zastępującego zmieniarkę CD. Początek zabawy przeszedł dość gładko i po paru dniach już odtwarzałem muzykę z pendrive'a. Jednak odbywało się to w pętli, więc równoczesna aktualizacja wyświetlacza czy inne czynności...
bo SD każdy użytkownik może sobie wyjąc i odczytać, a chciałem utrudnić taką zabawę :)
Sam main.c raczej nic nie da ale proszę. /** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * This notice applies to any and all portions of this file * that are not between comment...
Dziękuję wszystkim za pomoc! Uruchomiłem bootloader z kartą SD, ale nie z projektu EP. Miałem duże problemy aby odczytać kartę SD. Wykorzystałem szablon Freddiego dla stm32f103 i FatFs w opcji read-only. Całość z obsługą prostego szyfrowania zajmuje mniej niż 8k. Odnośnie debugowania to łatwiej mi jest pisać i debugować osobno bootloader i główną aplikację...
Czyli po SDIO. Więc tak To select between DMA or polling mode refer to * "SD_DMA_MODE" or "SD_POLLING_MODE" F - Programming Model (Selecting Polling for SDIO data Transfer) * ========================================... * //Only SD Card Single Block operation are managed. * Status = SD_Init(); // Initialization Step as described...
Witam serdecznie Kolegów! Aktualnie jestem w trakcie pisania gry typu labirynt z kulką na procesor ARM STM32F103VCT6. Wszystko mam pięknie i ładnie obsłużone (symulacja odbić od powierzchni płaskich, detekcja kontaktu z otworami) no ale zostało jeszcze najważniejsze - symulacja odbić kulki od kantów prostokąta. I tu niestety zaczynają się schody. Z...
Cześć! Po kilku małych projektach opartych na Nucleo i Discovery postanowiłem wykonać trochę bardziej skomplikowany i praktyczny projekt - odtwarzacz plików WAV z karty SD i... zwracam się do Was z prośbą o pomoc 😄 Projekt oparty jest o STM32F103RCT6 do którego podłączone jest gniazdo kart microSD i DAC (PCM1780). Za pomocą FatFs odczytuję plik WAV...
Witam Najprostszy przykład - montuję FATFS (karta SD), otwieram plik tekstowy np. do zapisu, wpisuje dowolny tekst, zamykam plik. Do tego momentu jest wszystko dobrze tzn. tworzy mi i zapisuje plik z danymi na karcie SD (nie ma też problemu z dopisywaniem danych do istniejącego pliku). Następnie próbuję wysyłać po SPI do wyświetlacza TFT jakiekolwiek...
Czy mógłby mi ktoś wyoślić , jak w C można uzyskać nałożenie małej grafiki na większą pełnoekranową w wyświetlaczu LCD-TFT ? Telegraficzny skrót problemu: -na LCD z karty SD wczytuję obrazek (na cały ekran , 320X240 , kolor, grafika "bazowa") , używam bibliotek GLDC , FatFS.Wrzucam plik odczytany z SD do zadeklarowanej tablicy i potem pętlą wczytywane...
Cześć, ostatnio napisałem bootloader na STM32F4 pracujący w trybie USB HOST FS. Całość chodzi na Distortosie, używa HAL i bibliotek wygenerowanych przec CubeMX i zmodyfikowanych lekko przeze mnie. Modyfikację polegają głownie na: -modyfikacji obsługi przerwania: [syntax=c] void USBH_on_irq(void) { NVIC_DisableIRQ(OTG_FS_IRQn); usbh_irq_flag = true;...
Hm.. Będziemy testować :) Zegara SPI nie chcę zbytnio obniżać, żeby sterownik nadążał z odczytem plików WAV. Są one zakodowane jako mono 8bit 32kHz i przy /256 nie za bardzo to chciało dzialać, tj. program nie zdążal wypełniać buforu przed jego opróżnieniem. Tutaj jest jakaś nota aplikacyjna motoroli: http://www.nxp.com/files/timing_intercon...
Rozumiem i widzę, że każdemu to wpajasz ale spójrz na kod który zamieściłem i jeśli możesz to wyprowadź mnie z błedu bo ja to widzę tak. Funkcja odbioru [syntax=c]void xmit_spi (BYTE Data) // Wyslanie bajtu do SD { while( !( SPI2->SR & SPI_SR_TXE )); SPI2->DR = Data; } static BYTE rcvr_spi (void) // Odebranie bajtu z SD { u8 Data = 0; while( !( SPI2->SR...
Witam Napisalem działajacą aplikacje na mikrokontroler (STM32F4) Aplikacja odczytuje dane z czujnikow i zapisuje wyniki na kate SD. Zastanawia mnie dlaczego czas zapisu na karte SD jest mocno nieregularny. Zazwyczaj zapis jednego bloku pamięeci trwa 2ms ale sporadycznie trwa to 30ms, bardzo rzado (1 na 1000) nawet przekracza 100ms! Blok jest wielkosci...
Witam, chciałem wykorzystać kartę microSD do odczytu obrazków w projekcie zawierającym wyświetlacz LCD, natomiast pojawił się pewien problem z funkcją f_open() w FatFs. Podczas testowania program gładko przechodzi f_mount() zwracając FR_OK, natomiast wykrzacza się przy f_open() zwracając błąd FR_NOT_READY. Przeczytałem zarówno na forum jak i w czeluściach...
Witam kolegów forumowiczów otóż jestem posiadaczem płytki REDBULL z mikrokontrolerem stm32f103 Udało mi się obsłużyć kartę pamięci na magistrali SDIO z najnowszą biblioteką FatFs. Obecnie chciałbym wykonać fotoramke (w celach edukacyjnych) i udało mi się obsłużyć pliki *.bmp i w danym momencie poprzez funkcję f_readdir odczytuje/wyświetlam kolejne pliki,...
Do lukash90: Kiedy już interfejs USB jest skonfigurowany i może nastąpić przezeń transfer danych, to w programie czytnika wywoływana jest funkcja STORAGE_Init z pliku usbd_storage_msd.c. W tej funkcji karta jest konfigurowana i odczytywane są jej parametry przy pomocy wywołań funkcji, których ciała zawarte są w pliku SD_card_functions.c, które później...
Witam, mam problem z przesłaniem pliku do dekodera VS1011, stworzyłem funkcję ,lecz niestety udaje mi się odtworzyć kilka ms pliku mp3. Niestety nie mogę powiększyć aktualnej tablicy ze względu na przekroczenie pamięci "stack overflow". Potrzebuje porady jak można w inny(lepszy) sposób napisać funkcję by odczytać cały plik dźwiękowy zapisany na karcie...
a ja po SDMMC i kurde nie moge ogarnąć.,. Na Twoje DISCO jest jakiś przykład (JPEG) w repozytorium CubeMX. Użycie SD + FatFS. Co prawda użyty tylko odczyt ale może tam upewnisz się czy dobrze konfigurujesz Fatfs.
Nie potrzebujesz DMA aby używać karty SD we FreeRTOSie. Jeśli zapisujesz lub odczytujesz dane z jednego lub więcej plików małymi partiami możesz nawet to robić z wielu tasków i przy odpowiedniej synchronizacji nie ma żadnego problemu. DMA jest przydatne kiedy danych jest dużo (>100kB) i nie możesz sobie pozwolić na czekanie na zakończenie operacji na...
Malloc jest ok. Jak nie chcesz malloca to na stałe zarezerwuj bufor 512 bajty (wyrównany) i zapisuj po jednym bloku. To samo tyczy się funkcji odczytującej bloki.
Witam, mam nietypowy problem, mianowicie podczas wyświetlania plików *.bmp powstaje mi efekt przesunięcia obrazu, jednakże efekt ten występuje tylko dla koloru białego... Tak wygląda obraz oryginalny zapisywany na karcie SD http://obrazki.elektroda.pl/9206602300_1... Natomiast tak wygląda obraz wyświetlany http://obrazki.elektroda.pl/8437048700_1...
Witam, jak w temacie aktualnie opracowuję komunikację uC z kartą SDHC. Korzystam z komunikacji za pomocą interfejsu SDIO 4-bit Wide bus mode. Domyślnie w czasie procesu inicjalizacji przy włączaniu Wide Bus Mode uC wysyłał komendę CMD41 w celu ustalenia SRC. Nie skorzystałem z tego z powodu braku takiej komendy w STM32F446. Ręcznie wpisałem do odpowiedniego...
Witajcie, Kody mojego projektu wraz z projektem cubemx dostępne tu: https://bitbucket.org/piotrva/stmf7-soft... Płytka: STM32F7 discovery. Kompilator: Keil v5 Problem: W paczkach dołączonych do CubeMX jest przykład obsługi karty SD przez SDIO (formatowanie, zapis pliku, sprawdzenie zapisu) - to działa na moich 2 kartach microsd testowanych, zatem...
słuszna "opieprzka" , Freddie :))) a więc wygląda to tak : #include "stm32f10x.h" #include "TouchPanel.h" #include "systick.h" #include "LCD/LCD.h" #include "SD_Card/sdio_sd.h" #include "FATFS_V0.08A/src/ff.h" #include "usb_lib.h" #include "hw_config.h" #include "usb_pwr.h" #include "stm32f10x_usart.h" #include <stdio.h> #include "Rtc/RTC_Time.h"...
Dzień dobry! Poniżej kawałek kodu, trochę nie ociosany, co prawda, ale może rzuci jakieś światło na problem. [syntax=c] #include <stdio.h> #include <string.h> #include "stm32f4xx.h" #include "FreeRTOS.h" #include "task.h" #include "timers.h" #include "semphr.h" #include "misc.h" /* moje */ #include "sine.h" #include "timer.h" #include "leds.h"...
U mnie na płytce dołączonej do zestawu były takie przykładowe programy: • FATFS V0.08A-SD Card (obsługa systemu FAT na karcie pamięci - tym odczytujesz pliki), • GLCD (biblioteka do obsługi LCD - tym wyświetlasz odczytane dane). Możesz je połączyć razem i może coś z tego wyjdzie. Dodatkowo w programie demo jest wyświetlanie obrazków z użyciem...
Zrezygnowałem z "obsługi klawiatury" w przerwaniu i robię to w głównej pętli programu ale do eliminacji drgań styku korzystam jeszcze z HAL_Delay(20), to chyba tutaj jest miejsce na wykorzystanie timera?? Bo nie wiem jak inaczej można byłoby zastosować timer do obsługi odczytu klawiatury? Co do karty SD, skorzystałem z interfejsu SDIO i middleware FatFs,...
Nie przesadzajmy - nie jest to znowu taki wielki problem. Co do sterowników urządzeń, to przy prostym założeniu można sprawę zredukować do zwyczajnego kodu jaki każdy tworzy bez RTOSów - to założenie to "danego urządzenia używa tylko jeden wątek". To pozornie wielkie ograniczenie w większości wypadków jest całkowicie słuszne, bo np. jak by wyglądał...
Witam, Mam nurtujące mnie pytanie ws działania karty SD. Otóż działa jedynie na SPI z CPOL=1 i CPHA=1. Program testuje moje LBA 0 czy na końcu jest 0xAA i 0x55 Pierwsze dwa bajty mojego LBA 0 realnie zawierają się 0x33 i 0xC0. Program w mode 0 odczytuje 0x67 i 0x81. Natomiast w mode 3 wczytuje poprawne wartości. A przecież teoretycznie SD działają na...
Mam następujący problem: nie mogę modyfikować żadnych danych na karcie SD ( wykorzystuje biblioteke FatFs). Komunikacja z kartą przebiega "raczej" bez zarzutu - wnioskuje to z tego, że działają mi funkcje wykorzystujące tylko odczyt danych z plików. Tak więc mogę odczytać dane z pliku tekstowego i zapisać sobie je do jakiejś zmiennej, mogę również sprawdzić...
stm32 fatfs fatfs stm32 fatfs odczyt
zapięcia pasów volvo czujnik naładować aplikacja obsługi serwisu
uziemienie fundamentowe uziemienie fundamentowe
Instrukcja przywracania BIOS na GA-Q35M-S2 przez USB Garmin nüvi 2689LMT - problem z wpisaniem "Polska"