There is a natural tendency to go small and cheap when you pick a microprocessor. After all, why spend $3.50 on the micro if you can only spend $2.75. Over 100, 1000 or 10000 units that starts to add up.
This is especially true of people that like working with Microchip parts. Microchip has some very nice, small, right-featured, easy-to-use parts that you can incorporate into a design. I know. We’ve used them.
I think that there are a couple of problems with this approach. One, it just limits you so much down the road. Every single time I’ve opted for the small, cheap micro it has come to bite me you-know-where later on.
The story is always the same. We make X and the there is a customer or a series of customers that like X and use it. It’s not massive business but good, consistent business.
Some other customer finds out about X and says can you do Y. Now Y is NEVER less featured and slower with a smaller I/O count. It’s always more and we have to re-spin the board and now have multiple revisions to contend with and we don’t get any scale of manufacturing on it.
The biggest constraint with these small parts is in the communications. Generally, you start out with Modbus RTU. Simple, small little RS485 protocol. But then, a customer wants Z and that needs DeviceNet or Modbus TCP or EtherNet/IP if the processor has an Ethernet MAC.
More trouble. Do we have the Flash and RAM for those things? Probably. We’ve been able to squeeze our software into a lot of these small parts. But you always lose something when you do that. You lose the ability to do multiple connections. You may not be able to support all the features that your customer needs.
In the need, it just makes sense to spend a little more up front, get the Flash and RAM that can carry you through a number of years of new product iterations. Now that might mean just 512K/64K but it sure doesn’t mean 32K/4K. With just 512K of Flash and 64K of RAM you can implement any of the Ethernet protocols and have lots of room for web pages.
It’s really the long term more prudent option.