Application Note. Microcontrollers. AVR480: Anti-Pinch System for Electrical Window



Similar documents
AVR305: Half Duplex Compact Software UART. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit RISC Microcontroller. Application Note. AVR182: Zero Cross Detector

8-bit Microcontroller. Application Note. AVR222: 8-point Moving Average Filter

General Porting Considerations. Memory EEPROM XRAM

Application Note. C51 Bootloaders. C51 General Information about Bootloader and In System Programming. Overview. Abreviations

AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction

AVR319: Using the USI module for SPI communication. 8-bit Microcontrollers. Application Note. Features. Introduction

8-bit Microcontroller. Application Note. AVR400: Low Cost A/D Converter

AVR030: Getting Started with IAR Embedded Workbench for Atmel AVR. 8-bit Microcontrollers. Application Note. Features.

8-bit Microcontroller. Application Note. AVR415: RC5 IR Remote Control Transmitter. Features. Introduction. Figure 1.

8-bit RISC Microcontroller. Application Note. AVR236: CRC Check of Program Memory

AVR106: C functions for reading and writing to Flash memory. 8-bit Microcontrollers. Application Note. Features. Introduction

AVR134: Real Time Clock (RTC) using the Asynchronous Timer. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

How to Calculate the Capacitor of the Reset Input of a C51 Microcontroller 80C51. Application Note. Microcontrollers. Introduction

Tag Tuning/RFID. Application Note. Tag Tuning. Introduction. Antenna Equivalent Circuit

AT89C5131A Starter Kit... Software User Guide

AVR245: Code Lock with 4x4 Keypad and I2C LCD. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AT91 ARM Thumb Microcontrollers. Application Note. Interfacing a PC Card to an AT91RM9200-DK. Introduction. Hardware Interface

8-bit Microcontroller. Application Note. AVR314: DTMF Generator

8-bit Microcontroller. Application Note. AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory

AT91 ARM Thumb Microcontrollers. AT91SAM CAN Bootloader. AT91SAM CAN Bootloader User Notes. 1. Description. 2. Key Features

AVR442: PC Fan Control using ATtiny13. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

3-output Laser Driver for HD-DVD/ Blu-ray/DVD/ CD-ROM ATR0885. Preliminary. Summary

8-bit Microcontroller. Application Note. AVR201: Using the AVR Hardware Multiplier

8-bit RISC Microcontroller. Application Note. AVR155: Accessing an I 2 C LCD Display using the AVR 2-wire Serial Interface

AVR32110: Using the AVR32 Timer/Counter. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit Microcontroller. Application. Note. AVR204: BCD Arithmetics. Features. Introduction. 16-bit Binary to 5-digit BCD Conversion bin2bcd16

AVR034: Mixing C and Assembly Code with IAR Embedded Workbench for AVR. 8-bit Microcontroller. Application Note. Features.

AVR32100: Using the AVR32 USART. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

Quick Start Guide. CAN Microcontrollers. ATADAPCAN01 - STK501 CAN Extension. Requirements

AVR241: Direct driving of LCD display using general IO. 8-bit Microcontrollers. Application Note. Features. Introduction AVR

AVR1900: Getting started with ATxmega128A1 on STK bit Microcontrollers. Application Note. 1 Introduction

AVR120: Characterization and Calibration of the ADC on an AVR. 8-bit Microcontrollers. Application Note. Features. Introduction

AVR353: Voltage Reference Calibration and Voltage ADC Usage. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit. Application Note. Microcontrollers. AVR282: USB Firmware Upgrade for AT90USB

AVR1309: Using the XMEGA SPI. 8-bit Microcontrollers. Application Note. Features. 1 Introduction SCK MOSI MISO SS

AVR1600: Using the XMEGA Quadrature Decoder. 8-bit Microcontrollers. Application Note. Features. 1 Introduction. Sensors

AVR033: Getting Started with the CodeVisionAVR C Compiler. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1318: Using the XMEGA built-in AES accelerator. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Application Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration

AVR1301: Using the XMEGA DAC. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

AVR32701: AVR32AP7 USB Performance. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR2006: Design and characterization of the Radio Controller Board's 2.4GHz PCB Antenna. Application Note. Features.

AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel

AVR32138: How to optimize the ADC usage on AT32UC3A0/1, AT32UC3A3 and AT32UC3B0/1 series. 32-bit Microcontrollers. Application Note.

