- This topic has 10 replies, 4 voices, and was last updated 1 month, 2 weeks ago by john bradley.
-
AuthorPosts
-
-
August 15, 2018 at 9:56 am #6228cospanParticipant
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:
- GTO: Top Silkscreen
- GTP: Top Paste
- GTS: Top Solder Mask
- GTL: Top Layer
- GP1: Inner Power Layer 1
- GP2: Inner Power Layer 2
- GBL: Bottom Layer
- GBS: Bottom Solder Mask
- GBP: Bottom Paste
- GBO: Bottom Overlay
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:
- SYS_VDD3_3P3V
- VDD_CORE
- VDD_MPU
- VDDS_PLL
- SYS_ADC_1P8V
Some notes of interest:
- Instead of powering the board with the rails supplied by the SOC I used my own regulators, so for all of the signals listed above they are either in one or two locations in the schematic, usually on the same page and not used to power peripherals on the board.
- I’ve verified that on a blank board those signals are not grounded.
- The signals are grounded on boards that I have not even applied power to.
- There are only components on the top of the board, the bottom has only connectors including a UART connector for debugging U-Boot and Linux. As well as a bunch of Grove connectors and a GameBoy Connector (not to read game cartridges but to attach to future expansion boards)
- I was planning on ENIG surface finish when fabricating the board to make sure the BGA mated well but after about 4 restarts of the build I missed that one radio button on the PCBA website so the finish is Hasl which makes me concerned.
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
-
August 16, 2018 at 5:53 am #6234cospanParticipant
-
August 26, 2018 at 7:26 pm #6295Neeraj Kumar Reddy DantuModerator
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.
-
August 30, 2018 at 5:38 am #6323cospanParticipant
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
-
August 30, 2018 at 1:45 pm #6326Neeraj Kumar Reddy DantuModerator
Great! Thanks for the update. Very cool looking board.
Neeraj
-
September 10, 2018 at 8:28 am #6372cospanParticipant
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)
&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:
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
-
September 10, 2018 at 8:38 am #6376cospanParticipant
Unfortunately the forum formatter is changing ‘<‘ to < and ‘>’ to > and ‘&’ to &
I’m not sure how to fix this
-
September 10, 2018 at 5:08 pm #6382Neeraj Kumar Reddy DantuModerator
We will look into fixing the formatting. Thanks
-
July 27, 2026 at 2:54 am #17377john bradleyParticipant
thanks for the information!
-
-
September 10, 2018 at 5:06 pm #6381Neeraj Kumar Reddy DantuModerator
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
-
February 3, 2020 at 2:02 pm #9681cadibiParticipant
Hi buddy, did you find out the actual working way out to this?
Regards,
Cadibi Smith
-
-
AuthorPosts
- You must be logged in to reply to this topic.