USB identifikace

Tomáš Hamouz hamouz na alsoft.cz
Úterý Listopad 20 12:32:23 CET 2012


V podstatě mi potvrzujete moji domněnku, že nejlepší bude považovat to
za dvě zcela samostatná zařízení. V podstatě i jsou, běží tam pokaždé
něco úplně jiného (jednou bootloader z malé flash, podruhé vlastní
zařízení z velké flash), nijak funkčně nesouvisí (kromě toho že
bootloader nahrává hlavní FW, ale pro něj to jsou data).

Při té příležitosti mě napadl ještě jeden dotaz.
Obě zařízení mají funkčně totožný bootloader, implementují standardní
CDC.
Je možné v takovém případě použít stejné PID? Mám na mysli spíš jak je
to zvykem, technicky by to problém nebyl a měly by i stejnou
instalaci ovladače.

Tomáš


MM> Teď už je informací dostatek. 4 EP je na composite CDC+MSC málo i když
MM> intr ep v CDC celkem k ničemu není. Ale nevím, jak by se choval ovladač,
MM> pokud byste ho vynechal (příp. ho ve firmware neobsluhoval). Takže tudy
MM> asi ne.
MM> Dvojí enumeraci považuji za dost divokou v tom, že zatímco na webu
MM> najdete funkční příklady na composite device, tu dvojí enumeraci budete
MM> muset ve firmware vyřešit sám, s tím vám nikdo asi moc nepomůže, není to
MM> standard. A budete muset zasahovat do té nejnižší vrstvy firmware, která
MM> je dost složitá a přitom naprosto zásadní. Já osobně bych si to dobře
MM> rozmyslel. V tomto případě bych použil jiný PID pro každou enumeraci -
MM> prostě pokaždé by to bylo úplně jiné zařízení.

MM> Co se týče logického vypnutí rozhraní v composite, myslím, že by stačilo
MM> pro CDC zahazovat data přicházející do device z PC, MSC by stačilo aby
MM> ohlásilo nulovou kapacitu média nebo jen zapnout read-only flag. Ale
MM> zase musíte řešit zprávy media changed při opětném zapnutí. V každém
MM> případě by obě rozhraní systém vždy viděl a měl by pro ně mít ovladače.

MM> Já jsem si s něčím podobným hrál loni, mám aplikováno kompozitní
MM> zařízení CDC+MSC, s tím, že je na SPI uP připojena SDHC karta. Obě
MM> rozhraní jsou vždy aktivní, ničemu to nevadí. Jde z toho normálně
MM> bootnout systém, na kartě mám SLAX. Je to ale dost pomalé. CDC je pak
MM> použito pro ostatní komunikaci s uP.

MM> Mrazík

MM> Tomáš Hamouz píše v Út 20. 11. 2012 v 08:59 +0100:
>> MM> Neporadí protože moc nerozumí zadání. To jako že po připojení proběhne
>> MM> enumerace jako CDC a po nějakém timeoutu se odpojí a proběhne nová
>> MM> enumerace jako MSC ? To zní dost divoce, i když i to je možné.
>> 
>> Tak jsem to myslel.
>> Není na tom snad nic divokého, pokud se použije pokaždé jiné PID.
>> 
>> MM> Asi by bylo lepší použít composite device, které má implementovány obě
>> MM> třídy. K tomu máme ale málo informací - musíte mít v procesoru dostatek
>> MM> endpointů nehledě na tom že nevíme, zda vám takové řešení vyhovuje.
>> 
>> Já ten problém potřebuju vyřešit dokonce dvakrát.
>> U jednoho MCU je endpointů dost (STR91, 8 EP), u druhého málo
>> (AT91SAM7, 4 EP), čímž se to komplikuje.
>> 
>> Pokud bych použil composite device, dají se jednotlivá zařízení
>> logicky vypnout? Tzn. přihlásí se composite device se dvěma
>> zařízeníma, ale jedno z nich je vypnuté a pak dojde k nové enumeraci,
>> ale aktivní bude to druhé?
>> 
>> Vůbec netvrdím že chci něco složitého, v podstatě mi stačí i odpověď
>> "je to zbytečná komplikace, lepší je použít separátní PID".
>> 
>> Tomáš






Další informace o konferenci Hw-list