Using CryptoMemory in Full I 2 C Compliant Mode. Using CryptoMemory in Full I 2 C Compliant Mode AT88SC0104CA AT88SC0204CA AT88SC0404CA AT88SC0808CA

AVR444: Sensorless control of 3-phase brushless DC motors. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1922: Xplain Board Controller Firmware. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.

Application Note. 8-bit Microcontrollers. AVR280: USB Host CDC Demonstration. 1. Introduction

Application Note. USB Mass Storage Device Implementation. USB Microcontrollers. References. Abbreviations. Supported Controllers

8-bit Microcontroller. Application Note. AVR461: Quick Start Guide for the Embedded Internet Toolkit. Introduction. System Requirements

Two-wire Automotive Serial EEPROM AT24C01A AT24C02 AT24C04 AT24C08 (1) AT24C16 (2)

AVR1510: Xplain training - XMEGA USART. 8-bit Microcontrollers. Application Note. Prerequisites. 1 Introduction

3-output Laser Driver for HD-DVD/ Blu-ray/DVD/ CD-ROM ATR0885. Preliminary. Summary. Features. Applications. 1. Description

AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC. 8-bit Microcontrollers. Application Note. Features.

Application Note. Migrating from RS-232 to USB Bridge Specification USB Microcontrollers. Doc Control. References. Abbreviations

Application Note. 8-bit Microcontrollers. AVR272: USB CDC Demonstration UART to USB Bridge

8-bit Microcontroller. Application Note. AVR410: RC5 IR Remote Control Receiver

Application Note. 8-bit Microcontrollers. AVR091: Replacing AT90S2313 by ATtiny2313. Features. Introduction

AVR287: USB Host HID and Mass Storage Demonstration. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

USB Test Environment ATUSBTEST- SS7400. Summary

AT91SAM ARM-based Flash MCU. Application Note

How To Prevent Power Supply Corruption On An 8Bit Microcontroller From Overheating

Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction

Step Motor Controller. Application Note. AVR360: Step Motor Controller. Theory of Operation. Features. Introduction

Two-wire Serial EEPROM AT24C1024 (1)

USB 2.0 Full-Speed Host/Function Processor AT43USB370. Summary. Features. Overview

Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures. Atmel Microcontrollers. Application Note. Features.

APPLICATION NOTE. Atmel AVR443: Sensor-based Control of Three Phase Brushless DC Motor. Atmel AVR 8-bit Microcontrollers. Features.

Application Note. 8-bit Microcontrollers. AVR307: Half Duplex UART Using the USI Module

32-bit AVR UC3 Microcontrollers. 32-bit AtmelAVR Application Note. AVR32769: How to Compile the standalone AVR32 Software Framework in AVR32 Studio V2

AVR32788: AVR 32 How to use the SSC in I2S mode. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

How To Use An Atmel Atmel Avr32848 Demo For Android (32Bit) With A Microcontroller (32B) And An Android Accessory (32D) On A Microcontroller (32Gb) On An Android Phone Or

AT86RF230 (2450 MHz band) Radio Transceiver... User Guide

AVR2004: LC-Balun for AT86RF230. Application Note. Features. 1 Introduction

AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.

Application Note. 8-bit Microcontrollers. AVR293: USB Composite Device

2-wire Serial EEPROM AT24C1024. Advance Information

Atmel AVR4921: ASF - USB Device Stack Differences between ASF V1 and V2. 8-bit Atmel Microcontrollers. Application Note. Features.

2-Wire Serial EEPROM AT24C32 AT24C64. 2-Wire, 32K Serial E 2 PROM. Features. Description. Pin Configurations. 32K (4096 x 8) 64K (8192 x 8)

Atmel AVR1017: XMEGA - USB Hardware Design Recommendations. 8-bit Atmel Microcontrollers. Application Note. Features.

Application Note. Atmel CryptoAuthentication Product Uses. Atmel ATSHA204. Abstract. Overview

8051 Flash Microcontroller. Application Note. A Digital Thermometer Using the Atmel AT89LP2052 Microcontroller

Application Note. 8-bit Microcontrollers. AVR435: BLDC/BLAC Motor Control Using a Sinus Modulated PWM Algorithm. 1. Features. 2.

STK 500, AVRISP, AVRISP

AVR318: Dallas 1-Wire master. 8-bit Microcontrollers. Application Note. Features. Introduction

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

