8 bit Co-processor Research

Seeed Studio:

Seeed Studio has asked that I put a link to their site on this blog.  I have used Seeed Studio Fusion service and I was/am satisfied with them. So I have added a link in the right hand column.

This Week:

I decided to research potential processors for the level converter circuit.

Wikipedia has a list of common microcontrollers. This is a good resource when looking for possibilities.  I will only look at a few processors from companies I am familiar with. If this co-processor chip is going to act as a level shifter, It needs to be able to drive and accept 5 Volts.


ST Microelectronics makes STM8 and STM32 lines of processors. I will look at the STM32 line next week when I research 32 bit controllers.

The STM8 line has many processors that have a max operating voltage of 5.5 Volts.  Of the processors that can operate at 5.5 Volts, the lowest operating voltage is 2.95 volts.  This might be high for some ARM systems I would want to support.  ST Microelectronics supports their devices very well on Mac and Windows.  There is a good open source compiler available for Linux called Small Device C Compiler(SDCC). The STM8 line of chips doesn’t have any built in USB capabilities. The STM8 is a possibility.


Continue reading


I am anticipating the new PCBs coming in soon, (I have a tracking number but it doesn’t show up with Hong Kong Post or USPS). In light of this, I decided to do a little research on the SPI RAM so that when it gets here, I can quickly write code to test the functionality of the design.  The SPI RAM I have chosen is a 23LC1024.  A common manufacturer of this chip is MicroChip, I downloaded their datasheet for this chip and started looking at the process to write to and read from the RAM.

Notes for writing to SPI RAM:

Maximum 20 Mhz Clock for all data transfers (might cause me to slow down the FLASH)

Write speed only limited by clock speed.

Write command(0x02) followed by 24bit address followed by data

Page Mode 32bytes before sending a new address

Sequential mode can fill the whole RAM

Write is terminated by CS going inactive(HIGH)

Notes for reading from RAM

Same maximum clock speed.

read only limited by clock speed.

Read command(0x03) followed by 24bit address start receiving/clocking data from RAM

Three modes of operation, Byte, Page, and Sequential.

Byte mode only allows reading/writing one byte before having to resend an address.

Page mode all data is accessed in pages of thirty two bytes. Not very useful for this project.

Sequential mode allows access to all of RAM as one big block that I can start accessing from any point. I need to set the mode register bits 7 and 6 to 01.

I am going to start in standard SPI mode, Make sure it is working then adjust the code to start taking advantage of the SQI interface.

Processor Option 2

The Microchip PIC32MX110F016B.

I went to Microchip’s website and worked through their parametric search tools.  I was looking for a device that could use the SPI interface at at least 10 Mbps and at the lowest cost.  There were no 8 bit parts that could meet the SPI requirement.  There were some 16 bit parts that could meet this requirement, but they were the high end parts.  I had to look into the datasheets to see the maximum SPI baud rate.  Since JTAG does not have 8 bit fixed width registers, I will probably have to play some tricks to use the standard SPI for JTAG operation.

Microchip PIC32MX110F016B

Device advantages

  • Two Fast SPI channels (1 for programming, 1 for data storage)
  • DMA transfers for each SPI channel– Frees software up to do data manipulation tasks
  • 5 V tolerant pins
  • I am familiar with Microchip and their IDE — MPLAB X
  • US $1.73 each in quantities of 100
  • Compatible upgrade path if this chip isn’t enough
  • Low pin count — 28 pins
  • Dip Part for prototyping

Device Disadvantages

  • I am unfamiliar with microchip 32 bit architecture
  • Limitations on free C compiler — mostly in optimization