Kontroler pamięci USB z MCU

Szukam układu który spełniał by poniższe założenia:

-ma port USB (prędkość dowolna), od strony portu USB jest widziany dla innego urządzenia jako standardowa pamięć masowa.

- zawiera mikrokontroler, który może w łatwy sposób pobierać dane z tej samej pamięci, która dla USB jest pamięcią masową.

- wielkość pamięci "współdzielonej" między USB a MCU to pojedyncze kB (więcej oczywiście nie zaszkodzi).

- co do części MCU, moc obliczeniowa bez znaczenia, może być 8-bitowiec, w projekcie wystarczy kilka linii I/O. Natomiast bardzo pożądany jest darmowy/tani kompilator, biblioteki do obsługi USB i typowych systemów plików (FAT). Mile widziana też niska cena w ilościach hurtowych i niekłopotliwa w montażu obudowa. Podejrzewam, że jakiś gotowiec spełniający te wymagania jest dostępny na rynku, polecilibyście coś?

pozdrawiam

Reply to
J.D.
Loading thread data ...

Czy te wspolne 10kB to wszystko czy tylko tyle ma widzieć mcu a po włożeniu do pc w trybie pendrive ma być te 10kB+ jeszcze trochę? O ile dobrze kojarzę w pakiecie softu Microchipa jest taki gotowiec do zrealizowania na seri 18F*50 lub pic32. Troche hermetyczne rozwiązanie, bo trzeba trochę gimnastykować się z fatem (generowanie jednego pliku "wymiany" jako wspólne dane). Chyba prościej zrobić to na mcu z usb host+fatfs, do którego po prostu wtykasz pendrive, na którym mcu tworzy pliki z potrzebnymi danymi.

Reply to
Marek

Dobrze pamiętałem, przykład się nazywa Device - Mass Storage - Internal Flash. Zamienia fragment pamięci flash mcu na pendrive widoczny dla pc. Z tym, ze to połowa sukcesu, bo trzeba do tego kodu dodać funkcjonalność tworzenia przez mcu tego 10kB pliku, który będzie widoczny po włożeniu urządzenia do pc.

Reply to
Marek

tak tylko strzelam

formatting link
;o)))))))))))))

Reply to
identyfikator: 20040501

Am 06.03.2015 um 10:31 schrieb J.D.:

Nie próbowałem jeszcze generowania plików, ale płytka STM32/discovery z STM32F103 na pokładzie (akurat bawię się tym) prezentuje się hostowi jako mass storage, na którym są 3 pliki, linki do stron webowych st. Prawdopodobnie da się od strony procka te pliki odpowiednio pisać. Gotowiec kosztuje chyba coś koło 8EUR, darmowy kompilator i debugger też jest. Osobiście używam Keil, bo mam mało kodu i free version wystarcza w zupełności.

Waldek

Reply to
Waldemar

Aczkolwiek nie jest to takie trywialne, bo trzeba dodać obsługę fs. A skoro i tak ma być obsługa fs to już chyba jednak wygodniej odwrócić funkcjonalność i niech urządzenie pisze na pendrive zamiast nim być. Bardziej elastyczne. Ale doceniam minimalistyczność rozwiązania jakie chce uzyskać autor wątku.

Reply to
Marek

W dniu 06.03.2015 o 12:22, Waldemar pisze:

Zamiast stm32f103 można wziąć coś z rodziny STM32F0x2. Kompilator keila na tą rodzinę jest dostępny bez ograniczeń na rozmiar kodu:

formatting link
uC F0x2 nie potrzebują zewnętrznego kwarcu, żeby dogadać się po USB. Docelowo program można by spokojnie upchnąć w STM32F042, który jest dostępny w obudowie TSSOP20:

formatting link

Reply to
Zbych

W dniu 2015-03-06 o 11:29, Marek pisze:

Tyle pamięci wystarczy, w bardzo dużym uproszczeniu plik widoczny od strony PC ma być "danymi" które będą dalej wykorzystywane przez mcu. Nie ma żadnych przeciwwskazań aby pozostały obszar pamięci w trybie pendrive był większy oraz widoczny lub nie dla mcu.

