New Peripherals Tips 'n Tricks

New Peripherals Tips ‘n Tricks
The Complementary Waveform Generator (CWG), Configurable Logic Cell
(CLC), and the Numerically Controlled Oscillator (NCO) Peripherals
TIPS ‘N TRICKS INTRODUCTION
Microchip continues to provide innovative products that
are smaller, faster, easier to use and more reliable.
Flash-based PIC® MCUs are used in a wide range of
every day products from smoke detectors to industrial,
automotive and medical products.
The PIC16(L)F150X and PIC10(L)F32X families of
devices with on-chip configurable logic cells, merge all
the advantages of the PIC MCU architecture and the
flexibility of Flash program memory, with the functionality of a configurable digital logic cell. Together, they
form a low-cost building block with resource savings
and external component reduction.
The flexibility of Flash and an excellent development
tool suite, including a low-cost In-Circuit Debugger, InCircuit Serial ProgrammingTM (ICSPTM) and CLC Configuration Tool GUI, make these devices ideal for just
about any embedded control application.
TIP 1: EXTENDING AUTOSHUTDOWN CONDITIONS/INPUTS
FOR THE CWG
Have you ever found yourself in a situation where your
PWM application needs more auto-shutdown conditions, other than the software driven ones, due to
resource limitations? Here is a solution. The
Complementary Waveform Generator (CWG) has two
auto-shutdown condition inputs: the CWG1FLT pin for
external conditions, and the output from the Configurable Logic Cell (CLC), LCxOUT -> LC2OUT. Use the
CLC to your advantage. By selecting the CLC output as
an auto-shutdown source, all of the inputs to the CLC
are available as auto-shutdown conditions for your
CWG (Figure 1).
The following Tips ‘n Tricks can be applied to a variety
of applications to help make the most of digital logic
functions using a PIC MCU with on-chip configurable
logic.
FIGURE 1:
EXTENDING THE CWG’S AUTO-SHUTDOWN SOURCES
Clock Sources
CWG1A
Input Sources
CWG
(PIC16(L)F1509)
CWG1B
Shutdown Sources
CLC2IN0
CLC2IN1
C1OUT
C2OUT
FOSC
TMR0IF
TMR1IF
TMR2=PR2
LFINTOSC
ADFRC
PWM1OUT
PWM2OUT
 2012 Microchip Technology Inc.
CWGFLT pin
C1OUT
C2OUT
LC2OUT
DS41632B-page 1
New Peripherals Tips ‘n Tricks
TIP 2: DRIVING A HALF-BRIDGE OR A
FULL-BRIDGE DRIVE CIRCUIT USING
THE CWG
Do not think a high pin count microcontroller is needed
to drive a half-bridge or full-bridge motor drive circuit. It
can be done using the PWM in conjunction with the
CWG module.
FIGURE 2:
Setup the PWM module to output the desired drive
signal to the CWG input. Now, configure the CWG to
output the drive signal, and its complement, with the
appropriate dead-band delay, to provide for non-overlapping output signals that drive the motor drive circuit,
thus preventing shoot-through current. See Figure 2 for
an illustration of a CWG driving a full-bridge drive
circuit.
CWG DRIVING A FULL-BRIDGE DRIVE CIRCUIT
V+
CWGxA
Load
CWGxB
DS41632B-page 2
 2012 Microchip Technology Inc.
New Peripherals Tips ‘n Tricks
TIP 3: MEASURING DC MOTOR
SPEED AND POSITION USING A
QUADRATURE DECODER
Sensing motor position requires a second LED and
photo detector. The second sensor pair is mounted so
the output pulse is 90° out of phase from the first pair.
The two outputs represent the motion of the encoder
disc as a quadrature modulated pulse train.
Rotary encoders are typically used to provide direct
physical feedback of motor position, and/or speed. A
rotary encoder consists of a rotary element attached to
the motor that has a physical feature, measured by a
stationary component. The measurements can yield
motor speed and sometimes can provide a motor position. Rotary encoders are built using many different
technologies. The most common type is an optical
rotary encoder. The optical rotary encoder is used in
computer mice that have a ball. It is built with an
encoder disc that is attached to the motor. The encoder
disc has many radial slots cut into the disc at specific
intervals. An LED and a photo detector are used to
count the slots as they rotate. The speed of rotation can
be determined by timing the rate of the slots’
revolutions.
FIGURE 3:
In this application example, the PWM module is used to
generate a signal, controlled by an external potentiometer, then configuring it as an input to the CWG to drive
a motor drive circuit. As the motor turns, spinning a disk
with slots cut into it allowing light from a LED to shine
through and on two photo transistors (A and B). As the
light hits the photo transistors, a logic ‘0’ is read on the
input pin of the microcontroller. Therefore, as the input
from photo transistor B is read into the microcontroller,
the time calculated between every other falling edge
(via Timer1 gate) of the input pulse signal corresponds
to the speed of the motor. Now, with photo transistor A
90° from transistor B, you can determine the direction
of the motor by using the CLC to determine which
photo transistor was turned on first. See Figure 3.
QUADRATURE DECODER SIMPLIFIED SCHEMATIC
PIC16F1508
LCD
CWGxA
CWG
POT
VDD
VDD
MSSP
CWGxB
Driver
Circuit
M
A
B
PWM
CLC
T1G
 2012 Microchip Technology Inc.
