Product Review

Cygnal C8051F000

Mixed Signal Processor

 

 

 


 


Introduction

C8051F000 processor from Cygnal is an 8051 compatible processor. It executes the same instruction set as basic 8051 and offers the same peripherals found on a standard 8051 microcontroller. But this is where the similarity ends. C8051F000 is the flagship product of a series of 51 compatible microcontrollers, designed for instrumentation and control applications. The F000 microcontroller contains a number of innovative features. Some of these are highlighted below.

 

Package

C8051F000 comes in a 64-pin TQFP package. Additional devices will be made available in smaller 48-pin and a tiny 32-pin package. The F000 processor is a low voltage device, with operating supply voltages ranging from 2.7 to 3.6 volt. The low voltage operation does not mean that the device is limited to low operating frequencies. These are devices are capable of operation to an upper frequency of 20 MHz.

 

Power-On Reset

Most microcontroller manufacturers have largely ignored the plea of system architects and have not provided any decent power-on reset circuit. They have considered it sufficient to provide a Reset pin requiring an external reset circuit. Microchip Technology have addressed this issue with their PIC line of microcontrollers and since have incorporated improved power-on reset. Cygnal has taken this issue a step further and provided an on-board and elaborate power-on reset circuit. F000 incorporates a power supply monitor, which ensures that uC properly comes out of power-on reset. In addition there are six other sources of reset.

 


 


Internal Clock Oscillator

Up until very recently, it has been taken for granted that every processor requires an external crystal for operation. F000 contains some very innovative features. As the microcontroller comes out of reset, an internal 1.9 MHz oscillator becomes the default source of oscillations. But, it can be changed to use an external crystal oscillator simply through a couple of lines of codes. This switch over can take place back and forth depending upon the system operations need. It is also possible to use just a capacitor or and resistor-capacitor combination to generate internal system clock. This feature allows a reduction in device power consumption.

 


 


Flash Memory

The F000 microcontroller contains 32Kx8 + 128 bytes of flash memory. The memory can be used both for code as well as non-volatile data storage. The programming can be done either through an external JTAG interface or in-system. JTAG is the only method of programming a brand new device. Flash memory can be programmed one byte at a time but memory cannot be erased on a byte-by-byte basis. Main Flash memory is divided into 512-byte sectors. Before programming even a single byte in any sector, the entire sector need to be erased. For non-volatile data storage, a special 128-byte sector is provided. This can be used for both code and data storage, but its small size is intended to be used for storage of operational coefficients. The small size allows the entire sector to be read into internal RAM. The Flash array can then be erased without any concern about the loss of information. Once in RAM, the pertinent coefficients can be changed and the entire 128-byte array can then be stored (programmed) back in the Flash memory. As is typical with most Flash based microcontrollers, the entire Flash array or selective sectors can be protected from prying eyes.

 


 


Analog Acquisition Unit

F000 microcontroller has a superior analog acquisition system. It contains an eight channel multiplexer (MUX), a programmable gain amplifier (PGA), and a 12-bit 100 KHz A/D converter. The MUX can be configured for four differential or eight single ended channels or any combination of these. If required, the channel configuration can be individually set on the fly, though in a real world this will seldom be done. The PGA can be set for any one of the six different gains: 0.5, 1, 2, 4, 8, and 16. Again the gains are software controlled and this arrangement provides a software programmable gain amplifier. With internal reference voltage of 2.4 volt and a PGA gain of 16 the full-scale input signal range is reduced to a mere 125-millivolt. If desired, the internal voltage reference can be switched off and an external reference source can be used.

 


 


The A/D converter (ADC) is a fairly fast with a maximum conversion rate of 100,000 conversions per second. The ADC clock is derived from internal system clock and the conversion rate can again be reduced through software, if so desired. The ADC requires triggering (setting the conversion start bit to be set) for every single conversion and it can be achieved in any one of the following four ways:

·         Through program code

·         Timer 3 overflow

·         External signal on a port pin

·         Timer 2 overflow

With the timer overflow modes, the ADC operation can be accurately timed, which is desired in digital control or wherever the nature of input signal waveform needs to be precisely determined. The 12 bits of conversion results are read as two bytes from the ADC result registers. Here again, there is flexibility in the way the conversion result is read. The ADC can be configured to provide the result left justified or right justified. With left justified mode the eight most significant bits can be read as a single byte and can be used in a fast control or acquisition mode.

 

Analog Window Detector

Programmable analog window detector is another innovative feature offered by C8051F000 microcontrollers. In industrial measurement and control application, sometimes it is critical to know that a physical parameter (signal) has crossed a certain threshold. F000 can be programmed to generate an interrupt, whenever the input signal exceeds an upper limit or dropped below the specified limit. It is difficult to say whether this measurement processor would have prevented the Chernobyl disaster, but it certainly would have helped.

 

Digital to Analog Converters

