Sorki nie zauwazylem ze to progmem. Pointery w progmem nie istnieja w sposób tak rozumiany jak w normalnej pamieci - tak ze tak łatwo nie bedzie. [syntax=c]#define BUFFLEN 18 char __buff[BUFFLEN]; strncpy_P(__buff, (const char *)pgm_read_word(&(ptr_to_text[0])), BUFFLEN - 1); __buff[BUFFLEN -1 ] = 0;[/syntax] i dopiero mozesz wolac swoja funkcje cos...
Sprawdź jaki status Ci zwraca funkcja readdir oraz opendir. Masz dostępnego printfa więc możesz sobie wypisać te wartości.
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...
(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...
Oczywiście FatFs (np: odczyt plików) działa poprawnie ? Masz uruchomione debug'ownie kodu? Może rdzeń ląduje w HardFault ? :) To wysyłanie po UART masz w pętli głównej zrealizowane?
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ł...
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?
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.
Nie wiem do końca jak działa tamta biblioteka ale czemu nie użyjesz popularnej i dopracowanej biblioteki od elm - chana która nazywa się FatFs w niej nie martwisz sie o nic tylko podajesz ile chcesz bajtów odczytać i tyle. Dikładnie, tyle że do takiego prostego odczytu to w zupełności wystarczyłaby jeszcze prostsza biblioteka niż FatFS czyli PetitFAT...
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 musisz używać f_seek. Funkcja f_read sama przesuwa wewnętrzny offset odczytu w pliku.
(at)zbynio_k sektor -> fizyczna organizacja urządzenia blokowego (najmniejsza jednostka zapisu/odczytu). Dla kart SD jest to zwykle 512 bajty (dla dysków zresztą też). klaster -> najmniejsza jednostka alokacji w systemie plików FAT
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?
Z tego co widzę masz prawdopodobnie przesunięcie danych o jeden bajt. (wytnij jeden bajt z wava gdzieś na początku danych i dostaniesz szum) Spróbuj jak [url=http://www.elektroda.pl/rtvforum/vi... wcześniej odczytu +1 albo -1 bajt. Częstotliwości wyglądają OK, najwyżej będzie inna tonacja. =======update====== Wydaje...
FatFS albo może wystarczy PetitFAT ;) to są bardzo dobre biblioteki.
Przerobiłem kilka bibliotek do obsługi FAT'a na karcie SD. Dla mnie FatFs okazała się najlepszą (posiada bardzo prosty interfejs z programistą), dodatkowo jest stworzona na podobieństwo rozwiązań z programowania na PC (nie trzeba się martwić o liczbę sektorów na klaster, liczbę bajtów na klaster itp.). Po prostu, czytam dane z pliku od dowolnego miejsca...
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.
Tak wiem. Ale czy jest sens ładowania FatFS tylko po to aby mieć możliwość awaryjnego załadowania jednego pliku może raz na pół roku? Jeszcze raz mówię, przeczytaj jakie są ograniczenia tego zapisu i samego sposobu preparowania pliku do zapisu dla datalogera to wtedy ci się wyjaśni. Bo to pytanie czy jest sens ładowania FatFS - jak sam zobaczysz nie...
Jako, że petitfs ma znikome możliwości postanowiłem się pobawić FATFS Zamiast odczytu przez RS'a wybrałem odczyt przez wyświetlacz LCD. Na początku postanowiłem zrobić coś prostego : Zobaczyć co jest zapisane na karcie, Ale problem już pojawia się przy "otworzeniu" pliku. Opierałem się na tym pliku mian: http://elm-chan.org/fsw/ff/en/open.html Jednakże...
A mam na to jakiś wpływ gdy zapisuję kartę podłączoną do komputera? Są 2 sposoby: - Format karty, skopiowanie całej struktury plików w jednym podejściu i brak modyfikacji. - Defragmentacja dysku (karty) ogólnie dostępnym programem lub samodzielnie napisanym, który będzie przy okazji porządkował dysk zgodnie z naszymi oczekiwaniami. - o sposobie wyliczania...
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ść. 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"...
Hmm, cóż, ja też sięgnąłem po ten temat, tyle że STM32F103VC + SDIO + FatFS i... SanDisk 4GB SDHC - działa Kingston 2GB SD - nie działa - przy próbie odczytu/zapisu plików wyrzuca błąd montowania (chk_mounted(...)!=0), pomimo, że f_mount(...) przychodzi bez problemu. Noname 2GB SD - jak Kingston. No to mnie wprawia w szok...
W darmowych przykładach do książek z mojej stopki znajdziesz kilka przykładów obsługi kart SD. Co prawda na XMEGA, ale ponieważ to tylko kwestia dostosowania rejestrów z prostego ukłądu jakim jest SPI, więc nie powinno byc problemów.
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...
Szukam jakiegoś bardzo prostego systemu plików do użycia z mikrokontrolerami ATMega i kartą pamięci microSD. Nie musi on być obsługiwany przez komputer PC. Potrzebny będzie odczyt, zapis, tworzenie i usuwanie plików. FatFS jest fajny, ale trochę zasobożerny. PetitFS za to nie obsługuje zapisu i tworzenia plików. Zapewne ktoś doradzi mi, żebym sam napisał....
Nie rozumiem o co ci chodzi. No z tym FatFS jest trochę grzebania, ale zapewniam Cię, że wszystko da się przerobić tak, jak tego chcesz. Być może nie zauważyłeś, że jeszcze jakiś drobiazg poza operacjami zapisu i odczytu SPI musisz zmienić. Nie musisz mieć terminala. Ja na tym FatFS zrobiłem sobie 2 rejestratory i działają, że tak powiem "standalone"....
Krótkie wprowadzenie (nie musisz czytać) Buduje układ, w którym jedną z funkcjonalności będzie zapis na kartę SD. Wczoraj cały dzień męczyłem się z biblioteką Petit FatFS bo myślałem że wystarczy, otóż nie wystarczy i nie polecam jej do zapisów na kartę a jedynie do odczytów. Postanowiłem więc przejść na bibliotekę FatFs. I napotkałem na taki problem:...
https://obrazki.elektroda.pl/5032145100_... Pokażę tutaj jak można użyć komendy binwalk do analizy zrzutu pamięci flash na przykładzie Windows dzięki użyciu WSL. Użyte środowiska i narzędzia W temacie użyję następujących narzędzi: - programator SPI CH341 Black (warto poczytać o jego modyfikacji napięcia zasilania) kupiony za 35 zł...
Moje własne:) Potrzebowałem obsługi długich nazw plików i podkatalogów, a te, dostępne w sieci (m.in. fatfs) ich nie mają (albo ja o czymś nie wiem). Mam zrobione tylko odczyt plików i przeglądanie zawartości podkatalogów i katalogu głównego. Zapis plików i tworzenie podkatalogów na razie nie są mi potrzebne. Pozdrawiam, KT_priv
Nie byłbym takim optymistą z tym FAT32 dla atmega32 trzeba się zaspokoić fat16 .... BZDURY piszesz. Na Atmega32 FatFS zajmie 1kB RAM oraz do 12kB Flash i to przy pełnej opcji (odczyt i zapis z długimi nazwami plików). Dodatkowo nie opłaca się kompletnie zakup AVR'a powyżej 32kB (z tymi 32kB w sumie też :wink:) bo w tej samej cenie mamy do dyspozycji...
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,...
Jeśli to ta płytka i te przykłady to w procedurze odczytu danych z karty trzeba wpisać taką wartość na sztywno - nie chodzi o fatfs, ale o funkcje niskopoziomowe obsługi karty. Poszukaj na forum , bo pisałem o tym dosyć sporo, dokładnie co i gdzie trzeba zmienić oraz jak do tego doszedłem. Z okazji świąt podaję linka: http://www.elektroda.pl/rtvforum/topic26...
Hmmm... Po przeanalizowaniu tematu zastanawiam się, czy to sprzętowe SPI nie tworzy problemów. Dlaczego zastanawiam się, że to właśnie sprzętowe SPI? Bo przepisuję kod z dwóch różnych książek i zmieniam tylko i wyłącznie obsługę samego SPI + odczyt ze strony elm-chan.org całego pliku i to nie działa, a innym tak. Stąd też pytanie czy szukać problemów...
Pewnie zbyt krótko program czeka na CRC i dlatego wychodzą takie cuda :) Spróbuj zmniejszyć prędkość spi pracującego z kartą. Nie da się odczytując pliku go uszkodzić (karta pracuje w trybie odczyt lub zapis nigdy razem). Spróbuj jeśli to możliwe podmienić bibliotekę do obsługi kart SD i ewentualnie pozmieniaj trochę kod aby wszystko dobrze współpracowało...
Myślę że wiedziałeś gdzie szukać bo znalazłem taki temat gdzie się wypowiadałeś: https://www.elektroda.pl/rtvforum/topic3... Z tym że tam był inny problem. U mnie jest wyrównanie buforów do 32 i zawsze zapisuję dane w blokach 512B (a chcę w większych, ale ciągle takich będących wielokrotnością dwójki) więc wyrównanie jest i będzie zachowywane....
Masz rację (zasugerowałem się opisem seek'a od fatfs'a zapominajac, ze petit nie rusza tablicy fat) w końcu petit nie nadaje się za bardzo do zapisu danych a prędzej do odczytu w końcu nie można w nim nawet utworzyć pliku. Dlatego proponował bym jeśli masz na tyle miejsca w pamięci przesiąść się na FatFs'a. Chociaż twój plik niby ma rozmiar większy...
Tak jak obiecałem, wstawiam część swojego kodu, w pliku mmcPIC32.c jest najważniejsza część, czyli realizacja zapisu, odczytu przez SPI, biblioteki nie zamieszczam, bo można ja pobrać. Zapis i odczyt działają aż miło :) Tutaj mam również taką funkcję inicjalizującą, która również tworzy foldery i otwiera plik logu do zapisu. [syntax=c] void SDMemoryInit(...
Ja jeszcze posta trochę zedytowałem [; - ostatni akapit Dzieje Ci się tak na każdej karcie, czy tylko na MMC? Może spróbuj ją jeszcze raz sformatować na kompie? No i czy w disk_initialize() faktycznie wykrywa ją poprawnie? EDIT: wartość typu 0xFFFF sugeruje, że tak naprawdę nic z karty nie odczytałeś (wtedy dochodzą same jedynki). 4\/3!!
Dyskusja jak zwykle robi się nie na temat. Atmega328 z Arduino ma 2 kB SRAM, co jest aż nadto dla realizacji zadania autora. Problem z pamięcią związany jest z g++, który umieszcza VMT klas w SRAM, w efekcie pamięci tej zaczyna szybko ubywać, szczególnie jeśli używane są hurtowo metody wirtualne i dziedziczenie. Niemniej, sensownie napisany program,...
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 ....
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...
OK. Poczytałem, pooglądałem i poprawiłem. Biblioteka najnowsza. Skompilowało się. Z racji zapełnienia pamięci ATmega32 do około 125% postanowiłem przejść na ATmega644. Niestety po wgraniu programu dalej nic się nie zmieniło, dlatego postanowiłem zacząć od odczytu z przykładu ze strony o funkcji f_open. Też mam z nim problem. Obecnie mam taki oto kod:...
Kod odczytu z karty SD oraz wyświetlania na LCDku. char sd_card_buff[1024]; fsRead("RAMKA1.TXT",sd_car... GLCD_Bitmap(sd_card_buff,55,10,19,42... Wstawiam również całą bibliotekę FATfs z której korzystam.
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ą...
Wiem, ale korzystałem z rozwiązań podawanych w przykładach. W necie często są przykłady które nie działają... Nie widzę też tego braku odczytu bufora, który psuje transmisję, ale to już może z przemęczenia... Zobacz na xmit_mmc(). Zrób jedną funkcję, będzie prościej wszystko poprawić, choćby dlatego że będzie jedno miejsce potencjalnych problemów mniej....
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...
Cześć ! Mam taki oto problem. Składam na płytce stykowej rejestrator temperatury. Odczyt ładnie działa, lecz jest problem z FATFS, funkcja f_open(). Fragment kodu: [syntax=c] char *path = malloc(11); itoa(day, tmp, 10); if (day<10) strcpy(path, "0"); strcat(path, tmp); strcat(path, "."); strcat(path, dzmi[mon]); strcat(path, ".csv"); FIL f; UINT...
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ć...
Witam Was mam taki problem z którym nie mogę sobie poradzić. Po wielu bojach udało mi się uruchomić PetitFat na atmega32 Kod w skrócie wygląda tak [syntax=c] //--------------------------------------... BYTE buff[16]; // File read buffer UINT br; // File read count FATFS fs; // Work area (file system object)...
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...
Witam Mam problem z biblioteką FatFS (v.0.08). Implementuje ją w środowisku Keil uVision (v.3.70). Procesor to LPC2368. Komunikacja z kartą SD poprzez interfejs SPI. Obsługa karty SD jest sprawdzona i działa (inicjalizacja, zapis/odczyt sektora). Implementacja jest bardzo uproszczona (np. disk_ioctl zwraca jedynie RES_OK, zapis kilku bloków został zrobiony...
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, /*...
Tak. Taki mam początek w main: char *ptr2; long p1, p2, p3; //BYTE res, b1; WORD w1; UINT s1, s2, cnt, blen = sizeof(Buff); DWORD ofs = 0, sect = 0; //FATFS *fs; /* Pointer to file system object */ RTC rtc; FATFS fs Dodano po 2 Sory źle napisałem. I całkowicie odłączam zasilanie i robie reset. W obu przypadkach nie działa. Chociaż zauważyłem, że jak...
aaa no to najlepiej przydałyby się te pliki w formacie może 44100 16bit stereo Dodano po 5 zaraz - no to odtworzyłem je teraz poprawnie czyli 44100 8bit stereo - no teraz pięknie wygląda chyba ? Tzn nie mówię o tej analizie spektrum. Ale tak czy inaczej ciekawy jestem jak będą wyglądały te pliki z próbkami 16bit - więc przygotuj też je proszę ok? ........
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;...
Witam, Na Arduino to raczej nie zadziała z ich bibliotekami :) Miałem podobny problem (zlecenie od kolegi - warunek ma być na Arduino). Po kilku dniach męki z bibliotekami i "wiringiem" (czy czymś takim) pobrałem FatFs i napisałem w 100% działający datalogger w pół dnia - do tego obsługa LCD 2x16, UART oraz kolejnego scalaka po SPI(z niego czytałem...
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"...
Witam. Staram się zaimplementować bibliotekę FatFs na pamięci AT25DFx. Na tym etapie wszystko działa ok oprócz dwóch kwestii: - Po utworzeniu systemu plików na woluminie nie mogę wykonać żadnych operacji. Muszę mieć osobne programy do formatowania pamięci i operowania na niej. - Drugi problem jest bardziej skomplikowany: Utworzyłem dwa katalogi w katalogu...
Tak. Ale kartę zasilasz 3.3V. MISO w atmedze to jest wejście, nie wyjście. A skoro wejście, to odczytujesz na nim poziom jaki wystawi Ci karta pamięci, którą zasilasz napięciem 3,3V. Więc na linii MISO będziesz miał 0 lub 3,3V. Układy tego typu jak Atmega poziom wysoki rozpoznają od ok 0.6 napięcia zasilania czyli dla zasilania 5V poziom wysoki jest...
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...
http://obrazki.elektroda.pl/9633413500_1... Witam Chciałbym przedstawić swój projekt nad, którym ostatnio pracowałem. Cała idea zrodziła się z potrzeby posiadania termometru. Potem doszły to tego inne pomysły, aby mierzyć takie wartości jak wilgotność i ciśnienie atmosferyczne. Ostatecznie powstał kombajn, który zapewnia sporą funkcjonalność....
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...
Robię układ na atmedze8 który odczytuje dane z dwóch akcelerometrów i zapisuje na kartę sd (chwilowo mam microsd z adapterem, ale to nie powinno mieć znaczenia). acc i sd są na wspólnej szynie SPI, mają osobne sygnały CS, a wszsytko podciągnięte rezystorem do zasilania. Korzystam z biblioteki Petit Fat. Do obsługi akcelerometrów mam taką funkcję: [syntax=c]...
Mam taki kodzik: [syntax=c]#include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include "PetitFS/diskio.h" #include "PetitFS/pff.h" #include "LCD/lcd44780.h" char file_name[] = "plik.txt"; char bufor[128]; /*--------------------------------------... /* Main */ int main (void) { DDRA |= (1<<PA7);...
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...
Problem jest też taki, że na który poziom abstrakcji by się nie wznosił, to np. brak dostępu do zasobu jest brakiem dostępu do zasobu - i tak muszę czekać. Ale tego chyba nikt nie przeskoczy - chyba, że np. zastosujemy więcej kanałów SPI, I2C, itd.... Przykładowo mam bufor w RAM'ie na dane wysyłane do GLCD. Tyle bajtów, żeby wypełniły cały ekran wyświetlacza....
Powiedzmy że karta jest dobrze sprzęgnięta z prockiem i dalej nie potrafię użyć FatFs . Czy ktoś może konkretnie wskazać , gdzie i co trzeba napisać aby z tym w ogóle ruszyć ?? Czy tylko paru "specjalistów" powie :"jakie to proste poczytaj i zrób". Jestem początkujący w temacie i proszę o konkretną pomoc w konkretnej sprawie ponieważ na tym zatrzymała...
Witam Kartę masz podpiętą bezpośrednio do SPI. Zapoznaj się z biblioteką FATFS, która obsługuje system FAT na kartach SD. Musisz dopisać kilka funkcji łączących sprzęt z tą biblioteką [url=http://e-swoi.pl/conspects/implemen... masz przykładowy projekt z którego możesz wziąć sobie...
Posiadam płytkę LITEcompLPC1114, na której piny kontrolera SSP0 są podciągnięte do VDD przez rezystory 10 kOhm http://obrazki.elektroda.pl/3736766400_1... oraz "gołe" wyprowadzenie kontrolera SSP1 http://obrazki.elektroda.pl/3768065100_1... . Próbuje uruchomić odczyt danych z karty MMC, używając modułu http://obrazki.elektroda.pl/3042020300_1...
Cieszę się, że się podoba. Bomba! Da radę wyciągnąć z takich stacji trochę wyższe, 'cieńsze' dźwięki? I zagrać coś z list przebojów :D Super pomysł, pozdrawiam. Bardzo mi się podoba! Czy próbowałeś tego samego ze stacją 5,25? Może poszerzy to zakres generowanych dźwięków. Z wyższymi dźwiękami jest gorzej, przynajmniej na moich stacjach. Nie grają za...
Ale się rozpisałeś, nie mam teraz czasu ani nie za bardzo lubię analizować czyjś kod ale tak na szybko co mi przychodzi do głowy. Zakładając, że wszystkie połączenia dobre, program dobry, jest jeszcze możliwość błędu odczytu na MISO. Podłączasz bezpośrednio 3,3V do 5V. Ma działać ale często właśnie z użyciem kart pamięci nie działa. Jak poszukasz to...
Wstawiam kod obsługi odbioru danych w przerwaniu, gdzie odebrane dane są zapisywane do bufora a po zapełnieniu bufora do zewnętrznej pamięci, w tym przypadku na karte SD, docelowo do pamięci Flash - może komuś się przyda. [syntax=c] #include "LPC17xx.h" #include "lpc17xx_systick.h" #include "lpc17xx_uart.h" #include "lpc17xx_pinsel.h" #include "diskio.h"...
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();...
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...
Sorki że dopiero teraz. Nie miałem internetu. Dodałem sekcję fastrun. I w końcu funkcja się pojawiła: 40000000:e52db004 push{fp} ; (str fp, [sp, #-4]!) 40000004:e28db000 addfp, sp, #0; 0x0 PLLFEED=PLLFEED_FIRST; 40000008:e3a0320e movr3, #-536870912; 0xe0000000 4000000c:e283397f addr3, r3, #2080768; 0x1fc000...
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));...
Petit fatfs odczytuje mi pliki jeśli podam je wielkimi literami, natomiast małymi nie, czy to jest specyfika petit czy może kwestia zapisywania w linuksie za pomocą którego stworzyłem te pliki? A może czegoś nie wiem, coś mi umyka albo mam bład? :) Jeśli chodzi o linuksa, w zależności od opcji mount i distra, mam albo duże lub małe litery. Ale strikte,...
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...
Problematyczne dla mnie jest to, że to biblioteka pisana na czysty C++ :D Mój kod jak na razie ma za zadanie jedynie połączyć się z kartą SD. [syntax=cpp] #include <diskio.h> #include <pff.h> #include <SPI.h> //#define enableSD A0 #define pinSD 53 void setup() { Serial.begin(9600); //pinMode(enableSD,OUTPUT); //digitalWrite(enableSD,1);...
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...
To i tak nie zadziała, bo pgm_read_byte odczytuje bajt, a ty potrzebujesz odczytac całą tablicę. pgm_read_block też nie pomoże - aby czytać z FLASH musiałbys zmienić funkcję f_write.
bo SD każdy użytkownik może sobie wyjąc i odczytać, a chciałem utrudnić taką zabawę :)
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...
I tak i nie - znalazłem inna biblioteke - przykłady zawarte w FatFs są nieprawidłowe. A doszedłem do tego z analizatorem stanow logicznych - każdy z przykładów ktore zawiera w sobie FatFS na AVR nie wysyła tych min 73 cykli przed rozpoczęciem komunikacji z kartą z tąd jedne działają a inne nie okazuje się że moje "działające" karty da się odczytać niezależnie...
Witam, Jak w temacie, mam problem z zapisem danych do pliku. Sprawa wygląda tak, że mogę odczytać dane z pliku utworzonego przy użyciu PC bez problemu i nadpisać do niego dane. Mogę także utworzyć nowy plik przy użyciu modułu FatFs ale nie mogę do niego zapisać żadnych danych, f_write zwraca błąd. Wygląda to tak jakby funkcje zapisu nie mogły "rozszerzyć"...
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...
Po wymianie padniętego HDD przeportowałem bibliotekę FatFS R0.10b, wcześniej używałem gotowca znalezionego w sieci. Kiedy chcę odczytać katalog program ląduję w HardFault_Handler. Sprawdziłem w debugerze funkcja f_readdir wywołuje funkcje get_fileinfo, której to kod powoduje błąd. [syntax=c] #if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 static void...
(at)Goodmoon Jeśli to jest tylko jeden plik, a karta nie ma być nigdzie odczytywana poza urządzeniem, to może FATFS nie jest potrzebny i prościej zapisywać kolejne bloki bezpośrednio na karcie? Można zrobić też tak, że na karcie z FATFS zapisujesz kilka plików o maksymalnej długości, po czym zapisujesz do nich dane. W ten sposób FAT nie jest już ruszany,...
https://obrazki.elektroda.pl/1957939900_... BK7252 to 32-bitowy układ Wi-Fi i Bluetooth Low Energy (LE) zaprojektowany do zastosowań audio i wideo. Można go znaleźć zarówno w produktach Tuya (wideodomofon), jak i innych (kamera szpiegowska A9). Obsługuje do 6 kanałów PWM i obsługuje dźwięk za pomocą 2-kanałowego przetwornika cyfrowo-analogowego...
Faktycznie, pliki się powielały. Powrócę jednak do tego samego tematu, gdyż mam problem z implementacją tej biblioteki. Poskładałem ostatecznie nowy projekt w Eclipsie, wszystko się kompiluje, no ale nie mam powodzenia w odczytaniu pliku. Oto mój plik main: stat=1 dwa disk_status=0 mont=0 open=13 odczytano=[] Efekt wykonywania programu jest...
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.
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...
Znalazłem informacje, że najlepiej w tym celu wykorzystać bibliotekę FatFs, ale nie potrafię wykorzystać jej do napisania programu, który potrafiłby zapisać dowolny tekst na kartę SD/SDHC. To pokaż swój kod. Możesz także zacząć od odczytania karty. Tutaj na końcu znajdziesz przykład do pobrania: http://mikrokontrolery.blogspot.com/2011...
Witam, formatuje karte MMC (32MB) w FATfs : f_mkfs(0,1,512) program formatuje karte inaczej niz windows Windows: Number of FAT entries:62202 Sectors per FAT:243 FAT start sector:2 Root directory start sector:488 Data start sector:520 FATfs na ARM7: Number of FAT entries:62179 Sectors per FAT:255 FAT start sector:1 Root directory start sector:511...
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...
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...
Cześć, Napisałem program, który miał odtwarzać utwór z karty SD o nazwie o.wav . Program poprawie otwiera plik, jednak ze słuchawka nie wydaje dźwięku... Czy mógłby ktoś sprawdzić mój kod czy nie ma tam żadnego błędu ? Myślałem że same wyprowadzenie odczytanych wartości hex z pliku muzycznego i "wypuszczenie" ich na PWM w zupełności wystarczy, ale widocznie...
Mam takie w sumie teoretyczne pytanie jaką drogę wybrać. W oprogramowaniu mam zawarty FatFs oraz obsługę USB Host'a. Mogę zapisywać, odczytywać pliki z popularnych "pendrive'ów" na kartę SD i z powrotem. Posiadając takie możliwości aż prosi się o dopisanie obsługi aktualizacji oprogramowania....tylko którą metodę wybrać. Umieszczenie funkcji obsługi...
petit fatfs odczyt stm32 fatfs odczyt fatfs stm32
układ odcinający prąd odzysk danych nokia odblokować eberspacher
lodówka samsung czujnik temperatury lodówka samsung czujnik temperaqtury
Kod błędu 5Er na wyświetlaczu kotła - co oznacza? Stukanie w dekoderze Orange - przyczyny i rozwiązania