USB

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Magnus Pihl
Inlägg: 401
Blev medlem: 6 maj 2004, 12:22:36
Ort: Stockholm

USB

Inlägg av Magnus Pihl »

Jag ska kommunicera mellan en mikrokontroller och en mobiltelefon och behöver en omvandlare däremellan.

Är det USB client som bestämmer hastigheten? Hur vet enheterna vilken som är client och host? Pull-up motstånden bestämmer väl bara hastigheten?

Nya mobiltelefoner klarar säkert USB2.0 (480MHz) och det kan jag aldrig klara med en mikrokontroller, eller ens FPGA. Och converterkretsarna från FTDI klarar bara av att ha USB som host. I min applikation är det mikrokontrollern som är host (RS232) och mobiltelefonen som är client (USB). FTDI support säger att alla deras kretsar kräver att USB är host. Så jag kan m.a.o inte använda deras kretsar.

Dock finns det ett exempel på en mjukvaruconverter, (http://www.obdev.at/developers/articles/00003.html) ,men den klarar bara low-speed (1.5Mbit/s).

Men om man på något sätt kunde övertala en mobiltelefon, från mikrokontrollern att köra 1.5Mbit/s, så kommer det att fungera. Men det beror ju på vem som bestämmer hastigheten, och det är väl själva kärnfrågan...


/Magnus
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

Alla Hi-Speed USB (480Mb/s) klarar att prata på Full-Speed (12Mb/s). Faktum är att enheterna börjar prata på 12Mb/s och sedan ökar till 480Mb/s.

Hela USB köret är jobbigt som f-n... Den enda lösningen jag kan komma på är att koda en USB-host i en FPGA, såvida du inte hittar något som är färdigt eller om du kan hitta en integrerad USB-Host controller.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Hur vet enheterna vilken som är client och host?

Hosten vet att den är en "host", det räcker. Allt annat är klienter.

> Nya mobiltelefoner klarar säkert USB2.0 (480MHz)

USB 2.0 = 1.5, 12 *eller* 480 Mbps. Det skulle förvåna om någon
mobil försöker kör 480 Mbps...

En annan sak, har mobilen *enbart* USB interface ?
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

AVR-processorer med USB-stöd finns även med Host-funktion. Ta en koll på atmel.com.

Mvh
speakman
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Magnus Pihl: Obdev:s USB-mjukvara kan inte användas som en "host", utan bara som slav (eller vad man kallar det).
Magnus Pihl
Inlägg: 401
Blev medlem: 6 maj 2004, 12:22:36
Ort: Stockholm

Inlägg av Magnus Pihl »

NRZI kodning och bit stuffing är ju lätt. Men hur mycket overhead är det? Man kanske inte behöver göra enumeration när man vet vad som sitter i andra ändan. Man kanske inte behöver fråga vad den är för något och vad det är för modell?

Atmel µC är fysiskt för stora för min applikation.

Är 12Mb/s standard? Kan man, som host, begära att gå ner till low-speed (1.2Mb/s)?

/Magnus
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> NRZI kodning och bit stuffing är ju lätt. Men hur mycket overhead är det?

Det är mycket lätt och är ingen overhead alls eftersom det tas om hand
av den USB hårdvara man använder.

> Är 12Mb/s standard?

1.5, 12 och 480 Mbps tillhör alla USB standarden. Vilken hastighet
som används väljs på lite olika sätt.

1.5 eller 12 Mbps väjs av ett "device" genom att ha ett pullup
motstånd på antingen D+ eller D-. Det är alltså fast "kodat" i hårdvaran.

480 Mbps begärs av devicet och måste "ACK'as" av hosten.

> Man kanske inte behöver göra enumeration när man vet vad som sitter i andra ändan. Man kanske inte behöver fråga vad den är för något och vad det är för modell?

Frågan är väl då, varför köra USB alls... ??

Skaffa (eller låna) en USB bok, t.ex Jan Axelsons utmärkta "USB Complete".
Läs en vecka, och fundera sedan på hur du vill göra.
Magnus Pihl
Inlägg: 401
Blev medlem: 6 maj 2004, 12:22:36
Ort: Stockholm

Inlägg av Magnus Pihl »

Jag hade helt klart helst kört RS232, eftersom den µC har UART. Men de flesta nya mobiler har bara ÚSB (se
http://pinouts.ru/data/nokia_pop_pinout.shtml )

Men är det host eller client som bestämmer hastighet med sina pull-ups?
Vilken hastighet börjar kommunikationen på innan "förhandlingen" är klar?

Kan jag tvinga mobilen till 1.2Mb/s kan jag göra en "mjukvaru-USB", m.h.a. mikrokontrollern alternativt en FPGA.

Jag ska försöka få tag på USB complete imorgon. Jag har ändå ärenden på ELFA. Helst skulle jag dock vilja betala någon som kan att vägleda mig rakt på målet; att kunna skicka modemkommandon från RS232 till mobilen, som bara har USB.

/Magnus
Magnus Pihl
Inlägg: 401
Blev medlem: 6 maj 2004, 12:22:36
Ort: Stockholm

Inlägg av Magnus Pihl »

Det stämmer ju faktiskt att det både är USB och RS232 på mobiltelefonens stift! Så det kan nog gå att skicka modemkommandon via RS232, för mobilen ekar det jag skriver. Dock svarar den inte på några kommandon, vilket är lite märkligt, men jag kanske måste aktivera Accessory control interface först....
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Men är det host eller client som bestämmer hastighet med sina pull-ups?

Ett Device har en 1.5 kohm pull *up* på antingen D+ eller D- beroende
på om den vill starta i 1.5 eller 12 Mbps (osäker på vilken som är vilken).

En Host har 15 kohm pull *down* på *både* D+ och D-.

> Vilken hastighet börjar kommunikationen på innan "förhandlingen" är klar?

Host'en känner av vilken av D+ eller D- som har en pull up. Det sätter
farten.

Slutligen, att bygga en USB *host* är inte speciellt enkelt, och det är väl
i stort sätt meningen att det ska vara ett Windows (el liknande) system
i den änden... :-)

Du har inte beskrivit vad du *igentligen* vill göra, så det är lite svårt
att uttala sig om valet mellan USB och RS232....
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg av exile »

Tja, en AVR med USB OTG skulle gå attanvända men är nog ganska svårt att få tag på...

Sedan om du kan köra RS232 så gör det, det blir grymt mycket lättare :)
Magnus Pihl
Inlägg: 401
Blev medlem: 6 maj 2004, 12:22:36
Ort: Stockholm

Inlägg av Magnus Pihl »

Jo, det verkar ju som att det går att köra RS232, men det är något med ACI som jag troligtvis måste göra för att få det att fungera....

Vad har jag inte kommit på än.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg av exile »

Vad tror ni om den här mjukvare implenterade hosten på AVR och 8051...

Jag säger bara en sak japaner :shock:
Skriv svar