Capacitive Touch Technology Opens the Door to a New Generation of Automotive User Interfaces

ATF15xx Product Family Conversion. Application Note. ATF15xx Product Family Conversion. Introduction

AT91 ARM Thumb Microcontrollers. Application Note. GNU-Based Software Development on AT91SAM Microcontrollers. 1. Introduction. 2.

USER GUIDE EDBG. Description

8-bit RISC Microcontroller. Application Note. AVR335: Digital Sound Recorder with AVR and DataFlash

AN2680 Application note

DIP Top View VCC A16 A15 A12 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O2 GND A17 A14 A13 A8 A9 A11 A10 I/O7 I/O6 I/O5 I/O4 I/O3. PLCC Top View VCC A17

8-bit RISC Microcontroller. Application Note. AVR910: In-System Programming

Application Note. Atmel ATSHA204 Authentication Modes. Prerequisites. Overview. Introduction

Table of Contents. Section 1 Introduction Section 2 Getting Started Section 3 Hardware Description

APPLICATION NOTE. Atmel AT04389: Connecting SAMD20E to the AT86RF233 Transceiver. Atmel SAMD20. Description. Features

Transcription:

AVR480: Anti-Pinch System for Electrical Window Automotive motorized window or door apparatus which closes automatically involve risks for trapping, squeezing or injury to people. They must reverse their movement in case the force applied by the motor gets higher than one rmalized limit. The feature implies the constant monitoring of the speed, current, position of the glass. For cost and simplicity reasons, the system described in this application te uses universal brush motor equipped with hall effect sensors. The detection algorithm is based on speed derivate and torque and has been verified for robustness and fault tolerance. It is applicable to all ATMEL AVR with A to D converter and Interrupt-on-Change I/O. Microcontrollers Application Note

Powered Equipments in Modern Cars Today, electronic components and systems account for over 20% of the cost of a high end passenger car. The ability of dense electronics to better control sensors and actuators is utilized to enhance comfort and safety in cars and it is very predictable that most of the middle and upper class vehicles will be systematically equipped with motorized window or door systems. The majority of these equipments come with full automation, means that they must be accompanied by safety systems to prevent people injury or mechanical degradations. The legislation offers set of rules to which powered systems must comply. This is particularly true for window lifts or sliding doors. This application te describes how to implement an antipinch algorithm which was initially developed for a powered window but which can be easily adapted to any other moving part. The Standards The automotive power-operated windows are governed by international standards, like MVSS118 in USA or 74/60/EEC in Europe. For those relatives to the elimination of danger to children, the requirements expressed in these documents can be summarized as follows (see Figure 1): Detection area: 4 mm to 200 mm, Maximum pinch force = 100N, Reverse direction on a pinch. Tests with determined deflection ratio objects: 5N/mm to 20N/mm Figure 1. Anti-Pinch window lift rules as per MVSS118 4mm 200mm 2 AVR480

AVR480 Hardware Consideration Anti-Pinch Algorithm Specification Different detection strategies are possible to determine whether an obstacle is entering the critical pinching area: Without mechanical contact. It reacts before the pinch effort is exerted on the object. This is the optimal protection since force is applied to the obstacle. It is also independent to vibration, aerodynamic variations, deformations. But, it requires integrated sensors (infrared, ultrasonic,...) with their electronic modules and wires leading to additional costs. With mechanical contact. The pressure measurement will tell the system an object is being pinched. Also there, designers have two fundamental techlogies available: Direct measurements: Force sensors or contactors are integrated on the door seal. These solutions are inherently high cost and reduce the styling for window/door designs Indirect measurements via physical monitoring. This is a globally cost optimized solution. The pinch detection algorithm shall, at first, respect the standards (FMVSS118 & 74/60/EEC) requirements: Detection area from 4 to 200mm Maximum exerted force of 100N Reverse direction on Pinch detection Normalized tests for validation It has to be adaptive since: The mechanical elements involved in the lift system will vary with time (ageing, local deformation, wear,...) The electrical characteristics could evolve significantly The environment will affect the friction forces (temperature, moisture, freeze, etc.) The system should t react to disturbances neither detect ipportune pinches. It must be robust against air friction, road vibration, power-cuts, etc... Solution Using Motor s Physical Parameters Modeling, Simulation The force applied to the glass can be extrapolated from the current through the motor. The position of the moving elements permanently provides information on speed. Both parameters can then be used to determine whether an obstacle has been encountered and whether: It is in the detection area The force applied gets higher than the limit This document describes one anti-pinch algorithm developed to work with motor current measurements and hall-effect speed indications. With very little changes, it can adapat to other systems like slidding doors or roof panels. To better design the pinch-detection algorithm, the physical parameters involved in the lift system have been extracted. Starting from a generic description of an opening/closing aparatus, one more precise model has been developed for the powered window. It is broken down into several main components as illustrated in Figure 2. 3

