USB
-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
USB
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
Ä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
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.
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.
> 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 ?
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 ?
-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
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
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
> 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.
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.
-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
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
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
-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
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....
> 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....
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....
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
Sedan om du kan köra RS232 så gör det, det blir grymt mycket lättare

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