A true mixed signal processor contains some capability of generating an analog signal and F000 is not a disappointment. It contains two 12-bit digital to analog converters (DAC). Each of these converters can generate an analog output signal in the ranging from zero to reference voltage. These are low power devices, with each DAC capable of sinking a modest 300 micro-amp of current. Each of these two DACs can be operated in an 8-bit mode to permit fast update.

 


 


Analog Comparators

As if ADC window comparators were not enough, F000 incorporates another innovative feature. It contains two precision and programmable analog comparators. These are significantly different from the conventional comparators found on some microcontrollers. The two inputs of each of these comparators can be fed from external voltage sources in the range of ± 0.25 v. The output from a comparator can be used to generate an interrupt for microcontroller or can be channelled to an external port pin for interface to external world. In this case, the comparator can be made to operate independently and without any overhead on the microcontroller core. A further innovative feature allows programmable hysteresis (5, 10, or 20 mv) value to be added to each of these comparators.

 


 


Programmable Counter Array

Three timers as is the standard on 8052 microcontrollers are included on F000. Besides these standard timers a comprehensive 5-channel programmable counter array (PCA) is included. Each channel of PCA can be configured for 16-bit capture or compare operation. Besides capture and compare function, each channel can also be configured to operate in software timer, high-speed output, and PWM mode. The (common) clock signal for PCA array can be taken from an external clock source, Timer0 overflow, or it can be SYSCLK/4 or SYSCLK/12.

 


 


SCI, SPI, and IIC Communication Interface

A high-speed UART is included in F000 as a part of standard 8052 peripherals, but it contains capability for both SPI and SMBus (IIC compatible) synchronous serial communications busses. SPI transfer rate is limited to a maximum of one-eighth of system clock. It is a respectable rate considering the upper 20 MHz clock frequency for F000, but with a microcontroller of this refinement, one tends to expect better.   SMBus system is more elaborate and again allows transfer rate up to a maximum of one-eighth of system clock frequency. This rate is higher than the current state of IIC transfer rate, which is approaching >1 MHz. The F000 can be programmed to act as a slave or as the master on the bus.

 

Digital Crossbar – Port Input/Output

All the analog subsystems; the multiplexer, PGA, digital to analog converters, and analog comparators are directly connected to the external pins of F000, but all the digital resources of ports P0, P1, P2, and P3 do not have a direct connection to external world. This is where digital crossbar comes in. Digital crossbar as implemented on F000 is a small digital cross point (x-y) switching system.

 


 


All the digital resources exist in hardware but on power up from rest, the digital peripherals are not connected to physical pins of F000 microcontroller. It is the responsibility of system programmer to select the desired digital resources and connect these to external pins through digital crossbar. Even though, this process may sound very daunting, it is fairly simple and requires a couple (minimum) of lines of code. This provides an extreme flexibility in configuring the final F000 microcontroller. So, it is possible to have this microcontroller configured solely, as a single op-amp comparator (all analog functions are still available), which takes two analog inputs and generate a single digital output possibly with some hysteresis. Obviously, it will be an expensive comparator, but it does serve to illustrate the flexibility inherent in F000 design. This feature may not seem very useful for F000, which is housed in a 64 pin TQFP package, but its significance becomes very clear, when smaller 48 and 32-pin devices are considered.

 

JTAG (IEEE 1149.1)

An on-board emulation support is gaining popularity and doing away with external emulators and expensive development boards. F000 is no exception and contains a JTAG interface, which is fully compliant with IEEE 1149.1 specification. Four pins on F000 are dedicated for implementation of this JTAG interface. This interface allows very fast programming (read/write/erase) of the Flash memory. It also permits non-intrusive full speed in-circuit emulation.

 

Development unit

Cygnal has fully supported the C8051F000 microcontroller with a low cost ($99 US) development suit. It contains the emulation cartridge, Windows based IDE interface, and target PCB containing C8051F000TB plus all the cables and wall mounted power supply. The development Kit support the following debug/emulator features:

Run, Halt, Single-Stepping and Animate

            Set Hardware Breakpoints

            Inspect/Modify Memory and Registers

            Download Program Memory

 

Finally

F000 offers some innovative features and hopefully this trend will continue with newer versions. For future devices a short wish list is as follows:

·         Default crossbar configuration register (EEPROM). On power up the configurations should be read from this EEPROM location and stored in internal register (RAM). It should allow fast modification if required, but provide a stable power up configuration necessary in some industrial settings. Similar approach may be taken for some other configurations.

·         Improved crossbar configuration. It will define the pins to be used with digital peripherals irrespective of required resources. It will bring consistency to design.

·         Auto calibration of ADC subsystem

·         True PGIA for PGA.

 

Acknowledgement

 All the diagrams are the courtesy of Cygnal Integrated Products

 For more information http://www.cygnal.com

 

Reviewer: S. Gupta