Witam, chciałbym zastosować w urządzeniu data logger (historię pomiarów). Ale chciałbym aby mozna aby dało się tę historię zgrać na pendrive przez USB. Myślę że plik nie będzie większy niż 100kB. Nie miałem wcześniej praktyki z USB. W związku z tym mam kilka wątpliwości. Czy procek musi mieć jakiś system operacyjny do kopiowania na USB? Czy jakiś AVR (z obsługą USB) wystarczy do takiej czynności? Będę wdzięczny za informacje.
System operacyjny to wewnętrzna sprawa Twojego urządzenia, pendrive'a nie obchodzi czy masz system operacyjny. Ma być zapewniona obsługa standardu USB.
A one mogą działać jako host? Z tego co pamiętam to taka ATmega32U4 działała tylko jako device. Popatrz może raczej na STM32, ale tam też nie wszystkie miały hosta.
Prostszym rozwiązaniem jest zgranie na kartę (µ)SD - to zrobisz właściwie z każdego procesora. (Chociaż nie na każdą kartę prosto, bo niektóre µSD wymagają komunikacji po SDIO a nie samym SPI(zależy od producenta), ale jest przykładowy kod STM32. Każda karta SD da się dość banalnie obsłużyć po SPI.)
Nie, musi mieć USB HOST. (Albo SUB-OTG.)
Nie.
AVR32 miewają OTG, STM32 (za jakieś 30pln) miewają OTG - przykładowy kod jak pendrive obsłużyć jest w sieci.
Rozumiem, żeby podłączać pendrive to muszę mieć jakiegoś większego proca obsługującego USB-HOST.
Ale gdybym funkcjonalność zawęził do tego aby podłączać urządzenie przez USB do komputera PC i w ten sposób zgrywać plik to wtedy mógłbym użyć ATmega32U4? Ale jak wtedy odbywało by sie kopiowanie? Jak system widziałby to urządzenie, jako pamięć USB? Czy taki sposób kopiowania uprości sprawę i czy wtedy też muszę się bawić w jakiś system plików?
Bo do tej pory robiłem w ten sposób, że procek po RS-ie wysyłał dane do komputera w ASCII i zapisywałem do pliku w Hyperterminal-u. I w ten sposób miałem skopiowaną historię pomiarów. Ale czasy się zmieniają i chcę użyć USB.
Widziałby tak, jak będziesz chciał. To Ty przecież programujesz ten mikrokontroler, w tym deskryptory oraz obsługę endpointów. Możesz napisać kod, który sprawi, że uC będzie widoczny jako pendrive. Możesz też sobie wymyślić jakiś własny protokół i napisać do niego aplikację. Możesz nawet udawać klawiaturę i wpisywać dane do Notatnika. Opcje są różne, jedne mają więcej sensu a inne mniej, jedne są prostsze w realizacji a inne trudniejsze.
Skoro robisz pendrive to musisz. Tzn. projekt pendrive'a sam w sobie nie musi żadnego systemu plików implementować, wystarczy obsługa komunikacji z pamięcią wydzieloną na potrzeby składowania danych. Jak podłączysz swoje urządzenie do komputera i komputer wykryje mass storage, to on sobie tam stworzy partycje i odpowiedni system plików. Ale jeśli Ty chcesz, żeby Twoje urządzenie miało dostęp do tego systemu plików i potrafiło je modyfikować, to tak, musisz bawić się w system plików. W końcu przecież taka jest Twoja idea komunikacji z PC - system plików.
USB nie zabrania Ci wcale komunikować się w ten sposób. Wcale nie musisz korzystać z gotowych klas urządzeń, np. mass storage. Możesz stworzyć swoją i gadać z nią przez libusb albo WinUSB, ewentualnie własny sterownik. Możesz też po prostu emulować port szeregowy i nadal korzystać z Hyper Terminala. Do wszystkiego są gotowce w necie.
może mass storage to nie jest za dobry pomysł, ze wzgędu na skomplikowanie, może lepiej jakiegoś hida... ludzie polecają projekt LUFA... fajnie by było jakbyś napisał co Ci z tego wyszło...
Akurat niektóre AVRy mają OTG. Do tego LUFA ma przykład hosta USB z obsługą mass storage. Trzeba by jeszcze dołożyć obsługę systemu plików (FATFS?). Jest trochę roboty, ale powinno dać się zrobić nawet na AVRze.
To też racja. Aczkolwiek w tym przypadku mówimy o "usb dla mikrokontrolerów", o czym innym miałaby być książka niż nauka-przez-przykłady? Dokumentacja ogólnie dostępna, wystarczy przeczytać, zrozumieć, zastosować. Dla Identyfikatora chyba jedyne warte uwagi książki to właśnie tłumaczenia/przEkłady datasheetów czy innych techsheetów, tylko nasuwa się pytanie : PO CO?
Dnia Wed, 1 May 2013 22:03:05 +0200, Grzegorz Niemirowski napisał(a):
W przykladach nic. Problem w tym, gdy do nauki sa przewidziane same przyklady, i to banalne. A lepszego opisu nie ma, albo jest tak lakoniczny ze nie ma o co zaczepic ..
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.