Biorę to rozwiązanie pod uwagę, ale w drugim rzędzie. Całe urządzenie straciłoby wtedy dużo na funkcjonalności.

pozdrawiam

Reply to
J.D.

Ale żeś mnie zaraził tym pomysłem, czuję weekend z głowy ;-) , właśnie zacząłem budować taki prototyp, soft już prawie gotowy...

Reply to
Marek

A jak często byłby zapis? Czy zapis do tego pliku robi tylko pc a mcu ma tylko go czytać czy też ma coś zapisywać na tym fsie? Szkoda trochę wewn. flasha na takie "oranie"... Przetestowałem prototyp. 32kB obraz fsa fat12 (mniejszego nie umie zrobić mkdosfs) z jednym plikiem w / upchnietym w 8bitowym picku

25j60. Picek "exportuje" ten obraz jako massstorage usb., na razie read only. Wywaliłem micrrochopowe mdd i zastąpiłem prostrzą i mniejszą implementacją z użyciem petitfat. Petitfat ma być używany przez mcu jako warstwa dostępu do obrazu fat, gdy nie jest podłączony do pc. Pc ładnie go widzi, Kopiowanie pliku o wielkości 32kb (pełen fs) do pc jest poniżej sekundy. Zapis oczywiście będzie wolniejszy i deczko skomplikowany, bo ten flash ma 1kB erase block i przy zapisie 512 bajtiwego sektora trzeba będzie w locie całą 1kB stronę zbuforować w ram i zapisywać ponownie.
Reply to
Marek

(pomijam to co wiadome) pochwalisz się z czego korzystasz?

Reply to
identyfikator: 20040501

System Windows buforuje pliki w pamięci. Jeśli MCU coś zmieni to konieczne będzie odłączenie na chwilę USB. Tylko to zmusi system do ponownego wczytania zmodyfikowanego pliku.

Paweł

Reply to
Pawel2420

A co mnie tam Windows obchodzi ;). A tak na poważnie to takie zabawy z dostępem rw "z dwóch stron" do fat bez locków na krytycznych sekcjach ładnie by go przeorało, myślę że inicjator wątku zdaje sobie z tego sprawę, że tak nie należy zrobić. Prototyp ładnie działa, co widać za filmiku:

formatting link

Bardzo fajne zadanko na weekend :-)

Reply to
Marek

mam pytanie, a może nawet zagadnenie: jak tam, strzeliłeś z d... ?

roman i zemła muszą być z Ciebie dumni... stu procentowy po-europejczyk...

Reply to
Ministerstwo Propagandy

W dniu 2015-03-09 o 00:22, Marek pisze:

Zapis rw byłby tylko w jedną stronę (pc <-> flash), dla mcu wyłącznie ro, więc to jest do ogarnięcia. Nawet na czas pobierania danych z flasha przez mcu wskazane było by zablokowanie transmisji po usb, po pobraniu danych urządzenie i tak ma restartować z nową konfiguracją. W zastosowaniu o którym myślałem większym problemem byłby limit 10tys. cykli zapisów. Niby w 99% przypadków wystarczający, ale zawsze może się trafić ten 1% upierdliwych użytkowników którzy to przekroczą.

pozdrawiam

Reply to
J.D.

W dniu sobota, 7 marca 2015 11:41:35 UTC+1 użytkownik Ministerstwo Propagandy napisał:

Tobie proponuję UL1111. Jak już to zrozumiesz, to uA747. Jak już to opanujesz, to 7400.

Reply to
stchebel

taaaaaaaaaaaa... a później europa...

Reply to
identyfikator: 20040501

jak tam "chebel" starczy ci kochones, żeby zademonstrować swoje jedynie słuszne "podejścia" a może raczej "podjazdy", na mojej super stronie www (adresy znasz)?

Reply to
identyfikator: 20040501

Jeśli flash mcu ma małą gwarantowaną liczbę zapisów można użyć serial flash np. po spi, używam sst25016b, który ma ga

Reply to
Marek

Jeśli flash mcu ma małą gwarantowaną liczbę zapisów można użyć serial flash np. po spi, używam sst25016b, który ma gwarantowaną liczbę

100tys. zapisów.
Reply to
Marek

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.