Hi,
I like this chip and have designed and built a board for it, not for profit, just because I wanted a board that I could hack on, learn from.
An image of the board is attached.
I’ve been bringing it up and have been experiencing a strange problem. I’m not sure if the problem is due to a mistake in the design or a manufacturing issue and I would like some help reviewing it.
This is an open source design and it can be found here:
Note: This is an Altium Project
Here is a link to the PDF of the project so you don’t need Altium to review it.
The gerbers can be found here:
Altium outputs the layers with the file extensions as follows:
I’ve verified that the USB-C is working, it does negotiate 15V input to the board and the 2-Cell battery manager is working. The 5V, 3.3V and 1.8V regulators are all working as well. It was at this point that I started working on getting U-Boot up and running when I found that the following signals were grounded:
Some notes of interest:
I hope we can determine where the issue is. If its a design issue I’ll attempt to work around as best I can, if it’s a manufacturing issue maybe I can work something out with Fab/Assembly House.
Any help would be greatly appreciated.
Sincerely,
Dave
If the board shows shorts on the rails you have listed even before it is powered up, it would point to a manufacturing issue. Solder bridging could be the cause.
Also, from a design point of view, make sure none of the devices that connect to the OSD335x drive the IO pins for the OSD335x-SM before the device completely powers up as that can cause faulty behavior.
Thanks for getting back to me.
It turned out to be a manufacturing issue. I just got a new part put on and I’m in u-boot.
Dave
Great! Thanks for the update. Very cool looking board.
Neeraj
I got the kernel booted and the WIFI is working! I had to figure out some things that were a little tricky and if anyone else is working on getting WIFI up and running on a custom board here are some notes:
In the DTS you should add the following (Assuming you used the exact signals that were in the App Note)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | &am33xx_pinmux { ... sdio_wifi_pins: sdio_wifi_pins { pinctrl-single,pins = &< AM33XX_IOPAD(0x93C, PIN_INPUT | MUX_MODE6 ) /* (L15) gmii1_rxd1.mmc2_clk */ AM33XX_IOPAD(0x914, PIN_INPUT | MUX_MODE6 ) /* (J16) gmii1_txen.mmc2_cmd */ AM33XX_IOPAD(0x918, PIN_INPUT | MUX_MODE5 ) /* (J17) gmii1_rxdv.mmc2_dat0 */ AM33XX_IOPAD(0x91C, PIN_INPUT | MUX_MODE5 ) /* (J18) gmii1_txd3.mmc2_dat1 */ AM33XX_IOPAD(0x920, PIN_INPUT | MUX_MODE5 ) /* (K15) gmii1_txd2.mmc2_dat2 */ AM33XX_IOPAD(0x908, PIN_INPUT | MUX_MODE5 ) /* (H16) gmii1_col.mmc2_dat3 */ >; }; wl18xx_pins: pinmux_wl18xx_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x92C, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (K18) gmii1_txclk.gpio3[9] (WLAN EN) */ AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K16) gmii1_txd1.gpio0[21] (WIFI Int) */ AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (L18) gmii1_rxclk.gpio3[10] (LS_BUF_EN Not Connected but it doesn't matter) */ >; }; uart3_bluetooth_pins: uart3_bluetooth_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x934, PIN_INPUT | MUX_MODE1 ) /* (L17) gmii1_rxd3.uart3_rxd */ AM33XX_IOPAD(0x938, PIN_OUTPUT | MUX_MODE1 ) /* (L16) gmii1_rxd2.uart3_txd */ AM33XX_IOPAD(0x948, PIN_INPUT | MUX_MODE3 ) /* (M17) mdio_data.uart3_ctsn */ AM33XX_IOPAD(0x94c, PIN_OUTPUT | MUX_MODE3 ) /* (M18) mdio_clk.uart3_rtsn */ >; }; bt_pins: pinmux_bt_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLUP | MUX_MODE7 ) /* (K17) gmii1_txd0.gpio0[28] (BT_EN) */ >; }; ... }; /**************************************************************************** * WIFI/Bluetooth Control ****************************************************************************/ &mmc3 { dmas = <&edma_xbar 12 0 1 &edma_xbar 13 0 2>; dma-names = "tx", "rx"; status = "okay"; vmmc-supply = <&wlan_en_reg>; bus-width = <4>; non-removable; cap-power-off-card; ti,needs-special-hs-handling; keep-power-in-suspend; pinctrl-names = "default"; pinctrl-0 = <&sdio_wifi_pins &wl18xx_pins>; #address-cells = <1>; #size-cells = <0>; wlcore: wlcore@2 { compatible = "ti,wl1835"; reg = <2>; interrupt-parent = <&gpio0>; interrupts = <21 IRQ_TYPE_EDGE_RISING>; }; }; &uart3 { pinctrl-names = "default"; pinctrl-0 = <&uart3_bluetooth_pins &bt_pins>; status = "okay"; bluetooth { compatible = "ti,wl1835-st"; enable-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; }; }; &gpio3 { ls_buf_en { gpio-hog; gpios = <10 GPIO_ACTIVE_HIGH>; output-high; line-name = "LS_BUF_EN"; }; }; |
I am not sure if this is needed for everyone but I ended up not using the dtbbuilder tool and just compiled the kernel from source, copied over the vmlinuz, System.map, dtbs kernel modules and kernel header files onto the SD card. Because of this when I first booted up I needed to run:
sudo depmod
once that was done I could use the instructions here:
Setting up Beaglebone Black Wireless
Specifically I ran the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | sudo connmanctl connmanctl> enable wifi connmanctl> scan wifi connmanctl> services SSID Name 1:Unique Connection String1 SSID Name 2:Unique Connection String2 etc... connmanctl> agent on connmanctl> connect Unique Connection String1 Passphrase? xxxxxxxxxxx connmanctl> quit |
Dave
Unfortunately the forum formatter is changing ‘<‘ to < and ‘>’ to > and ‘&’ to &
I’m not sure how to fix this
We will look into fixing the formatting. Thanks
Hey Dave,
Thank you for sharing the valuable info! For anyone looking for more information, here is a hardware design oriented application note describing how to integrate wireless into your design with the OSD335x/OSD335x-SM: https://octavosystems.com/app_notes/enabling-iot-with-osd335x/
Neeraj
Hi buddy, did you find out the actual working way out to this?
Regards,
Cadibi Smith
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields