XE8000
- What is the XE8000 series ? >>>
- What is the "CoolRISC" 8-22 bit processor
core? >>>
- What is the value for the capacitor on the Vreg pin?
>>>
- What is the function of the RC oscillator? >>>
- A brief one liner in the documentation mentions 'the
real time clock'. I have an application that would make use of a real time
clock function. Can you explain the XE8000 series real time clock?
>>>
Sensing Machine
- What is the Sensing Machine ? >>>
- What is the ZoomingADC ? >>>
- Is it possible to start an AD conversion and then put
the CPU in halt mode until the IRQ from the ADC arrives? >>>
- What about the frequency response of the ADC?
>>>
- What is the input impedance of the acquisition chain
multiplexer when the channels are off? >>>
- If the input analog signal has changed during measurement
what result will the ADC give? >>>
- How fast can you do a 16 bit conversion? >>>
- How do I set the ZoomingADC for my sensor? >>>
- What is the speed of the ADC and what is the impact
on the resolution? >>>
- I believe that that the sampling rate depends upon the
resolution that you are getting from the converter. For a sampling frequency
of 4K, we can achieve 16 bits, and for 512K can we achieve 16 bits?
>>>
- Are the examples you provided the max speed that can
be achieved for 12-bit (4kS/s) and 16-bit (1kS/s) resolutions? >>>
- Can you detail accuracy for the ZoomingADC? Also
how do we do voice directly with the XE8000? >>>
Controller and compiler
- I have an application using the XE88LC01, in which I
will need to store a few bytes of calibration data that will need to be field
updateable. The system will have an RS 232 interface to the outside world.
What type of approach should I take for this? >>>
- I do not know how to place tabulated data in the program
ROM and whether it is generally possible to place data in the ROM?
>>>
- Support on C functions printf, puts, gets, and memory manipulation
commands for uC. >>>
1. What is the XE8000 series ?
The XE8000 series is a series of system-on-chips
characterized by an efficient 8 bit controller core, CoolRISC, numerous advanced
peripherals (fast UART, 16+10 bits ZoomingADC, prescaler) and MTP Flash memory.
It provides excellent solutions for sensing devices (industrial or consumer)
and radio systems. In particular it can directly connect to most Wheatstone
bridge sensors and it works perfectly with XEMICS XE1200 transceivers.
2. What is the "CoolRISC" 8-22 bit processor
core?
The processor core of the XE8000 series is a CoolRISC
8-22 bit. Also called CR816, it has separate data and instruction bus (so
called Harvard architecture). The data bus is 8 bits wide, the instruction
bus is 22 bits wide. Data and instruction are loaded in parallel during each
clock cycle, this is one of the reasons for its excellent computing efficiency:
30 bits of information are loaded inside the processor at each clock cycle.
This CoolRISC core also has a one clock cycle 8x8->16 bit multiplication
instruction. This is of course of importance for computing, and this is also
an advantage for coding tasks as one can operate a multiple positions shift
in one clock cycle. This instruction is also used in the compiler. Another
strong point of this CoolRISC core is its ability to always execute one instruction
per clock cycle, even when a conditional jump occurs.
3. What is the value for the capacitor on the Vreg
pin?
The capacitor value is 1uF. This value is needed to
ensure the accurate programming of the MTP flash. A value of 100nF is sufficient
for ROM versions.
4. What is the function of the RC oscillator?
RC is there to provide a high frequency clock. Its
exact frequency can be set by software to enable reliable communication. A
software (or hardware on certain circuits) DFLL is available that automatically
adjusts the RC oscillator frequency with respect to the crystal oscillator.
The software can be downloaded from our web site:
http://www.xemics.com/support/
5. A brief one liner in the documentation mentions
'the real time clock'. I have an application that would make use of a real
time clock function. Can you explain the XE8000 series real time clock?
Real Time Clock means that you always have a precise
clock base running and an interrupt that can be generated for a precise frequency.
For the XE88LC03 and other microcontrollers in the XE8000 family. This means
that the CPU can be in HALT mode and most peripherals OFF, and the prescaler
can be running and generating an interrupt either at 128 Hz or 1 Hz for a
power consumption less than 2 uA. When the interrupt is generated the CPU
is woken up, executes the interrupt code and goes into HALT mode again.
Sensing Machine
1. What is the Sensing Machine ?
The Sensing Machine is a smart single chip solution
for interfacing Wheatstone bridge sensors (or any other sensor generating
a voltage between a few uV to a few V). It is based on the award winning ZoomingADC
and has the CoolRISC 8 bit processor core with MTP Flash memory to manage
the sensor and the data.
2. What is the ZoomingADC ?
The ZoomingADC is the combination of 3 programmable
preamplifiers and an oversampled analog-to-digital converter. The converter
itself has a resolution of 16 bits, and each preamplifer has a programmable
gain that can be as high as 10. Therefore total gain can be up to 1000. This
makes possible to detect signal variations that are lower than 1uV. The preamplifier
can not only be programmed in gain, but also in offset, making it possible
to amplify a signal that has a large offset. Its name comes from the analogy
with a regular optical camera. The film sets the resolution of the camera,
and in order to have a higher resolution for one part of the scene, one uses
an optical zoom to zoom-in on the subject of interest. The ZoomingADC
does exactly the same. The ZoomingADC received the Grand Prize for 'best
of Sensor' during SensorsExpo in Anaheim (CA), May 2000.
3. Is it possible to start an AD conversion and then
put the CPU in halt mode until the IRQ from the ADC arrives?
I would like to do this to save power.
The HALT instruction only stops the CPU. So all peripherals can execute their
functions even when the CPU is in HALT. Yes, it is possible to set the CPU
in HALT and wait for the IRQ from the ADC. In addition you are right about
this requiring less power.
4. What about the frequency response of the ADC?
You can find the frequency response information in
the XE88LC05 data sheet. The data sheet is available on our web site under
the product page. In the Data sheet, there is a chapter about the frequency
response on page 22.
5. What is the input impedance of the acquisition chain
multiplexer when the channels are off?
The input impedance of the multiplexer when not used,
is going towards infinity. That means you should measure a few hundred MO
6. If the input analog signal has changed during measurement
what result will the ADC give?
The ADC has no sample and hold at the input. The result
will be an intermediate value of the different input samples used to generate
the output sample by the digital decimation filter of the ADC.
7. How fast can you do a 16 bit conversion?
The fastest 16 bits conversion is 1 kHz, or 2 kHz
without offset cancellation (NELCONV=1). It is a sigma-delta conversion, modified
to start with a reset of all integrators and filters (this makes channel changes
faster).
8. How do I set the ZoomingADC for my sensor?
The easiest way is to consider the min-max voltage
that your sensor can issue under extreme operating conditions. Then apply
the highest gain that does not saturate these extreme values and cancel the
mean offset. The fine calibration of each sensor is then made in software
using the good computing efficiency of the CoolRIDE processor core.
9. What is the speed of the ADC and what is the impact
on the resolution?
This answer must be given in several steps:
1) We use an over-sampled converter (like the "1-bit" converter
of your CD player).
2) This means that we have 2 different sampling rates:
a. input sampling and output sampling.
b. input sampling is much faster than output sampling.
3) For bandwidth computation, one must use the output sampling rate.
4) The output sampling rate depends on:
a. input sampling rate
b. resolution
c. way to reach this resolution
d. rejection of offset (yes or no)
5) Some settings that we often see in the field are:
a. Output sampling rate of 4kS/s for 12 bits resolution, offset rejection
on
b. Output sampling rate of 1kS/s for 16 bits resolution, offset rejection
on
6) All these output sampling rates are for a 500 kS/s input sampling rate
The information is given as a formula. The reason is that several parameters
influence the data rate and the resolution. This information is in chapter
14 of the XE88LC01/03/05 databook, under points 14.6.3 to 14.6.6. You will
find examples in the TN8000.05.
10. I believe that that the sampling rate depends upon
the resolution that you are getting from the converter. For a sampling frequency
of 4K, we can achieve 16 bits, and for 512K can we achieve 16 bits?
The digital resolution gets to 16 bits at 1 kHz output
sampling rate for 512 kHz input sampling rate (RC clock at 2 MHz). Noise level
may be higher than the resolution depending on the gain put in the amplifiers.
See the amplifier specification in the databook for complete information.
11. Are the examples you provided the max speed that
can be achieved for 12-bit (4kS/s) and 16-bit (1kS/s) resolutions?
You can go 2x faster if you don't use offset rejection
(Nelconv=0, Numconv=1). It is ok if you have an AC signal, or if you have
another algorithm to suppress DC. Otherwise it is the maximum speed.
12. Can you detail accuracy for the ZoomingADC?
Also how do we do voice directly with the XE8000?
The accuracy has to be defined before you can give
a value to it. Accuracy has several components: noise, reproducibility (or
fidelity), linearity, temperature drift and digital resolution.
- Noise is directly related to the resolution, and as we do not
have low frequency noise (offset is suppressed by an algorithm),
it can be as low as the final resolution of the ADC if you filter
the output signal. It can be 16 bits for a signal that is amplified
(therefore the 16+10 bits resolution)
- Reproducibility can be down to the noise level of the ADC
- Linearity is around 16 bits
- Temperature drift is a given in the databook (+/- 5 ppm/C for each amplifier
stage and for the ADC
- Digital resolution depends on the way you program the ADC. It is 12 bits
for an acquisition at 512 kHz, with offset compensation, and with 4 kHz output
sampling. It can be as high as 16 bits.
For toys, you can make telephone quality audio directly with the XE8000 using
the internal ADC and DAC. For example, if you don't need the offset cancellation
algorithm.
Controller and compiler
1. I have an application using the XE88LC01, in which
I will need to store a few bytes of calibration data that will need to be
field updateable. The system will have an RS 232 interface to the outside
world. What type of approach should I take for this?
The CoolRISC has Harvard architecture. That means
that the instruction bus (connected to the MTP) and the DATA bus (connected
to the RAM) are separated. There are 2 solutions:
1. Store the values in the low power RAM, and external to the micro have a
backup battery source to maintain the RAM. When in power down, put the micro
in sleep mode (no clock running). When the chip is in sleep mode the RAM,
the MTP and Low Power RAM are powered. If you do a reset all values in the
RAM, low power RAM and MTP are kept. The software developer needs to be careful
when writing his software because he needs to handle it as if it is a Power
On Reset or another reset source. At the POR the customer needs to initialize
all his software but, when another reset is issued, he doesn't need to initialize
his software anymore because has already done at the POR.
2. Use an external EEPROM that is accessed by I2C or SPI. This memory would
contain the calibration values. When one of these values is needed in the
software, the customer just needs to read the value from the EEPROM. This
solution requires the addition of another chip to the design. The I2C and
SPI EEPROMS are quite small.
2. I do not know how to place tabulated data in the
program ROM and whether it is generally possible to place data in the ROM?
Here is an example of how to place something in the
MTP or in the ROM:
#define TAILLE_TABLEAU 10
long alpha[TAILLE_TABLEAU];
char string[11];
int main (void){
// Initialisation du tableau
alpha[0] = 87;
alpha[1] = 268;
alpha[2] = 466;
alpha[3] = 700;
alpha[4] = 1000;
alpha[5] = 1428;
alpha[6] = 2145;
alpha[7] = 3732;
alpha[8] = 11430;
alpha[9] = 62235;
string[0] = 'h';
string[1] = 'e';
string[2] = 'l';
string[3] = 'l';
string[4] = 'o';
string[5] = ' ';
string[6] = 'w';
string[7] = 'o';
string[8] = 'r';
string[9] = 'l';
string[10] = 'd';
string[11] = '\0';
// Votre programme
...
}
main(void){
InitializeArray();
}
3. Support on C functions printf, puts, gets, and memory
manipulation commands for uC.
Under CoolRIDE you have a document called "C
Library". This document describes the different standard C functions
and explains the restrictions for the CoolRISC. The use of almost all of these
functions assumes that sufficient memory space is available. This means that
when you are using the microcontroller, it is possible that some functions
won't work because they need some RAM space that is being used by the customer
program. Functions that use the standard input/output like printf, puts and
gets have restrictions. These restrictions are mentioned in the "C Library"
document. printf and puts for example will work only if you use the CoolRIDE
debugger because we have implemented a standard output inside the debugger.
fscanf or gets for example will not work because there is no standard input
implemented. The microcontroller has no standard output/input. In the samples
directory under the CoolRIDE installation directory you have some examples
that use the printf function.
|