|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QR_TOP |
|
| |
| |
| |
| |
| |
| |
| |
|
|
|
| |
|
| |
|
| |
|
| |
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
|
|
| |
|
| |
|
| |
|
| |
How to use ECCM and create Assembler code
for typical Embedded-Controller-Application ( in less than 4 hours each ) …
without manually writing code ( except example EX10) … |
|
|
| |
… Designing with the ECCM Tools is like
building with Lego blocks .... |
|
|
| |
| |
Copyright © 2009 ECCM |
|
|
| |
All the art , block diagrams and text
that is included in this page ( except when otherwise stated ) is ECCM
copyright . |
|
|
| |
However , by purchasing ECCM products
, some of this information can be used and sold by the customers of ECCM ( as
defined by the User License Agreement associated with each product ) . |
|
|
| |
| |
|
|
|
|
| ECCM_IS |
|
What
is ECCM ? |
|
|
| |
|
|
|
|
| |
|
ECCM stands for Embedded
Controller Code Maker. |
|
|
|
|
| |
|
ECCM is an interactive
code generator and a design environment
( software and interface hardware)
for Embedded Controller systems . |
|
|
|
|
| |
|
ECCM
outputs an Assembler code to be burned on a Microchip. |
|
|
|
| |
|
The Engineer/Programmer,
however, is not required to write a single line of Code , except as explained
next . |
|
|
|
| |
|
If needed , the user can
also Automatically integrate his/her existing code with the code of ECCM's
modules … see example EX10 below … |
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| ECCM_USERS |
|
Who
can benefit from ECCM ? |
|
|
| |
|
|
|
|
| |
|
In general , any
Engineer or Programmer or College Professor who would like to use ( or teach
how to use ) Embedded-Controllers
(EC) . |
|
|
|
|
| |
|
|
|
|
|
| |
|
Specifically : |
|
|
|
| |
|
[] |
An
Electrical Engineer ( unemployed or wishes to enhance his/her carrier
opportunities ) that would like to acquire ( in few weeks
) new expertise |
|
|
|
| |
|
|
allowing him/her to replace Electronic Hardware with Embedded-Controllers . |
|
|
|
| |
|
[] |
A programmer that would
like to venture into real-time programming for Embedded-Controllers and
acquire these new expertise in a short time . |
|
|
|
| |
|
[] |
A hand-on college
professor ( in the field of EECS) who wishes to offer a course in Real-Time
System-Design using Embedded-Controllers . |
|
|
|
| |
|
[] |
An experienced
Embedded-Controllers designer who wishes to complete the code much faster ...
( estimated as much as 4 times
faster) … |
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| QR_SYSTEMS |
|
What
can I do with ECCM ? |
|
|
| |
|
|
|
|
| |
|
Design
a small and economical electronic devices , using a
"microcontroller" ( one or more , made by the Microchip company
) that has no memory space for an
operating system . |
|
|
|
| |
|
----------------------------------------------------------------------------------------------------------- |
|
|
|
| |
|
For systems such as : |
|
|
|
| |
|
[] Digital-Controllers ( implementing
for example Feedback-controlled-loop with stability compensation network) . |
|
|
|
| |
|
[] Multi-Channel-Processing system (
implementing for example Digital-Filters ) . |
|
|
|
| |
|
[] Industrial/Process Controllers
... |
|
|
|
| |
|
[] Equipment Controllers ... |
|
|
|
| |
|
[] Military expendable devices … such
as ammunition, decoy , and
ground-motion-detections … |
|
|
|
| |
|
[] Appliances , car control , and toys |
|
|
|
| |
|
----------------------------------------------------------------------------------------------------------- |
|
|
|
| |
|
For Category of
Applications ... solutions to Hardware or Software requirement , such as : |
|
|
|
| |
|
[] Analog-to-Digital and
Digital-To-Analog Conversion |
|
|
|
| |
|
[] Real-Time-Event-Scheduling |
|
|
|
| |
|
[] Clocks and Timers
|
|
|
|
|
|
| |
|
[] Pulse-Capture and
Pulse-Generate |
|
|
|
| |
|
[] Digital-Filtering
|
|
|
|
| |
|
[] Creating Math-Equations, and
Software-Algorithms |
|
|
|
| |
|
[] Creating a Multi-Processing system (
1 Master-cpu and up to 8 Slave-cpus ) |
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
|
| ECCM_TOOLS |
|
The ECCM Tools … quick
overview… |
|
|
| |
|
… Designing with the ECCM Tools is like
building with Lego blocks .... |
|
|
| |
|
|
|
|
| |
|
ECCM
provides 3 Software/Hardware Design
and Development tools : |
|
|
|
|
| |
|
[] Design Tool 1 : …. named ECCM
Modules … |
|
|
|
|
| |
|
|
An Interactive-Tool, that allows a designer
to create (automatically, by a click on a button) code for Software/Hardware-Integrated-Modules
(SIMs). |
|
|
|
|
| |
|
|
That tool “asks the designer questions” and
according to the answers creates the final code for that SIM . |
|
|
|
|
| |
|
|
ECCM provides a family of SIMs for numerous
software and hardware applications . |
|
|
|
|
| |
|
[] Design Tool 2 : ... named ECCM
Integrator ... |
|
|
|
|
| |
|
|
A software integration Tool , that allows a
designer to Automatically Integrate the code of all his SIMs and create the
System’s code . |
|
|
|
|
| |
|
|
The only information that the designer
needs to provide ECCM-Integrator is the interconnection list (named
WIRE_LIST) between the SIM's . |
|
|
|
|
| |
|
|
The WIRE_LIST is a 2 column table that
define the connections between the output-ports and the input ports of the
SIM's. |
|
|
|
|
| |
|
[] Design Tool 3 ... named ECCM's
Digital-Filter-Design-Tool ... |
|
|
|
|
| |
|
|
This tool is used for the implementation of
Digital-Filters and "Compensation-Networks". |
|
|
|
|
| |
|
|
Allows the designer to specify the
performance of Digital-Filter and accordingly obtain the
Filter-Coefficient-Values. |
|
|
|
|
| |
|
|
These Filter-Coefficient-Values are
provided to existing SIMS that automatically create the code for the
Digital-Filters. |
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| EXAMPLES |
|
Typical Application
Examples … that can be easily combined ( with each
other ) by ECCM ... |
|
|
| |
|
How to use ECCM and create the Assembler code for
typical Embedded-Controller-Application ( in less than 4 hours each ) … without manually writing a single line of
code , except example EX10 … |
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
Located below are 12 links (
tabs) . |
|
|
|
| |
|
Each link leads to a
page that depicts the steps ( when using the ECCM Tools ) to create the
Assembler code for that Application-Example |
|
|
|
| |
|
… all the code creation is accomplished by
"Answering Questions" , clicking on buttons or cells , and
providing a WIRE_LIST … |
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
Click below ( on each
Example's tab ) to see how to create the code ( by ECCM's tools ) for that
Application-Example : |
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
| Example 1 |
>> |
|
|
| |
|
|
| |
|
|
| Example 2 |
>> |
|
|
| |
|
|
| |
|
|
|
|
| Example 3 |
>> |
|
|
| |
|
|
| |
|
|
| Example 4 |
>> |
|
|
| |
|
|
| |
|
|
| Example 7 |
>> |
|
|
| |
|
|
| |
|
|
| Example 9 |
>> |
|
|
|
|
| |
|
|
| |
|
|
|
|
| Example 10 |
>> |
|
|
|
|
| |
|
|
| |
|
|
|
|
| Example 10 |
>> |
|
|
|
|
| |
|
|
| Example 8 |
>> |
|
|
| |
|
|
| |
|
|
| Example 8 |
>> |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| Example 6 |
>> |
|
|
| |
|
|
| |
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| ALGO_GEN |
|
* |
ECCM's Algorithm-Generator
modules : |
|
|
|
|
| |
|
|
… A module that can
control and monitor ( in real-time ) all the other modules … |
|
|
|
|
| |
|
[1] |
ECCM provides a type of
module ( named : Algorithm-Generator) that allow the designer to easily
create |
|
|
| |
|
|
( by clicking or double clicking on code
templates ) code in high-level-language . |
|
|
| |
|
|
This
high-level-language is similar to the Basic Language ... named here Basic-Like language |
|
|
| |
|
|
After
creating the code in Basic-Like language , the ECCM Modules Tool converts that code to Assembler code ( by a
click on a button) . |
|
|
| |
|
|
ECCM provides the
following 3 Algorithm generator SIMs : |
|
|
| |
|
|
SIM S180A provides Operation on Bits , and
Bytes |
|
|
| |
|
|
SIM S190A provides Operation on Bits ,
Bytes , and Words |
|
|
| |
|
|
SIM S196A provides Operation on Bits ,
Bytes , Words , and Floating-Point-Numbers |
|
|
| |
|
|
|
| |
|
[2] |
Following are the
operations that can be performed by the Assembler Code of the Algorithm-Generation SIMs: |
|
|
| |
|
|
Operation
on Bits, Bytes, Words and subroutine calls as listed below: |
|
|
| |
|
|
--Statements (on Bytes or
Words ) : Do_Loop , Select_Case , If_Then , Goto . |
|
|
| |
|
|
--Math Operators (on
Bytes or Words ) : Plus (+) , Minus (-) , Mul (*) , Div (/) . |
|
|
| |
|
|
--Logical Operators (on
Bytes or Words or Bits ) : And , Or , Xor , Not . |
|
|
| |
|
|
--Assign operator
(=) ... (on Bytes or Words or Bits )
. |
|
|
| |
|
|
--Subroutine Call
statements via the output ports of the SIM . |
|
|
| |
|
|
|
| |
|
|
Floating-Point-Function
applied to Floating-Point-Numbers (named
Floats) such as: |
|
|
| |
|
|
-- Math Operators (on
Floats) : Plus , Minus , Multiply , Divide . |
|
|
| |
|
|
-- Float Conversion
functions : Word-to-Float , Float-To-Word (signed and unsigned). |
|
|
| |
|
|
-- Trigonometry functions
(on Floats) : Sin , Cos , Tan , ArcSin , ArcCos , ArcTan . |
|
|
| |
|
|
-- Exponential/Log (on
Floats) : x = y1^y2 , x = Sqrt(y) , x
= Log10(y) . |
|
|
| |
|
|
-- General Functions (on
Floats) : x = Mod(y1,y2) , x = Quotient(y1,y2). |
|
|
| |
|
|
-- Min_Max functions (on
Floats) : x_min , x_max =
min_max(y,n,N) . |
|
|
| |
|
|
-- Statistical functions
(on Floats) : x_mean , x_stdev = mean_stdev(y , n , N ) . |
|
|
| |
|
|
-- Digital Filter Function (on Floats) : y = Filter(x , a0 , a1
, a2 , b1 , b2
, k) . |
|
|
| |
|
|
where
y(n)=k[a0*x(n)+a1*x(n-1)+a2*x(n-2)] -[b1*y(n-1)+b2*y(n-2)] |
|
|
| |
|
|
and a0, a1, a2, b1, b2 are the digital-filter-coefficients . |
|
|
| |
|
|
|
| |
|
|
| |
|
|
| |
|
|
Note 1 : |
If needed , the code of
each of these Application examples can be combined with the code of one or more of the other Application examples (
or with any other code generated by the ECCM Tools ) |
|
| |
|
|
without writing any additional code and
within less that 2 hours … see Note 2… |
|
|
| |
|
|
How ? By creating a combined WIRE_LIST (
replacing the individual WIRE_LISTs ) and activating the ECCM Integrator
tool ( by a click on a button) . |
|
|
| |
|
|
|
| |
|
|
"Example
Projects" that combine
block-diagrams of these 12 Examples |
|
|
| |
|
|
For more comprehensive
Design-Examples that combine block-diagrams
of these 12 Examples … by combining the WIRE_LISTs … |
|
|
| |
|
|
please refer to the top of the HOME_PAGE
> Click on the tab named : "Design Examples" > then select
one of the following "Example Projects" : |
|
|
| |
|
|
[] A closed-loop-control-system ( capable
to control the bias-current to a laser-diode) |
|
|
| |
|
|
[]
A Car-Display-System |
|
|
| |
|
|
[] A Range-Finding-System |
|
|
| |
|
|
[] A Time-And-Date-Generator
|
|
|
| |
|
|
|
| |
|
|
Each of these
"Example Projects" contains detailed block diagram of the Software
and Hardware , Lists of Items , formulation , and the WIRE_LIST . |
|
|
| |
|
|
|
| |
|
|
| |
|
|
| |
|
|
Note 2 : |
It is assumed that the
designer is already familiar with the ECCM tools . Typical initial learning time of the ECCM tools is
estimated to be 1-2 days . |
|
|
| |
|
|
|
| |
|
|
| |
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
| DOING_NEXT |
|
What to do next with my
Assembler Code ( MY_SYSTEM_CODE.asm )
…. Simulating , or Emulating , or Downloading into the EC
chip … |
|
|
| |
|
|
|
|
| |
|
|
|
|
|
|
| |
|
[] |
I can Assemble and
simulate , or emulate , MY_SYSTEM_CODE.asm
, by using the MPLAP IDE tool
that is provided ( free) by
the Microchip company . |
|
|
|
|
| |
|
|
With the MPLAP IDE , I can verify most of the Software ( and
Hardware) features of
MY_SYSTEM_CODE.asm |
|
|
|
| |
|
|
|
|
| |
|
[] |
To
built a Hardware prototype , I can purchase
from Microchip , a low-cost Demo-Board and In-Circuit debugging device |
|
|
|
| |
|
|
consisting of these 2
items : |
|
|
|
| |
|
|
Part Number :
DM164120-2 - PICkit 2 44-Pin Demo
Board |
|
|
|
| |
|
|
Part Number :
DV164121 - PICkit 2 Debug Express |
|
|
|
| |
|
|
|
|
| |
|
[] |
I can download
MY_SYSTEM_CODE ( obtained by Assembling MY_SYSTEM_CODE.asm by MPLAB ) into
the EC chip located on the Demo Board . |
|
|
|
| |
|
|
I can also use that Demo
Board to prototype my other hardware components and test how they interface
with the Embedded-Control (Hardware and Software) |
|
|
|
| |
|
----------------------------------------------------------------------------------------------------------- |
|
|
|
| |
|
|
Note : |
|
|
|
| |
|
[] |
Upon activating any of
the ECCM products , they direct the
user to tips of how to find and download MPLAB IDE and |
|
|
|
| |
|
|
how to Assemble and Simulate
MY_SYSTEM_CODE.asm with MPLAB IDE |
|
|
|
| |
|
|
|
|
|
| |
|
[] |
Alternatively , the user
can go directly to the website of the Microchip company ( www.Microchip.com ) and obtain substantial Design aids ( downloads , tutorial ,
Application examples , etc. ) |
|
|
|
| |
|
|
The Microchip company
offers many chip families , where each family contains many different chip . |
|
|
|
| |
|
|
|
|
| |
|
[] |
A student or an entry
level Engineer or a Programmer my be slightly overwhelmed by the amount of
information available at that website and by all the design options that
these chips provide . |
|
|
|
| |
|
|
For
that reason , ECCM concentrated on a more specific chip family , typically
referred to by the Microchip company as "Mid-Range
Microcontrollers" . |
|
|
|
| |
|
|
|
|
| |
|
[] |
The
ECCM tools are specifically suited
for chip family PIC16XXX |
|
|
|
|
| |
|
|
… which we believe is a very popular chip
family , especially suited for low-cost and low size applications . |
|
|
|
| |
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
| |
|
| |
|
| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|