Bygga programerbart usb-minne

Planering och tankar kring eventuella framtida projekt.
Nerre
Inlägg: 27222
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bygga programerbart usb-minne

Inlägg av Nerre »

Som jag tolkat det så ska det ligga ett PC-program på stickan. Det programmet ska troligen (eftersom det ligger på en USB-sticka) kunna köras på vilken dator som helst = det ska inte krävas några drivrutiner för att kunna använda stickan.

Programmet ska i sin tur kunna tända lysdioderna på stickan. Visst kan det lösas med FT232, men då måste stickan innehålla en USB-hub, minnet och FT232, och dessutom krävs att drivrutin installeras på datorn (vilket gör det hela svårare).


Därför var min tanke att sticka innehåller en uC med minne, som emulerar en "mass storage device". Jag vet inte hur svårt det är. Troligen blir det en långsam enhet, men det kanske inte gör så mycket. Sen ska den uCn då alltså kunna läsa filsystemet på minnet och leta efter en viss fil (som PC-programmet skapar) och baserat på innehållet i den tända lysdioderna.

Den lösningen är såklart svårare, jag vet inte hur lätt det är att emulera en "mass storage device", om det ens går (men det borde väl inte vara omöjligt). Men sen ska ju stickan själv kunna läsa filsystemet också...

Ett alternativ är kanske att stickan istället emulerar ett nätverkskort, och att man på uCn kör linux som delar ut lagringsutrymme med samba...? Då blir det visserligen en nätverksenhet istället, det är inte lika smidigt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Bygga programerbart usb-minne

Inlägg av sodjan »

> Som jag tolkat det så ska det ligga ett PC-program på stickan.

Vi har olika tolkningar.

> jag vet inte hur lätt det är att emulera en "mass storage device", om det ens går

Tja, det är ju exakt det som varende USB-minne gör...
Användarvisningsbild
AndLi
Inlägg: 18273
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Bygga programerbart usb-minne

Inlägg av AndLi »

Nerre: Någon annan (tm) har såklart redan gjort en Mass Storage Device i en µC.
Tar man den Atmega16u4 jag hade med i mitt exempel tidigare i tråden så kan man tex använda LUFA (http://www.fourwalledcubicle.com/LUFA.php) den har exempel för en kombinerad enhet för MassStorageDevice och en Virtual Serial Port.

Tänk om all tid det har dividerats i denna tråd istället blivit kod och schema, då hade produkten snart varit klar :)
Nerre
Inlägg: 27222
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bygga programerbart usb-minne

Inlägg av Nerre »

sodjan skrev: Tja, det är ju exakt det som varende USB-minne gör...
Nja, de emulerar ju inte, utan de ÄR:)

Jag menade ju att göra det med en uC.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Bygga programerbart usb-minne

Inlägg av sodjan »

Ingenting bara ÄR någonting bara så där utanvidare.
Det är ju självklart att alla USB-minnen innehåller
något programmerbart i någon form. Vad som är
"emulering" eller inte kan sedan diskuteras men
det är mindre intressant i detta fall. Om en AVR/PIC
har ett program som implementerar MSD protokollet
över USB så *är* den ett MSD.
xddx
Inlägg: 12
Blev medlem: 25 augusti 2011, 13:57:15

Re: Bygga programerbart usb-minne

Inlägg av xddx »

Hejsan,

Jag har tänkt ha ett spel på minnet. Och spelet ska man kunna köra direkt efter att man har pluggat in UBS-minnet i datorn. Under tiden man spelar då ska spelet skicka kommandon till kretsen för att tända en viss lysdiod.

Helst vill man inte att det ska finnas extra drivrutiner som man måste installera för att göra detta möjligt men om det inte funkar på annat vis är det bara något man får acceptera.

Mvh
xddx
Användarvisningsbild
AndLi
Inlägg: 18273
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Bygga programerbart usb-minne

Inlägg av AndLi »

Då är det sannolikt bättre att använda en HID än en Virtual Com Port för att styra lysdioderna. Kanske lite mekigare att interfacea i din applikation, men tex funcube dongle använder HID för att sätta parametrar i enheten
Skriv svar