Figure 2. Powered Window Mechanical Components Motor Endless screw M «Flexible» coupling Non-linearity Roller for cable cable + sheath slides Pulley Cable window fixation The identification of the mechanical components leads to consider: Motor Effects Mechanical Parameters Electrical Parameters Window-Lift: Frictions (limited to slides) Machanical n-linearity (coupling mostly) Inertia (glass weight) Motor Model The DC universal motor used can be modeled using a very classical scheme as illustrated in Figure 3. Figure 3. DC Motor Equivalent Model i(t) U J f U i(t) e(t) L R 4 AVR480

AVR480 Differential (t) and Laplace domain (p) equations are extracted for Electrical and Mechanical elements: di U ( t) = e ( t) + Ri( t) + L dt U ( p) = E( p) + RI( p) + LpI( p) e ( t) = k Ω( t) E( p) = k Ω( p) m ( t) = k i( t), motor torque M ( p) = k I( p) dω J = m ( t) fω( t) dt JpΩ ( p) = M ( p) fω( p) The model chosen is a second order process. This allows the simulation of the motor, with its power supply (Voltage), including speed and current measurements. It also authorizes to inject disturbances or connect load (Co). It is detailed in Figure 4. Figure 4. Second Order Motor Model U 1 I C em M 1 + R + Lp K + -- -- f + Jp Ω E C o K Ω (p)= K*U(p) + Co(R+Lp) (f + Jp)(R + Lp) + K² 5

Window-lift Model In addition to the DC motor model, the components from the window-lift system must be inserted. They are introduced to estimate the torque provided by the motor, and to access to position, speed and acceleration. The mechanical elements are described in Figure 5. Figure 5. Window-lift Model T1 n M T r n T 2 ( Mz && + Fz + F Mg) 1 2 v & 2 s+ n : Gear ratio r : Radius T1, T2 : Torque Fv : Viscous Friction Fs : Static Friction r F F F 1 2 Weight Mg Z Z 1 Z 2 This model is executed to obtain system behavior and to verify the pinch-detection algorithm. Described parameters and others (static and viscous frictions, weight,...) are tuned and introduced in the model to verify their influence. Figure 6. Full Window-lift and Pinch-detection Algorithm Model motor Mechanical components sensors Anti-pinch Algorithm Pinch & Disturbances 6 AVR480

AVR480 Pinch Detection Algorithm Usual pinch-detection algorithm operation is using indirect measurements out of the window-lift system: Current (torque) Position (speed) The algorithm detailed in this document agregates two techniques based on Calibrated torque stored in n-volatile memory: Preliminary learning sequence is executed and torque values are stored in memory. This is quite memory consuming and requires regular calibration sequences Speed derivate calculation: Interesting method since it requires less memory but needs more computing power and takes benefit from the two methodologies. Pinching Condition A pinch is detected by comparing the current measurement with a reference (see Figure 7). M(t) ) kϕ x i(t) = K x i(t) The threshold can be determined out of the Motor Torque constant (K) combined with the response time of the system (Motor and the load). Figure 7. Condition for Pinch i measured i ref Pinch Threshold t Current Reference Synthesis One solution to elimnate need for calibration is to calculate expected current all along the movment. One pinch condition makes the speed decreasing and the current growing upassociated with increasing torque. Those two conditions are used to determinate the occurence of a pinch. In this document, speed derivate is preferred for its higher robustness to ise or fast disturbances. An example is given in Figure 8. The Current Reference (Iref) is permanently calculated until the speed increases or remains unchanged. As soon as the speed decreases rapidly (Derivate becomes negative), Iref is frozen. Current through the motor (Imot) continues to be measured and compared with Current Reference + Margin. In case Imot gets higher than the limit, then a Pinch is declared and several actions are taken by the application (First is to stop the motor and reverse its rotation to release the obstacle). 7

