Problem with OMAP5912 usb device controller's endpoint configuration

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

hi,

1- i am facing problem in configuration of endpoints in USB device
controller on OMAP5912. When i write the configuration registers
(register number 0x20 to 0x3F of device controller), value is not
displayed correctly in memory windows. but if it read in code, right
value is read. In memory windows, only bit 15 of specific register is
shown modified and rest remains unchanged.
2- After configuration, only endpoint 0 responds to the Host and
device is enumerated properly. but device controller does not responde
to other endpoint traffic.
3- When endpoint0 configuraion register is written, values is shown to
be copied to all configuration registers in memory window. but when
read in software, actual value is read.

Below is initialization before writing configuration registers.

1- Enable the top level multiplexing for USB device controller on Port
0.
2- Enable the clock for USB device controller from clock_ctrl_reg and
soft_req_reg.
3- Set the tranciever mode for USB controller.
4- Set the HMC mode and other otg_syscon_2 register bits for proper
operation.
5- Assert the bssessvld bit in otg_ctrl register (as vbus is connected
to any GPIO or GPIO0 on OSK5912 board.
6- Clear contol registers of device controller, (irq_en, syscon1,
syscon2 etc)
7- Write configuration registers EP0, EPn_RX and EPn_TX registers with
appropriate value. values are written all bit simultaneously.
8- Set the config_lock and pullup_en bits in syscon1 and enable the
interrupts.


After that when connected to Host, device is enumerated but device
timeouts the non-control endpoint traffic. behavior is same if
configuration register writing is not done.

Please let me know if i am skipping some initalization or doing
something in wrong order.

i will be thankful

Amir

Site Timeline