Cygnal
C8051F000
Mixed
Signal Processor

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.
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.
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.

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.

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.

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.
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.
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.

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.

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.

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.
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.
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.
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
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.
For more information http://www.cygnal.com
![]()