Figure 8. Example of a Pinch detection Example: blocking point Example: pinching Rotation speed t Current Imot t Derivate speed Reference Iref t t When derivate is negative, reference is frozen Algorithm Robustness Current Filtering The permanent calculation of the Iref allows for highly adaptative algorithm. To even increase the robustness of the alogrithm, the Current Reference is averaged over 8 consecutive measurements (see Figure 9). Figure 9. Global Current Reference Synthesis Principle Derivative speed Measured current Imot Average (8 samples) I meas Exploited current Low pass (2 samples) Current Reference Iref Algorithm Robustness Blocking points As Iref permanent calculation allows a highly adaptative algorithm, local great frictions variations called blocking points could involve bad pinch detection. Indeed, a local friction increase, eventually in addition to other disturbances (bumpy road, wind...) could result in a pinch condition, as Iref would be frozen. Those blocking points are detected the same way as pinches. The difference between current and reference is monitored. When it is greater than a threshold, it is detected and blocking point charateristics are stored into EEPROM. A blocking point is described only by a position interval and an event counter (number of detections) to minimize memory requirements. It could be more precise by storing magnitude in the interval or by using several threshold. But it would use more memory. A table containing all hard point informations is stored in n volatile memory When a blocking point is kwn (stored in table) and its event counter allows to consider it as a blocking point, the threshold is added to pinch margin, in the correspondig interval, to increase robustness. 8 AVR480

AVR480 Figure 10. Blocking point example Deformation: Transition period Position: upward (cm) State Machine The main finite state machine (FSM) manages motor commands and pinch detection (Figure 11 presents states for upward movements. Downward operation is presented in Figure 12). Figure 11. Finite State Machine for Moving Upward Operation Stop motor Stop Upward Cmd Start up Move up Timeout stop motor High position Or Timeout backlash Stopping Cmd Out of area Go up Pinch condition Timeout High position Ou Timeout Obstruct Pinch area Stop motor Pinch Move downward Reverse direction Delay ( current) Out of pinch area 9

Figure 12. Downwward Movement Finite State Machine Stop motor Stop Upward Cmd Move downward Move down Timeout Stop motor Stop request Cmd Timeout Bottom position Or Timeout Calibrate / Init of the position Adaptation function, portability FSM requires parameters (backlash, top and bottom ends, hall sensors resolution...) to work properly. Those parameters could be constant parameters or measured at initialisation. Some of them could change from one window lift to ather. Thereby, optional adaptation function acquire those parameters at first initialisation by operating the window lift. It also monitors blocking points to initialize the memorization table. This optionnal adaptation routine disables anti-pinch while running. It then operates window lift downward and upward to detect bottom and top positions. Simultaneously, it monitors the blocking points. To acquire backlash, It operates downward and upward into the pinch detection area (by comparing current reference to acquired current). Other Interesting Functions Not described here are secondary functions necessary for Window-lift operation: Measuring current, filtering Hall-Effect interrupt generation, counting, speed calculation, direction Push-button management Memorization of critical parameters (position, last operation direction,...) in case of powerfail 10 AVR480

AVR480 Simulation Results Numerous simulations have be ran to assess and tune the different parameters for the detection threshold loop. Figure 13 visualizes how the speed and motor torque behave at the first and second go-upward commands. Also, a pinch condition is injected at t=10s with a compression spring of 10N/mm. Figure 14 shows the same curves but disturbances in motor torque are injected (frequency of 10Hz, 50N), after a second go-upward command. Figure 13. Simulation of the Algorithm with two Consecutive Go-Upward Commands Motor speed (seen from window: dm/s) 1* 2* t Pinch Force (N) Reverse direction Pinching t Current (A)* acquisition gain, after average and reference. 1* 2* Current Reference > Threshold t 1. The n-linearity of the transmission causes a speed overvalue at motor start. The torque looks like un-coupled for a few moment. 2. There, the elasticity of the transmission system is more involved and the torque and speed images are different. 11

Figure 14. Algorithm Simulation Injecting 10Hz, 50N Disturbance Motor speed (seen from window: dm/s) Pinch Force (N) Current (A)* acquisition gain, after average and reference. AVR Implementation The algorithm detailed in the previous paragraphs has been implemented and tested using an AVR ATMEGA88 based board. Hardware Specification The hardware used for the implementation of the algorithm is described in Figure 15. It implements one standard ATmega88 as well as analog chain to measure motor current. It has two hall effects sensors. The motor direction is controlled via one two-poles relay while the ON-OFF of the motor is activated by a Mosfet. Figure 15. ATmega88 Controlling the Window-lift with Anti-pinch Feature Hall Sensor x2 INT out V Battery M AVR out ADC + - Shunt The software involves several microcontroller resources as defined in Table 1. 12 AVR480