DS41632B-page 3
New Peripherals Tips ‘n Tricks
TIP 4: MANCHESTER DECODING
USING THE CLC AND NCO
you are decoding. Next, configure the CLC2 to XOR
the non-inverted output of CLC1 with the encoded data
signal from the input of CLC1. See Figure 6. This XOR
output establishes the positive edge to which the output
data is derived. Use this XOR output to clock the CLC3.
See Figure 7. Setup CLC3 using a logic high input and
output CLC3 to the input of CLC4, which AND-Ors it to
the internal oscillator frequency (FOSC) of the
microcontroller and the clock out signal from the NCO.
If a EUSART can be used for Manchester encoding, a
Configurable Logic Cell (CLC) and a Numerically Controlled Oscillator (NCO) can be used for Manchester
decoding.
This tip presents a method to decode a Manchester
encoded signal using four CLCs and the NCO to
separate the SPI data signal from a SPI clock signal.
See Figure 4. After selecting a microcontroller with four
CLCs and an NCO, such as the PIC16F1509, configure
the CLC1 to input the Manchester encoded data signal
into a D flip-flop that is clocked by the inverse of the
clock out signal that you are separating. See Figure 5.
The inverted output of this flip-flop is the output data
FIGURE 4:
See Figure 8. The output signal of CLC4 is then used
to clock the NCO accumulator. This makes the NCO
output signal the clock frequency to establish the
proper timing (the beginning and end of the data signal)
to decode the data output signal. See Manchester
Decoder Signal Diagram (Figure 9).
MANCHESTER DECODER SIMPLIFIED BLOCK DIAGRAM
CLC1
CLC2
CLC3
CLC4
Data Output
Data Input
D
S
Q1
D
S
Q2
FOSC
R
R
Code Reset
NCO
Clock Out
NCOCLK NCOOUT
DS41632B-page 4
 2012 Microchip Technology Inc.
New Peripherals Tips ‘n Tricks
FIGURE 5:
CLC1 SETUP
FIGURE 6:
CLC2 SETUP
 2012 Microchip Technology Inc.
DS41632B-page 5
New Peripherals Tips ‘n Tricks
FIGURE 7:
CLC3 SETUP
FIGURE 8:
CLC4 SETUP
DS41632B-page 6
 2012 Microchip Technology Inc.
New Peripherals Tips ‘n Tricks
FIGURE 9:
MANCHESTER DECODER SIGNAL DIAGRAM
1
1
0
0
1
1
Data Input
Q1
Data Input (xor) Q1
Clock Out
 2012 Microchip Technology Inc.
DS41632B-page 7
New Peripherals Tips ‘n Tricks
RESOURCES
[1] Configurable Logic Cell (CLC) Configuration Tool
User’s Guide, DS41597 at www.microchip.com
[2] Configurable Logic Cell (CLC) Configuration Tool
GUI software at www.microchip.com
[3] Device data sheet for the specific device you are
using, at www.microchip.com
DS41632B-page 8
 2012 Microchip Technology Inc.
Note the following details of the code protection feature on Microchip devices:
•
Microchip products meet the specification contained in their particular Microchip Data Sheet.
•
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•
Microchip is willing to work with the customer who is concerned about the integrity of their code.
•
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights.
Trademarks
The Microchip name and logo, the Microchip logo, dsPIC,
KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART,
PIC32 logo, rfPIC and UNI/O are registered trademarks of
Microchip Technology Incorporated in the U.S.A. and other
countries.
FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
MXDEV, MXLAB, SEEVAL and The Embedded Control
Solutions Company are registered trademarks of Microchip
Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, BodyCom,
chipKIT, chipKIT logo, CodeGuard, dsPICDEM,
dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
logo, MPLIB, MPLINK, mTouch, Omniscient Code
Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
PICtail, REAL ICE, rfLAB, Select Mode, Total Endurance,
TSHARC, UniWinDriver, WiperLock and ZENA are
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2012, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
ISBN: 978-1-62076-531-9
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
 2012 Microchip Technology Inc.
Microchip received ISO/TS-16949:2009 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
DS41632B-page 9
Worldwide Sales and Service
AMERICAS
ASIA/PACIFIC
ASIA/PACIFIC
EUROPE
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://www.microchip.com/
support
Web Address:
www.microchip.com
Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Japan - Osaka
Tel: 81-66-152-7160
Fax: 81-66-152-9310
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Cleveland
Independence, OH
Tel: 216-447-0464
Fax: 216-447-0643
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Indianapolis
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
China - Beijing
Tel: 86-10-8569-7000
Fax: 86-10-8528-2104
China - Chengdu
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
China - Chongqing
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500
Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
China - Hangzhou
Tel: 86-571-2819-3187
Fax: 86-571-2819-3189
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
Taiwan - Hsin Chu
Tel: 886-3-5778-366
Fax: 886-3-5770-955
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-330-9305
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
China - Xiamen
Tel: 86-592-2388138
Fax: 86-592-2388130
China - Zhuhai
Tel: 86-756-3210040
Fax: 86-756-3210049
DS41632B-page 10
Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
11/29/11
 2012 Microchip Technology Inc.