Design plan for a calculator

microcontroller

I bought an MSP430 to learn more about microcontrollers. My ultimate goal is to build a graphing calculator. I have read a few other posts about this but I still have some questions about the specifics. My plan now is to learn as much as I can about circuits with the MSP430 and move on to another type of processor when I am ready. I have been programming a long time (graphing calculators too) so my concern is just setting up the hardware. Right now my plan is to eventually make a simple version of the calculator and then make a more sophisticated version once I have some experience.

  1. What processor would you recommend? I know this question gets asked too much. I am asking because I would like the final calculator to have a lot of RAM and Flash. How much memory would I have to work with if I used a really good ARM processor? If that isn't enough, how difficult is it to hook up RAM and Flash chips to your MCU?

  2. This question depends on question 1 but from a design standpoint, isn't Flash a lot slower than RAM? In the calculators I have worked with, a lot of the routines the OS uses are executed from Flash. Couldn't you speed things up by storing the OS in the Flash then copying it to RAM the first time the calculator starts? Then when the calculator is shut off, a backup battery would keep the contents of the RAM loaded.

  3. From a hardware standpoint, would it be terribly difficult to use two processors? I know getting them to cooperate and do anything useful would be non-trivial but it is interesting idea to give the second processor a task, like sorting a list with thousands of elements, while the first processor carries on with some other task. Of course this is overkill for a graphing calculator but it is an interesting idea for a hobby project.

Best Answer

  1. There are many microcontrollers out there (a microprocessor is slightly different), and propably an ARM is the first choice if you want performance. Hook up RAM and processor is conceptually trivial, but the practice can be complicated if you are not expert.

  2. RAM is probably embedded if you buy a microcontroller, so just load the software from the Flash; and wait for using operating systems, first try to play a little bit with the board.

  3. If you don't have a specific requirement for multiprocessor systems (and you should have them in the same chip, I don't think is feasible with microcontrollers) then it makes no sense to get crazy with that kind of stuff. And if you have to learn, I would suggest again of starting with something simple, you can't think to build a computer without even have build a microcontroller board, at least once.

And probably you are expert in programming, but even if you have the PCB made, programming with microcontrollers requires the management of the hardware, and that's also a thing to learn before going further.