Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usecases for module makers #11

Open
timonsku opened this issue Oct 26, 2020 · 10 comments
Open

Usecases for module makers #11

timonsku opened this issue Oct 26, 2020 · 10 comments

Comments

@timonsku
Copy link
Collaborator

timonsku commented Oct 26, 2020

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.

  • No need to implement all of the basics like IO connectors and power circuitry that is largely the same for most MCUs.
    This makes the module cheaper and also solves an issue of users wanting some specific chip in a ton of different varieties, which would normally require to make many monolithic designs and keep them in production (think one basic MB with micro USB one with USB-C, you only need to do that once and not for every new MCU over and over or judge which version would be more popular).
    That way you can offer a variety of standard motherboards that cater to most interests and if a customer wants a specific combination they can combine them however they please. This decreases the amount of designs necessary to satisfy a market.

  • Allows to jump on the bleeding edge sooner with less risk
    Normally you would wait quite a while when something like USB-C comes along before you use it in your boards because you don't want to deter the big mass that is slower in adopting new standards.
    When you decouple the periphery from the brain there is little to loose and much to gain to just offer a motherboard with that new shiny something very early on because it won't deter customers who might not want it because they are not forced to adopt it right away because you still make new modules which will be compatible to all of the older connector standards.

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
Copy link

folknology commented Oct 27, 2020

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
Copy link
Contributor

flummer commented Oct 27, 2020

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
Copy link

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
Copy link
Contributor

flummer commented Oct 27, 2020

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
Copy link

folknology commented Oct 27, 2020

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
Copy link
Contributor

flummer commented Oct 27, 2020

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
Copy link

folknology commented Oct 27, 2020

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
Copy link
Collaborator Author

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
Copy link
Member

tannewt commented Oct 27, 2020

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
Copy link
Collaborator Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants