LPC23xx Family
| |
Question: Can I run codes from the Ethernet RAM or USB SRAM memories? |
| |
Unfortunately,
it is not possible to execute codes from these memory areas. However,
when not in use, it is possible to store data on these memories and
handle them with a code executed from Flash or RAM memory. That’s a
good alternative to save memory from RAM or Flash to store arrays,
definitions and so on.
|
| |
Question: Sometimes, when using nestling interrupts and MAM simultaneously, my solution gets unsynchronized. Why? |
| |
The
execution of MAM can cause a time distortion, and it is due to the fact
that the MAM engine is susceptible to word alignment. It is nothing but
a feature from MAM. It can make a “lower priority” task can be
distorted by a “higher priority” task being executed at the same time.
Furthermore, the "highest priority" will always be concluded in time,
regardless if the "lower priority" needs to be executed or not. Our
suggestion is to avoid nesting interrupts and use MAM at the same time.
And while writing the code, if a word alignment is present, use dummy
code to avoid it.
|
| |
Question: I need an
I2C communication speed in order to 400kHz. Is it possible to make with a LPC2378? |
| |
Sure!
With LPC2378, it can be reached I2C speeds up to 400kHz, as we can find
at datasheets. However, some tests revealed I2C speeds in order of
480kHz, depending on the configuration 
FCLK = 57.6MHz, PCLK = 14.4MHz |
I20SCLH| I20SCLL |
SCL calculated (kHz) |
SCL measured (kHz) |
0x80 | 0x80 |
56, 25 |
~56,25 |
0x1C | 0x1C |
255,172 |
~257,3 |
0x11 | 0x11 |
423,529 |
~425,4 |
0x10 | 0x10 |
450 |
~446.3 |
0x0F | 0x0F |
480 |
~480,7 |
|
| |
Question: Is an assembler code executed at the same way of a C code? |
| |
Depending
on the compiler, the Assembler and C codes can be executed differently.
When using Assembler code, most of compilers doesn’t make any kind of
optimization and generates the Machine File (.HEX or .AXF, of another)
just as it is written – checking only if the syntax is correct. When
Compiling C codes and generating the machine files, the compiler makes
an optimization and can find the best behavior for the microcontroller
it is being working with. Due to these features, sometimes it is
possible to observe two codes written in Assembler and C and executing
the same task, where the C code’s task is being executed faster than
the Assembler code’s.
|
| |
Question: I am currently using several FIQs and I got a problem of latency. Why is it happening? |
| |
When a single FIQ is used, no extra operations are needed to
make it work. But when two or more FIQ are being used, VIC sums all requests
(enlarging latency) to generate a FIQ signal to ARM processor. It is not
mandatory to use a single FIQ but, in order to achieve the minimum latency, you
have to use as few FIQs as possible.
|
If you have other questions that you would like answered, please contact us.
|