PSK31/63 and Morse decoder firmware for the MSP430F1132/1232 controller
Author: Vojtech Bubnik OK1IAK / AB2ZA <bubnikv@gmail.com>
The package was released under the GNU GENERAL PUBLIC LICENSE, Version 2.

This package contains assembler source for the PSK/Morse decoder based on the MSP430 very low power architecture. The decoder is currently kitted by Steve Weber KD1JV.
http://kd1jv.qrpradio.com/decoder.pdf

The decoder runs multiple FIR filters on an architecture without hardware multiplier. FIR filters are designed and a highly optimized assembler code is generated by SciLab scripts stored in the scilab directory of this package. SciLab is freely downloadable from www.scilab.org

To generate the assembler code for the FIR filters, start SciLab console and type following lines:
cd ("your_decoder_source_directory\scilab")
exec ("msp430mors4.sce")

You will find the generated assembler code in the Decoder\scilab directory.


The pin assignment of the controller is as follows:


For the HD44780 compatible display (2x16 characters):

P1.0: 40kHz square to power the LCD backplane
P1.1: Audio in
P1.2: Battery measure
P1.3: Switch on the Launch Pad (Menu SW). Configured with internal pull-up.
P1.4: VREF+ out. Connect a 6k8/6k8 resistive divider to P1.1 (Audio In) and GND. This was made to get a good A/D bias even when powered directly from a battery, as a CR2032 cell or two alkaline AAA cells.
P1.5: Button Down. Configured with an internal pull-up resistor.
P1.6: LED on the Launch Pad: CW indicator
P1.7: Button Up. Configured with an internal pull-up resistor.

P2.0-P2.3: Display D4-D7
P2.4: Display RS
P2.5: Display Enable


For the Nokia 3110/5110 display:

P1.0: Button up. Configured with an internal pull-up resistor.
P1.1: Audio in
P1.2: Battery measure
P1.3: Switch on the Launch Pad (Menu SW). Configured with an internal pull-up.
P1.4: VREF+ out. Connect a 6k8/6k8 resistive divider to P1.1 (Audio In) and GND. This was made to get a good A/D bias even when powered directly from a battery, as a CR2032 cell or two alkaline AAA cells.
P1.5: Button Down. Configured with an internal pull-up
P1.6: LED on the Launch Pad: CW indicator
P1.7: Display RST

P2.0-P2.2: Unused. Configured as outputs
P2.3: Display CLK
P2.4: Display DIN
P2.5: Display DC

The display has CE connected to ground.

The buttons switch to ground. There are no external pull-ups required for the buttons and no debouncing capacitors are needed.

For the circuit of the HD44780 display bias (connected to the pin 8 of the MSP430F1232 on the old schematic), for the battery measure divider (pin 9), for the audio input filter & biasing circuit (pin 10) and for the linear regulator / LiPol charger, please consult the schematic at the last page of
http://kd1jv.qrpradio.com/decoder.pdf

If powered from unregulated battery or from regulator different from 2.7V, R10/R11 divider has to be replaced by two 6k8 resistors and the hot side of R10 shall be connected to VREF+ (P1.4 of the MSP430G2553).

If 32.768kHz crystal is used, then the CW filter is centered at 512Hz and PSK31/PSK63 decoding will not work.
If 40.000kHz crystal is used, then the CW filter is centered at 625Hz and PSK31/PSK63 decoding will work.

The source code is configured for the Nokia 3110/5110 display by default. For the HD44780 display, remove the leading semicolon from the following line of Decoder.asm.
; #define USE_HD44780
