Zilog ZMOTION user manual

Application Note
ZMOTIONTM Detection Module Application Walkthrough
AN030701-0810
Abstract
This application note describes in detail the application code associated with the ZMOTION Detection Module and how it can be used for detection and cont rol applications. The ZMOTION Detection Module can be used either in Hardware Mode or Serial Mode. In the Hardware Mode, you use the hardware circuit selecti on for sensitivity adjustments, delay time settings, ambient light settings, and Sleep Mode. In the Serial Mode, you can use the UART interface to fine-tune the ZMOTION Detection Module with advanced configuration settings.
Note: The application code (AN0307-SC01) associated with this application note has been tested with
ZDS II—Z8 Encore! version 4.11.0.
ZMOTION Overview
Zilog’s ZMOTION Detection Module is a complete, compact, and easy to interface solution for motion detection and direction. It is designed using an Enhanced Passive Infrared (ePIR) technology and Zilog’s Z8FS04 Motion Detection MCU with a powerful embedded software engine that delivers high-performance motion detection. Figure 1 on page 2 shows the location of the pins on the ZMOTION Detection Module.
Table 1 on page 2 describes the pin functions.
Copyright ©2010 by Zilog®, Inc. All rights reserved.
www.zilog.com
ZMOTIONTM Detection Module Application Walkthrough
Figure 1. ZMOTION Detection Module Pin Diagram
Operation Modes
There are two operation modes: Hardware Interface Mod e and Serial Interface Mode. In the Hardware Interface Mode, you can make the following adjustments:
Use the hardware interface pins for basic configuration.
Adjust the motion sensitivity with the voltage on the SNS pin.
Adjust the time delay (Output Active Time) with the voltage on the DLY pin
Set the optional ambient light input.
Use the Sleep Mode to reduce power consumption.
In the Serial Interface Mode, you can use the serial interface (Rxd and Txd) for advanced configuration:
9600 baud rate
No parity
8 data bits
1 stop bit
No flow control
The /MD, LG, and SLP pins remain functional.
Table 1. ZMOTION Detection Module Pin Description
Pin No.
1 2 3
4
Signal
Name
GND Ground Ground VDD Supply Voltage Supply Voltage RXD/DLY DLY-Delay (analog
TXD/SNS SNS Sensitivity
Hardware Interface
Mode Serial Interface Mode Description
input) (analog input)
RXD Receive Data (digital input)
TXD Transmit Data (digital input)
— — —
Mode select during Reset
AN030701-0810 Page 2 of 30
ZMOTIONTM Detection Module Application Walkthrough
Pin No.
5
6 7 8
Signal
Name
/MD/RST Motion Detect (digital
LG Light Gate (analog /SLP/DBG /SLP Sleep (digital GND Ground Ground
Hardware Interface
Mode Serial Interface Mode Description
output)
input) input)
Configurable: /RST Reset (digital input) /MD Motion Detect (digital input)
Light Gate (analog input)
/SLP Sleep (digital input)
Default is /RST (Reset ) i n Serial Interface Mode
If unused, connect to V DBG is used for
programming and debug.
dd
.
Hardware Interface Mode Description
Figure 2 shows a typical example of how to connect the ZMOTION Detection Module using Hardware
Interface Mode. This mode of operation is selected when a voltage between 0 V and 1.8 V i s presented to the SNS pin during power ON (or after a reset caused by Vbo). When the Hardware Interface Mode has been established, this pin becomes the Sensitivity input and accepts a voltage between 0 V and 1.8 V as reference for motion detection sensitivity level.
0 V = Highest Sensitivity
1.8 V = Lowest Sensitivity
In Figure 2, R2 and R4 form a simple potenti ometer resistor divider to ensure that the Hardware Mode is entered upon reset and to control sensitivity levels.
Figure 2. Application Example of Hardware Interface Mode
AN030701-0810 Page 3 of 30
ZMOTIONTM Detection Module Application Walkthrough
After the application of power, the passive infrared sensor needs some time to stabilize. This typically takes about 20 seconds but varies depending on environmental conditions. The software dynamically monitors the pyroelectric sensor during power-up and begins detecting motion as soon as the sensor is stable.
The /MD (Motion Detect) pin is driven active (Low) when motion is detected. The voltage on the delay pin (DLY) is used to determine the active duration o f the /M D si gnal. This can be easily set using a resistor divider circuit shown in Figure 2 on page 3. With an 82-kA (R1) resistor tied to Vcc and values ranging from 0 A to 100 kA (R3) tied to ground, you can select d elay times from 2 seconds to 15 minutes. See Figure 2 on page 3 and Table 15 on page 20.
Table 2. Delay Times Using R1 = 82 K*
Delay Time R_DLY Voltage R_DLY Standard Resistor Value
2 sec 0 V 0 @ 5 sec 0.2 V 5.1 k@ 10 sec 0.4 V 11 k@ 30 sec 0.6 V 18 k@ 1 min 0.8 V 24 k@ 2 min 1.0 V 33.2 k@ 3 min 1.2 V 43 k@ 5 min 1.4 V 56 k@ 10 min 1.6 V 68 k@ 15 min 1.8 V 91 k@
The Light Gate (LG) signal acts as a disable (gate) f or the /MD output signal. In a typical application, this signal is a representation of the ambient light i n th e env i ronment. If there is light detected, the /MD signal does not activate even in the presence of motion.
Serial Interface Mode C ommands
The Serial Interface Mode operates as a host - cl ient relationship where the ZMOTION Detectio n Module is the client. Commands are sent from the host, and the module responds with the requested information or confirmation. The only exception is when the module is configured for “/MD Unsolicited” operation. Under this condition, it will send motion-detected information without first receiving a command from the host.
All the serial commands sent to the ZMOTION Detection Module are in ASCII character s f ormat, but the data sent to and from the module can be ASCII or decimal.
There are three types of commands accepted by the module:
Read commands
Write commands
Confirmation commands
Read Command Structure
Read commands are used to request information from the module. Read commands are sent from the h ost, and the module responds with the requested data. See Figure 3 on page 5.
All read commands are initiated by single lower-case letters.
When received, the device will return the applicable value as described in
AN030701-0810 Page 4 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 16 on page 21.
Figure 3. Read Command Structure
Write Command Structure
Write commands are used to update configuration of the module. The command is sent from the host, and the module responds with the current value as an acknowledgment. Then the host sends the new data, and the module responds with an 'ACK'. See Figure 4.
All write commands are initiated by single upper-case letters.
When a write command is received, the device returns the current value and expects an appropriate single-
byte data value.
When the data value is received, the device returns an 'ACK'. If no data is received after the inactivity
timeout of 2.5 seconds, the device returns a 'NACK'.
Figure 4. Write Command Structure
Confirmed Command Structure
Certain commands require a specific sequence of characters to be sent in order to help prevent accidental initiation. These commands require a 4-character confirmation sequence. When a command r equiring confirmation is received, the device returns an 'ACK' . See Figure 5.
If the sequence is correct, the device returns an 'ACK' and executes the command.
If the sequence is incorrect, or there is an inactivity delay of more than 2.5 seconds between any characters
of the sequence, the device immediately sends a 'NACK' and does not execute the command.
Figure 5. Confirmed Command Structure
Notes: 1. ACK = 0x06 (ASCII ACK character).
2. NACK = 0x15 (ASCII NACK character). The ZMOTION will respond with a 'NACK' on all
AN030701-0810 Page 5 of 30
ZMOTIONTM Detection Module Application Walkthrough
unrecognized commands or when a command requires data (that is, Write, Clear, and Confirmation types) but does not receive the required data within the inactivity timeout period.
Software Overview
The application code in the ZMOTION Detection Module first executes an initialization procedur e, which is discussed in the “Setting the Operational Mode” section on page 7. When the module is enabled, the ADC interrupt runs in the background (see Figure 6). Every ADC conversion generates an interrupt and the ZMOTION engine performs its functions during this time (see Figure 6). The user application code runs in the foreground and monitors the status through the API and performs any other functions required for the application, which is discussed in the “Main Application Loop” section on page 8.
Figure 6. ADC Interrrupt for ZMOTION Detection
One-Second Timer Tick
The ZMOTION engine requires a 1-second time base to perform various housekeeping operations (see Figure
7 on page 7). This is handled in the application by the timer interrupt. The Timer0 Interrupt is configured for
100 ms. The application code counts 10 of these interrupts and sets the Engine Timer Tick bit in ePIR_SC1.
AN030701-0810 Page 6 of 30
ZMOTIONTM Detection Module Application Walkthrough
1 Second
Timer Interrupt
Set bit 7 of ePIR_SC1
(Engine Timer Tick)
One
Second
Timer Tick
Return
Figure 7. One-Second Engine Timer Tick
Setting the Operation al Mode
The mode of operation (HW or Serial mode) can be selected using the TXD/SNS pin during the power ON or when exiting the Sleep Mode. The following explains the program in the operational mode (see Figure 8 on page 8):
1. The program starts by initializing all of the needed peripherals.
2. Check the Stop Mode Recovery SMR reset. If there is NO SMR reset, then the sensitivity level is
set to default and the ePIR status register is initialized.
3. The ePIR_ENABLE register is set to EPIR_ENABLE_PATTERN, so the engine can be enabled.
4. The EPIR_INIT macro is executed to initialize the ePIR engine.
5. Initialize Timer0 and set to 100-ms interrupt.
6. Check analog channel 0 (ANA0), which is connected to PIN4 or TXD/SNS if the analog level
exceeds the threshold or not. This is repeated 1 0 times to ensure a stable reading. If the TXD/SNS pin is above the threshold, then the cCmdState is set to 1; else, it is set to 0. This is done t o stabilize the ePIR engine.
7. Next, the mode of operation is determined with the value of the cCmdState. If the cCmdState is 1,
then the Mode of Operation is Serial Interface, and if the cCmdState is 0, then the Mode of Operation is Hardware Interface.
8. Finally, the mode of operation is set, and cCmdState is set to IDLE state; it then proceeds to the
main application loop.
AN030701-0810 Page 7 of 30
ZMOTIONTM Detection Module Application Walkthrough
Figure 8. Flow Diagram of Operational Mode
Main Application Loop
Figure 9 on page 9 describes the main application loop of the ZMOTION Detection Module.
AN030701-0810 Page 8 of 30
ZMOTIONTM Detection Module Application Walkthrough
Figure 9. Flow Diagram of Main Application Loop of Application Code
The following describes the operation of the main application loop:
1. The program checks the Sleep pin if it is low. If the Sleep pin is low, then the program enters to
the Sleep Mode.
2. Next the program checks the content of the cModule Status1 (cModuleStatus1) flag. See Table 20
on page 23.
If the Serial Mode Register (SER_MODE_ENABLED) is HIGH, several select cases are
available depending on the inputs of the select case. See
AN030701-0810 Page 9 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 17 on page 22. The contents of the cModuleStatus1 flag are evaluated and updated.
If the Sleep Mode Request (MOD_SLEEP_REQ) is HIGH, then the MCU Sleep Flag will be
on, and the MCU will go to sleep. This is to reduce the power consumption of the MCU especially for battery-powered devices.
3. The program checks the state of the cModule Status2 (cModuleStatus2) flag. See Table 21 on page
23.
If the ADC current channel scan (SCAN_SE NS_POT) is HIGH and the conversion for Sense
potentiometer is complete, then the program gets the latest Sense value from the potentiometer.
If the Scan delay pot (SCAN_DELAY_POT) i s HI GH and the conversion for Delay
potentiometer is complete, then the program gets the latest Delay setting from the potentiometer
If the Scan Light Gate (SCAN_LIGHT_GATE) is HIGH and the conversion for the Light
Gate is complete, then the program gets the latest ambient light level for light comparison.
If the Scan Request (SCAN_REQUEST_NEW) new is high, then the program will request
new ADC channel conversion.
4. Finally, the program checks again the status of the cModule Status1 (cModuleStatus1) flag. See
Table 20 on page 23.
If the Mode Pir Stable (MOD_PIR_STABLE) is LOW, then the program checks the PIR
sensor stability after power up.
If the Mode Pir Stable (MOD_PIR_STABLE) is HIGH, the engine will indicate an alarm and
checks for motion detected and updates the output.
Sleep Mode in Hardware Interface Mode
Sleep signal can be used to put the device into a low-power mode. Using this feature will allow a sh orter PIR stabilization time.
If the Sleep (/SLP) input signal is driven LOW, the device enters into a low-power Sleep Mode. It can be awakened by either deactivating the /SLP sig nal (driving the signal HIGH) or sending a charact er over the serial interface; the received character is r ecei ved and processed.
Serial Interface Mode (Software Interface Mode)
The Serial Interface Mode is responsible for handling serial command input and processing. See Table 3.
Table 3. Command State (cCmdState)
Command State (cCmdState) Description
Idle State This state puts the ZMOTION into standby mode Real Time State This state puts the program in real-time mode. This s tate is enabled if the
received command is “Y” and disabled if the received comm and is “N”.
Suspend Status State This state temporarily ena bles or disables the motion detection of the program.
This state is enabled if the received command is “Y” an d di sabled when the receive command is “N”.
Serial Interface Mode State This state let the user change the mode of sending the data f ormat of the
ZMOTION to either ASCII or Decimal. The ASCII mode is enabl ed if the command received is “A” and Decimal Mode if the command received is “D”.
Sensitivity Change State This state changes the sensitivity of the ePIR engine to t h e t arget m ot i on.
Sensitivity is higher with a lower number value. 0x00 being t he m ost sensitive and 0xFF being the least sensitive.
AN030701-0810 Page 10 of 30
ZMOTIONTM Detection Module Application Walkthrough
Command State (cCmdState) Description
Sleep Duration State This state changes the time duration of Sleep Mode. Delay Change State This state changes the time delay of changing the state from one state to
another.
Light Threshold Change State
MD Output Change State This state indicates how the ePIR engine detected the last mot io n-detected
Configuration Change This state is used to configure the motion detection. If the received command
Direction Change State This state is used to configure the direction of the motion to positive, negative,
Dual Direction Change State This state determines if the engine should accept signals from one or two ePIR
Hyper-sense Change State This state changes the sensitivity of the ZMOTION. If this state is enabled, the
Ping Write Request State This state is used to clear and temporarily save the receive d command. Frequency Response State This state determines the frequency response of t he mot i on det ection system.
Range Control State This state determines the relative range of motion detection. Larger values
Reset Mode State This state uses the watch-dog timer to have system reset. Sleep Mode State This state puts the program in Sleep Mode. This state uses the watch-dog
This state is used to control and monitor the signal a ss ociated with the Light Gate pin.
event. When the ZMOTION sets the Motion Dete ct ed bit in ePIRStatus0, it also sets this bit according to which detection engi ne registered the event.
is ‘R’, then it is requesting for a Reset. If the receive command is ‘M’, then it is requesting for make motion detection.
or disabled. Positive movement is requested when a “+” i s re ceiv ed, negative movement is requested when a “-” is received, and disabled mot i on detection is requested when “A” is received.
sensor. If configured as single operation then only one sensor is used which is connected to ANA2. If it is configured as dual operation then Z MOTION will scan two sensors simultaneously with the second sensor connected to ANA3.
engine considers smaller signal changes as valid motion ev ent s. This significantly increases sensitivity at the cost of more potential false motion detections.
Higher values allow lower frequencies to be acce pted by the ePIR engine. Lower values cause the engine to ignore targets that generate lower frequencies.
decrease the range of detection.
timer to have system reset that wakes up MCU.
Sleep Mode Request in Serial and Hardware Interface Mode
The program enters Sleep Mode request if MOD_SLEEP_REQ in cModuleStatus1 register is enabled and sleeps for the given time duration depending on the value of the set sleep duration.
Sensitivity Setting from Potentiometer (Hardware Interface Mode)
Get the latest Sense setting from the Pot. The p rogram gets the latest sense from the poten t iometer if the SCAN_SENS_POT is enabled in cModuleStatus2 register and the SC3_ANA0_SCAN_REQUEST is disabled. Then the ePIR_sensitivity is updated.
Delay Setting from Potentiometer (Hardware Interface Mode)
Get the latest Delay setting from the Pot. The p r ogram checks if the SCAN_DELAY_POT is enabled in cModuleStatus2 register and then updates th e cDelayTime.
AN030701-0810 Page 11 of 30
ZMOTIONTM Detection Module Application Walkthrough
Ambient Light Level for Gate comparison (Hardware Interface Mode)
Get the latest Ambient light level for Light Gat e comparison. The program checks if the SCAN_LIGHT_GATE is enabled in cModuleStatus2 register and the updates the value of cLGAmbient.
ADC Conversion and Request Next Channel Conversion (Hardware Interface Mode)
Request new ADC channel conversion. Th e program checks if the SCAN_REQUEST_NEW is enabled in cModuleStatus2 register and then the cModuleStatus2 register is updated.
Sensor Stability
Check for PIR sensor stability. The p rogram checks the stability of the system by verifying if the MOD_PIR_STABLE is enabled in cModuleStatus1 register after power up.
Motion Detection
Check for motion detected and update the output on time as needed. The program checks if motion is detected by checking if the SCO_MOTION_DETECTE D is enabled in ePIR_SCO register then send it once it is needed.
References
The following documents are associated with ZMOTIONTM Detection Module and are available on www.zilog.com:
ePIR Motion Detection Zdots Single Board Computer Product Brief (PB0223)
ePIR Motion Detection Zdots SBC Product Specification (PS0284)
ZMOTION Detection Module Evaluation Kit User Manual (UM0223)
ZMOTION Detection Module Development Kit Quick Start Guide (QS0073)
Motion Detection and Control with ePIR Zdots Single Board Computer Cut Sheet (CS0005)
ZMOTION—A New PIR Motion Detection Architecture White Paper (WP0017)
Power Management and Customer Sensing with Zilog's ZMOTION Detection Module Application Note
(AN0301)
ZMOTION Detection and Control Family Featuring ePIR Technology Product Specification (PS0285)
ZMOTION Lens and Pyroelectric Sensor Product Specification (PS0286)
Z8 Encore! XP F0822 Series Product Specification (PS0225)
Z8 Encore! XP F082A Series Product Specification (PS0228)
AN030701-0810 Page 12 of 30
ZMOTIONTM Detection Module Application Walkthrough
Appendix A—Pre-Build Setup
This appendix lists the settings and resources you need for your build.
Use the following Compiler and Linker settings to prepare for your build:
ZDS Version CPU Family CPU Limit Optimizations for Easier Debugging Memory Model Frames Parameter Passing Use Register Variables Generate printf Inline Bit-Field Packing Place CONST Variables in ROM Disable ANSI Promotions Address Space
Table 4 lists the resources used by the build.
ZDSII Encore! 4.11.0 Z8Encore_XP_F082A_8Pin_Series Z8F042AXB unchecked Small Static Memory Aggressive unchecked Backward Compatible unchecked unchecked Default settings + Use PRAM checked
Clock Source
Peripherals
Table 4. Resources Used
Internal clock source, 5.52960 MHz
TMR0 One-second timer used in low-power mode UART0 RS232 interface WDT Software reset and watch-dog function PA0 or Debug, PA1,
PA2 or RESET and PA4 ADC – ANA2 to ANA3 These are used for the ePIR output for motion detection.
Used for input and output pins.
AN030701-0810 Page 13 of 30
ZMOTIONTM Detection Module Application Walkthrough
Appendix B—Library and Software Tool Files
This appendix describes the standard project files and external dependencies.
Figure 10 shows the block diagram of the ZMOTION application progr am.
Figure 10. Block Diagram of the ZMOTION Application Project
Table 5 describes the standard project files.
Table 5. Standard Project files
File Description
main.c
startupePIR.asm Zsldevinit.asm
ePIR_API.c
Handles the main program.
Includes several libraries such as eZ8.h, defines.h, main.h,
ePIR_API.h, and API_INIT_06.h to provide support to the functions and subprograms.
Used to set the Linker address spaces in project settings. Used to set the ZSL in the project settings to include the Zilog S tandard Library
(Peripheral Support). Contains the ePIR standard and advanced API registers
WARNING: Do not modify or remove the given values in thi s fi le.
AN030701-0810 Page 14 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 6 lists the external dependencies.
Table 6. External Dependencies
File Description
eZ8.h defines.h main.h
API_INIT_06.h
ePIR_API.h
Contains the standard Z8 library. Define the names for control register access. Contains project header that includes:
Predefined application compile switches
Peripheral configuration macro definitions
Reserve interrupt vector
Application definitions
Serial interface Macro definitions
Application configuration Macro definitions
Flags for cModuleStatus1, cModuleStatus2, and cModuleStatus3
Delay pot voltage thresholds (Hardware Interface Mode)
MD Delay values (Hardware Interface Mode)
Serial Command List
Serial Command States
Motion Alarm output macro
Inline assembly macro
Handles the functions and subprograms declared in ePIR_API.c.
Contains the API configuration for Normal Scan and Low Scan Rate
Mode.
WARNING: Do not modify or remove the given values in thi s fi le.
Defines the standard and advanced API interface.
WARNING: Do not modify or remove the given values in thi s fi le.
AN030701-0810 Page 15 of 30
ZMOTIONTM Detection Module Application Walkthrough
Appendix C—main.c
This appendix describes the function prototypes in main.c.
The following is a list of the function prototypes in main.c:
Function Name Returns Parameters Description
Function Name Returns Parameters Description
Function Name Returns Parameters Description
Function Name Returns Parameters Description
Function Name Returns Parameters Description
Function Name Returns Parameters Description
Function Name Returns Parameters Description
makeMDReset
-none-
-none­Routine for making the /MD pin a reset input
makeMDMotion
-none-
-none­Configure /MD pin as Motion Detected.
checkCommand
-none-
-none­Check the newly received command.
SerialReceive unsigned char intData
-none­Character received through serial communication
cSerialRX unsigned char rxData
-none­Copy the character in the serial buffer
cSerialTX
-none­unsigned char rxData Transmit the character in the serial buffer
TxDirect
-none­unsigned char rxData Transmit byte via UART0
AN030701-0810 Page 16 of 30
ZMOTIONTM Detection Module Application Walkthrough
The following is a list of the interrupt function prototypes in main.c:
unction Name
F Returns Parameters Description
Function Name Returns Parameters Description
Function Name Returns Parameters Description
interrupt isrADC_EOC
-none-
-none­ADC for End of Character (EOC) interrupt
interrupt isrTimer0
-none-
-none­TIMER0 timeout interrupt
interrupt isrRX0
-none-
-none­UART0 RX interrupt
AN030701-0810 Page 17 of 30
ZMOTIONTM Detection Module Application Walkthrough
Appendix D—ePIR_API.c
This appendix describes the contents of ePIR_API.c.
Table 7. Register Address of Standard API Int erface (x100 to 0x10F)
Address Size Name Description
100h 1 byte 101h 1 byte 102h 1 byte 103h 1 byte 104h 1 byte 105h 1 byte 106h 1 byte 107h 1 byte 108h 1 byte 109h 1 byte 10Ah 2bytes 10Ch 1 byte 10Dh 1 byte 10Eh 1 byte 10Fh 1 byte
ePIR_Enable ePIR API Enable Register ePIR_Sensitivity ePIR API Sensitivity Register ePIR_SC0 ePIR API Status and Control Reg. 0 ePIR_SC1 ePIR API Status and Control Reg. 1 ePIR_SC2 ePIR API Status and Control Reg. 2 ePIR_SC1 ePIR API Status and Control Reg. 3 ePIR_Reserved_106 Reserve Standard API Register ePIR_Reserved_107 Reserve Standard API Register ePIR_Reserved_108 Reserve Standard API Register ePIR_Reserved_109 Reserve Standard API Register ePIR_ADC_Result ePIR ADC result Register ePIR_Version ePIR Engine S/W Version Register ePIR_Reserved_10D Reserve Standard API Register ePIR_Reserved_10E Reserve Standard API Register ePIR_Reserved_10F Reserve Standard API Register
Table 8. Register Address of Advanced API Interface (0xF0 to 0xFF)
Address Size Name Description
F0h 1 byte F1h 1 byte F2h 1 byte F3h 2bytes F5h 1 byte F6h 1 byte F7h 1 byte F8h 1 byte F9h 1 byte
FAh 2bytes FCh 2bytes FEh 1 byte FFh 1 byte
ePIR_ASC0 Advanced API Status\Control Reg.0 ePIR_Reserved_F1 Reserved Advanced API Register ePIR_ASC2 Advanced API Status\Control Reg.2 ePIR_Process_Rate ePIR Process Rate Register ePIR_Sample_Size ePIR Sample Size Register ePIR_Debounce ePIR Debounce Time Register ePIR_Debounce_Batch ePIR Debounce Batch Size Register ePIR_Transient_Sense ePIR Transient Sensitivity Reg. ePIR_Noise_Sense ePIR Noise Sensitivity Register ePIR_Signal ePIR PIR Signal Register ePIR_Signal_DC ePIR PIR Signal DC Level Register ePIR_Reserved_FE Reserved Advanced API Regist er ePIR_Reserved_FF Reserved Advanced API Register
AN030701-0810 Page 18 of 30
ZMOTIONTM Detection Module Application Walkthrough
Appendix E—main.h
This appendix describes the contents of main.h.
Table 9. Predefined Application Compile Switches
Define Value Description
ZDOT_APP_ID BEh Identification for user to uniquely identify each rele as ed version
of the application
Table 10. Predefined Peripheral Configuration to Macro Definitions
Define Value Description
U0_BAUD_HIGH U0_BAUD_LOW U0CTL0_VAL U0CTL1_VAL T0RH_VAL T0RL_VAL T0CTL0_VAL T0CTL1_VAL WDTU_VAL WDTH_VAL WDTL_VAL OSCCTL_VAL PWRCTL0_VAL
00h 24h
C0h
00h 87h 02h 00h
E1h
00h 27h
10h A0h 8Ah
UART 0 BRG high setting for 9600 Baud with IPO UART 0 BRG low setting for 9600 Baud with IPO UART 0 Control Register 0 value UART 0 Control Register 1 value Timer 0 reload value high when set for 5.5MHz standard clock Timer 0 reload value low when set for 5.5MHz standard cloc k Timer 0 Control 0 Register value Timer 0 Control 1 Register value WDT Upper byte, ~1000 ms WDT High byte, ~1000 ms WDT Lower byte, ~1000 ms Oscillator control Power control 0 register value
Table 11. Predefined Application Definitions with Initial Default Values
Define Value Description
SENSE_ADJUST_HW_MIN SENSE_ADJUST_HW_MAX LG_THRESHOLD LOW_FREQUENCY_RESPONSE HIGH_FREQUENCY_RESPONSE SER_IDLE_TIMEOUT
10h FFh 64h 28h 00h 19h
Sensitivity adjustment, lower is more sensitive
Light Gate threshold POR Default value Default Frequency Response value High Frequency Response value Serial Interface Mode Inactivity timeout (x 100ms)
Table 12. Serial Interface Macro Definitions
Define Function Description
SER_ACK TxDirect(0x06) Serial Acknowledge SER_NACK TxDirect(0x15) Serial Not Acknowledge SER_AWAKE TxDirect(0x16) Serial Awake
AN030701-0810 Page 19 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 13. Application Configuration Macro Definitions
Define Value Description
MOD_STAT1_DEF MOD_STAT2_DEF MOD_STAT3_DEF
08h
00h
08h
cModuleStatus1 register POR Default value cModuleStatus2 register POR Default value cModuleStatus3 register POR Default value
Table 14. Delay Pot Voltage Threshold (Ha rdware Interface Mode)
Define Value Description
DLY_POT_000MV DLY_POT_200MV DLY_POT_400MV DLY_POT_600MV DLY_POT_800MV DLY_POT_1000MV DLY_POT_1200MV DLY_POT_1400MV DLY_POT_1600MV
10 31 51 71
92 112 132 153 173
0 mV 200 mV 400 mV 600 mV 800 mV 1000 mV 1200 mV 1400 mV 1600 mV
Table 15. Delay Values (Hardware Interf ace Mode)
Define Value Description
DELAY_2SEC DELAY_5SEC DELAY_10SEC DELAY_30SEC DELAY_60SEC DELAY_2MIN DELAY_3MIN DELAY_5MIN DELAY_10MIN DELAY_15MIN
2
5 10 30 60
120 0x80+3 0x80+5
0x80+10 0x80+15
Delay the program by 2 sec Delay the program by 5 sec Delay the program by 10 sec Delay the program by 30 sec Delay the program by 60 sec Delay the program by 2 minutes Delay the program by 3 minutes Delay the program by 5 minutes Delay the program by 10 minutes Delay the program by 15 minutes
AN030701-0810 Page 20 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 16. Serial Commands (Serial Interface Mode)
Define Value Description
CMD_MD_STATUS_READ CMD_LG_AMBIENT_READ CMD_MD_CONFIG_STATUS_READ CMD_MD_CONFIG_STATUS_WRITE CMD_DELAY_TIME_READ CMD_DELAY_TIME_WRITE CMD_HYPERSENSE_READ CMD_HYPERSENSE_WRITE CMD_FREQ_RESP_READ CMD_FREQ_RESP_WRITE CMD_MD_SUSPEND_READ CMD_MD_SUSPEND_WRITE CMD_VERSION_READ CMD_SER_INTERFACE_READ CMD_SER_INTERFACE_WRITE CMD_LG_THRESH_READ CMD_LG_THRESH_WRITE CMD_REAL_TIME_MD_READ CMD_REAL_TIME_MD_WRITE CMD_MD_OUT_STATE_READ CMD_MD_OUT_STATE_WRITE CMD_PING_READ CMD_PING_WRITE CMD_RANGE_CONTROL_READ CMD_RANGE_CONTROL_WRITE CMD_SENS_READ CMD_SENS_WRITE CMD_DUAL_DIRECTION_READ CMD_DUAL_DIRECTION_WRITE CMD_DIRECTION_READ CMD_DIRECTION_WRITE CMD_RESET_REQUEST CMD_SLEEP_TIME_READ CMD_SLEEP_TIME_WRITE CMD_SLEEP_REQUEST
‘a’ ‘b’ ‘c’
‘C’
‘d’
‘D’
‘e’
‘E’
‘f’
‘F’
‘h’
‘H’
‘i’
‘k’
‘K’
‘l’
‘L’ ‘m’ ‘M’
‘o’ ‘O’
‘p’ ‘P’
‘r’
‘R’
‘s’ ‘S’
‘u’ ‘U’
‘v’ ‘V’ ‘X’
‘y’ ‘Y’ ‘Z’
Read Motion Status Read Current Light Gate Input Level Read /MD//RST Pin Configuration Write /MD//RST Pin Configuration Read /MD Activation Time Write /MD Activation Time Read Hyper Sense Setting Write Hyper Sense Setting Read Frequency Response Setting Write Frequency Response Setting Read Motion Detection Suspend Setting Write Motion Detection Suspend Setting Read Module S/W Version Read Serial Interface Command Mode Write Serial Interface Command Mode Read Light Gate Threshold Write Light Gate Threshold Read Motion Detected Unsolicited Mode Write Motion Detected Unsolicited Mode Read /MD Current Output Active Time Write /MD Output State Read Pulse Count Write Pulse Count Read Range Setting Write Range Setting Read Sensitivity Write Sensitivity Read Dual Directional Mode Write Dual Directional Mode Read Single Directional Mode Write Single Directional Mode Module Reset Read Sleep Time Write Sleep Time Sleep Mode
AN030701-0810 Page 21 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 17. Serial Command States (Serial Interface Mode)
Define Value Description
ZDOT_IDLE ZDOT_SENS_SET ZDOT_DELAY_SET ZDOT_2PULSE_SET ZDOT_FREQ_SET ZDOT_SLEEP_SET ZDOT_LG_THRESH_SET ZDOT_MD_STATE_SET ZDOT_DIR_SET ZDOT_RESET_SET ZDOT_REAL_TIME_MD_SET ZDOT_MD_CONFIG_SET ZDOT_HYPER_SET ZDOT_MD_SUSPEND_SET ZDOT_SLEEP_PIN_SET ZDOT_SLEEP_TIME_SET ZDOT_PING_WRITE ZDOT_RANGE_CONTROL_SET ZDOT_DUAL_DIR_SET ZDOT_SER_INTERFACE_SET
0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17 18 19
Idle State Handle the Sensitivity Change state Handle the Delay Change state UNUSED Handle the Freq. Response Change state Handle the Sleep Mode state Handle the Light Gate Threshold Change state Handle the /MD Output State Change state Handle the Direction Change state Handle the Reset Request state Handle the Real-Time MD Status Change state Handle the /MD Config Change state Handle the Hypersense Change state Handle the MD Suspend Status Change state UNUSED Handle the Sleep Duration Change state Handle the Ping write request Handle the Range Control Change state Handle the Dual Direction Change state Handle the Serial Interface Mode state
Table 18. Motion Alarm Output Macro Definitions
Define Value Description
ALARM_PORT PAOUT Motion Alarm Port ALARM_ON FBh Motion Alarm Activation mask
(/MD is on PA2 - active low)
ALARM_OFF ~FBh Motion Alarm Deactivation mask
Table 19. Inline Assembly Macros
Define Function Description
Z8_NOP asm("NOP") Do nothing Z8_WDT asm("WDT") Refresh the watch-dog timer Z8_HALT asm("HALT") Enter "Halt" mode Z8_STOP asm("STOP") Enter "Stop" mode Z8_ATM asm("ATM") DI for the next 3 assembly instructions
AN030701-0810 Page 22 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 20. Main Flag for cModuleStatus1 Register
Flag Name Data Size Bit Names
b0 SER_BYTE_RX 1:Serial byte receive b1 SER_MOTION_DETECTED 1:Motion detected copy for Serial
b2 SER_REAL_TIME_MD 1:Serial sends real -ti m e Motion b3 SER_MD_IS_RESET 1:MD is reset in serial mode
b4 SER_BYTE_TX 1:Serial Byte to Transmit b5 SER_PIR_STABLE 1:PIR sensor is stable after power-up b6 b7
: cModuleStatus1
UINT8
: :
mode Detected Status
SER_SLEEP_REQ 1:Sleep Mode request SER_MODE_ENABLE 1:Enable Serial Interface Mode
Table 21. Main Flag for cModuleStatus2 Register
Flag Name Data Size Bit Names
b0 SCAN_SENSE_POT 1:Sensing Enable current channel b1 SCAN_DELAY_POT 1:Delay Enable current channel b2 MOD2_FFU04 0:RESERVE-Must be 0
b3 SCAN_LIGHT_GATE 1:Light Gate Enable current channel b4 MOD2_FFU10 0:RESERVE-Must be 0
b5 MOD2_FFU20 0:RESERVE-Must be 0 b6 SCAN_REQUEST_NEW 1:Enable Request new ADC channel
b7 REQUEST_SCAN 1:Enable Time to request a scan
: cModuleStatus2
UINT8
: :
scanned scanned
scanned
scan
Table 22. Main Flag for cModuleStatus3 Register
Flag Name Data Size Bit Names
b0 DUAL_DIR_ENABLED 1:Dual Direction Mode Enable b1 SINGLE_DIR_ENABLED 1:Single Direction Mode Enable b2 POSITIVE_DIRECTION 1:Motion is positive direction b3 LOW_FREQ 1:Low frequency response enabled b4 ASCII_MODE_ON 1:Serial Int erface Command Mode
b5 RXDATA_OK 1:Indicates that the data being b6 GEN_ERROR_FLAG 1:General error flag passed between b7 RESERVE 0: RESERVE-Must be 0
AN030701-0810 Page 23 of 30
: cModuleStatus3
UINT8
: :
Enabled returned by cSerialRx is valid functions
ZMOTIONTM Detection Module Application Walkthrough
Appendix F—API_INIT_06.h
This appendix describes the contents of API_INIT_06.h.
Table 23. Serial Command States
Define Value Description
EPIR_SENSITIVITY_DEF 16 ePIR Sensitivity Register Default Configuration for Normal Scan
Rate. The lower the value, the greater sensitivity.
EPIR_SC0_DEF 00h ePIR Serial Command Register 0 Default Configur at i on for
Normal Scan Rate Bit 6-7 - Extended Detection - Level 0 (00) Bit 5 - Engine Disabled - Engine Controlled (0) Bit 4 - MD Suspend - OFF (0) Bit 3 - Motion Direction Control – OFF (0) Bit 2 - Motion Direction - Engine Controlled (0) Bit 1 - Motion Detected - Engine Controlled (0) Bit 0 - PIR Stable - Engine Controlled (0)
EPIR_SC1_DEF 28h ePIR Serial Command Register 1 Default Configur at i on for
Normal Scan Rate Bit 7 - Engine Timer Tick Bits 6-3 - Frequency Response (0101) Bit 2 - PIR Scan Rate - Normal Mode (0) Bit 1 - Reserved (0) Bit 0 - Dual Pyro Enable – OFF (0)
EPIR_SC2_DEF 02h ePIR Serial Command Register 2 Default Configur at i on for
Normal Scan Rate. Lower values provide greater range. Bits 7-3 - Reserved (00000) Bits 2-0 – Range (010)
EPIR_SC3_DEF 00h ePIR Serial Command Register 3 Default Configur at i on for
Normal Scan Rate Bits 7-0 - ANAx Scan Request – None (00000000) No ADC Scan requests made during Init
EPIR_ASC0_DEF 00h ePIR Analog Serial Comm and R egister 0 Default Configuration
for Normal Scan Rate Bits 7-5 - Reserved (000) Bit 4 - Buffer Refresh - OFF 0) Bit 3 - New Sample - Engine Controlled (0) Bit 2 - MD Origin - Engine Controlled (0) Bit 1 - EM Noise - Engine Controlled (0) Bit 0 - EM Transient - Engine Controlled (0)
EPIR_ASC2_DEF 5Ah ePIR Analog Serial Command Register 2 Def aul t C onfiguration
for Normal Scan Rate Bits 7-5 - Lock Level - 2 (010) Bits 4-3 - Window Size - 3 (11) Bits 2-0 - Window Update Rate – 2 (010)
EPIR_SAMPLE_SIZE_DEF 20h ePIR Sample Size Default Value for Normal Scan Rate
ePIR Sample Size - 32 (00100000)
EPIR_DEBOUNCE_DEF 64h ePIR Debounce Time Defa ult V al ue f or Norm al S can Rate
ePIR Debounce Time - 0x64 (01100100)
AN030701-0810 Page 24 of 30
ZMOTIONTM Detection Module Application Walkthrough
Define Value Description
EPIR_DEBOUNCE_BATCH_DEF FFh ePIR Debounce_Batch Default Value for Normal Scan Rate
ePIR Debounce Batch Size – 255 (11111111)
EPIR_TRANSIENT_SENSE_DEF 00h ePIR Transient_Sense Default Value for Normal S can Rate
ePIR Transient Sensitivity – Disabled (00000000)
EPIR_NOISE_SENSE_DEF 00h ePIR Noise Sense Defaul t V alue f or N ormal Scan Rate
ePIR Noise Sensitivity – Disabled (00000000)
AN030701-0810 Page 25 of 30
ZMOTIONTM Detection Module Application Walkthrough
Appendix G—ePIR_API.h
This appendix describes the contents of ePIR_API.h.
Table 24. ePIR Enable Register (ePIR_Enable) Enable/Disable Patterns
Define Value Description
EPIR_DISABLE_PATTERN
EPIR_ENABLE_PATTERN
00h
11h
Table 25. ePIR Sensitivity Register (ePIR_Sensitivity
Define Value Description
ePIR_SENSITIVITY
FFh
Disables all primary engine functions, including motion detection. Used to temporarily or permanently shut down the engine.
Enables the ePIR engine. All primary engine fun ct i ons as configured in Engine Status/Control Registers ar e enabled. Confirmation of enabled status is provided through Engine Disabled bit in Status/Control Register 0.
(R/W) Register used to adjust the sensitivity of the ePIR
Table 26. ePIR API Status/Control Register 0 ( ePIR_SC0)
Define Value Description
SC0_PIR_STABLE SC0_MOTION_DETECTED SC0_MOTION_DIRECTION SC0_DIRECTION_CONTROL SC0_MD_SUSPEND SC0_ENGINE_DISABLED SC0_EXTENDED
01h 02h 04h 08h 10h 20h C0h
(R) Status/Control Register 0 PIR Stable (R/W) Status/Control Register 0 Motion Detected (R) Status/Control Register 0 Motion Direction (R/W) Status/Control Register 0 Direction Control (R/W)Status/Control Register 0 Motion Dete cti on S uspend (R) Status/Control Register 0 Engine Disabled (R/W) Status/Control Register 0 Extended
Table 27. ePIR API Status/Control Register 1 ( ePIR_SC1)
Define Value Description
SC1_DUAL_PYRO_ENABLE SC1_BIT1_RESERVED SC1_PIR_SCAN_RATE SC1_FREQUENCY_RESPONSE SC1_ENGINE_TIMER_TICK
01h 02h 04h 78h 80h
(R/W) Status/Control Register 1 Dual Pyro Enable (R) Status/Control Register 1 Bit1 Reserved (R/W) Status/Control Register 1 PIR Scan Rate (R/W) Status/Control Register 1 Frequency Respons e (R/W) Status/Control Register 1 Engine Timer Tick
AN030701-0810 Page 26 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 28. ePIR API Status/Control Register 2 ( ePIR_SC2)
Define Value Description
SC2_BIT34567_RESERVED SC2_RANGE_CONTROL
F8h 07h
(Reserve) Status/Control Register 2 Bit34567 Reserved (R/W) Status/Control Register 2 Range Control
Table 29. ePIR API Status/Control Register 3 ( ePIR_SC3)
Define Value Description
SC3_ANA0_SCAN_REQUEST SC3_ANA1_SCAN_REQUEST SC3_BIT2_RESERVED SC3_ANA3_SCAN_REQUEST SC3_ANA4_SCAN_REQUEST SC3_ANA5_SCAN_REQUEST SC3_ANA6_SCAN_REQUEST SC3_ANA7_SCAN_REQUEST
01h 02h 04h 08h 10h 20h 40h 80h
(R/W) Status/Control Register 3 Analog0 Scan Request (R/W) Status/Control Register 3 Analog1 Scan Request (Reserve) Status/Control Register 3 BIT2 Reserve (R/W) Status/Control Register 3 Analog3 Scan Request (R/W) Status/Control Register 3 Analog4 Scan Request (R/W) Status/Control Register 3 Analog5 Scan Request (R/W) Status/Control Register 3 Analog6 Scan Request (R/W) Status/Control Register 3 Analog7 Scan Request
Advanced API Registers
The following tables describe the advanced API registers.
Table 30. ePIR Advanced API Status/Control Register 0 (ePIR_ASC0)
Define Value Description
ASC0_TRANSIENT_DETECTED ASC0_NOISE_DETECTED ASC0_MD_ORIGIN ASC0_NEW_SAMPLE ASC0_BUFFER_REFRESH ASC0_EXTENDED_DETECTION ASC0_BIT6_RESERVED ASC0_BIT7_RESERVED
01h 02h 04h 08h 10h 20h 40h 80h
Table 31. ePIR Advanced API Status/Control Register 2 (ePIR_ASC2)
Define Value Description
ASC2_WINDOW_UPDATE_RATE ASC2_WINDOW_SIZE ASC2_LOCK_LEVEL
07h 18h E0h
(R/W) API Status/Control Register 0 Transient Dete c ted (R/W) API Status/Control Register 0 Noise Detected (R) API Status/Control Register 0 Motion Detecti on Origin (R/W) API Status/Control Register 0 New Sample (R/W) API Status/Control Register 0 Buffer Refresh (R/W) API Status/Control Register 0 Extended Detection (Reserve) API Status/Control Register 0 Bit6 Reserve (Reserve) API Status/Control Register 0 Bit7 Reserve
(R/W) API Status/Control Reg. 2 Window Update Rate (R/W) API Status/Control Reg.2 Window Size (R/W) API Status/Control Reg.2 Lock Level
AN030701-0810 Page 27 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 32. ePIR Process Rate Register (ePIR_Pro cess_Rate)
Define Value Description
ePIR_PROCESS_RATE
FFFFh
(R) ePIR Process Rate
Table 33. ePIR Sample Size Register (ePIR_Sample_Size)
Define Value Description
ePIR_SAMPLE_SIZE
FFh
(R/W) ePIR Sample Size
Table 34. ePIR Debounce Time Register (ePIR_Debounce)
Define Value Description
ePIR_DEBOUNCE_TIME
FFh
(R/W) ePIR Debounce Time
Table 35. ePIR Transient Sensitivity Level Register (ePIR_Transient_Sense)
Define Value Description
ePIR_TRANSIENT_SENSE ePIR_TRANSIENT_SENSE_BIT7_RESERVED
7Fh 80h
(R/W) ePIR Transient Sense (Reserve)
Table 36. ePIR Noise Sensitivity Register (ePI R _Noise_Sense)
Define Value Description
ePIR_NOISE_SENSE ePIR_NOISE_SENSE_BIT7_RESERVED
7Fh 80h
(R/W) ePIR Noise Sense (Reserve)
Table 37. ePIR Signal Register (ePIR_Signal)
Define Value Description
ePIR_SIGNAL
FFFFh
(R) ePIR Signal
Table 38. ePIR DC Signal Register (ePIR_DC_ Signal)
Define Value Description
ePIR_DC_SIGNAL
FFFFh
(R) ePIR DC Signal
AN030701-0810 Page 28 of 30
ZMOTIONTM Detection Module Application Walkthrough
Table 39. ePIR Engine Entry Macro Definitions
Define Description
EPIR_INIT Initialized the peripherals such as ADC and GPIO; ADC IRQ is set to
medium priority.
EPIR_ADC_ISR Initialized Interrupt for ADC. All the motion detected is executed by this
macro.
AN030701-0810 Page 29 of 30
ZMOTIONTM Detection Module Application Walkthrough
Warning: DO NOT USE IN LIFE SUPPORT
LIFE SUPPORT POLICY
ZILOG'S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF ZILOG CORPORATION.
As used herein
Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b) support or sustain life and whose failure to perfo rm when proper ly used in accordan ce with instru ction s for us e provided in the labeling can be reasonably expected to result in a significant injury to the user. A critical component is any component in a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support dev i ce o r sy st em or to affect its safety or effectiveness.
Document Disclaimer
©2010 by Zilog, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. ZILOG, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. ZILOG ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORM ATION, DE VICES, OR T ECHNOLOGY DES CRIBED HE REIN OR OTHERWISE. The information contained within this document has been verified according to the general principles of electrical and mechanical engineering.
ZMOTION is a trademark of Zilog, Inc. All other product or service names are the property of their respective owners.
AN030701-0810 Page 30 of 30
Loading...