The basic premise of the project is as follows;
- The oscillator is to be controlled through the Flex Kenwood CAT command set through a serial port or a USB port with the appropiate hardware. ASCII commands would be sent to the controller asking for status or asking that a new frequency be set.
- Be able to use pushbuttons, joystics, encoders and similar means to manually control the oscillator.
- Be able to permanently contain settings for band limits and have control of relays to activate and select front end filters.
- When project is finalized, create PCB using SMT components to contain entire system, OSC+Band Filters in a small "black box" componet to be used in multiple projects.
Since this would be a not too tiny yet not too massive project that can be done in stages I will be using it as a test vehicle to play with different CPU chips that I'm not too familiar with. So what are the CPU choices their advantages and disadvantages?
PicAxe specifiucally the 28X1 chip
- + Inexpensive and easy to work with, available in different sizes to meet project requirements. can be programmed 100K times, has I2C for the 18X and higher chips.
- + Easy to program, free programming tools available, it uses a built in Basic interpreter, lots of user groups with code and assistance.
- - Lacks the built in data types to make the large number calculations required to program the SI570. This in itself is a major minus since I'm determined that the PC will not know anything about the device it's controlling, it just sends a frequency command and the controller's job is to figure out how to comply.
PIC controller in the 18F family, specifically the 18F2550
- + Low cost ($5), yet very capable 32KB Flash, built in USB port a big plus, 48MHz, EEPROM, I2C, SPI, Serial
- + Free development software (C and Assembler), inexpensive debug hardware.
- + Free resident FORTH Compiler/Interpreter available, a big plus since FORTH is ideal for hardware development.
- + Inexpensive prototype boards available from SparkFun
- + Chip is available in DIP and QFP versions to make development easier.
AVR ATMEGA series, specifically the ATMEGA168 CPU
- + Low cost ($3.5) very capable, 16KB Flash, EEProm, I2C, SPI, 20MHz, Serial
- + Free development software (C and Assembler) plus Pascal, and Basic, inexpensive debugging tools.
- + Possible free FORTH resident Compiler/Interpreter (I have seen it but I don't remember where)
- + Inexpensive very capable Basic compilers are available for less than $100
- + Inexpensive development boards from SparkFun
- + Chips available in DIP and QFP for easier development.
AVR Butterfly
- + Same advantages as the AVR ATMEGA chips mentioned above
- + Built in display and input buttons including a joystick and serial port to program and use in controlling the device.
- + Inexpensive prototype board available from Smiley's to hold the Butterfly, add voltage regulation, and have a decent breadboard area.
MSP430 family specifically the 430F1213 and the 430F1611 which is way overkill but I have other interest in using this chip.
- + Parts are inexpensive, more powerful it's 16 bits instead of previous 8 bit CPUs, 48KB Flash, EEProm, 10K RAM, I2C, SPI, Serial
- + Free development software (C Assembler), inexpensive debugging tools.
- + Free Forth compilers available, runs Forth very efficiently due to it's 16 nature and it CPU architecture.
- + I own a copy of the ImageCraft Professional C compiler for the MSP430 family.
- + Even though DIP packaging is not available SparkFun has inexpensive header boards.
- + Inexpensive development boards available from SparkFun
- + I'm more familiarwith it than any other choice, this CPU has the most easy to work with instruction set, I love it.
- + I need to finish my optimizing Forth compiler for this CPU. (Fun Factor)
Which one I will use first? I'm not sure but I lean towards the Butterfly, since it will benefit a lot more people, but then there are probably a lot of people working on similar projects with the Butterfly already. The one I find more interesting is the PIC 18F2550, I have never worked with a PIC before and I'm wondering how easy it is to work with.
During the Holiday time off I'm trying to decide so I have been installing the different development systems, and I will be connecting my CPU prototypes to the PC and see which one is interesting and fun.