Friday, November 11, 2016

Chipstick - a diminutive MSP430 FRAM Forth Computer

Recovered from an accidental delete!

    Last week, I wrote about the $5 Forth Computer, and showed an early breadboard version using an MSP430FR2433 mounted on a prototyping adaptor and plugged into a breadboard.

    Well, I am pleased to report that the batch of 20 prototype pcbs have arrived back from the manufacturer earlier today and the build of the first unit is underway.

    The following pictures show the build sequence - starting from the bare pcb

    Top side of unpopulated ChipStick board - millimetre scale!
    Underside of ChipStick pcb with locations for SRAM and USB converter IC

    ChipStick with USB connector, regulator and MCU added

    The ChipStick design has the following features:

    1. MSP430FR2433 with 15.5K FRAM and 4K SRAM
    2. External SRAM or FRAM device connected via SPI on USCI B0
    3. CH340G USB to serial converter IC on detachable section of board
    4. 3V3 voltage regulator
    5. Reset Switch and User LED
    6. 20 Pin DIL footprint to allow insertion into G2 Launchpad socket.
    7. Programmable by SBW or BSL

    ChipStick - code loaded and Flashing LED (before sunrise)

    Next Time:

    Fast Forth - by Jean-Michel Thoorens

    This is an implementation of a Direct Threaded Code Forth, written in MSP430 assembly language.  It communicates with a terminal program TeraTerm, at 921600 baud.

    I have it running on an MSP430FR5739 - can I port it to the '2433 on te ChipStick?

  • 03/27/16--02:11: ChipStick - Applications
  • Introduction

    ChipStick is a tiny 16 bit microcomputer attached to a PC via a USB cable. It comes with up to 256K bytes of non-volatile memory - uniquely using ferro-electric memory.

    It has up to 16 accessible GPIO lines - which include a mix of SPI, I2C, UART, Timer and ADC channels.

    ChipStick may be plugged into a breadboard or stripboard and act as an intelligent programmable controller interfacing with other circuitry.

    ChipStick can also act as a Digital Debug Tool (DDT), with jumper wire attached, - used to debug/develop low voltage (3V3) target hardware.

    In each case, the extendable Scripting Language SIMPLEX may be tailored to the exact requirements of the user' application.

    ChipStick is based on non-volatile ferroelectric technology.  This means that your applications and any recorded data remain in memory even after power down.

    ChipStick may be extended in hardware to meet the requirements of the application - this is planned through both a series of larger expansion boards (based on low cost 50x50mm format) and stackable micro-modules that match the DIL 20 socket format.


    With these primary applications in mind, ChipStick has been designed to be as versatile as possible - within the constraints of the small footprint.

    As a debug tool, it is no bigger than a USB Stick - easily carrier around with essential hacking tools.

    I have designed it as a socketable component that can easily be added to a board - where a small amount of intelligence is required, or for bridging between sensor devices. It can also collect or send data to SPI devices and bridge that back to the PC via the UART channel.

    Equally, it could be used as a small test equipment device to exercise, monitor or control prototype hardware - it has 16 GPIO lines - including two full SPI ports. These can be attached to the target hardware, and using the SIMPLEX scripting language, the various target hardware can be exercised and data reported back to the PC.

    With the right SIMPLEX script, it can be used to transfer a hex, bin or ascii file from the PC to the target under development.

    The external memory may be used for sensing and datalogging applications, capturing waveforms, playing back arbitrary waveforms - as a signal generator.  The ADC channels may be used as a low bandwidth oscilloscope, test meter or for monitoring changing physical quantities in science experiments.

    ChipStick takes much advantage from the trend in modern sensors and peripherals to connect via the SPI or I2C bus. The MSP430FR2433 device provides up to 3 separate SPI buses.

    ChipStick can be interfaced to Wirelss and WiFi modules such as the RFM69 and the low cost ESP-01.

    Suitable sensors include accelerometers, gyroscopes, digital compass, temperature, pressure, loadcells etc.

    For basic GPIO operations - common shift registers may be used with the SPI bus such as the 74HC595 for 8-bits output - for driving LED arrays, the high power TPIC6B595 for driving stepper motors, and the 74HC165 for 8-bit inputs.

    Using a LED driver IC - such as the MAX7219 or AS1100 series - up to 8 digits or an 8x8 array of LEDs may be driven from the SPI port.

    OLED and LCD graphics displays may also be driven from SPI  with a couple of control signals.

    Educational Applications

    ChipStick as been designed with education and experimentation in mind.

    It can be used specifically to assist in the teaching of electronics, computer science and interactive coding.

    It is versatile enough to meet the needs of high-school and university undergraduates, plus simple enough meet the requirements of the maker and hacker community.

    The small size of ChipStick allows it to be used to give intelligence and connectivity in situations where other technology is just too bulky to fit - with the programmer section detached it is only 26.5 x 11mm - small enough to fit inside a 4x2 Lego block!

    It's low cost means that it can deployed in areas where other solutions might prove too expensive.

    Here are a few of the educational applications:

    Teaching Forth.

    Forth is an interactive language and can be best taught with hardware that creates a stimulating interactive environment.  This includes the use of LEDs, sound, touch and movement (such as stepper motors and servos).

    The MSP430 is a good fit for a "traditional" Forth machine - with 16 bit Von Neuman architecture.

    MSP430FR2433 with 16K FRAM and 4K RAM is reminiscent of the early minicomputers that Charles Moore would have first coded Forth onto in the late 1960s.

    I have added the external SPI memory - specifically so that users can experiment and learn about interpreted languages running on virtual machines. OK - single byte access to external RAM takes approx 30uS - but block access is 3uS per byte. ChipStick will come with a 128Kx8 external SRAM 23LC1024, or FRAM to special order.

    The SPI buses on the MSP430FR2433 allow expansion hardware like sensors and shift registers, LED & graphic display drivers etc to easily be added - with minimum of wiring.

    Teaching Coding

    ChipStick is not limited to Forth  - it is easily programmed in C with CCS or Energia, BASIC or in native MSP430 assembly language.

    Teaching Digital Electronics

    ChipStick can animate electronics in a low cost way not previously possible.  With a breadboard and a few LEDs and switches, ChipStick can form the central controller of many digital projects.

    It's ability to easily interface to displays, sensors and actuators allows it to make projects exciting.

    ChipStick can also be used to exercise digital electronics, and report results back to a PC for display on a graphical user interface. In teaching environments where real hardware may not be possible or practical - ChipStick can use virtual hardware and achieve most of the same educational aims.

    Making & Hacking

    As a result of it's low cost, ChipStick can be used in projects where other solutions may seem over expensive. Projects no longer need to be stripped down, to salvage the $20 Arduino for another purpose.  ChipSticks will be supplied in multi-packs at very low prices - so that the cost of the device is no longer seen to be a barrier to creativity.

    ChipStick is compatibe with Energia - an "Arduino Like" IDE. This allows an easy transition to the new device from familiar territory.

No comments: