Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 mar 2026, o 04:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 30 lis 2015, o 22:28 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Witam.

Do zapisu na kartę danych użyłem biblioteki FatFS. Problem polega na tym, że funkcja się zacina przy wywołaniu deselect(). Kod wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Poprzez debugowanie za pomocą diody LED odtworzyłem ścieżkę po której następuje zawieszenie; wewnątrz f_open:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Potem wewnątrz find_volume:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Następnie wewnątrz check_fs:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wewnątrz move_window:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Następnie wewnątrz disk_read:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Aż w końcu w send_cmd:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zawieszenia zachodzi podczas wywołania deselect(). A dokładnie na loop_until_bit_is_set, z czego wynika, że bit SPIF nie ustawia się przy próbie otwarcia pliku. Wcześniej robiłem to samo za pomocą PetitFS i działało bez zarzutu. Nie wiem jak to rozwiązać. Czy ktoś wie co z tym zrobić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 12:35 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Rozwiązałem problem. Nie należy używać w moim przypadku disk_initialize(0) oraz f_mount (NULL, "", 0) przy deinicjalizacji. Teraz drugi problem. Po zapisie do pliku .txt na karcie tworzą się jakieś dziwne pliki (co widać na screenie) o niebotycznych rozmiarach (np. 3GB), lecz mimo tego rozmiaru widzianego w eksploratorze rozmiar zajmowany na dysku to rozmiar pliku .txt, który sam stworzyłem. Jak można się pozbyć problemu tworzenia tychże plików?
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 14:58 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Coś Ci sieje po FAT'cie.
Nie miałem takich problemów.

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 15:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Też nie miałem takich krzaków. Coś masz nie tak podłączone lub w sofcie.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 16:35 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Czy to może mieć związek z:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ponieważ nie posiadam możliwości podłączenia tychże wyprowadzeń, ustawiłem to na sztywno. Czy to ma zły wpływ?

Napomknę też, że funkcja f_read działa bez zarzutów. Niestety po wywołaniu f_write usuwany jest plik, który utworzyłem w celu odczytania danych testowych i powstają krzaki jak na powyższym zrzucie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 21:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

a używasz przerobionych bibliotek z Mirka książki czy napisanych przez autora ??

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 21:58 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Używam bibliotek autora, przerobionych zgodnie z BB. Niestety, aktualnie nie mam przy sobie płyty. Jutro spróbuję odpalić kod z płyty.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

JungleMan napisał(a):
Używam bibliotek autora, przerobionych zgodnie z BB. Niestety, aktualnie nie mam przy sobie płyty. Jutro spróbuję odpalić kod z płyty.


odpal kod z płyty tam wszystko działa ... jedyne z czym możesz mieć problem (sam to przerabiałem)
wykrywanie karty i to nie problem bibliotek a karty ... niektóre karty trzeba zakleić taśmą papierową na wcięciu, może to wynikać z jakości użytego gniazda ...
pozdrawiam

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 12:00 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Nie wiem, co jest grane. Nie działa, a użyłem kodu z płyty. Main:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W Putty:
Kod:
f_mount init
f_open
rc=13
 FR_NO_FILE_SYSTEM

Command:f_puts


Wynika z tego, że f_mount zwraca FR_OK, f_open tworzy plik (na karcie SD jest plik "BETON") i też zwraca FR_OK, a f_puts zwraca FR_NO_FILESYSTEM. Próbowałem formatować kartę i po tym problem ten sam jak powyżej. Używam karty GOODRAM 8GB. Czy to problem z kartą?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 12:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

JungleMan napisał(a):
Używam karty GOODRAM 8GB. Czy to problem z kartą?


Najprawdopodobniej tak jest ...
weź taśmę papierową lub bezbarwną i zaklej te wcięcie na karcie ja tak musiałem zrobić by działało to prawidłowo

dodatkowo na stronie atnel jest errata do kodów i z tego co pamiętam jest tam poprawka do FatFS

Pozdrawiam

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 13:14 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Zastosowałem się do erraty oraz zakleiłem taśmą bezbarwną wcięcie i nadal ten sam błąd... Chyba wybiorę się po nową kartę...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 13:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

A plik tworzysz automatycznie czy za pomocą pogramu na PC ?

Z tego co pamiętam trzeba wcześniej zadeklarować jego maksymalną wielkość ale mogę się mylić bo tylko coś mi świta.

Problem w tym że karty mniejszej od 4 czy 8 GB już chyba nie dostaniesz, u mnie chodziło z kartą 8 GB więc sądzę że nie powinno być problemu.

Rozumie że działasz na ATB ? czy sam poskładałeś sobie moduł karty ?

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 13:59 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Plik tworzę automatycznie z flagą FA_CREATE_ALWAYS (w moim przedostatnim poście jest kod main'a). Nie działam z ATB, wszystko sam poskładałem. Jedynie kupiłem sobie gniazdo do karty SD za grosze z wyprowadzeniami na stykówkę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 14:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

ok to pokaż te gniazdo i to co tam poskładałeś na stykówce.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 14:41 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Czytnik


ObrazekObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 14:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Brak prawidłowej filtracji procesora ... oraz nie widzę 10k do RST
Dodatkowo te długie przewody od SPI mogą również broić.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 15:04 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Na pierwszej fotce widać kondensator (100nF) pomiędzy VCC a GND; dodałem też rezystor 10k na reset, skróciłem znacząco przewody i nadal to samo.

Sprawdziłem inną kartę SD i okazuje się, że dla innej karty też ten sam problem.

Nawet po wywołaniu f_mkfs, które pomyślnie przechodzi nadal uzyskuję błąd FR_NO_FILE_SYSTEM przy f_puts.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2015, o 09:19 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 39
Pomógł: 0

Problem poniekąd rozwiązany. Używam teraz Atmegi 1284P. Problem polega na tym, że gdy odpalam kod bez jakichkolwiek funkcji związanej z UART'em wszystko działa bez zarzutu, zaś gdy używam UART'a to funkcja f_open zwraca FR_DISK_ERR. Czy to może być związane z funkcjami UART'a?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO