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...
A Timer przypadkiem nie zajmuje którychś pinów od karty SD? Ja robiłem coś podobnego. Tyle że u mnie przerwania zajmowały z 90% całego czasu procesora (wiem że nie wolno ;)) a mimo to odczyt w programie głównym działał. Może przerwanie zajmuje za dużo czasu procesora i procedura disk_timerproc za wcześnie zwraca błąd? Z DMA będzie problem bo musiał...
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"...
(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...
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.
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.
Wydaje mi się, że powodem mogą być te przerwy w nadawaniu powodowane odczytem karty? daj jak największy bufor (64KB jak się da), wtedy mimo przerw powinno być coś słychać przypominającego wava, 6ms to trochę mało aaaa, zegary daca wyglądają ok
Temat jakoś umiera śmiercią naturalną. Pozwolę sobie nieco odświeżyć. Hardware: - HY-mini (Cortex M3) - LCD ze sterownikiem ssd1289 (FSMC) - karta sdhc (SDIO) Software: - fatfs R0.10 („testowałem” też wcześniejsze wersje) - „HAL” dla fatfs – silnie wzorowany na przykładach dołączonych do HY-mini i przykładach sugerowanych...
Funkcja SD_Init() wywołuje między innymi SD_LowLevel_Init(). Z tego co się wstępnie przyjrzałem inicjowane są piny PC8 - PC12 czyli tak jak trzeba. W czasie świąt postaram się sprawdzić w którym dokładnie miejscu funkcja się wywala i opiszę co dokładnie udało mi się ustalić. Tymi funkcjami możesz zapisywać i odczytywać bloki z karty SD. Jak to opanujesz...
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ć.
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...
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ć...
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 ....
bo SD każdy użytkownik może sobie wyjąc i odczytać, a chciałem utrudnić taką zabawę :)
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ą...
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ć...
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.
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...
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...
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.
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,...
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...
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...
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, 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...
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...
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, 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, 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...
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.
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;...
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...
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"...
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));...
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...
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"...
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, /*...
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();...
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,...
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ę...
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...
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...
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.
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...
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...
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ć...
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...
Witam, Realizuję pracę inżynierską na zestawie uruchomieniowym ZL27ARM z mikrokontrolerem STM32. Praca jest w zasadzie gotowa, ale niestety nie działa do końca poprawnie. Praca jest tworzona głównie w oparciu o książkę STM32 Aplikacje i ćwiczenia w języku C. Środowiskiem programistycznym wykorzystywanym w pracy jest Keil uVision 5. W pracy wykorzystane...
Witam mam problem z zapisaniem danych na karte SD. Do obsługi karty wykorzystuje biblioteki ST (komunikacja przez sdio nie SPI) Dziwne jest to, ze nie mam zadnych błedów (ciągle zmienna res to FR_OK). Co więcej jestem w stanie odczytać dane z pliku na karcie SD. [syntax=c] res = f_read(&fsrc, buffer, sizeof(buffer), &br); [/syntax] przy debugowaniu...
Witam wszystkich !!! OKAZJA!!! Mam do zaoferowania bogatą w liczne peryferia makiete dydaktyczną z uC STM32F103VET6. Podstawowe parametry mikrokontrolera STM32F103VET6: * MCU,32BIT,CORTEXM3,512KFLASH,100LQFP * Series:STM32 * Flash Memory Size:512KB * RAM Memory Size:64KB * No. of I/O Lines:80 * No. of ADC Inputs:3 * No. of Timers:8 * No. of PWM Channels:16...
Witam wszystkich !!! OKAZJA!!! Mam do zaoferowania bogatą w liczne peryferia makiete dydaktyczną z uC STM32F103VET6. Podstawowe parametry mikrokontrolera STM32F103VET6: * MCU,32BIT,CORTEXM3,512KFLASH,100LQFP * Series:STM32 * Flash Memory Size:512KB * RAM Memory Size:64KB * No. of I/O Lines:80 * No. of ADC Inputs:3 * No. of Timers:8 * No. of PWM Channels:16...
fatfs stm32 stm32 fatfs fatfs odczyt
prądnica pierścieniowa arduino przerwania wewnętrzne korad ka3005 wentylator
łucznik naprężacz sprinter podłączenie webasto
Kontrolka hamulca ręcznego świeci - przyczyny i rozwiązania Napięcia zasilacza HP Compaq Pro 6300 AiO