Jag har en USB hub vid namn och jag ska försöka ansluta denna mot min processor.
Inkoppling:
Om vi tittar på inkopplingen hos USB hubben: Dessa mätvärden är uppmätt med vanlig DMM.
- Alla VDD matningar är 3.3V
- Alla REM[0:1] är 0V
- VBUS_DET är 3.3V
- RBIAS är ca 1.2V för att det finns en 12 kOhm pull-down resistor där
- Alla PRTPWR[0:3] är 0V
- Alla SEL[0:1] är 0V
- TEST är kopplat till GND
- Alla OSC_N[0:3] är stängd med sin pullupp på ca 2.5V
- RESET_N är 3.3V
- PLLFILT är kopplat till en kondensator mot GND
- XTALIN är ca 0.63V
- XTALOUT är ca 0.64V
- USBDM_UP är 0V
- USBDP_UP är 3V
När jag ansluter med min processor så använder jag mig av detta Device Tree
Kod: Markera allt
&usbh_ehci{
status = "okay";
/* USER CODE BEGIN usbh_ehci */
phys = <&usbphyc_port0>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
/* onboard HUB */
hub@1 {
compatible = "usb424,2514";
reg = <1>;
vdd-supply = <&v3v3>;
};
/* USER CODE END usbh_ehci */
};
&usbh_ohci{
status = "okay";
/* USER CODE BEGIN usbh_ohci */
/* USER CODE END usbh_ohci */
};
&usbphyc{
status = "okay";
/* USER CODE BEGIN usbphyc */
phy-supply = <&vdd_usb>;
/* USER CODE END usbphyc */
};
&usbphyc_port0{
status = "okay";
/* USER CODE BEGIN usbphyc_port0 */
phy-supply = <&vdd_usb>;
st,tune-hs-dc-level = <2>;
st,enable-fs-rftime-tuning;
st,enable-hs-rftime-reduction;
st,trim-hs-current = <15>;
st,trim-hs-impedance = <1>;
st,tune-squelch-level = <3>;
st,tune-hs-rx-offset = <2>;
st,no-lsfs-sc;
/* USER CODE END usbphyc_port0 */
};
https://wiki.st.com/stm32mpu/wiki/USBH_ ... figuration
https://wiki.st.com/stm32mpu/wiki/USBPH ... figuration
Beteende:
Dom meddelanden som jag får är följande:
Kod: Markera allt
usb 1-1.4: device descriptor read/64, error -62 (Time out: ETIME 62 /* Timer expired */)
usb 1-1-port4: unable to enumerate USB device
Jag tror inte det är hårdvaran som är felet. Alla signaler verkar finnas där utan några felaktigheter.
Jag tror det är mjukvaran som är orsaken. Men hur kan jag först verifiera om min USB hub är sönder? Vad mer kan jag göra?
Jag har testat sätta RESET_N till 0V och då reagerar mitt Linux att den försöker återansluta USB hubben, men får error -62 igen. Så RESET_N gör så att USBDP_UP och USBDM_UP reagerar.