adafruit / M.2

Discussion, files, spec, and more for a M.2 standard for makers
32 stars 8 forks source link

Usecases for module makers #11

Open timonsku opened 3 years ago

timonsku commented 3 years ago

Following the other issue here a thread to talk about potential use cases for module makers.

This would be everyone who is interested in making modules for the ecosystem and probably also offer motherboard example implementations to prototype with or likely also be a user of the modules akin to Feather and Feather Wing which is something usually produced by the same company/person.

For the motherboards I covered most of my points in the end user thread so I try to focus on some benefits of getting into such an ecosystem from the perspective of someone interested in making modules.

That solves a problem you always have with very new technology that some customers a very interested in but it wouldn't be viable to offer a traditional product line with it just yet (or ever). This also means you can experiment a lot more and offer products to more niches with less risk. This also goes in the reverse, offering modules with more exotic interesting MCUs without needing to cover all the form factors with it, that customers might want because again, form factor and connectors are decoupled. Whenever you bring out a new module it is instantly available in ALL the form factors that you typically offer.

folknology commented 3 years ago

Isn't the USB-C example one which is currently against the proposed pinout standards as none of them have support for usb-c new functions like USB3.0 serdes data lines and new power management features and muxing, how would one implement such a board with the current proposed standards examples? Or are you suggesting we need at least these basic features added for a new standard?

flummer commented 3 years ago

Well, you can have the USB-C connector, without using the highspeed lines, there are other advantages with that connector like omni direction, power, SBU pins, etc.

folknology commented 3 years ago

Ok is this some sort of halfway house? Forgive me I am not that familiar with how all these extra USB-C pins function.

flummer commented 3 years ago

The USB-C connector can be used for a pretty wide selection of use cases from power only to very high speed Thunderbolt connections, and using only the D+ and D- with simple low current 5V power is also an option, which will likely be the most common for simple microcontroller projects.

With this simple USB-2 communication and up to about 500mA @ 5V, the primary benefits of the connector is compatibility with pretty much all USB-C cables (also those with a USB-A connector in the other end) and the fact that you can insert the connector in either orientation, both will work (if done correctly).

The two SBU (Side Band Use) pins can eg. be used for a TTL level serial debug interface. Some phones and tablets use it, and there are special cables with electronics to provide a hub and USB to serial adapter all in the cable/connector. This is an edge case, but could be convenient for debugging microcontrollers.

folknology commented 3 years ago

Oh that SBU debug stuff sounds cool, hadn't heard of that. I thought that the new power features needed hardware and firmware support in the USB PHY inside the Micro, I think some of the newer STM32's have this. For the high data speed USB3.0 stuff you need a complete controller (Like Cypress/FTDI) which you talk to using a 16 or 32 Bit parallel bus AFAIK. Sorry if this is a little OT.

flummer commented 3 years ago

For the PD (Power Delivery standard) you need negotiation and that will give you higher voltage and much more current, and I can see that being relevant for eg. a motherboard with maybe motor controllers or other stuff that needs up to 100W. All this power negotiation would then sit on the motherboard and the module would maybe just communicate with D+ and D- for control and/or firmware updates.

folknology commented 3 years ago

This STM32 doc seems to indicate it is possible with couple of extra ADC/Digital pins to do at least some of the Power Delivery negotiation: https://www.st.com/resource/en/application_note/dm00536349-usb-typec-power-delivery-using-stm32xx-series-mcus-and-stm32xxx-series-mpus-stmicroelectronics.pdf For full PD you might need UCPD support in the micro and specific pin functions.

This may seem OT but even something seemingly simple as a different USB connector interfacing has a complex stack of practical IO requirements

timonsku commented 3 years ago

USB-C is only a connector specification, which by design always also includes power specs. So for this uses case this just means a different connector with a higher default power (not using PD) of up to 3A, But yea this is quite off-topic :)

tannewt commented 3 years ago

Another advantage of splitting a module from a carrier board is that the module can be pricier PCB such as 4+ layers with blind and buried vias while the carrier can be a simple two layer.

I think the trade off with a module is that you reduce the ability to play with any new features that require a wired connection (aka pin designation). The no-BLE to BLE use case of keyboards is pretty niche because it's wireless functionality.

I think the core question is: what are things that can be changed without a new pinout? Furthermore, is this actually worth it.

timonsku commented 3 years ago

I think the core question is: what are things that can be changed without a new pinout? Furthermore, is this actually worth it.

Apart from the going from un-connected to wireless (which I do see a lot of applications for) I would say the two biggest reasons are performance and peripherals. Your applications requirements might change in the future and the old MCU is not capable any more of keeping up with the new demands, a drop in replacement is very attractive. In the same vain, obsolescence would also eventually play a role. If something is just not as available any more it is very attractive for long term products to have the ability to switch to a new application processor without touching the base design.

Then for peripherals lets take ADC's f.e. they differ in features and quality immensely between MCUs. Say you need an increase in accuracy of your reading or higher speed ADC, this would normally require a complete re-design of a particular board but in this case you could just get a MCU with the capabilities needed.