33
Additional Information for PIC CVD and CTMU Demos PIC CVD and CTMU Demos 14 November 2011 Michael W. Mann HPMD 32-Bit Application Engineer

Additional Information for PIC32 CVD and CTMU Demos

Embed Size (px)

DESCRIPTION

-

Citation preview

  • Additional Information forPIC CVD and CTMU DemosAdditional Information for

    PIC CVD and CTMU Demos

    14 November 2011

    Michael W. MannHPMD 32-Bit Application Engineer

  • Real-Time Debugging To assist in debugging button/slider behavior,

    Microchip has provided Profilab GUI project for use on your PC

    Profilab is like LabView, but much cheaperhttp://www.abacom-online.de/uk/html/profilab-expert.html

    21/20/2012

    Standalone Windows mTouch GUI.exe allows use of GUI without purchasing Profilab

    Profilab projects can be customized to meet your debugging needs Plot average voltage and button voltage Model product front panel on a GUI tab

    Additional Information

  • Typical Bench-Top Setup

    REAL ICE Debugger

    mTouchEvaluationUSB Cable

    for board

    31/20/2012Additional Information

    PICKit Serial Analyzerinterface between PC and UART

    Interface Cable

    Sensor DaughterCard (8-Key)

    RJ-11 to ICSP Adaptor

    EvaluationBoardfor board

    power

  • PKSA-EVB J2 Interface Cable

    PKSA EVB PlugJumper Settings

    Most PIC32 PIC18F

    41/20/2012Additional Information

    TX

    Gnd

    Rx

    123456

    2 14 36 58 710 912 1114 1316 1518 17

    Footprint of J2 on EVB

    PKSAPlug

    EVB Plugto J2

    1 x 6 x 0.1

    2 x 9 x 0.1

    2 14 36 58 710 912 1114 1316 1518 17

    MostBoards

    2 14 36 58 710 912 1114 1316 1518 17

    PIC32 CTMU

    2 14 36 58 710 912 1114 1316 1518 17

    PIC18FCVD

  • Finding the .EXE GUI File

    GUI .EXE

    Standalone Project

    51/20/2012Additional Information

    GUI ProfiLabProject

    Microchip Application Library Project Directory

  • Setting Up GUI Com Parms

    Click here to launchConfiguration Window

    Click to Select COM Port

    61/20/2012 6Additional Information

  • mTouch GUI Screen 1/3Normalized Voltages for Buttons 1-4

    71/20/2012Additional Information

    For Matrix Keys Channels 1-3 are Columns 1-3

    For Matrix Keys Channel 4 Zerod Out

  • mTouch GUI Screen 2/3Normalized Voltages for Buttons 5-8

    81/20/2012Additional Information

    For Matrix Keys Channels 5-8 are Rows1-4

  • mTouch GUI Screen 3/3

    Prior Button Assert

    91/20/2012Additional Information

    Current Button Press Equivalent Slider Value

    Slider value not available with Matrix Keys

  • Voltage Plot Screen ControlsReset Min/Max for all Channels Maximum ADC Count

    Save voltageplot datato ASCII file

    Save allUART datato ASCII file

    Record orStop Recording

    Erase fileand startover

    Quit data collectionand exit GUI

    Delta = Max - Min

    101/20/2012Additional Information

    Stop Recording over

  • Configuring Voltage Plots

    IncreasingChannel 1 Line Width

    Right mouse click in plot

    window

    111/20/20121/20/2012

    Line Width

  • Plot Controls

    Record StopPrintPlot

    SavePlot

    Copy Plotto Clipboard Delta Time between samples

    Y Zoom +Zoom All

    Plot Settings

    121/20/20121/20/2012

    Y Zoom -

    X Zoom +

    X Zoom -

    Zoom All

    Reset ZoomScroll Back in Time

    Scroll Forward in Time

  • Profilab = LabView LiteParsing comma

    delimited UART

    text string

    Plotting Button Voltages

    Virtual Front

    131/20/2012Additional Information

    SavingButton

    Voltagesto Text Files

    Min/MaxDisplayedon Button

    Voltage Plots

    Front Panel on First GUI

    TAB

  • Parsing Comma Delimited Data

    Voltage Holds

    Block decodes comma delimited UART string into status and voltages

    Voltag

    es

    141/20/2012Additional Information

    Holdsfor Plots

    Voltag

    es

  • Scale and Plot Channels

    Virtual Front

    PlotScale macro scales ADCcounts into normalized Voltage

    151/20/2012Additional Information

    Virtual Front Panel on First

    GUI TAB

    Min/MaxDisplayedon Button

    Voltage Plots

  • Benchtop Setup for Differential with Pull-Ups Demo

    161/20/2012Additional Information

    Reference Signal on AN4

    Channel 1 onButton Signal

    100 Kohm Pull-up Resistors

    PICKit Serial Analyzerinterface between PC and UART

  • Close-Up of Differential Setup using Pull-Ups

    100 Kohm Pull-up Resistors

    Channel 1 on

    171/20/2012Additional Information

    Top side of pull-ups on reference pin (AN4)

    Reference Signal on AN4

    Channel 1 on Button Signal

  • Example Differential with Pull-Ups Scope Signals

    VPOSITIVEgoes downVNEGATIVE goes up

    Unasserted Asserted

    Ref. Pin Voltage Button Signal

    VNEGATIVEmeasurement

    VPOSITIVEmeasurement

    External pull-up charges button

    181/20/2012Additional Information

    goes up measurement

  • Timing of Diffl w. Pull-Ups

    0

    .

    7

    9

    u

    s

    e

    c

    s

    0

    .

    5

    5

    u

    s

    e

    c

    s

    Interrupts MaskedInterrupts Masked

    Reference Pin Voltage

    191/20/2012Additional Information

    V+V--

  • Benchtop Setup for Single-Ended or Differential w/o Pull-Ups Demos

    201/20/2012Additional Information

    Reference Signal on AN4

    Channel 1 on Button Signal

    PICKit Serial Analyzerinterface between PC and UART

  • Example Differential w/o Pull-Ups Scope Signals

    VPOSITIVE goes down VNEGATIVE goes up

    Unasserted AssertedReference Signal

    Button Signal

    V

    Multiple charge dumps fromADC SAH cap to button cap

    211/20/2012Additional Information

    VPOSITIVE goes down VNEGATIVE goes up

    VNEGATIVEmeasurement

    VPOSITIVEmeasurement

  • Differential w/o Pull-Ups Timings

    0

    .

    5

    8

    u

    s

    e

    c

    s

    1

    .

    0

    0

    u

    s

    e

    c

    s Interrupts Masked

    V+ V--

    221/20/2012Additional Information

  • Benchtop Setup for CTMU Measurements

    PICKit Serial AnalyzerScope probe on Button 8

    REAL ICE for debugging

    231/20/2012Additional Information

    PICKit Serial Analyzerinterface between PC and UART

    on Button 8

    UART TXpin on J2

  • Example CTMU Measurements

    Reference Signal *

    VPOSITIVEgoes down

    Unasserted Asserted

    241/20/2012Additional Information

    * Reference Signal: Interrupt masking, from asm(di) to asm(ei)

    InterruptsMasked

    (1.53 usecs)

    ADC Capture2.57 usecs

  • Perf. Metric: Interrupt Masking Duration

    All these examples were taken usingthe Direct Key daughter card, but with different CVD/CTMU Evaluation Boards

    Each application tuned to provide equivalent cap touch performance

    251/20/2012

    equivalent cap touch performance

    Additional Information

    Technique Vpos Vneg Vtotal

    Diff w/o Pull-Ups 0.58 1 1.58

    Diff w Pull-ups 0.55 0.79 1.34

    CTMU 1.53 n/a 1.53

    Interrupt Masking Durations [usecs]

  • Interrupt Masking Duration Workarounds

    What if interrupts wont accommodate these black out periods? Dont use asm(di) and asm(ei) to mask

    interrupts, set CapTouchMeas flag instead of asm(di), clear flag instead of asm(ei)

    261/20/2012

    asm(di), clear flag instead of asm(ei) ISRs set DumpMeasurement flag if ISR executes

    when CapTouchMeas is set Timer ISR dumps/ignores cap touch

    measurement when DumpMeasurement is set, then clears the flag

    Additional Information

  • PIC32MX2xx Starter Kit App CTMU Cap Touch on 4-channel slider

    Selects music Selects music volume

    Three switchesI2S I/F to CODEC

    271/20/2012

    I2S I/F to CODEC PMP I/F to 220x172 pixel TFT display SPI I/F to microSD music card Playback of 44.1 Ksps .WAV files

    Additional Information

  • PIC32MX2xx Starter Kit BoardMicroSD Memory Card

    CODECHeadphone

    Jack

    Switch Prompts

    220x172 TFT Display

    PIC32MX220F032D

    281/20/2012Additional Information

    3 Switches

    4 Channel Button/SliderSlider Display

    Button Prompts

  • PIC32MX2xx Starter Kit Display

    Button Prompts

    Button State: Asserted

    291/20/2012Additional Information

    Switch Prompts

    Slider Display

    Music Timing

  • Selecting Music 1/2

    301/20/2012Additional Information

    Button State: Pressed

  • Selecting Music 2/2Press Switch 3

    to Execute SelectionPress Switch 3

    to Execute Selection

    311/20/2012Additional Information

    Button State: Asserted

  • Cap Touch Tricks 1/2 Leave interpretation of button/slider status to the main

    application, only it knows context of the measurements!while(1){ // Update switches

    Switch1St8 = UpdateSwitch( 1, CheckSwitch1(), (char *)0 );Switch2St8 = UpdateSwitch( 2, CheckSwitch2(), (char *)0 );Switch3St8 = UpdateSwitch( 3, CheckSwitch3(), (char *)0 );

    // Update buttons/sliderif( ApplicationState != STARTUP &&

    mTouchCapStatus_Check( &CurrentButtonStatus, &CurrentButtonAsserts, &Temp ) ){

    321/20/2012Additional Information

    {mTouchUpdated = TRUE;

    if ( IgnoreSlider != TRUE ){

    SliderValue = Temp;UpdateSlider( SliderValue );

    }if ( IgnoreButtons != TRUE ){

    UpdateButton( 1,(CurrentButtonStatus >> 0)&0x1,(CurrentButtonAsserts >> 0)&0x1,(char *)0);UpdateButton( 2,(CurrentButtonStatus >> 1)&0x1,(CurrentButtonAsserts >> 1)&0x1,(char *)0);UpdateButton( 3,(CurrentButtonStatus >> 2)&0x1,(CurrentButtonAsserts >> 2)&0x1,(char *)0);UpdateButton( 4,(CurrentButtonStatus >> 3)&0x1,(CurrentButtonAsserts >> 3)&0x1,(char *)0);

    }}//end if( mTouchCheckStatus...

    switch( ApplicationState ){

  • Cap Touch Tricks 2/2 Only update screen after completion of button scan to

    prevent crosstalk between PMP screen pins and button inputs

    case FILE_PLAYING_SETUP:if ( mTouchUpdated == TRUE ) // Only update display when mTouch{ // has been updated and isn't running.

    UpdateSwitch(3,-1, "Pause" );UpdateSwitch(2,-1, "Stop" );UpdateSwitch(1,-1, "GoBack");

    331/20/2012Additional Information

    IgnoreButtons = TRUE;IgnoreSlider = FALSE;mTouchCapStatus_Reset(128);UpdateSlider(128);ApplicationState = FILE_PLAYING;

    }else // mTouch is still running don't do anything{

    ApplicationState = FILE_PLAYING_SETUP;}break;

    case FILE_PLAYING:PMADDRSET = 1