Join Today
+ Reply to Thread
Page 1 of 3 123 LastLast
Results 1 to 10 of 23
  1. #1

    Default USB Host - Need more information

    Good evening...hehhe
    I have download all Intel doc. about their XScale PXA27x at Intel's FTP site.
    After long night reading those doc, I find out that Intel have implement SDIO controller and USB Host controller inside the CPU (everybody known that?>? ok), and many ones here research for a solution to run SDIO card on e680 but you get a really big problem: we do not have a SDIO stack driver and ultil now no one give us free solutions.
    The USB host is contrast with SDIO there a lot driver for that (OHCI) and I think port it to our phone is much easier than write a new driver from scratch (like SDIO), but the problem with USB host controller is:
    - Intel did not implement Power control and power source in CPU (as it only run with 1.8 and 3.3V signal not the 5.0V) so they require us to implement it by our self.
    - If we implement USB host we need hardware modding (but if we do not implement Power source it is much simple). I suggest to use 5.0V power source from the outside for testing purpose (the GND of the phone should connect to this source ofcource!). And according to Intel doc: we need those thing: USB port (we would take this from usb cable) and some resistor, capacitor, wire. It may be not a hard task to make those things wired together. The remaining part is the software related tasks.
    I need your help:
    -Would any one can provide USB specifiation (usb.org) because Intel stated that their internal tranceiver can work in "differential mode" if connect it to a external tranceiver it can work in "single-ended mode". I did not know those words so I need those spec doc to research more.
    So please help.
    Everyone can read those doc like me and do those stuff?! (I also continue to research but I do not have much free time so I cannot predict whenever It can be done.) And at this time I have not have e680 phone to test because of mine had been seen to the distributor for a repair - they told me that they have to send this phone to other distributor to replace the board - and they cannot tell me exactly when they return it to me - really sad...
    Thank people to read this thread.

  2. #2

    Default Re: USB Host - Need more information

    At this time I will try to find an error e680 (such as defect in keypad, led, LCD....) to continued my work, working on those phone would be easieer.
    heheheh

  3. #3

    Default Re: USB Host - Need more information

    The PXA used in the E680(i) has (I think) 3 USB, one Host, two device.

    The Host port is used to talk to the BPA (The phone part), leaving two device ports, one of which is on the phone, the other is probably unwired.

  4. Default Re: USB Host - Need more information

    Hi fearless developers !

    In the following I would like to summarize what is currently known about
    the USB subsystem of the motorola linux phones. I have collected this information form reading this forum, studying the respective datasheets and schematics and by guesswork. Please correct me if I am wrong.

    PXA270

    The PXA270 processor (which runs linux in the motorola phones) USB subsystem has as fas as I know:
    - USBC: a single USB client controller
    - USBH1, USBH2, USBH3: USB host controllers.
    USBH2 is special because it can be used together with the USBC to form a USB On The Go port.
    - a USB physical transceiver for USBH1, with dedicated pins USBH_N & _P
    - a USB On-The-Go physical transceiver for USBH2 and USBC,
    with dedicated pins USBC_N & _P
    - USB_P3: a sigle ended, logic level interface consisting of GPIO pins 30,31,90,91,56 and 113 to connect USBH3 to an external transceiver.
    - USB_P2: a single ended logic level interface consisting of GPIO pins 34,25,26,39,40 and 53 to connect USBH2 and USBC to an external transceiver.

    A logic level USB interface consists of 8 pins :
    USB_P[2|3]_5 Positive Receiver Input
    USB_P[2|3]_3 Negative Receiver Input
    USB_P[2|3]_6 Positive Driver Output
    USB_P[2|3]_4 Negative Driver Output
    USB_P[2|3]_1 Differention Receiver Input
    USB_P[2|3]_2 Transceiver Output Enable
    USB_P[2|3]_7 Selects Speed (1 or 12 Mbit)
    USB_P[2|3]_8 Power Enable (+5Volt for USB host port)

    Motorola Phones

    the wires on the pcb are such:
    Code:
    PIN    Signalname  Signalname		   
           Schematics  main     alt_USB		 
    J3     BUL_VPIN    GPIO40   USB_P2_5 (in) 	
    K19    BUL_VMIN    GPIO53   USB_P2_3 (in)	
    D4     BUL_VPOUT   GPIO39   USB_P2_6 (out)
    G4     BUL_VMOUT   GPIO36   USB_P2_4 (out)
    F2     BUL_TXENB   GPIO34   USB_P2_2 (out)
    E3     BUL_XRXD    GPIO35   USB_P2_1 (in)
    A7     ICL_VPIN    GPIO90   USB_P3_5 (in)
    K4     ICL_VPMIN   GPIO113  USB_P3_3 (in)
    J4     ICL_VPOUT   GPIO31   USB_P3_6 (out)
    M18    ICL_VMOUT   GPIO56   USB_P3_4 (out)
    G6     ICL_TXENB   GPIO30   USB_P3_2 (out)
    C7     ICL_XRXD    GPIO91   USB_P3_1 (in)

    The build in transceivers are not used as far as I can tell.
    There are indications in the schematics that test points might exist to accesss this signals.
    USBH1 is not used.
    USBH2 is not used.
    USBH3 is configured to use the USB_P3 logic level interface which is wired internally to the Neptun LTE GMS chipset, which is a usb client.
    They do not use transceivers, probably because of cost reasons, and the chips are very near one to the other anyway, so transceivers are not really needed. The signals for power_enable and speed detection are not used and their respective GPIO pins are used for other purposes.
    USBC is configured to used the USB_P2 logic level interface which is wired to the PCAP chip. This chip contains the power regulators, vibration control, sound interface and you guess it: a USB Transceiver.
    I think this transceiver is not capable of On-The-Go operation, as some needed signals are not present. There is however the needed pullup-resistor for signaling a fast 12Mbit USB client. This is even switchable from the PCAP chip (!)

    An interesting side note. The USB_P2 GPIO pins's alternate function is the FFUART, a serial port. The processor can switch these pins, which are connected to the PCAP chip to be either a USB port or a serial port. I think there are multiplexors inside the PCAP chip that allow to bypass the USB trasceiver so that the FFUART is available on the MiniUSB plug.
    there is also another wire connecting the RX and DTR signals to the neptun keypad interface, which is otherwhise unconnected. I belive this is a hack to be able to "reset" or "flash" the Neptune. Its to be able to put it into a defined condition from outside. under normal operation the USB or serial signals will probably be igored form the keypad controllers debouncing circuit...

    When the usb logic level signals have been converted to differential signaling by the Transceiver in the PCAP, they leave the PCAP again and enter a maze of analog switches, until the signals finally get to the mini USB plug.

    The pin 4 of the mini usb plug is connected to an ADC. Its used to detect the chargers and headsets from an ordinary USB host like a computer.



    Wild Speculation & The Big Master Plan

    I think they used the USB_P2 logic level interface for the external plug for a reason. Maybe a first draft of the e680/A780 included a USB-on-the-go functionality that didn't made it into the final drafts. The PSOC3 transceiver is definitely not capable of USB On-The-Go.

    However its still possible to switch the USB_P2 logic level interface to connect to the USBH2 controller instead of the USBC by software. The USBH2 is not used nor configured by the default kernel. There is a pullup resistor that is in the way. Fortunately it can be switched off by some PCAP resgister hackery.

    We would have to get all the analog switches right, have the transceivers of the PCAP connected to the mini USB Plug and no pullup resistor in the way. We would still need the two pulldown resistors to signal USB host. They are not included on the pcb and PCAP can not provide these.
    But we could add these to an external cable which we would have to build anyway, because the plug in the phone is a B type, and there is no mini B to A cable.

    Then we still have no power supply. There is one inside the phone, a switched power converter that can generate 5.5 volts. Its used by the internal charger circuit and i think it was included for the USB-On-The-Go feature that was cut. But this converter can only deliver about 10ma of spare current, we would need 500ma, which means we need to connect an etxernal battery.

    So in order to get USB Host functionallity on a A780 / e680 we need:

    - to find a resistor that is not used by any motorola accesoire.
    - to hack the EMU code (EMU = enhanced mini usb), so that it recognizes
    our resistor and connectes USBH2 to the mini plug, and deactivates the pullup.
    - to build a special cable with a mini USB B Plug and two 15 koms resistors, a normal USB A female plug and the selected resistor on pin 4 to identify our accessory.
    - An external battery capable of delivering 5volt @ 500ma
    - Its not possible to switch off the power when the phone goes to standby mode, so we would need to provide an external switch aswell.

    Thanks everybody for reading so far. I hope this reflects the actual state of knowledge on the subject.

    greetz and a happy new year
    thseiler

  5. #5

    Default Re: USB Host - Need more information

    Oh, thanks. That's interesting.
    I would try to find Moto Service Manual at any level as soon as possible (as I know they have 3 service level - maybe level 3 could provide us much info.)
    And as I said, if we need external power source in this test we can use our power from our PC USB host - It's much simple.
    Is there any way to connect directly our usb connector to the PXA270 tranceiver? without going through "EMU"? (EMU subsystem is much more complex as I know it serve as multifunction port for Moto P2K (platform 2000)). That's all I know this time.

  6. #6

    Default Re: USB Host - Need more information

    Anyone have USB specification document (USB standard)?

  7. #7
    Rikk Guest

    Default Re: USB Host - Need more information


  8. Default Re: USB Host - Need more information

    hi

    I dont know if there is a way to use the pxa270 on-chip transceivers but i would recommend to concentrate on the external mini usb plug.
    because: opening the phone means loosing the warranty.

    I prefer to have a solution that can be plugged from outside without opening the phone even if this means that its harder to get it working.
    Many more people will benefit from such a solution.

    I strongly believe that is possible to write a kernel module that configures the usb host controller and all the multiplexers and analog switches so that we get the differential signal out of the miniusb plug, I am still working out the needed register values.

    greetz
    thomas

  9. Default Re: USB Host - Need more information

    Lets suppose for a moment that the usb host kernel module works.

    We still need the drivers to do anything useful. But which drivers ?
    - USB Storage
    - USB HID keyboard & mouse
    - Anything else ?

    Then where do we get the power (5volts) for USB host from ?
    - a external battery pack ?
    - a mini usb plug to connect the charger to it ?
    - both ?

    What about a kind of jacket like the ipaqs had once
    - attaches instead of the battery cover and contains the battery for 5vols USB supply and the full size USB host port ? (and of course a white led light, the only other thing that I miss on my A780)

  10. #10

    Default Re: USB Host - Need more information

    Yes, thseiler. I agree with you about your software solution, but what do you mean when you said: "- to find a resistor that is not used by any motorola accesoire."
    About external power source, I think it does not a really big problem because we can make it by wiring in to a special cable, it just a few step soldering some wires and connector.
    Now we need a hardcore kernel hacker and a driver port. Maybe montavista helps us??!
    I have download usb specs. Long time ago I have visit usb.org site but at that time they do not provide specs docs (all spec require member login - but member register price is so high), now they provide those freely. The same for Bluetooth spec.


 
+ Reply to Thread
Page 1 of 3 123 LastLast

Similar Threads

  1. Host not found
    By ravisoni7 in forum E6 General Chat
    Replies: 9
    Last Post: 06-12-2009, 02:33 PM
  2. Flashing E6 under Linux host
    By k4misiek in forum E6 General Chat
    Replies: 0
    Last Post: 03-01-2008, 12:03 AM
  3. Replies: 0
    Last Post: 08-02-2007, 04:33 AM
  4. usb host via port cable module sdio etc;
    By tallemd in forum Bounty Projects
    Replies: 1
    Last Post: 06-07-2006, 02:37 AM
  5. usb host option
    By tallemd in forum E680i General Chat
    Replies: 0
    Last Post: 05-26-2006, 06:25 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Single Sign On provided by vBSSO

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1