Page 1 of 1

Commerical design & LAN951X questions.

Posted: Fri May 03, 2019 11:25 am
by SgtSiff
Hi,

I am designing a board for the compute module 3+ for an application at work and I have a few questions:

  • For those that have commercially produced designs, do you program the modules from your board (and hence need the supporting circuitry such as USBMUX) or do you program the boards externally and insert them into the board? My first revision has the USBMUX and headers, but I'm thinking to drop this to reduce BOM (and cost) and reduce board size.
  • My design incorporates a LAN9514. All of the USB devices are onboard and powered straight form the 3.3V bus. Can I safely leave the PRTCTL pins unconnected, or will this cause issues?
  • Do people generally lean towards clocking the LAN9514 from the compute module or from an external oscillator? Again I am aiming to reduce BOM.
  • Is using more than one LAN9514, is it appropriate to connect the LAN_RUN pins to the same GPIO on the CM3?
  • When using dual LAN9514, is the generally accepted solution to purchase a block of MAC addresses and write these to external EEPROM connected to the compute module, then force the CM3 to use these addresses instead of the internally generated ones? Can I purchase pre programmed EEPROMs?

Re: Commerical design & LAN951X questions.

Posted: Tue May 07, 2019 9:48 am
by jamesh
The only answer I have is that on the Pi3, the LAN chip is clocked fomr the 2837. All the rest would require getting in touch with Microchip to find out what they do.

Re: Commerical design & LAN951X questions.

Posted: Tue May 07, 2019 10:26 am
by 6by9
On recent firmware, it assigns the MAC address to the LAN951x pointed to by the ethernet0 device tree alias. On a Pi3 this is /soc/[email protected]/[email protected]/[email protected]
A LAN951x at any other device tree node (ie because it is connected to one of the downstream ports on the primary LAN951x) should by default adopt a random MAC address.
Please be aware that earlier firmwares/kernels passed the MAC address on the kernel command line, and that would then apply to ALL LAN951x chips.

I vaguely recall a thread on here where someone contacted Microchip for a preprogrammed EEPROM suitable for the LAN951x and was told there wasn't one. viewtopic.php?f=98&t=180226&p=1147406#p1147260 looks likely.

Re: Commerical design & LAN951X questions.

Posted: Fri May 10, 2019 12:28 pm
by SgtSiff
6by9 wrote: On recent firmware, it assigns the MAC address to the LAN951x......
Thankyou, that's good to know. At least for testing purposes it will work, then we can worry about purchasing & adding custom MAC addresses later.

I think we read the same thread!
jamesh wrote: The only answer I have is that on the Pi3, the LAN chip is clocked fomr the 2837. All the rest would require getting in touch with Microchip to find out what they do.
Thanks. I have decided to clock the first LAN9514 from it's own osc and clock the second device from the first. This should allow me to debug the USB devices from another machine if I want.

Re: Commerical design & LAN951X questions.

Posted: Tue May 28, 2019 8:06 am
by SgtSiff
I just thought I'd update my post with answers to the rest of my questions, in case any one else stumbles across this thread in future.
SgtSiff wrote:For those that have commercially produced designs, do you program......
We have decided to program the board externally, and have designed a barebones PCB to mass program the modules with etcher. We have just left a serial connection exposed on the board for terminal access.

The following were answered by Microchip technical support:
SgtSiff wrote:My design incorporates a LAN9514. All of the USB devices are onboard and powered straight form the 3.3V bus. Can I safely leave the PRTCTL pins unconnected, or will this cause issues?
The PRTCTLx pins act as output and input for the Port Power Control and Over-Current Sense functions, thus these pins have IS/O12 and PU Buffer Types.
"PU" means that there is an internal Pull-up resistor that prevents unconnected inputs from floating, thus, the PRTCTLx pin can be unconnected. If this is not enough, the user can provide an option for an external pull-up resistor if needed.
SgtSiff wrote:Is using more than one LAN9514, is it appropriate to connect the LAN_RUN pins to the same GPIO on the CM3?
It is doable to use one of the GPIO from the LAN9514 to reset the LAN9512. GPIO manipulation is needed, this reference might help (http://ww1.microchip.com/downloads/en// ... 01-12).pdf)
A Buffer of the output from the compute module to both LAN9514 and LAN9512 reset pins might be better.