I am trying to design Semtech LR1110 based GPS tracker for Animal. LR1110 doesn't come with MCU, so I am trying to find out which one would be better choice between STM8 or STM32 considering battery life is important for this tracker.
Any suggestion on this ? or better option other than STM ?
Pro's for an 8 bit processor. There are still huge volumes of 8 bit processors shipped every year. There are good reasons for this. If you are new to the field, it will be easier to understand an 8 bit processor, hardware and software to a deeper level of understanding. For example, some of the 8 bit processors I use, have 2 to 4 registers that are used to set up and toggle the IO bits of a port. Some of the 32 bit processors have around 30 registers to do the same job. Once you understand their use, both are simple to use. Extrapolate this into everything. But, everything you understand have progressed from difficult to simple. A "full featured" 8 bit processor will be lower cost than a "full featured" a 32bit processor. This only really comes into play if you are planning to manufracture high volumes. ie. thousands. If you do not have a lot of math, or complex protocol stacks to run, the 8 bitter will consume less power. There are 8 bit processor that can run at approx the same speed as the lower cost, slower 32 bitters.
Pro's for a 32 bit processor. The knowledge you gain through this development will have larger longevity. You are more likely to find a frimware environment (libraries and a software framework) that abstract the hardware to a larger extend. This is good and bad. Software bloat will cause your code to effectively run slower and will result in you having to choose a larger (memory) processor. You will work harder to assimilate all the knowledge needed. And you will probably not in the same time understand all the hardware and software you are working on top of to the same level as an 8 bit processor. If you run into complex software bugs, because you are working in a more abstracted environment you may loose more hair before you have it fixed. Because the bug you are running into may not be in your code, but in the libraries. If you run into one of these, the bug will be much harder to find, because to tool vendors do debug their code.
At the end of the day, your reason for doing the project has a large influence in the choices you make. If you are just learning and playing, go for the 32bit processor. If you are developing a product for commercialisation, I would seriously consider an 8 bit processor, based on the information you have stated.
If these are the 'pros' for the 32-bit processors, I don't want to see the 'cons'
Hahahah. yes true. Early morning lack of caffein.
I would probably use an STM32L series. You could do it with an STM8 but my preference is to stick to 32-bit Arm processors.
A couple of things to consider.
If you plan to simply repeat nmea gps sentences through the Lora, s simple 8 bit processor may work if you find one with enough RAM to hold the sentences.
If you plan to perform some math as in converting NMEA coordinates to degrees/minutes/second to double precision degrees or calculating distances between coordinates, you may need the speed and capacity of the STM32. Some have floatingNot many modifications for this one.
Also, the LR1110 has WiFi interface. The STM32 processors have TCP/IP libraries. Can't say whether they work in this particular environment. I use this library through an Ethernet connection.
Consider getting a nucleo development board to try out your algorithm before picking the processor. It will give you an idea of the capacity you will need and a chance to play with low power.
The advice to buy a Nucleo Development board is just perfect.
Cheap, affordable, ready-made hardware and with a lot of documentation, libraries, examples and other things that turn life really easy.
It's the way I jumpstart in all my projects nowadays.
Kudos to dnj.
As beningjw said. Forget the 8-bit chips. The ARM core based 32 bits chips can be sent to really low power consumption mode and they are just so much simpler to work with. When they are running, they probably consume more power than the 8-bit part, but because they can do much more, they need to be awake much less, so overall, they are no worse than the 8-bitters. Also, I think your major power consumer will be the LR1110, the CPU won't suck in much, idling most of the time.
Software-wise, working with a 32-bit architecture makes life a lot simpler than using an 8-bit chip. Plus, ARM designed their cores so that C can be very efficiently compiled to them.
These days there are very few cases where using an 8-bit microcontroller instead of an ARM core based one is the better choice for a new design.
Agree with you and beningjw.
When I decide to do penance, I pick an 8-bitter to play with. And it's an MCS51 !!!
And, for those to say that 51 devices are around for a long time and have provided many years of good services to the community, I'd say that, although it's true, they are obsolete.
They were thought for a time when silicon was expensive and tools were primitive. Programming was to be done in assembly language ( language ? ).
Nowadays there is just one reason to play with an 8-bitter: Huge volume products of extremely low sell price. No other.
And, for this case, the only 8-bitters that are worthwhile to consider are the AVR.
It is better to consider STM32 as it would be right choice consiidering future of the product.