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?
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.
Wszystko jest ładnie opisane na tej stronie: http://soundfile.sapp.org/doc/WaveFormat...
bo SD każdy użytkownik może sobie wyjąc i odczytać, a chciałem utrudnić taką zabawę :) W takim razie lepiej chyba dać do flash-ki ale bez systemu plików. Komunikaty nie muszą mieć stałej długości, zawsze można na początku zrobić tabelkę z adresami poszczególnych komunikatów żeby miejsca nie marnować i móc zapisywać dowolnej długości komunikaty (oczywiście...
Czy sprawdziłeś działania odczytu z karty na poziomie sektorów? Czy możesz odczytać pierwszy sektor karty SD i czy zgadza się to odczytem zrobionym na PC?
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"...
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.
Cześć! Dostałem mocno bojowe zadanie napisania programu dla STM32F429-Discovery w którym będę odczytywał pliki .mp3 z kart SD. Niestety po moich usilnych staraniach dotarłem do punktu z którym nie mogę sobie poradzić. CubeMx nie wspiera z "palca" SPI przy FatFs, a sam nie mam na tyle doświadczenia z tymi płytkami (co najwyżej Arduino, ale wstyd mi porównać...
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...
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));...
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...
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ć...
Zaraz będzie, że krytykuję albo się naśmiewam, ale widzę tutaj poważne braki w wiedzy. I właśnie na to liczę, że ktoś mi wytknie braki w wiedzy ;) Wiem, że SSD1289 wypada słabo w porównaniu z konkurencją. Nie mogę się zgodzić natomiast co do zawężania obszaru. Jest to jak najbardziej możliwe w tym układzie. Rejestry 0x44, 0x45, 0x46 umożliwiają zawężenie...
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...
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,...
Prawdę mówiąc wybierając ten mikrokontoler nie przyszło mi do głowy że będzie z tym problem. SYSCLK, I2S CLK = 72 MHz, APB1 CLK = 36MHz, prędkość SPI odpowiedzialnego za odczyt z SD 18 Mbit/s. Nie wiem na ile w przypadku FatFS prędkość SPI pokrywa się z prędkością przesyłu danych, być może to było wąskie gardło.
Hmm, a uruchamiasz ten gotowy program przykładowy? Używam CooCox'a Proszę sprawdzić moje boje z FatFS. Zmieniłem na sztywno wartość BlockSize na 512 ale niestety nie pomogło. Jednak zauważyłem bardzo ciekawą rzecz: GUI_Text(10,30,"Detecting...&qu... SD_Detect(); //Zwraca SD_PRESENT GUI_Text(10,50,"Mounting...&quo...
Słabiutki ten FATFS i to środowisko CubeMX. Wielokrotnie zdarza się, że przy zapisie do pliku wykorzystywane metody nie zgłaszają żadnych błędów a dane nie są zapisane do pliku. Z odczytem jest ok.
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...
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...
Funkcja nadawania jest identyczna, z tym że wysyłam nie 0xff a to co chcewysłać no i potem nie odczytuje już zawartości DR bo co mnie ona obchodzi, chciałem tylko wysłać, chociaż wiem, że coś tam przyszło (pewnie 0xff). No i na tym polega Twój problem... Piszesz że masz kod który nie działa, ja staram się wytłumaczyć dlaczego, a Ty że rozumiesz i przekonujesz...
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.
Możesz mi powiedzieć co to za funkcja ta disk_timerproc? Ją generuje cube? Bo ja jej nie mam.. Próbuje to zrobić na rejestrach. Ktoś ma jakieś materiały które pozwolą mi zrozumieć jak to działa na rejestrach itd? Oprócz RM Bo nad nim aktualnie siedzę. Dużo rejestrów jest tylko do odczytu i tak się zastanawiam które z nich muszą się znaleźć w konfiguracji...
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...
zrobilem taka funkcję która odczytuje plik, plik slyszłe odtwarzany jest cały ale niestety są ścinki jakby przycinało transfer, ustawiałem preskalery na rozne sposoby ale nic to nie daje, liczbe bufora również. wrzucalem mp3 , 96kbps,128 kbps, 320kbps to samo, nie moge uzyskać płynności. do vs mam podlaczony oscylator kwarcowy 12.288 MHz, [syntax=c]int...
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"...
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"...
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...
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, 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...
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ę...
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...
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...
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...
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();...
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...
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
oporność głośnik prądnice amerykanka zamel zabezpieczenie
kabel brake radio integra reset ustawień centrali
Junkers bucha - co robić? Porady i rozwiązania Lokalizacja kwarantanny w HitmanPro