Witam.
Procesor ATmega32.
Skorzystałem z tego artykułu:
http://mikrokontrolery.blogspot.com/2011/03/podlaczenie-karty-pamieci-sd.html
jak i załączonego do niego programu by wziąć na warsztat kartę SD. Gdy podłączam zasilanie do układu (uC ma już załadowany program do pamięci, karta siedzi w slocie) nic się nie dzieje.Po 1-2 resetach uC program się wykonuje i wyrzuca komunikat (sygnalizuje to odpowiednia dioda), że karta nie jest gotowa (chociaż przed włączeniem zasilania siedziała już w slocie) wiec dodałem 1 sekundowe opóżnienie po funkcji pf_mount(&fs); w nadziei ze pomoże.Nie pomogło. Kolejny reset przynosi oczekiwane rezultaty i program się wykonuje tak jak powinien - nie ma w nim pętli więc wykonuje się tylko raz, ale z każdym kolejnym resetem działa poprawnie. Zatem zanim osiągnę spodziewany rezultat muszę wykonać 2-3 resety uC. Nie ma petli sprawdzajacej obecnosc karty wiec zawsze przed wlaczeniem uC karta siedzi w slocie.
Probowalem z uzyciem innej ATmegi32. Zachowanie jest takie samo jak opisane wyzej.
W artykule jest przedstawiony schemat dostosowania napiec za pomoca bufora.Ja uzylem gotowego adaptera dla kart miniSD konwertujacego napiecie.
Zasilanie układu według schematu:
Program ma za zadanie odczytać ciąg 9 cyfr z pliku tekstowego z karty i porównać z ciągiem wpisanym na stale w program. Porównuje dwa klucze i w przypadku zgodnosci zapala odpowiednie diody. Przepraszam za formę, ale jest to tylko program testowy stad dużo delayow i "diagnostycznych" diod. Dodałem dużo komentarzy, wiec powinno byc w miare czytelnie. Dodaje tylko program z main() poniewaz biblioteke do obslugi karty czerpalem z podanego linku i jeśli chodzi o jej obsługe to wszystko działa jak należy.
Procesor ATmega32.
Skorzystałem z tego artykułu:
http://mikrokontrolery.blogspot.com/2011/03/podlaczenie-karty-pamieci-sd.html
jak i załączonego do niego programu by wziąć na warsztat kartę SD. Gdy podłączam zasilanie do układu (uC ma już załadowany program do pamięci, karta siedzi w slocie) nic się nie dzieje.Po 1-2 resetach uC program się wykonuje i wyrzuca komunikat (sygnalizuje to odpowiednia dioda), że karta nie jest gotowa (chociaż przed włączeniem zasilania siedziała już w slocie) wiec dodałem 1 sekundowe opóżnienie po funkcji pf_mount(&fs); w nadziei ze pomoże.Nie pomogło. Kolejny reset przynosi oczekiwane rezultaty i program się wykonuje tak jak powinien - nie ma w nim pętli więc wykonuje się tylko raz, ale z każdym kolejnym resetem działa poprawnie. Zatem zanim osiągnę spodziewany rezultat muszę wykonać 2-3 resety uC. Nie ma petli sprawdzajacej obecnosc karty wiec zawsze przed wlaczeniem uC karta siedzi w slocie.
Probowalem z uzyciem innej ATmegi32. Zachowanie jest takie samo jak opisane wyzej.
W artykule jest przedstawiony schemat dostosowania napiec za pomoca bufora.Ja uzylem gotowego adaptera dla kart miniSD konwertujacego napiecie.
Zasilanie układu według schematu:
Program ma za zadanie odczytać ciąg 9 cyfr z pliku tekstowego z karty i porównać z ciągiem wpisanym na stale w program. Porównuje dwa klucze i w przypadku zgodnosci zapala odpowiednie diody. Przepraszam za formę, ale jest to tylko program testowy stad dużo delayow i "diagnostycznych" diod. Dodałem dużo komentarzy, wiec powinno byc w miare czytelnie. Dodaje tylko program z main() poniewaz biblioteke do obslugi karty czerpalem z podanego linku i jeśli chodzi o jej obsługe to wszystko działa jak należy.
Kod: C / C++