AVR480 Table 1. Hardware / Software Partitioning Feature A to D Converter Timer0 (8-bit) Current Acquisition X X Position, Speed, direction Determine Current Reference Timeout Timer1 (16-bit) PCINT9 EEPROM IDLE (Soft) Save Parameters X X Filter Anti-Pinching Operate Window-Lift X X X x X X X X Task Scheduling By considering, the algorithm described previously, as well as the allocation of hardware and software resources, we obtain the following scheduling of the program Normal Operations This schedule is valid when the algorithm is running in standard operating condition, i.e. when the motor is operating (rotating) or is stopped. Indeed, position, speed and reference calculations are refreshed when events occurs from the position sensors (hall effect sensors) or don't have to be done (when the motor is stopped in a stable and rmal state). Figure 16. Task Scheduling When Normal Operation Edge on position sensor Computation of position, derivate speed, current reference PCINT9 interrupt Timer 1 overflow interrupt Timer 0 overflow Reset of timer counter ADC : Current acquisition Idle Filtering, Window-lift operations, Anti-pinching 13

Other Operations When the motor is brutally stopped, rotates abrmally slow or doesn't start for several reasons (motor blocked, hall sensor disconnected ), timer1 is used to generate a timeout and to shut down the power (or to reverse direction). Figure 17. Task Sceduling When Timeout or Parameter Save Request has been Set Interruption PCINT9 Interruption Timer 1 overflow Timer 0 overflow ADC : current acquisition Idle Timeout Save parameters into EEPROM Algorithm porting Software Description Such an algorithm should be portable from one opening aparatus to ather. So, it uses like a database stored into eeprom, which contains algorithm parameter set (extracted from model). This allows algorithm to be portable. Refer to algorithm adaptation procedure (AVR191) for more details. All code is implemented in C language using IAR EWAVR 4.20. Implementation of basic functions (position management, initializations, current measurements, window operations and antipinch monitoring) requires 2Kb of flash memory. Adding extended functions like eeprom storage, calibration, adaptation, blocking points detection increases code size up to 5.7Kb. void init_window_peripherals (void) Initialize pin change interrupt to be used with a Hall effect position sensor (sensitive to rising and falling edges). It also initializes timers and the ADC used to measure speed and motor current. void init_window_parameters (signed char *go_down) This function load window lift parameters from EEPROM or from default values, to initialize the window-lift. Those values are window dimensions, sensor values, pinch threshold, pinch area, last kwn position If a default is found on position, it is able to ask for a go down command to initialize the window-lift at bottom-end limit. void init_window_size_position() Allows to automatically operate window down, then up to detect top and bottom positions, identify blocking points and backlash : It's an adaptation routine. void save_window_parameters(void) This function saves window lift parameters to EEPROM. 14 AVR480

AVR480 U8 window_ctrl (signed char *up_cmde, signed char *down_cmde,u8 _anti_pinch) This contains the window-lift state machine. It controls window operations, with given events parameters. It monitors the position, up and down end limits, and the anti-pinching condition. It returns the state of the window-lift (same value as the get_window_state function). interrupt void hall_sensor_isr (void) This interrupt sub-routine is executed on hall sensor edges. It computes rotation direction, position, derivative speed and motor current reference. It's also able to detect a default on a hall effect sensor (which is t connected to an interrupt pin) by counting successive direction changes. It is used to force the window to stop after a defined step. interrupt void TIMER0_OVF_ISR (void) This interrupt sub-routine is executed on timer 0 overflow to shedule ADC conversion starting. signed char get_window_state (void) It returns the state of the window-lift state machine (value used in the window_ctrl function). signed char force_window_state (signed char temp) Set-up window-lift state: useful to force operations (stop request ). unsigned char mean (unsigned char) Compute a mean on the 8 last samples. Used for filtering motor current. void push_button (signed char *push) This function monitors a push button and generates operation command events to be transmitted to the window_ctrl function. U8 blocking_point(signed char window_state) This function monitors blocking points by comparing current value with reference. It shall be synchronized with window control state machine. So, it requires window_ctrl to be called before and its returned state shall be provided in parameter. U8 update_point (void) This function shall be called by blocking_point routine to sort, create or refresh blocking points data table when a blocking point has just been completly detected. When this blocking point was existing, it updates its event counter and its position interval. If it wasn t existing, routine insert it in the blocking points table. void clean_point(void) This routine shall be called by blocking_point routine and the end of each upward operation. It s in charge of decreasing blocking point event counter in the parsed area. It cleans blocking points which event counter has decreased to zero (means they more exists or it was a disturbance or a pinch and have more been detected) 15

