Sziasztok!
Tldr: latott mar valaki "jaj, miert nem mukodik ez az USB-s vacak?" temaban "rejected 1 configuration due to insufficient available bus power" jellegu uzenetet? Ha igen, hogysmint es/vagy mi volt a megoldas?
Kicsit bovebben: eletunk elso USB hub-jat probaljuk osszerakni epp, egy TUSB2046 alapu rendszert. Ugy kezd osszeallni a dolog, upstream-ban minden megvan, minden lefelejettett felhuzo-lehuzo-athuzo ellenallas megvan, de valami megsem klappol. Konkretan bus powered uzemben hasznalnank epp, es nehany downstream gadget szepen is megy, nehany masik viszont ilyen uzeneteket dobal:
[2425368.523336] usb 1-3.1.1: new full-speed USB device number 83 using xhci_hcd
[2425368.623659] usb 1-3.1.1: not running at top speed; connect to a high speed hub
[2425368.624563] usb 1-3.1.1: New USB device found, idVendor=0403, idProduct=6011, bcdDevice= 8.00
[2425368.624578] usb 1-3.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[2425368.624586] usb 1-3.1.1: Product: Quad RS232-HS
[2425368.624591] usb 1-3.1.1: Manufacturer: FTDI
[2425368.624829] usb 1-3.1.1: rejected 1 configuration due to insufficient available bus power
[2425368.624837] usb 1-3.1.1: no configuration chosen from 1 choiceKonkretan ez az FT4232 csipp is ezt mondatja, illetve par mas rokon joszag is (FTDI). Nehany mas dolog (random pendrive, SDR) meg teljesen jol megy. Ha ki van iktatva a hub es a DP/DM vonalakat direkte osszekotom akkor az FTDI eszkozok is jol feljonnek. Szoval biztos a hub korul lesz a gond.
Latott mar valaki effele uzenetet valos/gyari korulmenyek kozott? Ezt mi valt(hat)ja ki akkor ha gyari (tehat papiron jo) hub-ot hasznalunk? A VID/PID kiolvasasa es az enumeration lemegy, de az endpointok mar nem jelennek meg ezen "rejected 1 configuration due to insufficient available bus power" utan mar, es itt elhal a dolog...
Picit zavaro ez most mert vannak embedded downstream eszkozok is, de ha nem embedded hanem kulso eszkozkent csatlakoztatok valamit akkor is elojon. Tehat nem valoszinu hogy a power distributorral (/enable, /overcurrent) van a gond. De ha tudnam hogy valos esetben, gyari joszagoknal mikor johet ez elo, akkor lehet kozelebb visz itt a mostani hw hiba megfejtesehez. Elso korben most bus powered konfigban van a kutyu, sajna egy masik tervezesi hiba miatt self poweredet most nem tudtam hirtelen kanyaritani de az lesz a kovetkezo. Szoval a hub azt hiszi (es jol hiszi) hogy a buszrol kapja a kraft.
Thx, A.
- 407 megtekintés
Hozzászólások
Értelmeset nem fogok írni, de van valami olyasmi, hogy a D+, D- vezetékek hosszkülönbsége nem lehet 1.27 mm-nél (50 mil) nagyobb. Meg úgy emlékszem, úgy terveztem a négyrétegű PCB-t, hogy a másik 3 rétegen a D+, D- mentén nem volt rézfólia, tehát GND sem. Jó, valami tápot keresztben el kellett vinni alatta, de ennyi. Meg kell nézni, hogy a villámhárító diódák alkalmasak-e USB-HS-re, vagy nagyobb kapacitásuk miatt csak USB-FS lehet. Meg szerintem közösmódusú jelet megnyomorító induktivitást is tettem az útjába.
Kollégám véleménye szerint az USB rajzolása az már inkább művészet, mintsem szigorúan vett mérnöki munka. :) Nézd meg az ajánlásokat, mert nekem az jött ki, hogy elég közel ment két vékony - talán 8 miles - track egymáshoz, hogy kijöjjön a 90 Ω hullámimpedancia.
Ha jót akarsz magadnak, maradj a jó öreg RS232-nél, vagy RS485-nél, maximum 19.2 kbaud-dal. :) Jó, nem mondtam komolyan, ahova USB kell, oda az kell.
tr '[:lower:]' '[:upper:]' <<<locsemegeLOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Koszi :) Nem, ez halistennek csak USB1(.1), de azert szerintem az 50miles kenyszerben itt is benne vagyok. Amikor athurkoltam a hub-ot akkor csak ket drotdarab logott a nyak felett, az is teljesen okes volt.
Ha jót akarsz magadnak, maradj a jó öreg RS232-nél, vagy RS485-nél,
Jo lenne, de a laptopok/gepek oldalan nem RS232, RS485, CAN vagy I2C van kivezetve hanem USB... :/ Ez van...
maximum 19.2 kbaud-dal. :) Jó, nem mondtam komolyan, ahova USB kell, oda az kell.
Pedig milyen szep kihivas egy 10-16MHz-s MCU-bol csomagvesztes neklul venni a 921.6 kilobaudot UART-on :)
- A hozzászóláshoz be kell jelentkezni
Régebben voltak spéci USB-s kábelek, amiknek volt két A-s feje (tippre csak az egyiken ment adat a másik meg a plusz kakaó), meg egy microUSB-s vége, hogy elég delej menjen át. Lehet, nem sok haszna van, amit írtam, csak ez jutott eszembe a témáról.
- A hozzászóláshoz be kell jelentkezni
Uh, az A-A kabelektol mindig is a hideg razott... lehet hogy nem veletlenul :)
- A hozzászóláshoz be kell jelentkezni
Na igen, gyári gányolás volt, de még az Asus külső Blu-Ray írójához is olyat adtak (amivel amúgy sikerült megszabadulnom egy kisfőnöktől :D, de az már egy másik sztori)
- A hozzászóláshoz be kell jelentkezni
Közben lehet megvan a hiba... vagyis ezaz hogy ugy nez ki miszerint a nyitobeli viselkedes a jo/normalis es a gyari (tehat papiron jo) a rossz. Avagy mindenki szarul implementalja a sztenderedeket. Meg kicsit nyomozok de ha teljesen osszeall a kep akkor megirom a tapasztalat/konkluziokat...
- A hozzászóláshoz be kell jelentkezni
USB-FS az nem olyan kényes, az nagyjából átmegy bármin.
tr '[:lower:]' '[:upper:]' <<<locsemegeLOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ez egy saját USB HUB TUSB2048-al? Overcurrent lábak be vannak kötve?
Az FTDI configdescriptorában vajon mi van a maxpowernek?
Nekem nem világos, honnan veszi a Linux, hogy mennyi a felhasználható teljesítmény, azt a HUB sem tudja, hogy mekkora tápegység áll rendelkezésre. Azt feltételezem, ha a HUB maga buspowered, akkor a Linux azt hiszi, hogy csak 500mA van a downstream portoknak összesen.
Power source indicator. BUSPWR is an active-high input that indicates whether the downstream
ports source their power from the USB cable or a local power supply. For the bus-power mode,
this terminal must be pulled to 3.3 V, and for the self-powered mode, this terminal must be pulled
low. Input must not change dynamically during operation.
Megpróbálám ezt GND-re húzni, ha van külső táp a VBUS-nak. Ha nincs, akkor szerintem nincs itt semmi hiba, valóban elfogy a keret.
Szerk.: megnéztem az itthoni USB hubokat, mind self-powerednek mondja magát, akkor is, ha még csak lehetőség sincs külső táp csatlakoztatására :)
- A hozzászóláshoz be kell jelentkezni
Ez egy saját USB HUB TUSB2048-al? Overcurrent lábak be vannak kötve?
Igen, marmint TUSB2046-tal, de igen. Igen, persze.
Az FTDI configdescriptorában vajon mi van a maxpowernek?
Olyba tunik, hogy az alapertelmezett ertek ennel a csippnel (eeprom nelkul es/vagy konfiguralatlan eeprom mellett) az 500mA.
Nekem nem világos, honnan veszi a Linux, hogy mennyi a felhasználható teljesítmény, azt a HUB sem tudja, hogy mekkora tápegység áll rendelkezésre. Azt feltételezem, ha a HUB maga buspowered, akkor a Linux azt hiszi, hogy csak 500mA van a downstream portoknak összesen.
A hub maga nem tudja, ilyen informaciot nem kap a kulvilagtol. Csak ez az egybites info all rendelkezesre hogy "bus powered" vagy "self powered". Es itt van a kutya elasva, mert a doksi is ezt mondja: Per the USB specification, in the bus-powered mode, each downstream port can provide a maximum of 100 mA of current, and in the self-powered mode, each downstream port can provide a maximum of 500 mA of current. Azaz ugy ertelmezem hogy itt akad el a dolog es emiatt/lenyegeben minden jol mukodik a nyitoban is leirt esetben: a hub bus powerednek hiszi magat, igy csak 100mA-t akarna leadni downstream portonkent. Az enumeration utan az FTDI meg kozli hogy marpedig o 500mA-t ker, igy akkor a hub azt mondja hogy szevasz es nem folytatja a folyamatot (endpointok, stb). Szoval ha az egesz kutyu az bus powered lenne csak, akkor ez patthelyzet lenne mert amig nem jon fel az FTDI csipp addig az 500mA-t sem tudnam atirni az eeprom-ba masra :)
Es hat igen, ugy nez ki hogy gyakorlatilag minden gyari vacak leszarja ezt az egeszet. Valodi dzsunka minoseg mindenhol, szabvanyok/sztenderdek leszarasa. Es fun fact, hogy egy korabbi temaban felmerult problemakort (USB downstream portok kapcsolasa) is tudja/megoldja ez a TUSB2046 mindenfele keres nelkul. Csak ugy siman teszi a dolgat, az uhubctl-lel szepen kapcsolgathatoak a portok ahogy kell. Es akkor keress egy olyan gyarto botban is megvasarolhato hub-jat ami tudja a sztenderdeket (azaz nem csak azt haluzza magarol mint egy jo ellyally hogy tud per-port power switchinget hanem tenyleg is tudja). Anno talaltam ezt a D-Link DUB-H7-est, annak valamelyik szeriajaba veletlenul elfelejtettek nem beforrasztani a power switch ic-t. De most mar nem kell keresni ilyet mert csinalok magamnak egy hubot ha ez kell... Na mindegy, ennel a projektnel az embedded downstream device-okra ezt a #pwren kimenetet egy ellenallas + tranzisztor kombinacioval fel lehet hasznalni active low resetnek is akar... legalabb ennyi!
- A hozzászóláshoz be kell jelentkezni
Gondolom rájöttek, ha a passzív USB HUB-okat bus-powerednek adják el, akkor gyakorlatban használhatatlanok lesznek. De a TUSB2048-nál csak egy láb GND-re vagy VCC-re húzása dönti el, hogy mit mond magáról, nem nehéz átállítani.
- A hozzászóláshoz be kell jelentkezni