QR_TOP  
 
 
 
 
 
 
 
 
Text Box: Back To 
Home Page
Text Box: This is a
QUICK_OVERVIEW
of How to use the 
ECCM Tools
 
   
   
   
 
Right Arrow: Links in this Page
 
   
   
   
   
   
   
 
   
     
   
   
   
   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 )      
           
        Text Box: Illustration of the ECCM concept :
Using SIMs to Automatically and Interactively create and Integrate code for an Embedded-Controller-System.
 
   
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.        
   
Text Box: RETURN TO THE TOP
 
 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 :    
Bevel: A scheduler that activate 3  independent periodic  ( programmable period  ) Events/Algorithms  … Algorithms that reside in an Algorithm-Generator module*  (see below about Algorithm-Generator)
Bevel: Capture Digital Inputs ( from Ports A,B,C,D,E) Process them , create new Digital Outputs and send them to any Port of the controller
Bevel: Select and capture 1 of 8 Analog Voltages ( Real-time-controllable by Algorithm-Generator* )  convert them to a Digital Value , and upon completion of the conversion activate other  Modules
Bevel: Obtain a Byte or Word value from other ECCM's modules and ( by using PWM) convert that value to an Output-Analog-Voltage.
Text Box:  Note : To see a similar system with 
 Multi-Feedback-Control-Loops and
  with external controls , please goto 
  page named "Design Examples" 
  and select PROJECT P14A .
Bevel: Capture a Pulse Train ( or a Single  Pulse)  from a pin of the controller chip , measure its Pulse-Width or Pulse-Interval and make that measurement available ( as a Word) to other  ECCM's Modules
Bevel: Generate a Pulse-Train ( or a Delayed Pulse) with  Pulse-Width and Pulse-Interval ( Real-time-controllable by Algorithm-Generator* ) … available to other hardware via a pin of the controller chip …..
 
   
     
     
     
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  .    
       
     
   
Text Box: RETURN TO THE TOP
 
   
           
           
           
           
         
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 .      
         
     
     
 
Text Box: RETURN TO THE TOP