U8 get_block_point(u16 position) This function returns the corresponding threshold value to add to pinch margin value if a blocking point has been confirmed at the provided position in parameter. Otherwise, when there are blocking point at this postion, it returns zero. Main Control Loop Figure 18. Main Control Loop Inits ADC end conversion yes clear conversion flag current filtering Read Push buttons Window-lift control monitor blocking points save parameters 16 AVR480

AVR480 Hall effect Position Sensor Interrupt Subroutine Figure 19. Hall effect Position Sensor Interrupt Sub-routine Hall sensor ISR save timer content Direction? downward upward decrement position increment position Default? yes stop request compute derivative speed (dv) dv > 0 or ref < current yes update current reference end ISR 17

Window Control State Machine Implementation Figure 20. Window Control State Machine Implementation (part 1) state stop state motor off go up cmd? direction = up go down cmd? motor on reset timeout state = start_up direction = down reset timeout state = go_down start_up state backlash end back up start position Timeout state = go up current>0 cmd? state = pinch error : motor disconnected state = stopping go_up state go up or down cmd state = stopping PINCH or Timeout position>4mm end stop state = obstruct motor off end stop motor off state = stop state = stop Timeout null current & pinch area motor off update position state = stop error : motor off after a step obstruct state go down cmd? state = stopping PINCH area state = pinch end stop state = stop Timeout motor off update position state = stop state = go up 18 AVR480

Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 487-2600 Regional Headquarters Europe Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Fribourg Switzerland Tel: (41) 26-426-5555 Fax: (41) 26-426-5500 Asia Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimshatsui East Kowloon Hong Kong Tel: (852) 2721-9778 Fax: (852) 2722-1369 Japan 9F, Tonetsu Shinkawa Bldg. 1-24-8 Shinkawa Chuo-ku, Tokyo 104-0033 Japan Tel: (81) 3-3523-3551 Fax: (81) 3-3523-7581 Atmel Operations Memory 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 436-4314 Microcontrollers 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 436-4314 La Chantrerie BP 70602 44306 Nantes Cedex 3, France Tel: (33) 2-40-18-18-18 Fax: (33) 2-40-18-19-60 ASIC/ASSP/Smart Cards Zone Industrielle 13106 Rousset Cedex, France Tel: (33) 4-42-53-60-00 Fax: (33) 4-42-53-60-01 1150 East Cheyenne Mtn. Blvd. Colorado Springs, CO 80906, USA Tel: 1(719) 576-3300 Fax: 1(719) 540-1759 Scottish Enterprise Techlogy Park Maxwell Building East Kilbride G75 0QR, Scotland Tel: (44) 1355-803-000 Fax: (44) 1355-242-743 RF/Automotive Theresienstrasse 2 Postfach 3535 74025 Heilbronn, Germany Tel: (49) 71-31-67-0 Fax: (49) 71-31-67-2340 1150 East Cheyenne Mtn. Blvd. Colorado Springs, CO 80906, USA Tel: 1(719) 576-3300 Fax: 1(719) 540-1759 Biometrics/Imaging/Hi-Rel MPU/ High Speed Converters/RF Datacom Avenue de Rochepleine BP 123 38521 Saint-Egreve Cedex, France Tel: (33) 4-76-58-30-00 Fax: (33) 4-76-58-34-80 Literature Requests www.atmel.com/literature Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMEL S TERMS AND CONDI- TIONS OF SALE LOCATED ON ATMEL S WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDEN- TAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without tice. Atmel does t make any commitment to update the information contained herein. Unless specifically providedotherwise, Atmel products are t suitable for, and shall t be used in, automotive applications. Atmel satmel s products are t intended, authorized, or warranted for use as components in applications intended to support or sustain life. Atmel Corporation 2006. All rights reserved. Atmel, logo and combinations thereof, are registered trademarks, and Everywhere You Are are the trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others. Printed on recycled paper.