|Re: 25th anniversary of 15C's introduction in 2007|
Message #7 Posted by Holger Veit on 9 Jan 2006, 11:49 a.m.,
in response to message #5 by Chris Roccati
Any of the MSP430F4xx would do quite easily: builtin LCD driver for up to 160 segments, up to 60KBytes of in-system programmable flash, 2KBytes of ram, up to 48 bits of programmable i/o (for the keyboard scanner -- you don't even need a multiplexer). All you need is a case, buttons and a 32KHz oscillator...
I've done several MSP projects, and yes, in principle it is quite easy, really! But, and this is a very important "But": it is one issue to write a hello world program with the provided compiler - there is even a gcc available - and download it via boundary scan pins to the chip - the real challenge then is the final system, the prototyping and the production.
The above is basically unrealistic blurb copied from the data sheet, unfortunately: You almost never run the MSP with a single 32kHz quartz - for calculator purposes this is way too slow; you'll have to add a second one, and then lose those uA power consumption - the MSP will need more current. The 32kHz are realistic for power-down mode mainly.
Also: you either have 160 segments LCD (multiplexed!) or 48 I/O pins, so you'll have to carefully check what display you hook and how you merge it with the keybord scanner. Of course there are also some interdependences between the available pins and features like I2C bus, RS-232, A/D-D/A converters - if you start just straight forward, you'll find yourself blocked eventually with competing requirements - choose among 3 of the 7 requirements that you need; the chip can do all 7 things but only 3 at a time (typical effect).
The MSP chip itself is not easy to handle for a hobbyist, you better look at the TSSOP SMD package in the datasheet to check that you can solder this beast (you can - I learnt it, but if you are accustomed to DIL and std SMD SO packages, the pin distance is a challenge. There are of course adapters and prototype boards from Olimex and Elektronikladen.de, resp., but they are not useful for the product.
The LCD brings up a different question: the HP calcs have numerous special annunciators on their displays (low bat, flags, DEG/RAD mode, function keys) etc. As a hobbyist, you have to use an available LCD; you cannot produce a custom one - too expensive for the experiment. Unfortunately, you either find standard alphanumeric ones, with an own controller and incredible current requirements - you cannot use the MSP's LCD driver feature, or you find just normal 3 1/2, 4 1/2 digit multimeter displays (designed for ICM721x multimeters, which are unusable). You can try to cannibalize an alphanumeric display and control it by the MSP to reduce chip count and current, but the display itself has similar pin distances as the MSP itself, so better find a good PCB layout program and a good PCB producer (Sure there are some - but you'll have to find out the good, the bad, and the ugly yourself).
Of course, besides well-considered system design, you have to program the chip as well. This is no longer MSP specific, but still important. For a calculator, you want to have correct mathematics, so don't just take some multiplication/division routine or some trig functions, etc. from some text book, but invest a minute or two (or some thousands) on optimized and accurate algorithms. This is commonly neglected in almost all hobbyist projects - it was hard to get it compile at all, in all the hacking nights, so "someone else" should add the missing 5% (which turn out to be another missing 95%).
But then, the MSP might be a viable solution for such a project. However, numerous other controllers are then as well - concentrating a project on some single chip which appears attractive is seldomly successful. One better does not start with the chip, but with the design.