Goto page 1, 2 Next
J.D.
Guest
Fri Mar 06, 2015 10:31 am
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
Marek
Guest
Fri Mar 06, 2015 11:29 am
On Fri, 06 Mar 2015 10:31:01 +0100, "J.D." <fake.address@costam.ua>
wrote:
Quote:
samej pamięci, która dla USB jest pamięcią masową.
- wielkość pamięci "współdzielonej" między USB a MCU to pojedyncze
kB
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.
--
Marek
Marek
Guest
Fri Mar 06, 2015 12:04 pm
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.
--
Marek
identyfikator: 20040501
Guest
Fri Mar 06, 2015 12:08 pm
tak tylko strzelam
http://usbdp.org/forum/viewforum.php?f=268
;o)))))))))))))
Waldemar
Guest
Fri Mar 06, 2015 12:22 pm
Am 06.03.2015 um 10:31 schrieb J.D.:
Quote:
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ś?
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
Marek
Guest
Fri Mar 06, 2015 12:37 pm
On Fri, 06 Mar 2015 12:22:24 +0100, Waldemar
<waldemar@zedat.fu-berlin.de> wrote:
Quote:
Prawdopodobnie da się od strony procka te pliki odpowiednio pisać.
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.
--
Marek
Zbych
Guest
Fri Mar 06, 2015 1:08 pm
W dniu 06.03.2015 o 12:22, Waldemar pisze:
Quote:
Am 06.03.2015 um 10:31 schrieb J.D.:
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ś?
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.
Zamiast stm32f103 można wziąć coś z rodziny STM32F0x2. Kompilator keila
na tą rodzinę jest dostępny bez ograniczeń na rozmiar kodu:
http://www2.keil.com/stmicroelectronics-stm32/mdk
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:
http://kamami.pl/stm32f0/234781-stm32f042f6p6.html
J.D.
Guest
Fri Mar 06, 2015 1:45 pm
W dniu 2015-03-06 o 11:29, Marek pisze:
Quote:
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ę?
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.
Quote:
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.
Biorę to rozwiązanie pod uwagę, ale w drugim rzędzie. Całe urządzenie
straciłoby wtedy dużo na funkcjonalności.
pozdrawiam
Marek
Guest
Fri Mar 06, 2015 3:29 pm
On Fri, 06 Mar 2015 13:45:21 +0100, "J.D." <fake.address@costam.ua>
wrote:
Quote:
Biorę to rozwiązanie pod uwagę, ale w drugim rzędzie. Całe
urządzenie
straciłoby wtedy dużo na funkcjonalności.
Ale żeś mnie zaraził tym pomysłem, czuję weekend z głowy

,
właśnie zacząłem budować taki prototyp, soft już prawie gotowy...
--
Marek
Marek
Guest
Sat Mar 07, 2015 2:08 am
On Fri, 06 Mar 2015 13:45:21 +0100, "J.D." <fake.address@costam.ua>
wrote:
Quote:
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.
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.
--
Marek
identyfikator: 20040501
Guest
Sat Mar 07, 2015 11:41 am
(pomijam to co wiadome)
pochwalisz się z czego korzystasz?
Pawel2420
Guest
Sun Mar 08, 2015 7:36 pm
Quote:
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?
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ł
Marek
Guest
Mon Mar 09, 2015 12:22 am
On Sun, 08 Mar 2015 19:36:19 +0100, Pawel2420 <zly_adres@nic.pl>
wrote:
Quote:
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.
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:
https://www.youtube.com/watch?v=OJ75sQeGdPU
Bardzo fajne zadanko na weekend :-)
--
Marek
Ministerstwo Propagandy
Guest
Wed Mar 11, 2015 8:44 pm
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...
J.D.
Guest
Fri Mar 13, 2015 6:46 pm
W dniu 2015-03-09 o 00:22, Marek pisze:
Quote:
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ć.
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
Goto page 1, 2 Next