Transcript
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Designer Reference Manual
M68HC08 Microcontrollers DRM005/D 5/2002
WWW.MOTOROLA.COM/SEMICONDUCTORS
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 By: Andrea Martini ESSEPIE S.r.l. — Studio di progettazione Via Artigianato,5 24044 Dalmine (BG) — Italy
63(
Email:
[email protected] Web: http://www.elektronikladen.de/en
Motorola and the Stylized M Logo are registered trademarks of Motorola, Inc. DigitalDNA is a trademark of Motorola, Inc.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
© Motorola, Inc., 2002
DRM005 3
Revision History To provide the most up-to-date information, the revision of our documents on the World Wide Web will be the most current. Your printed copy may be an earlier revision. To verify you have the latest information available, refer to: http://www.motorola.com/semiconductors The following revision history table summarizes changes contained in this document. For your convenience, the page number designators have been linked to the appropriate location. Revision History
DRM005 4
Date
Revision Level
May, 2002
N/A
Description Initial release
Page Number(s) N/A
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Designer Reference Manual — Remote Keyless Entry
List of Sections
Section 1. General Description . . . . . . . . . . . . . . . . . . . . 11 Section 2. Motorola RF Components . . . . . . . . . . . . . . . 17 Section 3. Reference Board Hardware . . . . . . . . . . . . . . 21 Section 4. HC908RF2 for Windows Installation . . . . . . . 33 Section 5. Remote Programming Commands . . . . . . . . 43 Appendix A. Source Code . . . . . . . . . . . . . . . . . . . . . . . . 59 Appendix B. Schematics . . . . . . . . . . . . . . . . . . . . . . . . 135 Appendix C. Board Layouts . . . . . . . . . . . . . . . . . . . . . . 139 Appendix D. Bill of Materials . . . . . . . . . . . . . . . . . . . . . 147
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
List of Sections
DRM005 5
List of Sections
DRM005 6
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 List of Sections
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Table of Contents
Section 1. General Description 1.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3
Reference Board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4
Reference Goals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Section 2. Motorola RF Components 2.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3
MC68HC908RF2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4
MC33592/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5
MC33491 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Section 3. Reference Board Hardware 3.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3
Mother Board Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
3.4
Remote Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3.5
Receiver Board Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6
Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7
Mother Board Display Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Section 4. HC908RF2 for Windows Installation 4.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3
Installation Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Table of Contents
DRM005 7
Table of Contents Section 5. Remote Programming Commands 5.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3
Communication Protocol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Command Set Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.4.1 Erase Programming Algorithm Memory (EPG) . . . . . . . . . .45 5.4.2 Erase TX S19 Memory (ETX). . . . . . . . . . . . . . . . . . . . . . . .46 5.4.3 Erase User Code Memory (EUM) . . . . . . . . . . . . . . . . . . . . 47 5.4.4 Initialize MC33592/3 Registers (IRR) . . . . . . . . . . . . . . . . . . 48 5.4.5 Load Programming Algorithm (LPG) . . . . . . . . . . . . . . . . . . 49 5.4.6 Load TX S19 File (LTX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.4.7 Product ID (PID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 5.4.8 Read MC33592/3 Registers (RRR) . . . . . . . . . . . . . . . . . . .54 5.4.9 Update User Code (UUC) . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4.10 MC33592/3 Registers (WRR). . . . . . . . . . . . . . . . . . . . . . . .57
Appendix A. Source Code A.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
A.2 Mother Board Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 A.2.1 UK509.ASM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 A.2.2 UK509 PRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 A.3
Transmitter Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Appendix B. Schematics Appendix C. Board Layouts Appendix D. Bill of Materials
DRM005 8
D.1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
D.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
D.3
Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
D.4
Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
D.5
Mother Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Table of Contents
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
List of Figures and Tables
Figure
Title
1-1 1-2 1-3
Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Receiver Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Mother Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
2-1 2-2
MC33492 Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 14-Lead TSSOP Pictorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8
Mother Board Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Remote Block Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Receiver Board Block Diagram. . . . . . . . . . . . . . . . . . . . . . . . . 25 Receiver Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Receiver Board Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Transmitter Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Mother Board Display Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8
Startup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Welcome Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 License Agreement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Choose Destination Location Screen . . . . . . . . . . . . . . . . . . . .37 Setup Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Select Program Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Install Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Finish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5-1 5-2
Command Packet Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 Command Packet Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Page
List of Figures and Tables
DRM005 9
List of Figures and Tables Figure
Mother Board Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Receiver Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 Transmitter Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
C-1 C-2 C-3 C-4 C-5 C-6
Transmitter Layout (Top View) . . . . . . . . . . . . . . . . . . . . . . . . 140 Transmitter Layout (Bottom View) . . . . . . . . . . . . . . . . . . . . . 141 Receiver Layout (Top View) . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Receiver Layout (Bottom View) . . . . . . . . . . . . . . . . . . . . . . .143 Mother Board Layout (Top View) . . . . . . . . . . . . . . . . . . . . . . 144 Mother Board Layout (Bottom View). . . . . . . . . . . . . . . . . . . . 145
2-1
10
Page
B-1 B-2 B-3
Table
DRM005
Title
Title
Page
MC33492 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . 20
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 List of Figures and Tables
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Section 1. General Description
1.1 Contents 1.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3
Reference Board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4
Reference Goals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Introduction The purpose of this document is to detail the hardware and software required for a remote key entry (RKE) application. For several reasons this solution can fit well even for “wireless” applications where there is a need to send data from a remote sensor via radio frequency (RF) communication. If you look at networking connections, some years ago the only way to implement these was with hundreds of meter of wires. Today we are faced with a new challenge. For clarification, some of the standards are highlighted below along with their main application. 1. 2.4-GHz Standards — The main application for this standard is business wireless local area networks (LANs), where the speed of the communication is a key factor (up to 24-Mbps) 2. Bluetooth —Originally, Bluetooth was being studied to provide a solution to point-to-point short-range links for voice applications, such as cell phones to PDAs or a hands free automobile adapter kit that eliminates the need for cables and adapter sockets. Even in these cases, the purpose of the standard is to provide a high-speed solution for communicating huge quantities of data.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
General Description
DRM005 11
Designer Reference Manual 3. Radio Frequency (RF) — The number of RF applications are unlimited. An example of RF use would be with gate opening applications. RF can be considered as a cost-effective solution for small to medium volume data transmission (not at high speeds). For such applications, frequency bands most used are 200 MHz, 315 MHz, 433 MHz, 868 MHz, or 900 MHz. Some of the markets interested in this standard include appliances, smoke sensors, and home networking. The RF standard is the subject of this document.
1.3 Reference Board Over the past several years, Motorola has developed many RF semiconductor products including the MC68HC908RF2 microcontroller unit (MCU). This microcontroller includes the excellent performance of the HC08 Family along with an integrated RF transmitter. Reference board features:
DRM005 12
•
Mother Board: Connectable to a PC through an RS232 connector for setting up the receiver. The setting can be implemented stand alone using the integrated encoder and a display unit on the board.
•
Remote Transmitter: Implemented using an MC68HC908RF2 MCU with integrated Motorola technology for UHF transmitters. Eight buttons are implemented on the transmitter.
•
Receiver Board: The MC3359x UHF is used to receive data from the transmitter. The received data can be viewed on the display unit on the mother board.
•
433-MHz and 868-MHz band frequency transmission implemented (the MC68HC908RF2 can transmit both of the frequencies by simply changing a pin status
•
Simple rolling code provided
•
All source code and schematics provided for fast implementation of an RF application
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 General Description
MOTOROLA
General Description Reference Goals
It is important to highlight that the MC68HC908RF2 MCU can transmit at two frequency levels: 433-MHz or 868-MHz simply by changing the configuration of one pin (to be either a pullup or pulldown). For evaluation reasons, Motorola has provided two separate transmitters so that users can avoid buying or disconnecting a pullup on a case-by-case basis. See Figure 1-1.
Figure 1-1. Transmitter
1.4 Reference Goals The main goal of this document is to demonstrate how to use the Motorola components listed in 1.3 Reference Board to control transmitting and receiving a RF transmission. However, it is important to acknowledge the capabilities of the MC68HC908RF2’s FLASH memory which will be demonstrated. A rolling code algorithm is provided with this material (the source code is in Appendix A. Source Code). This algorithm has been developed to use the embedded FLASH of the MC68HC908RF2 MCU instead of an EEPROM memory. In the remote transmitter, eight buttons have been implemented. The pressure of one of these buttons is transformed in a RF transmitted frame and captured by the receiver. The display mounted on the mother board then shows an indication of the button pressed with the CRC code Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
General Description
DRM005 13
Designer Reference Manual transmitted (highlighting the fix code and variable code in case a rolling code transmission is chosen). Due to the excellent current consumption features of the MC68HC908RF2 a “small” 3-volt Lithium battery (i.e., CR2032) is used in the remote transmitter. In this configuration the average transmission distance is around 10 meters. However, with a simple modification to the transmitter layout (including a small transistor for amplifying and a “bigger” battery) a range of 100 meters can be achieved. The mother board is powered with a 9-volt DC power supply and has a encoder mounted to set up the configuration of the transmission (fixed or rolling code) and the three registers which reside inside the RF receiver. The value of these register can be viewed on the mother board’s display. Another way to change the register’s value is through Windows® PC software which is provided on a CD ROM and downloadable from the Motorola web site at: www.motorola.com/semiconductors All embedded software has been written using Metrowerks® CodeWarrior® suite for Motorola HC08 devices. All the code is commented and provided in Appendix A. Source Code. The receiver board is shown in Figure 1-2 and the mother board in Figure 1-3.
® ®
DRM005 14
Windows is a registered trademark of Microsoft Corporation in the U.S. and/or other countries. Metrowerks and CodeWarrior are registered trademarks of Metrowerks, Inc., a wholly owned subsidiary of Motorola, Inc.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 General Description
MOTOROLA
General Description Reference Goals
Figure 1-2. Receiver Board
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
General Description
DRM005 15
General Description
DRM005 16
General Description
MOTOROLA
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
Figure 1-3. Mother Board
Designer Reference Manual — Remote Keyless Entry
Section 2. Motorola RF Components
2.1 Contents 2.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3
MC68HC908RF2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4
MC33592/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5
MC33491 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Introduction This section provides a general overview of the Motorola RF components used in this reference. They are: •
MC68HC908RF2 — microcontroller unit (MCU)
•
MC33592/3 — phase locked loop (PLL) tuned ultra-high frequency (UHF) receiver
•
MC33491 — PLL tuned UHF transmitter
2.3 MC68HC908RF2 The MC68HC908RF2 MCU is a member of the low-cost, high-performance M68HC08 Family of 8-bit microcontroller units (MCUs). Optimized for low-power operation and available in a small 32-pin low-profile quad flat pack (LQFP), this MCU is well suited for remote keyless entry (RKE) transmitter designs. This MCU can work with a Lithium battery because of the low level current consumption that can be reached. In stop mode, the MCU current consumption is almost 10 nA and it is possible to wakeup the MCU with an external interrupt generated by the keyboard interrupt port. Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Motorola RF Components
DRM005 17
Motorola RF Components Features of the MC68HC908RF2 MCU include:
DRM005 18
•
High-performance M68HC08 architecture, fully upward-compatible object code with M6805, M146805, and M68HC05 Families.
•
Maximum internal bus frequency of: – 4 MHz at 3.3 volts – 2 MHz at 1.8 volts
•
Internal oscillator requiring no external components
•
Software selectable bus frequencies
•
±25 percent accuracy with trim capability to±2 percent
•
Option allowing use of external clock source or external crystal/ceramic resonator
•
2 Kbytes of on-chip FLASH memory
•
128 bytes of on-chip RAM
•
16-bit, 2-channel timer interface module (TIM)
•
12 general-purpose input/output (I/O) ports: – Six shared with the keyboard wakeup function – Two shared with the timer module
•
Port A pins have 3-mA sink capabilities
•
Low-voltage inhibit (LVI) module: – 1.85-V detection forces MCU into reset – 2.0-V detection sets indicator flag
•
6-bit keyboard interrupt with wakeup feature
•
External asynchronous interrupt pin with internal pullup (IRQ1)
•
UHF MC33491 transmitter featuring: – Switchable frequency bands: 315, 434, and 868 MHz – On/off keying (OOK) and frequency shift keying (FSK) modulation – Adjustable output power range – Fully integrated voltage-controlled oscillator (VCO) – Data clock output for the MCU – Low external component count Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Motorola RF Components
MOTOROLA
Motorola RF Components MC33592/3
2.4 MC33592/3 MC33592/3 is a PLL tuned UHF receiver, usable in the receiver side of a data transmitter application. It is a 24-lead quad flat package (LQFP) device, completely configurable by a serial peripheral interface (SPI) making it simple to interface with a MCU. The MC33592/3 provides two band frequency ranges selectable by mask option: •
MC33592 supports 315/433 MHz band with an intermediate frequency (IF) of 500 kHz
•
MC33593 supports 868 MHz band
The MC33592/3 supports either OOK or FSK modulation. With the data manager active, the MC33592/3 is able to receive Manchester codified data and communicate by SPI with an external MCU (a few components are externally requested). By using MC33592/3 in sleep mode with the strobe oscillator enabled, very low power consumption can be reached (115 mA). In this condition, MC33592/3 will be periodically woken up based on resistor-capacitor (RC) values outside and strobe ration programmed from users.
2.5 MC33491 MC33491 is a PLL tuned UHF transmitter in a 14-lead thin shrink small outline package (TSSOP). This device is characterized for low power consumption (0.5 nA stand-by current) with a supply voltage range between 1.9 volts and 3.7 volts (this feature is suitable for portable applications).
NOTE:
MC33491 can work at 315 MHz, 433 MHz, and 868 MHz without mask change as the frequency band is completely switchable. For the European market, 868 MHz will be a band extremely important in the future, since it has just recently become available in many countries. Refer to Figure 2-1, Figure 2-2, and Table 2-1.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Motorola RF Components
DRM005 19
Motorola RF Components
DATACLK
1
14
MODE
DATA
2
13
ENABLE
BAND
3
12
VCC
GND
4
11
GNDRF
XTAL1
5
10
RFOUT
XTAL0
6
9
VCC
REXT
7
8
CF8K
Figure 2-1. MC33492 Pin Assignments TSSOP-14 DTB SUFFIX CASE 948G
DTB 0.65 mm Pitch 5 mm x 4.4 mm Body
Figure 2-2. 14-Lead TSSOP Pictorial
Table 2-1. MC33492 Ordering Information
DRM005 20
Device
Ambient Temperature Range
Package
MC33491 DTB
–40°C to 125°C
TSSOP14
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Motorola RF Components
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Section 3. Reference Board Hardware
3.1 Contents 3.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3
Mother Board Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
3.4
Remote Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3.5
Receiver Board Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6
Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7
Mother Board Display Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Introduction This section describes the MC68HC908RF2 reference board hardware. The MC68HC908RF2 reference board (hereafter referred to as RF2 board) has these purposes: •
Demonstration of a remote controller board for the MC68HC908RF2 microcontroller (MCU)
•
Demonstration of a receiver board for the MC3359X receiver chip
The RF2 board can also program the FLASH memory of a MC68HC908RF2 MCU from a personal computer (PC).
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Reference Board Hardware
DRM005 21
Reference Board Hardware In the development of this reference: •
The software was developed using Metrowerks C compiler and assembler.
•
Printed circuit board (PCB) and schematics were developed using ZUKEN-REDAC CR5000 software.
•
Debugging was done using a MMEVS08 debugger with EML08GP32 daughter board for the MC68HC908GP32 and EML08RK2 daughter board for the MC68HC908RF2.
The RF2 board is composed of three parts: 1. Mother board — see 3.3 Mother Board Description 2. Remote — see 3.4 Remote Description 3. Receiver board — see 3.5 Receiver Board Description
NOTE:
There is also a programming adapter board for the RF2 which is not covered by this document.
3.3 Mother Board Description The RF2 mother board is described here:
NOTE:
DRM005 22
•
The RF2 board is based on a MC68HC908GP32 FLASH MCU.
•
The user interface has a rotary encoder with: – Push button – Select switch – 3-line by 12-character liquid crystal display (LCD)
•
A RS232 interface is provided to connect the board to the PC.
•
A programmable power supply generates all voltages required to program FLASH MCU.
•
An input/output (I/O) connector is provided for the receiver board.
The receiver board has not been integrated with the mother board to allow for future upgrades as long as receiver chips are in continuous evolution.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Reference Board Hardware
MOTOROLA
Reference Board Hardware Mother Board Description
•
Two option board connectors have been provided that can accept either a programming adapter or any other demonstration board.
•
An optional external high density FLASH memory (128 Mbit) can be installed to use the RF2 board as a general-purpose FLASH programmer (firmware and adapters are not covered by this document).
Refer to Figure 3-1 for a block diagram.
128M FLASH (OPTIONAL)
RS232
DISPLAY INPUT DEVICE
I/O CONNECTOR
MCU MC68HC908GP32
OPTION BOARD CONNECTOR
PROGRAMMABLE POWER SUPPLY SYSTEM
Figure 3-1. Mother Board Block Diagram
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Reference Board Hardware
DRM005 23
Reference Board Hardware 3.4 Remote Description The remote is described here: •
The remote is based on a MC68HC908RF2 FLASH MCU with an integrated ultra-high frequency (UHF) module.
•
The circuit has: – An 8-key silicon rubber keyboard to evaluate the wake-up feature of the MCU – A single cell CR2032 lithium battery
•
The antenna is a small loop on the PCB generally used in keyless entry systems.
Refer to Figure 3-2 for a block diagram.
ANTENNA
4 X 2 RUBBER KEYBOARD
MCU MC68HC908RF2
1-CELL LITHIUM BATTERY
Figure 3-2. Remote Block Diagram
3.5 Receiver Board Description The receiver board is based on a MC3359X UHF receiver (X = 1 and 2 for 433.92 MHz and X = 3 for 868 MHz). This circuit allows the demonstration of the MC3359X wake-up feature and data manager.
DRM005 24
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Reference Board Hardware
MOTOROLA
Reference Board Hardware Receiver Board Description
Two connectors are provided for expandability: •
One is a card edge connector so that the board can be used with the MC68HC908RF2 mother board
•
The other (not assembled) is a standard 2-mm pitch PTH connector so that the board can be easily used with a user target.
Refer to Figure 3-3 for a block diagram, Figure 3-4 shows the receiver board, and Figure 3-5 the receiver board schematic.
ANTENNA CONNECTOR
WAKE-UP CIRCUIT
MC3359X
BOARD CONNECTOR
Figure 3-3. Receiver Board Block Diagram
Figure 3-4. Receiver Board Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Reference Board Hardware
DRM005 25
1uH
R5
CN2
R2
10 K
CN3
470 K
MOTOROLA
CN2
DMDAT
19
MIKOUT
23
SCLK MOSI MISO
IC2 MC33591
RFIN
C19
RESETB
5
6
8
9 19
22
12
24
7
17
11
25 CN4 24 CN5
16
CN2
23
15 CN2
14
CN6 33
21 CN7 20
CN2
X1
X2
ROBGAP PFD
DMIXAGO
CAFC
GND1 GND0
GND
GNDS
STROBE CAGC
4 C8
18 VDC0
VDCL
VCC
3
100 P CDG
GNDL
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
Reference Board Hardware
1.4–3 pF 3 MM
2 VCC1
CN2
1
36
CN2
28 32
10
CR1
C5
C3
C8
C11
C10
C4
C12
R3 500P 00G
500M XJA
XJA 10N
6P CDG
180K
B8N X7A
1U Y5V
1U Y6V
CN8 CN2
GND
Figure 3-5. Receiver Board Schematic
7
Reference Board Hardware
DRM005
26
VCC
Reference Board Hardware Receiver Board Description
The circuit is very simple and not all components are needed in most applications.
NOTE:
•
The power supply is first filtered with L1,C10, and C12. Note that C10 must be placed as near as possible to IC2.
•
R3 is the bandgap biasing resistor and should have an 1% tolerance.
•
CR1 and C11 are the reference oscillators for the phase locked loop (PLL). Note that it is also possible to use an external generator connected to X1 through a DC blocking capacitor. However, the amplitude of the signal should not exceed 500 mV.
When you calculate the reference oscillator frequency you must add to the carrier center frequency the IF center frequency (generally 660 kHz). So, for 433.92 Mhz carrier frequency: f(ref) = (433.92+0.66)/32 = 13.580625 MHz In this way, the transmitter and receiver have different reference XTAL.
WARNING:
WARNING:
Reference oscillators values must be calculated accurately since a difference of 10 kHz = 0.01 MHz will force the receiver out of tune (for example, a XTAL of 13.57 MHz is not usable for a carrier of 433.92 MHz). •
C3 is the AGC capacitor in the case of OOK modulation. In case of FSK modulation, the voltage at this pin is used as reference.
•
C4 and R2 are the strobe oscillator external components. If a strobe oscillator is not used R2 should be the jumper that connects the strobe pin to VCC. Otherwise, MC33592/3 will be in sleep mode.
If strobe = VCC, bit 4 of CR1 (strobe oscillator enable) must be 0. •
The antenna is a very small loop antenna. While it is not the best solution in that it is not well matched with the input impedance of the LNA input amplifier, for most applications it is good enough and there are no additional costs. A better solution would require a matching network (with at least one inductor) and a input SAW filter which is very expensive.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Reference Board Hardware
DRM005 27
Reference Board Hardware 3.6 Transmitter A programming connector is provided for in-circuit programming of the MC68HC908RF2 and for loading custom user programs. The transmitter is shown in Figure 3-6 and the schematic in Figure 3-7
Figure 3-6. Transmitter
DRM005 28
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Reference Board Hardware
MOTOROLA
R22
2
SW3
SW4
SW1
SW2
PTA0 1 PTA1/KBD1 32 PTA2/KBD2 31 PTA3/KBD3 30 PTA4/KBD4 29 PTA5/KBD5 28 PTA6/KBD6 27 PTA7 3 PTB0/MCLK 4 PTB1 5 PTB2/TCHO 20 PTB3/TCLK
BAT1 1 C42032 2
26
24
RESET
IRQ
25
14
11 VCC
R20 R18
VCCPF
R14
VDD
SW5
10k
SW6
10k
SW8 330
SW7
10
LD1
TL0U1002
CN1 CN2 CN3
IC1 HC908RF2REV1
1U YBV
R18
R16
1K
1K
R21 R19
R23
10
10
10K
23
8
10
7
13
GND
GNDPF
PEXT 9
L1
6
R17
CN4 CR1 C5 CN5
8P C0G GND
29
DRM005
Figure 3-7. Transmitter Schematic
12K
22 nH
RFOUT 12
C8 10N X7R
8P C0G
C3 3 MM 1.4–3 pF
C8
C2 100P 1U COB Y5V
C7
Reference Board Hardware Transmitter
C8
22
CFBK
OSC1 21
X1
CNE
X0
DCLK 18 DATA 17 BAND 16 PLLEN 15 MODE
VSS
19
OSC2
Reference Board Hardware
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
MOTOROLA
VCC
Reference Board Hardware The circuit is very simple. •
NOTE:
WARNING:
The power supply is a CR2032 lithium battery connected directly to the MC68HC908RF2 (IC1).
When the RF PLL is disabled and the MCU is in sleep mode the power consumption is less then 100 nA. •
The keyboard (a 4 x 2 crosspoint rubber keyboard) connected to the keyboard port wakes up the MCU.
•
The MCU has an internal clock generator with no external components.
•
CR1 an C6 are the reference oscillators for the RF PLL enabled by the PLLEN pin. When PLLEN = 1 the oscillator is ON and a reference signal DCLK = XTAL/64 is available. DCLK is used as a reference clock for the MCU timer to generate an accurate modulation signal. This signal is available only when PLL is ON.
The MC68HC908RF2 has two separate chips in the same case, one is the MCU and one is the RF transmitter. A buffer is needed if the MCU is to be used to drive other logic gates. •
C2, C3, C8, C9, and L1 are the matching network for the small loop antenna.
•
R20 and R21 are used to select the band and only one of them must be assembled.
•
R12 is the output power setting resistor and sets the current of the RF power amplifier.
3.7 Mother Board Display Menu Figure 3-8 shows the mother board display menu.
DRM005 30
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Reference Board Hardware
MOTOROLA
Reference Board Hardware
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
MOTOROLA
Rx board not found!
XReceive
Set MC3359x 434/868MHz
Coding type Fixed ESC to exit
X
Tx ID 5423F4 Key Sx 3 CRC EC
Coding type Rolling ESC to exit
--ID--KKRRRR 5423F4860084 C587B8F090FD
X
X RX Menu
TX Menu Power Off
No File in memory!
Programming firmware not loaded!
XCR1=14
CR2=A1 CR3=00
X
Receive Set MC3359x 315MHz
X
Program Tx File name: No File
31
DRM005
Figure 3-8. Mother Board Display Menu
Reference Board Hardware Mother Board Display Menu
X
Program Tx File name: UK804
Reference Board Hardware
DRM005 32
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Reference Board Hardware
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Section 4. HC908RF2 for Windows Installation
4.1 Contents 4.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3
Installation Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.2 Introduction This section provides the installation screens for the MC68HC908RF2 reference board.
4.3 Installation Screens See Figure 4-1 through Figure 4-8.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
HC908RF2 for Windows Installation
DRM005 33
HC908RF2 for Windows Installation
Figure 4-1. Startup Screen
DRM005 34
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 HC908RF2 for Windows Installation
MOTOROLA
HC908RF2 for Windows Installation Installation Screens
Figure 4-2. Welcome Screen
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
HC908RF2 for Windows Installation
DRM005 35
HC908RF2 for Windows Installation
Figure 4-3. License Agreement
DRM005 36
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 HC908RF2 for Windows Installation
MOTOROLA
HC908RF2 for Windows Installation Installation Screens
Figure 4-4. Choose Destination Location Screen
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
HC908RF2 for Windows Installation
DRM005 37
HC908RF2 for Windows Installation
Figure 4-5. Setup Type
DRM005 38
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 HC908RF2 for Windows Installation
MOTOROLA
HC908RF2 for Windows Installation Installation Screens
Figure 4-6. Select Program Folder
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
HC908RF2 for Windows Installation
DRM005 39
HC908RF2 for Windows Installation
Figure 4-7. Install Files
DRM005 40
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 HC908RF2 for Windows Installation
MOTOROLA
HC908RF2 for Windows Installation Installation Screens
Figure 4-8. Finish
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
HC908RF2 for Windows Installation
DRM005 41
HC908RF2 for Windows Installation
DRM005 42
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 HC908RF2 for Windows Installation
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Section 5. Remote Programming Commands
5.1 Contents 5.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3
Communication Protocol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Command Set Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.4.1 Erase Programming Algorithm Memory (EPG) . . . . . . . . . .45 5.4.2 Erase TX S19 Memory (ETX). . . . . . . . . . . . . . . . . . . . . . . .46 5.4.3 Erase User Code Memory (EUM) . . . . . . . . . . . . . . . . . . . . 47 5.4.4 Initialize MC33592/3 Registers (IRR) . . . . . . . . . . . . . . . . . . 48 5.4.5 Load Programming Algorithm (LPG) . . . . . . . . . . . . . . . . . . 49 5.4.6 Load TX S19 File (LTX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.4.7 Product ID (PID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 5.4.8 Read MC33592/3 Registers (RRR) . . . . . . . . . . . . . . . . . . .54 5.4.9 Update User Code (UUC) . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4.10 MC33592/3 Registers (WRR). . . . . . . . . . . . . . . . . . . . . . . .57
5.2 Introduction A set of commands is available to control the FlashProg from the RS232 serial interface. This section will explain the format and parameters of each command.
5.3 Communication Protocol Commands are send to FlashProg using data packets. A data packet is composed of packet length, the command, parameters, data, and checksum. Parameters and data fields are optional.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 43
Remote Programming Commands The maximum length of a packet is 64 bytes. The packet length is 1 byte, the command is an ASCII mnemonic of three characters. Parameters and data are of variable size and the checksum length is 1 byte. The command packet format is shown in Figure 5-1. $1B
PACKET LENGTH 1 BYTE
BYTE 0
BYTE 1
COMMAND 3 BYTES
PARAMETERS n BYTES
DATA m BYTES
CHECKSUM 1 BYTE BYTE p
Figure 5-1. Command Packet Format Checksum is one’s complement of the least significant bit (LSB) of the sum from packet length (included) to the checksum (excluded). The answer from FlashProg can be one of four types: •
“Y” = Packet correct and command executed without error
•
“N” = Packet error
•
Exxx = Packet correct but command ended with error xxx
•
A data packet
The answer data package format is shown in Figure 5-2. $1B
PACKET LENGTH 1 BYTE
BYTE 0
BYTE 1
DATA m BYTES
CHECKSUM 1 BYTE BYTE p
Figure 5-2. Command Packet Format
5.4 Command Set Parameters This subsection provides the command set parameters available to control the FlashProg from the RS232 serial interface. DRM005 44
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.1 Erase Programming Algorithm Memory (EPG) The EPG command will erase the memory area from $D7FF to $D6FF. The programming algorithm for the MC68HC908RF2 is stored in this area. The EPG command packet has the following composition: $1B
$04
EPG
$1F
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
EPG
Character
3
Checksum
Checksum
Byte
1
The answer to the EPG command has the following composition: Answer
ASCII
Meaning
Y
$59
Memory erased
N
$4E
Packet not valid
Command examples: To erase the programming algorithm area the following command packet must be sent. $1B,$04,”EPG”,$1F or in HEX $1B,$04,$45,$50,$47,$1F The answer will be: Y or in HEX $59
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 45
Remote Programming Commands 5.4.2 Erase TX S19 Memory (ETX) The ETX command will erase the memory area from $E700 to $EFFF. The S19 file for the MC68HC908RF2 is stored in this area. The ETX command packet has the following composition: $1B
$04
ETX
$0A
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
ETX
Character
3
Checksum
Checksum
Byte
1
The answer to the ETX command has the following composition: Answer
ASCII
Meaning
Y
$59
Memory erased
N
$4E
Packet not valid
Command examples: To erase the programming algorithm area the following command packet must be sent. $1B,$04,”ETX”,$0A or in HEX $1B,$04,$45,$54,$58,$0A The answer will be: Y or in HEX $59
DRM005 46
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.3 Erase User Code Memory (EUM) The EUM command will erase the memory area from $8000 to $CFFF. The user code is stored in this area. The EUM command packet has the following composition: $1B
$04
EUM
$14
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
EUM
Character
3
Checksum
Checksum
Byte
1
The answer to the EUM command has the following composition: Answer
ASCII
Meaning
Y
$59
Memory erased
N
$4E
Packet not valid
Command examples: To erase the user code area the following command packet must be sent. $1B,$04,” EUM”,$14 or in HEX $1B,$04,$45,$55,$4D,$14 The answer will be: Y or in HEX $59
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 47
Remote Programming Commands 5.4.4 Initialize MC33592/3 Registers (IRR) The IRR command will load MC3359X registers CR1, CR2, and CR3 with the value stored in FLASH memory. The IRR command packet has the following composition: $1B
$04
IRR
$0E
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
IRR
Character
3
Checksum
Checksum
Byte
1
The answer to the EPG command has the following composition: Answer
ASCII
Meaning
Y
$59
Command executed successfully
N
$4E
Packet not valid
E001
$45, $30, $30, $31
Receiver board not present
Command examples: To INIT the MC3359X registers with the NV memory value the following command packet must be sent. $1B,$04,” IRR”,$0E or in HEX $1B,$04,$49,$52,$52,$0E If the command has been executed successfully and is blank the answer will be: Y or in HEX $59 If the receiver board is not present the answer will be: E001 or in HEX $45,$30,$30,$31 DRM005 48
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.5 Load Programming Algorithm (LPG) The LPG command will load the programming algorithm for the MC68HC908GP32 and will wait for data. The LPG command packet has the following composition: $1B
$04
LPG
$18
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
LPG
Character
3
Checksum
Checksum
Byte
1
The answer to the LPG command has the following composition: Answer
ASCII
Meaning
Y
$59
Read to receive data
N
$4E
Packet not valid
Command examples: After the answer “Y”, the MC68HC908GP32 on the reference board is ready to receive data. The PC must send the character “S” and receive an “S” as echo. The data is sent after the “S” and has the following composition: Number of Packets (2 Bytes)
Packet 1
…..
Packet N
Checksum (1 Byte)
Start Address
Data Bytes (Max 256)
Data format: Number of Data Bytes (1 Byte)
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 49
Remote Programming Commands Packet format: At the end of each packet the reference board will send the character “Y”. Command examples: To start loading the programming algorithm area the following command packet must be sent: $1B,$04,”LPG”,$18 or in HEX $1B,$04,$4C,$50,$47,$18 The answer will be: Y or in HEX $59
DRM005 50
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.6 Load TX S19 File (LTX) The LTX command will load the programming algorithm for the MC68HC908GP32 and will wait for data. The data will be stored in the Tx S19 file area (0xE700 to 0xEFFF). The LPG command packet has the following composition: $1B
$04
LTX
$03
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
LTX
Character
3
Checksum
Checksum
Byte
1
The answer to the LTX command has the following composition: Answer
ASCII
Meaning
Y
$59
Ready to receive data
N
$4E
Packet not valid
After the answer “Y”, the MC68HC908GP32 on the reference board is ready to receive data. The PC must send the character “S” and receive an “S” as echo. The data is sent after the “S” and has the following composition: Number of Packets (2 Bytes)
Packet 1
…..
Packet N
Checksum (1 byte)
Start Address
Data Bytes (Max 256)
Data format: Number of Data Bytes (1 Byte)
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 51
Remote Programming Commands Packet format: At the end of each packet the reference board will send the character “Y”. Command examples: To start loading the S19 file area the following command packet must be sent. $1B,$04,”LTX”,$03 or in HEX $1B,$04,$4C,$54,$58,$03 The answer will be: Y or in HEX $59
DRM005 52
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.7 Product ID (PID) The PID command will ask the MC68HCHC908RF2 for the firmware revision. The PID command packet has the following composition: $1B
$04
PID
$1E
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
PID
Character
3
Checksum
Checksum
Byte
1
The answer to the PID command has the following composition: Answer
ASCII
RFB XY.Z
$52, $46, $42, $20, $XX, $3Y, $2E, $3Z
N
$4E
Meaning
Packet not valid
Command examples: To get the firmware revision, the following command packet must be sent. $1B,$04,”PID”,$1E or in HEX $1B,$04,$50,$49,$44,$1E An example answer will be: RFB A0.0 or in HEX $52,$46,$42,$20,$41,$30,$2E,$30
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 53
Remote Programming Commands 5.4.8 Read MC33592/3 Registers (RRR) The RRR command will read MC3359X registers CR1, CR2, and CR3. The RRR command packet has the following composition: $1B
$04
RRR
$05
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
RRR
Character
3
Checksum
Checksum
Byte
1
The answer to the RRR command has the following composition: Answer
ASCII
Meaning
XYZ Y
$XX, $YY, $ZZ, $59
XX = CR1, YY = CR2, ZZ = CR3
N
$4E
Packet not valid
E001
$45, $30, $30, $31
Receiver board not present
Command examples: To read the MC3359X registers, the following command packet must be sent. $1B,$04,” RRR”,$05 or in HEX $1B,$04,$52,$52,$52,$05 If the command has been executed successfully and CR1 = $46, CR2 = $04, CR3 = $00 the answer will be: $46,$04,$00,Y or in HEX $46,$04,$00,$59 If the receiver board is not present the answer will be: E001 or in HEX $45,$30,$30,$31 DRM005 54
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.9 Update User Code (UUC) The UUC command will update the firmware stored in the area 0x8000 to 0xCFFF. The UUC command packet has the following composition: $1B
$04
UUC
$0E
Field
Value
Type
Length
Header
$1B
Byte
1
Length
4
Byte
1
Mnemonic
UUC
Character
3
Checksum
Checksum
Byte
1
The answer to the UUC command has the following composition: Answer
ASCII
Meaning
Y
$59
Ready to receive data
N
$4E
Packet not valid
After the answer “Y”, the MC68HC908GP32 on the reference board is ready to receive data. The PC must send the character “S” and receive an “S” as echo. The data is sent after the “S” and has the following composition: Number of Packets (2 Bytes)
Packet 1
…..
Packet N
Checksum (1 Byte)
Start Address
Data Bytes (Max 256)
Data format: Number of Data Bytes (1 Byte)
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 55
Remote Programming Commands Packet format: At the end of each packet the reference board will send the character “Y”. Command examples: To start updating the firmware the following command packet must be sent: $1B,$04,”UUC”,$0E or in HEX $1B,$04,$55,$55,$43,$0E The answer will be: Y or in HEX $59
DRM005 56
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Remote Programming Commands Command Set Parameters
5.4.10 MC33592/3 Registers (WRR) The WRR command will write MC3359X registers CR1, CR2, and CR3 and update the INIT value stored in the FLASH memory. The WRR command packet has the following composition:
$1B
$07
WRR
CR1, CR2, CR3 (3 Bytes)
Checksum
Field
Value
Type
Length
Header
$1B
Byte
1
Length
$07
Byte
1
Mnemonic
WRR
Character
3
Parameter
CR1, CR2, CR3
Byte
3
Checksum
Checksum
Byte
1
The answer to the WRR command has the following composition: Answer
ASCII
Meaning
Y
$59
Command executed successfully
N
$4E
Packet not valid
E001
$45, $30, $30, $31
Receiver board not present
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Remote Programming Commands
DRM005 57
Remote Programming Commands Command examples: To set CR1 = $54, CR2 = $30, and CR3 = $00 the following command packet must be sent: $1B,$05,”WRR”,$54,$30,$00,$79 or in HEX $1B,$05,$53,$42,$4D,$03,$79 The answer will be: Y or in HEX $59 If the receiver board is not present the answer will be E001 or in HEX $45,$30,$30,$31
DRM005 58
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Remote Programming Commands
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Appendix A. Source Code
A.1 Contents A.2 Mother Board Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 A.2.1 UK509.ASM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 A.2.2 UK509 PRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 A.3
NOTE:
Transmitter Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
The MC33592/3 is referred to as Romeo and the MC33491 is referred to as Tango in the source code.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 59
Source Code A.2 Mother Board Firmware A.2.1 UK509.ASM base $10 USERSUM USERSUM1 USERSUM2
equ equ equ
$912D $0569 $13EB
;Emulated ;TestAgent
equ equ
0 0
;------------------------------------------------------------------------------; ; MC908RF2 reference board software ; ;------------------------------------------------------------------------------; ; SOURCE : UK509.ASM ; CONTROLLER : 68HC908GP32 ; CLOCK : 9.8304 Mhz ; ; VERSION : B.00 04 Ago 2001 ; ;------------------------------------------------------------------------------; ;
#$-VIEW:Schematics-$
Revision PlugVer include ;
equ equ
$0100 3
"C:\Metrowerks\lib\HC08c\INC\H908GP32.INC" #$-VIEW:Register Declarations-$#
;------------------------------------------------------------------------------; ; Port A ; ; Port A is used as 8 bit Data bus ; ; ; Pull Down : A(7) ; DDRAInit PortAInit
equ equ
%00000000 %00000000
; ;
;------------------------------------------------------------------------------; DRM005 60
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
Port B Port B bits CDE SC OE Bank0 Bank1 WE SCLP SDAP
: : : : : : : :
HN29F12814A Command Data Enable HN29F12814A Serial Clock HN29F12814A Output Enable Bank0 0/1 selct Bank1 0/1 selct HN29F12814A Write Enable I2C Bus Pod SCL I2C Bus Pod SDA
Hardware changes None
; Porta B CDE SC OE Bank0 Bank1 WE SCLP SDAP
equ equ equ equ equ equ equ equ
0 1 2 3 4 5 6 7
; ; ; ; ; ; ; ;
DDRBInit PortBInit
equ equ
%11111111 %11111101
; ;
;------------------------------------------------------------------------------; ; Port C ; ; Port C bits ; ;KEY : Select Switch : 0=Pushed 1=Not pushed ;EVHH : Enable Mon08 VHH ;RST : Mon08 Reset ;HOLD : Main Power Supply Hold (1=Hold,0=Power Off) ;EVCC : Enable Mon08 VCC ;NDAC : Max533 DAC Enable (active low) ;LE : Switch Led (0=On,1=Off) ; ; Hardware changes ; ; None Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 61
Source Code ; Porta C KEY EVHH RST HOLD EVCC NDAC LED
equ equ equ equ equ equ equ
0 1 2 3 4 5 6
; ; ; ; ; ; ;
DDRCInit PortCInit
equ equ
%01111110 %01101000
; ;
;------------------------------------------------------------------------------; ; Port D ; ; Port D bits ; ;Slave : SPI Slave pin ;PodIRQ : MON08 IRQ ;MOSI : SPI MOSI ;PodData : MON08 Data ;PUSHBUT : Encoder Push Button (0=Pushed,1=Not pushed) ;ENCB : Encoder Phase B ;SCL : I2C Bus clock ;SDA : I2C Bus data ; ; Hardware changes ; ; None ; ; Porta D Slave PodIRQ MOSI PodData PUSHBUT ENCB SCL SDA
equ equ equ equ equ equ equ equ
0 1 2 3 4 5 6 7
; ; ; ; ; ; ; ;
DDRDInit PortDInit
equ equ
%11000011 %11000101
; ;
DRM005 62
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
FlashRAM:
SECTION SHORT
LineLen LineSum StartAddr EndAddr ByteCount NumLines FlashTop
DS.B DS.B DS.B DS.B DS.B DS.B DS.B
1 1 2 2 1 2 2
; ; ; ; ; ; ;
Dly30usPod
equ
$20
;20us @ Fbus=2.4576MHz
BiosRAM:
SECTION SHORT
RFflags BufferRF BitCount RFCRC BufPtr LastTim Cell0 DeltaT EncCnt EncStep CurX CurY Max Min CurItem CurMenuPtr TmpPtr RS232St CRC232 SFlags BufferCnt SourcePtr DestPtr VHH RS232Tmo DispDump1 EchoFlags LastV UpdateTmo MFlags CR1 CR2 CR3
DS.B DS.B DS.B DS.B DS.B DS.W DS.B DS.W DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B
1 8 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 2 2 1 2 14 1 1 1 1 1 1 1
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 63
Source Code BUFFERS:
SECTION
BufferSize
equ
$50
RxBuffer StringBuffer StringBuffer1 StringBuffer2 FlashBuffer
DS.B DS.B DS.B DS.B DS.B
50 18 18 18 50
EEBuf
equ
StringBuffer
;Size of RS232 buffer
; Bit of RS232Status EscRec
equ
1
;Esc received (Receiving Packet)
equ equ equ
0 1 2
;User commands enabled ;1=Tx code present ;Programming code enabled
Cod
equ
0
;0=Fixed,1=Rolling
ModeMsk
equ
%00000001
;
; Bit of SFlags UserC TXFile UserP
; Bit of MFlags
; Bit of RFFlags CRCP EndFrame EdgRF BlankW LoadRF SyncW Lockd
equ equ equ equ equ equ equ
0 1 2 3 4 5 6
;Flag ;Flag ;Flag ;Flag ;Flag ;Flag ;Flag
RFMask
equ
%00000100
;
DRM005 64
CRC Pending Lern OK RF Edge Sync Waiting Received Status Waiting Sync RF locked
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;Bit of CR1 HE DME SR0 SR1 SOE MOD CF RW
equ equ equ equ equ equ equ equ
0 1 2 3 4 5 6 7
;0=Write CRx ; ; ; ; ; ; ;
CFMsk
equ
%01000000
;
;------------------------------------------------------------------------------; ; Time contants Dly5us Dly10us Dly30us Dly100us
equ equ equ equ
$04 $08 $28 $51
;5uS @ FBus=2.4576MHz ;10uS @ FBus=2.4576MHz ;30uS @ FBus=2.4576MHz ;100uS @ FBus=2.4576MHz
MinSync MaxCell
equ equ
75 60
; ;
;------------------------------------------------------------------------------; ;------------------------------------------------------------------------------; ; Blink Frequency divider ; ; This value is used to set the blinking frequency of the cursor during input BlinkDiv
equ
%00001000
;-------------------------------------------------------------------------------
UserCode:
SECTION
UserCodeSum DC.W DC.W
USERSUM UserCodeEnd
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 65
Source Code UserProg IFNDEF TestAgent jsr jmp
Clr MainMenu
; ;
Warning pshx pshh jsr pulh pulx jsr jsr rts
; ; ; ; ; ; ; ;
Clr
PrintStr1 WaitInput
;Hex to string convesion ; ;On entry ; X,A=Pointer to string ; SP-3=Data ;On exit ; X,A=Pointer to end of string
HexToStr pshx pulh tax lda nsa and bsr lda and bsr clr pshh txa pulx rts
; ; ; ; ; ; ; ; ; ; ;Null terminate string ; ; ; ;
3,SP #$0F SetNibble 3,SP #$0F SetNibble ,X
SetNibble add cmp bls add
#$30 #$39 NoAlfa1 #$07
; ;Convert to ascii ; ;
sta aix rts
,X #$0001
; ; ;
NoAlfa1
DRM005 66
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;Char to Hex nibble ; ;On entry ; A=char ;On exit ; A=Hex value CharToHex sub cmp bls sub
#$30 #$09 NibbleOK #$07
; ; ; ;
NibbleOK rts
;
;****************************************************************************** ; ; RS232 User routines ; ;******************************************************************************
;*********************************************** ; Init Romeo Register Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "IRR" ; 04 Packet Checksum ($0E) ;***********************************************
CmdIRR jsr beq lda jmp
ChkRomeo CmdIRR1 #$01 ErrCode
; ; ; ;
jsr jmp
InitRomeo CmdOK
; ;
CmdIRR1
;***********************************************
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 67
Source Code ; Read Romeo Register Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "RRR" ; 04 Packet Checksum ($05) ;***********************************************
CmdRRR jsr beq lda jmp
ChkRomeo CmdRRR1 #$01 ErrCode
; ; ; ;
jsr lda jsr lda jsr lda jsr jmp
ReadRomeo CR1 PutRS232 CR2 PutRS232 CR3 PutRS232 CmdOK
; ; ; ; ; ; ; ;
CmdRRR1
;*********************************************** ; Write Romeo Registers Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 07) ; 01-03 "WRR" ; 04 CR1 ; 05 CR2 ; 06 CR3 ; 07 Packet Checksum ($XX) ;*********************************************** CmdWRR jsr beq lda jmp
ChkRomeo CmdWRR1 #$01 ErrCode
; ; ; ;
lda and sta lda sta lda sta jsr jsr
RxBuffer+4 #$7F CR1 RxBuffer+5 CR2 RxBuffer+6 CR3 WriteRomeo SaveNVCR
; ; ; ; ; ; ; ; ;
CmdWRR1
DRM005 68
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
CmdOK lda jsr clr clr rts
#’Y’ PutRS232 BufferCnt RS232St
; ; ; ; ;
;*********************************************** ; Send Error Code ; ; 01=No Romeo Module ; ;*********************************************** ErrCode psha lda jsr pula jsr clr clr rts
; ; ; ; ; ; ; ;
#’E’ PutRS232 SendDec BufferCnt RS232St
;****************************************************************************** ; ; ROMEO2 driver ; ;****************************************************************************** ReadRomeo pshh pshx psha mov bclr bclr lda jsr jsr sta lda bsr bsr sta lda bsr bsr sta
#%00101010,SPCR Bank0,PORTB Bank1,PORTB #$80 SendRomeo GetRomeo CR1 #$00 SendRomeo GetRomeo CR2 #$00 SendRomeo GetRomeo CR3
; ; ; ;Init SPI as master ;CS3 must be low ; ; ; ; ; ; ; ; ; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 69
Source Code bset bset pula pulx pulh rts
Bank0,PORTB Bank1,PORTB
;CS3 must be high ; ; ; ; ;
jsr lda psha lda sta bsr jsr lda ldx sta stx bsr pula cmp rts
ReadRomeo CR2
; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
lda sta lda sta lda sta bsr jsr mov bset bclr rts
NVRegs CR1 NVRegs+1 CR2 NVRegs+2 CR3 WriteRomeo ReadRomeo #%10001010,SPCR Bank0,PORTB Bank1,PORTB
; ; ; ; ; ; ; ; ;Init SPI slave ;CS2 must be low ; ;
jsr sta
ReadRomeo CR2
; ;
#%00101010,SPCR Bank0,PORTB Bank1,PORTB CR1
; ; ; ;Init SPI as master ;CS3 must be low ; ;
ChkRomeo
#$AA CR2 WriteRomeo ReadRomeo CR2 1,SP 1,SP CR2 WriteRomeo #$AA
InitRomeo
RomeoSetID
WriteRomeo pshh pshx psha mov bclr bclr lda DRM005 70
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
and bsr bsr lda bsr bsr lda bsr bsr bset bset pula pulx pulh rts
#$7F SendRomeo GetRomeo CR2 SendRomeo GetRomeo CR3 SendRomeo GetRomeo Bank0,PORTB Bank1,PORTB
;WE bit low ; ; ; ; ; ; ; ; ;CS3 must be high ; ; ; ; ;
brclr sta rts
SPTE,SPSCR,* SPDR
;Wait transmitter empty ; ;
brclr lda rts
SPRF,SPSCR,* SPDR
; ; ;
tst lda rti
SPSCR SPDR
; ; ;
SendRomeo
GetRomeo
SPIProc
;****************************************************************************** ; ; Reception Routines without Data Manager Enabled ; ;******************************************************************************
InitCode jsr ldhx brclr ldhx
Home #Frame1 Cod,MFlags,PrintFrame #Frame2
; ; ; ;
jsr
PrintStr1
;
PrintFrame
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 71
Source Code InitRF lda sta lda sta bset bset bclr bclr clr rts
#$08 BitCount #$07 BufPtr SyncW,RFflags BlankW,RFflags Lockd,RFflags CRCP,RFflags RFCRC
; ; ; ; ; ; ; ; ; ;
; Check of the RF signal edges GetRF brclr jmp
EndFrame,RFflags,NotEOF ;End Frame ? EOF ;
lda eor and bne rts
PORTD RFflags #RFMask NewEdge
NotEOF ; ;Change in RF Input signal ? ; ; ;
; Calculation of DeltaT, Update of LastRTCC, Reset of Offset ; and change of edge NewEdge ; ; ; ; ; ; ; ; NewEdge1
ldhx brclr lda dbnza lda eor and bne rts txa sub sta pshh pula sbc sta sthx lda eor sta brset
DRM005 72
T1CNTH EdgRF,RFflags,NewEdge1 #$50 $ PORTD RFflags #RFMask NewEdge1
LastTim+1 DeltaT+1
LastTim DeltaT LastTim #RFMask RFflags RFflags EdgRF,RFflags,RiseRF
; ;Rising edge ? ; ; ; ;RF Input changed? ; ; ; ; ;If Yes, determine DeltaT ; ; ; ; ; ; ;Change of edge ; ; ;Rising edge ?
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;Falling Edge: If don’t wait for Sync determine the bit
bclr bset brclr brset ldhx cphx bhi cphx blo bclr
LED,PORTC Lockd,RFflags SyncW,RFflags,BitCalc BlankW,RFflags,ExitRF DeltaT #$0060 InitRF #$0020 InitRF SyncW,RFflags
; ;Syncronization Signal ;Sync waiting ? ;Yes,Sync waiting ? ;Yes,check if Sync is correct ; ; ; ; ;Sync flag reset
ExitRF rts
;Go out
;Rising Edge : Cell0=DeltaT RiseRF bset brclr brclr ldhx cphx bhi cphx blo bclr rts
LED,PORTC Lockd,RFflags,ExitRF BlankW,RFflags,RiseRF1 DeltaT #$0060 InitRF #$0020 InitRF BlankW,RFflags
; ;Locked ? ;Yes,Sync waiting ? ;Yes,check if Sync is correct ; ; ; ; ;Sync Flag Reset ;
lda bne lda sta rts
DeltaT ExitRF DeltaT+1 Cell0
; ; ; ; ;
RiseRF1
;Calcola bit BitCalc clrh lda bne lda cmp bhi lda sub ldx ror brclr lda
DeltaT ExitRF DeltaT+1 #MaxCell FrameErr1 Cell0 DeltaT+1 BufPtr BufferRF,X CRCP,RFflags,NoCRC RFCRC
; ;Yes, check if the cell is correct ; ; ; ; ;Calculation of the Cell Rapport ; ; ;bit Insertion ;CRC Pending ? ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 73
Source Code rora ror lda eor and bclr beq bset lda eor sta
RFCRC RFCRC BufferRF,X #%10000000 7,RFCRC NoCRC 7,RFCRC #%00001100 RFCRC RFCRC
; ; ; ; ; ; ; ; ; ; ;
dbnz
BitCount,ExitRF
;Next bit
NoCRC
;Next Byte lda sta dec bset lda bpl bset rts
#$08 BitCount BufPtr CRCP,RFflags BufPtr ExitRF EndFrame,RFflags
; ;Yes, next byte ; ; ; ; ;Yes,End Frame signal ;No, go out
jmp
FrameErr
;
FrameErr1
; End Frame: Initialization and enable RF signal Research EOF bclr bclr lda nsa sta lda rola rol lda cmp bne brclr lda ldx jsr lda ldx jsr lda DRM005 74
LED,PORTC EndFrame,RFflags BufferRF+7 BufferRF+7 BufferRF+7 BufferRF+7 RFCRC BufferRF+7 FrameErr1 Cod,MFlags,NoRoll #$00 #$02 GotoXY BufferRF+2 BufferRF+1 PrintShort BufferRF+3
; ;Yes,Reset End Frame ; ; ; ; ; ; ;Check CRC ; ; ; ; ; ; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
jsr lda jsr lda jsr lda jsr
PrintHex BufferRF+4 PrintHex BufferRF+5 PrintHex BufferRF+7 PrintHex
; ; ; ; ; ; ;
ldhx lda eor sta lda eor sta lda eor sta lda eor sta lda eor sta lda and beq tax
#BufferRF 4,X 5,X 5,X 3,X 4,X 4,X 2,X 3,X 3,X 1,X 2,X 2,X 0,X 1,X 1,X BufferRF+6 #$0F NoRotate
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
lda rola rol rol rol rol rol rol dbnzx
BufferRF BufferRF+5 BufferRF+4 BufferRF+3 BufferRF+2 BufferRF+1 BufferRF NextRotate
; ; ; ; ; ; ; ; ;
brclr
Cod,MFlags,ShowFix
;
lda ldx jsr lda ldx jsr lda jsr lda jsr
#$00 #$01 GotoXY BufferRF+2 BufferRF+1 PrintShort BufferRF+3 PrintHex BufferRF+4 PrintHex
; ; ; ; ; ; ; ; ; ;
NoRoll
NextRotate
NoRotate ShowRoll
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 75
Source Code clra jsr lda jsr jmp
PrintHex BufferRF+6 PrintHex InitRF
; ; ; ; ;
lda ldx jsr lda ldx jsr lda jsr lda ldx jsr lda bpl lda jsr lda jsr lda jsr bra
#$06 #$00 GotoXY BufferRF+2 BufferRF+1 PrintShort BufferRF+3 PrintHex #$06 #$01 GotoXY BufferRF+4 KeyDx #’D’ PrintChar1 #’x’ PrintChar1 #’ ’ PrintChar1 KeyNum
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
lda jsr lda jsr lda jsr
#’S’ PrintChar1 #’x’ PrintChar1 #’ ’ PrintChar1
; ; ; ; ; ;
lda and tax lda cbeqx cbeqx cbeqx
BufferRF+4 #$0F
; ; ; ; ; ; ;
ShowFix
KeyDx
KeyNum
#$34 #$01,Key4 #$06,Key3 #$04,Key2
Key1 deca
;
deca
;
deca
;
Key2 Key3
DRM005 76
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
Key4 jsr lda ldx jsr lda jsr
PrintChar1 #$06 #$02 GotoXY BufferRF+5 PrintHex
; ; ; ; ; ;
InitRF
;
nop FrameErr jmp
;------------------------------------------------------------------------------; ; Menu handling procedures ; ;-------------------------------------------------------------------------------
;-----------------------------------------------; ; Main menu routines ; ;-----------------------------------------------MainMenu ldhx pshx pshh ldhx clra jsr ais bra
#Menu1
; ; ; ; ; ; ; ;Endless loop on main menu
#$0200 Menu #$02 MainMenu
;-----------------------------------------------; ; Level 1 menu routines ; ;-----------------------------------------------RxMenu jsr beq jsr ldhx jsr jsr rts
ChkRomeo RomeoFound Clr #NoRomeoMsg PrintStr1 WaitInput
; ; ; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 77
Source Code RomeoFound jsr ldhx pshx pshh ldhx clra jsr ais rts
InitRomeo #Menu11
ldhx pshx pshh ldhx clra jsr ais rts
#Menu12
; ; ; ; ; ; ; ; ;
#$0200 Menu #$02
TxMenu ; ; ; ; ; ; ; ;
#$0000 Menu #$02
;-----------------------------------------------; ; Level 1.1 menu routines ; ;-----------------------------------------------;Level 1.1 menu Do routines DoReceive ldhx pshx pshh ldhx lda jsr ais jsr jsr jsr
#Menu11a
jsr jsr cbeqa bset rts
GetRF PushOK #$00,RFLoop LED,PORTC
; ; ; ; ; ; ; ; ; ;
#$0101 #$01 Menu #$02 WaitNotPush InitRomeo InitCode
RFLoop
DRM005 78
; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
RomeoMenu ldhx pshx pshh ldhx clra jsr ais rts
#Menu112
; ; ; ; ; ; ; ;
lda eor sta rts
#ModeMsk MFlags MFlags
; ; ; ;
lda eor sta jmp
#CFMsk CR1 CR1 SaveNVCR
; ; ; ;
clra ldx jsr ldhx brclr ldhx
#$01 GotoXY #FixedMsg Cod,MFlags,PrintMode #RollMsg
; ; ; ; ; ;
#$0200 Menu #$02
RxMode
BandSel
Menu11aI2
PrintMode jsr rts
PrintStr1
; ;
Menu11I3 clra ldx jsr ldhx brclr ldhx
#$02 GotoXY #Band315Msg CF,CR1,PrintBand #Band434Msg
; ; ; ; ; ;
PrintBand jsr rts
PrintStr1
; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 79
Source Code ;-----------------------------------------------; ; Level 1.2 menu routines ; ;-----------------------------------------------;Level 1.1 menu Do routines DoProgram brset jsr ldhx jsr jsr rts
TXFile,SFlags,TXOK Clr #NoFileMsg1 PrintStr1 WaitInput
; ; ; ; ; ;
brset jsr ldhx jsr jsr rts
UserP,SFlags,TXOK1 Clr #BadProgMsg PrintStr1 WaitInput
; ; ; ; ; ;
jsr rts
ProgTx
; ;
TXOK
TXOK1
Menu12I3 clra ldx jsr bsr brset
#$02 GotoXY ChkFileName TXFile,SFlags,PrintName
; ; ; ; ;
ldhx
#NoFileMsg
;
jsr rts
PrintStr1
; ;
bclr lda cbeqa ldhx jsr cmp bhs bset
TXFile,SFlags FileName #$FF,NoName #FileName StrLen #$0C NoName TXFile,SFlags
; ; ; ; ; ; ; ;
PrintNoName PrintName
ChkFileName
NoName rts
DRM005 80
;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;-----------------------------------------------; ; Level 1.1.2 menu routines ; ;-----------------------------------------------EditCR1 lda clr mov jsr sta bra
CR1 CurY #$05,CurX InputByte CR1 SaveNVCR
; ; ; ; ; ;
lda mov mov jsr sta bra
CR2 #$01,CurY #$05,CurX InputByte CR2 SaveNVCR
; ; ; ; ; ;
lda mov mov jsr sta
CR3 #$02,CurY #$05,CurX InputByte CR3
; ; ; ; ;
lda sta lda sta lda sta ldhx sthx jsr ldhx sthx aix sthx jsr jsr rts
CR1 FlashBuffer CR2 FlashBuffer+1 CR3 FlashBuffer+2 #NVRegs SourcePtr EraseFPage #NVRegs SourcePtr #$03 DestPtr ProgFRange InitRomeo
; ; ; ; ; ; ; ; ;Erase parameter flash page ; ; ; ; ;Program parameter flash page ; ;
EditCR2
EditCR3
SaveNVCR
;Level 1.2 draw routines
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 81
Source Code Menu112I1 jsr lda clrx jsr lda jsr rts
ReadRomeo #$05
; ; ; ; ; ; ;
jsr lda ldx jsr lda jsr rts
ReadRomeo #$05 #$01 GotoXY CR2 PrintHex
; ; ; ; ; ; ;
jsr lda ldx jsr lda jsr rts
ReadRomeo #$05 #$02 GotoXY CR3 PrintHex
; ; ; ; ; ; ;
NIL
equ
$0000
Menu1Msg
DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B
" RX Menu " TX Menu " Power Off "Coding type " Fixed "ESC to exit " Receive " Set MC3359x " Program Tx "File name: " CR1= " CR2= " CR3= " 315MHz " 434/868MHz " Fixed " Rolling "Rx board not "found ! "No File "No File in "memory ! "Programming "firmware not "valid !
GotoXY CR1 PrintHex
Menu112I2
Menu112I3
Menu11aMsg
Menu11Msg Menu12Msg Menu112Msg
Band315Msg Band434Msg FixedMsg RollMsg NoRomeoMsg NoFileMsg NoFileMsg1 BadProgMsg
DRM005 82
" " ",$00 " " ",$00 " ",$00 " ",$00 " " ",$00 ",$00 ",$00 ",$00 ",$00 " ",$00 ",$00 " ",$00 " " ",$00
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;------------------------------;Menu 1 (main Menu) ;------------------------------Menu1
DC.W Menu1Msg DC.W NIL DC.W NIL DC.W NIL DC.W NIL DC.W RxMenu DC.W TxMenu DC.W PowerOff DC.W NIL ;------------------------------;Menu 1.1a (Coding Menu) ;-------------------------------
;Menu text ;Draw Item ;Draw Item ;Draw Item ;Draw Item ;Do Item 1 ;Do Item 2 ;Do Item 3 ;Do Item 4
Menu11a
DC.W Menu11aMsg DC.W NIL DC.W Menu11aI2 DC.W NIL DC.W NIL DC.W NIL DC.W RxMode DC.W NIL DC.W NIL ;------------------------------;Menu 1.1 (RX Menu) ;-------------------------------
;Menu text ;Draw Item ;Draw Item ;Draw Item ;Draw Item ;Do Item 1 ;Do Item 2 ;Do Item 3 ;Do Item 4
Menu11
DC.W Menu11Msg DC.W NIL DC.W NIL DC.W Menu11I3 DC.W NIL DC.W DoReceive DC.W RomeoMenu DC.W BandSel DC.W NIL ;------------------------------;Menu 1.1 (TX Menu) ;-------------------------------
;Menu text ;Draw Item ;Draw Item ;Draw Item ;Draw Item ;Do Item 1 ;Do Item 2 ;Do Item 3 ;Do Item 4
Menu12
;Menu text ;Draw Item ;Draw Item ;Draw Item ;Draw Item ;Do Item 1 ;Do Item 2 ;Do Item 3 ;Do Item 4
DC.W DC.W DC.W DC.W DC.W DC.W DC.W DC.W DC.W
Menu12Msg NIL NIL Menu12I3 NIL DoProgram NIL NIL NIL
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
DRM005 83
Source Code ;------------------------------;Menu 1.1.2 (Romeo Menu) ;------------------------------Menu112
Frame1
Frame2
DC.W DC.W DC.W DC.W DC.W DC.W DC.W DC.W DC.W
Menu112Msg Menu112I1 Menu112I2 Menu112I3 NIL EditCR1 EditCR2 EditCR3 NIL
;Menu text ;Draw Item ;Draw Item ;Draw Item ;Draw Item ;Do Item 1 ;Do Item 2 ;Do Item 3 ;Do Item 4
DC.B DC.B DC.B DC.B DC.B DC.B
"Tx ID " "Key " "CRC ",$00 "--ID--KKRRRR" " " " ",$00
1 2 3 4
ENDIF UserCodeEnd
;****************************************************************************** ; ; HC908RF2 Fast Programming Algorithm ; ;****************************************************************************** ProgCode:
SECTION
ProgSum DC.W DC.W
USERSUM2 ProgTxEnd
ProgTx IFNDEF TestAgent
NoProgMsg
jsr ldhx jsr jsr rts
Clr #NoProgMsg PrintStr1 WaitInput
; ; ; ; ;
DC.B DC.B DC.B
"Programming " "fimware not " "loaded ! ",$00
ENDIF ProgTxEnd
DRM005 84
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;****************************************************************************** ; ; Remote user commands jump table ; ;******************************************************************************
UserCmd:
SECTION
UserCmdSum DC.W DC.W DC.B
UserCmdNum UserCmdTab IFNDEF TestAgent DC.B DC.W DC.B DC.W DC.B DC.W ENDIF UserCmdTabEnd
TXCode:
SECTION
FileName
DC.B
USERSUM1 UserCmdTabEnd $03
"IRR" CmdIRR "RRR" CmdRRR "WRR" CmdWRR
; ; ; ; ; ;
$FF
;
;------------------------------------------------------------------------------; ; Software del loader Agent rev A0.0 ; ;-------------------------------------------------------------------------------
XDEF XDEF XDEF
Loader:
LAInit LAIRQProc LAGetRS232
SECTION
LAInit mov mov mov mov mov
#%00000001,CONFIG1 #PortAInit,PORTA #DDRAInit,DDRA #PortBInit,PORTB #DDRBInit,DDRB
; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 85
Source Code mov mov mov mov mov mov
#PortCInit,PORTC #DDRCInit,DDRC #%00100001,PTCPUE #DDRDInit,DDRD #PortDInit,PORTD #%00110000,PTDPUE
; ; ; ; ; ;
ldhx
#0040
;
clr aix cphx bne
,X #$01 #$0240 ClrRAM
; ; ; ;
mov mov mov mov mov ldhx sthx
#%01000000,SCC1 #%00101100,SCC2 #%00000010,SCBR #%00000110,T1SCR #%000000001,SPSCR #$099A T2MODH
; ; ; ; ;Set SPI Baud rate ;Init Timer2 modulo register ;
ldhx txs
#$0240
;Init Stack pointer ;
BufferCnt RS232St #$0400 RS232Tmo
; ; ; ;
EncCnt #$01,EncStep Min CurItem
; ; ; ;
jsr jsr
LASetContrast LAInit7123
; ;
clr jsr jsr ldhx
VHH LASetVHH LAWait200ms #DevName
; ; ; ;Startup screen
;Clear RAM
ClrRAM
LAWarmStart
;init RS232 variables clr clr ldhx sthx ;init Input device clr mov clr clr ;init Output device
;init VHH
DRM005 86
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
jsr jsr jsr ldhx jsr jsr jsr ldhx jsr
LAPrintStr1 LAWait1s LAClr #AgentMsg LAPrintStr1 LAWait1s LAClr #SumMsg LAPrintStr1
; ; ; ;BLIC Agent screen ; ; ; ;BLIC Agent screen ;
mov lda sta lda sta ldhx jsr cmp bne cpx bne lda bset bra
#$02,CurY UserCmdSum+2 TmpPtr UserCmdSum+3 TmpPtr+1 #UserCmdTab LACalcUserSum UserCmdSum+1 LABadUserCmd UserCmdSum LABadUserCmd #’ ’ UserC,SFlags LATestPG
; ; ; ; ; ; ; ; ; ; ; ; ; ;
bclr lda
UserC,SFlags #’x’
; ;
;Test User Command Table
LABadUserCmd
;Test Programming algorithm code LATestPG jsr mov lda sta lda sta ldhx jsr cmp bne cpx bne lda bset bra
LAPrintChar1 #$01,CurY ProgSum+2 TmpPtr ProgSum+3 TmpPtr+1 #ProgTx LACalcUserSum ProgSum+1 LABadProg ProgSum LABadProg #’ ’ UserP,SFlags LATestUC
; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 87
Source Code LABadProg bclr lda
UserP,SFlags #’x’
; ;
jsr clr lda sta lda sta ldhx jsr cmp bne cpx bne jsr jmp
LAPrintChar1 CurY UserCodeSum+2 TmpPtr UserCodeSum+3 TmpPtr+1 #UserProg LACalcUserSum UserCodeSum+1 LABadUserCode UserCodeSum LABadUserCode LAWait1s UserProg
; ; ; ; ; ; ; ; ; ; ; ; ; ;
lda jsr jsr
#’x’ LAPrintChar1 LAWait1s
; ; ;
jsr
LAEraseUM
;
jsr ldhx jsr jsr cli bra
LAClr #FirmUpdMsg LAPrintStr1 LAWait1s
; ; ; ; ; ;Wait RS232 commands
;Test User Code LATestUC
LABadUserCode
LAUpdateUM1 LAUpdateUM2
$
;Calculate user checksum and print it ; ;On entry ; H,X=Start address ; TempPtr=EndAddress ;On exit ; X,A=Checksum LACalcUserSum clra psha psha
DRM005 88
; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LANextCodeSum lda add sta clra adc sta aix cphx bne lda ldx jsr ldx lda jsr lda jsr pulx pula rts
,X 2,SP 2,SP
; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
lda psha pulh ldx jmp
$FFFE
$FFFF ,X
; ; ; ; ;
brclr bclr bra
KEY,PORTC,* HOLD,PORTC $
;Wait until button released ;Power Off ;
1,SP 1,SP #$01 TmpPtr LANextCodeSum #$06 CurY LAGotoXY 1,SP 2,SP LAPrintShort #’ ’ LAPrintChar1
; ; ; ;
;Software reset ; LASoftReset
;Power Off ; LAPowerOff
;Delay of 1ms ;This delay is indipendent from PPL because Timer2 modulo ;is recalculated each time PLL is changed ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 89
Source Code LADly1ms mov bclr bclr brclr bset rts
#%00110000,T2SCR;Stop and reset Timer2 7,T2SCR ;Clear TOF 5,T2SCR ;Start Timer2 7,T2SCR,* ;Wait overflow 5,T2SCR ;Stop Timer2 ;
jsr aix cphx bne rts
LADly1ms #$FF #$0000 LADlyNms
;Delay of N ms ;HX=N ; LADlyNms ;Delay of 1ms ; ; ; ;
;Delay of 20ms ; LAWait20ms pshx pshh ldhx bsr pulh pulx rts
; ; ; ; ; ; ;
#$14 LADlyNms
;Delay of 200ms ; LAWait200ms pshx pshh ldhx bsr pulh pulx rts
; ; ; ; ; ; ;
#$C8 LADlyNms
;Delay of 1s ; LAWait1s pshx pshh ldhx bsr pulh pulx rts
; ; ; ; ; ; ;
#$3E8 LADlyNms
;Delay of 5us ; DRM005 90
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LAWait5uS pshx ldx dbnzx pulx rts
;15+4*Dly5us including JSR ;[2] Save X ;[2] ;[4*Dly5us] ;[2] Restore X ;[4]
#Dly5us $
;****************************************************************************** ; ; MAX533 DAC Device Driver ; ; MAX533 parameters ; ; X=DAC Control Byte 0000AACC ; AA=DAC Number,CC=01=Load Inp.Register DAC AA ; AA=DAC Number,CC=11=Load Inp.Register DAC AA and Load all DACs ; AA=01,CC=00 Load all DACs ; ; A=DAC value ; ; Out0=Contrast control ; Out1=VMCU control voltage ; Out2=VHH control voltage ; Out3=Not used ; ; ;****************************************************************************** ; MAX533 Control Register Values ; MAX533 DACLCD DACVHH
equ equ
%00000111 %00000011
lda ldx bra
Contrast #DACLCD LAWriteDAC
; ;Get Control Register Value ;
lda ldx
VHH #DACVHH
; ;
bclr mov bset stx brclr ldx
NDAC,PORTC #%00100000,SPCR SPE,SPCR SPDR SPRF,SPSCR,* SPDR
;CS Low for programming ;Init SPI as Master ;Enable SPI ;Send to SPI ;Wait end of frame ;
LASetContrast
LASetVHH
LAWriteDAC
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 91
Source Code brset sta brclr ldx brset bset bclr rts
SPRF,SPSCR,* SPDR SPRF,SPSCR,* SPDR SPRF,SPSCR,* NDAC,PORTC SPE,SPCR
;Wait SPRF Low ;Send second byte ;Wait end of frame ; ;Wait SPRF Low ;Rise CS to execute instruction ;Disable SPI ;
;****************************************************************************** ; ; EA7123 LCD Device Driver ; ; Times to be rispected: ; 1) t(BuF)>4.7us Bus Free Time (SDA=H SCL=H) ; 2) t(HdSta)> 4us Start Hold Time (SDA=L minimum time with SCL=H) ; 3) t(Low)>4.7us SCL Low Time ; 4) t(High)>4us SCL High Time ; 5) t(SuSto)> 4us Stop Setup Time (SCL=H minimum time before SDA rise) ; ;****************************************************************************** EEAddr
equ
%10100000
;24C00 I2C Bus Address
EA7123Addr I2CRWMsk EA7123WReg EA7123RBusy EA7123WData EA7123RData
equ equ equ equ equ equ
%01110100 %00000001 %00000000 %00100000 %01000000 %01100000
;EA7123 I2C Bus Address ;I2C Bus R/W mask ;Write EA7123 Redgister ;Read EA7123 Busy Flag ;Write EA7123 Data ;Read EA7123 Data
EA7123Clr EA7123Home EA7123Mode EA7123Off EA7123CursOff EA7123CursOn EA7123BlinkOn EA7123CursMove EA7123Init
equ equ equ equ equ equ equ equ equ
%00000001 %00000010 %00000100 %00001000 %00001100 %00001110 %00001111 %00010100 %00101110
EA7123CAddr EA7123DAddr
equ equ
%01000000 %10000000
;Read EA7123 Clear Display ;Read EA7123 Go Home ;Read EA7123 Mode Set ;Read EA7123 Display Off ;Read EA7123 Display On Cusror Off ;Read EA7123 Display On Cusror On Blink Off ;Read EA7123 Display On Cusror On Blink On ;Read EA7123 Cursor Move Right ;Read EA7123 Init Display Functions 12Charx4Row,Vlcd=V0-0.8 ;Read EA7123 CGRAM Addr ;Read EA7123 DDARM Addr
bclr
SDA,PORTD
;SDA H->L
ldx
#$08
;
LASendCtrlByte LASendByte
DRM005 92
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LANextBit jsr
LAWait5uS
;Meet Start Hold Time and
bclr bset lsla bcc bset bra
SCL,PORTD SDA,DDRD LASDALow SDA,PORTD LARiseSCL
;Change SDA with SCL Low ;SDA in Output ;Copy Bit 7 in Carry ;Copy Carry in SDA ; ;
bclr
SDA,PORTD
;
jsr bset dbnzx jsr bclr bclr brn jsr bset brclr lda
LAWait5uS SCL,PORTD LANextBit LAWait5uS SCL,PORTD SDA,DDRD $ LAWait5uS SCL,PORTD SDA,PORTD,LAExitByte #$01
;Meet SCL Low Time ;Rise SCL ; ;Meet SCL High Time ;Controlla Ack ;SDA in Input ; ;Meet SCL Low Time ; ;Se Ack A=0 ;Se Nack A=1
SCL High
Time
LASDALow LARiseSCL
LAExitByte rts
;
LARead7123 lda jsr cbeqa
#(EA7123Addr+I2CRWMsk) LASendCtrlByte #$01,LAStopBit
;Read EA7123 ; ;
ldx
#$08
;X as bit counter
jsr bclr bclr jsr bset clc brclr sec
LAWait5uS SCL,PORTD SDA,DDRD LAWait5uS SCL,PORTD
;Meet SCL High Time ; ;SDA in Input ;Meet SCL Low Time ; ; ; ;
LANextRead LANextBitIn
SDA,PORTD,LASDALowIn
LASDALowIn rola dbnzx jsr bclr bset bclr jsr bset rts
; ; ;Meet SCL High Time ;Ack out ;SDA in Output ; ;Meet SCL Low Time ; ;
LANextBitIn LAWait5uS SCL,PORTD SDA,DDRD SDA,PORTD LAWait5uS SCL,PORTD
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 93
Source Code LALastRead ldx
#$08
;X as bit counter
jsr bclr bclr jsr bset clc brclr sec
LAWait5uS SCL,PORTD SDA,DDRD LAWait5uS SCL,PORTD
;Meet SCL High Time ; ;SDA in Input ;Meet SCL Low Time ; ; ; ;
LANextBitIn1
SDA,PORTD,LASDALowIn1
LASDALowIn1 rola dbnzx jsr bclr bset bset jsr bset rts
; ; ;Meet SCL High Time ;Nack out ;SDA in Output ; ;Meet SCL Low Time ; ;
LANextBitIn1 LAWait5uS SCL,PORTD SDA,DDRD SDA,PORTD LAWait5uS SCL,PORTD
LAPutChar7123 psha lda jsr cbeqa lda bra
#EA7123Addr LASendCtrlByte #$01,LAError7123 #EA7123WData LASendReg
;Save Register value ;Send StartBit and Address ; ;If not Ack exit with error ;Send WriteData Control Register ;
psha lda jsr cbeqa lda
#EA7123Addr LASendCtrlByte #$01,LAError7123 #EA7123WReg
;Save Register value ;Send StartBit and Address ; ;If not Ack exit with error ;Send WriteRegister Control Register
LAWriteReg7123
LASendReg jsr cbeqa pula jsr pshx
LASendByte #$01,LAError7123 LASendByte
; ;If not Ack exit with error ;Recover Register value ;Put it on the bus ;Dummy push
LAError7123 pulx
;Pull out stacked value
LAStopBit bclr bclr bset bset jsr bset jsr rts
DRM005 94
SCL,PORTD SDA,PORTD SDA,DDRD SCL,PORTD LAWait5uS SDA,PORTD LAWait5uS
;Change SDA with SCL Low ; ;SDA in Output ;SDA in Output ;Meet Stop Hold Time ; ;Meet Bus Free Time ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LAWaitBusy7123 lda jsr cbeqa lda jsr cbeqa bsr jsr
#EA7123Addr LASendCtrlByte #$01,LAStopBit #EA7123RBusy LASendByte #$01,LAStopBit LAStopBit LARead7123
;Send StartBit and Address ; ;If not Ack exit with error ;Send ReadBusyFlag Control Register ; ;If not Ack exit with error ;Send StopBit ;Read BusyFlag,first read is not
jsr bmi
LANextRead LABusy7123
;Read BusyFlag ;Busy Flag is in Bit7 (Bit7=1 LCD
bsr bra
LALastRead LAStopBit
;Last Read without aknowledge ;Send StopBit
clr clr lda bra
CurX CurY #EA7123Home LAWriteReg7123
; ; ; ;
lda bsr cbeqa lda bsr
#EA7123Init LAWriteReg7123 #$01,LAEndInit #EA7123CursMove LAWriteReg7123
; ; ;If not Ack exit with error ; ;
clr clr lda bsr cbeqa bsr lda bra
CurX CurY #EA7123Clr LAWriteReg7123 #$01,LAEndInit LAWaitBusy7123 #EA7123CursOff LAWriteReg7123
; ; ; ; ; ; ; ;
valid LABusy7123
busy)
LAHome
LAInit7123
LAClr
LAEndInit rts
;
LACursOn lda jmp
#EA7123CursOn LAWriteReg7123
; ;
lda jmp
#EA7123CursOff LAWriteReg7123
; ;
LACursOff
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 95
Source Code LABlinkOn lda jmp
#EA7123BlinkOn LAWriteReg7123
; ;
sta stx psha txa and lsla nsa tax pula pshx ldhx div pshh pula add pulx add jmp
CurX CurY
;Save X coordinate ; ; ; ;Y coordinate modulo 4 ; ; ; ;Restore X coordinate ;Save Y coordinate ; ; ;H = X coordinate modulo 0x0E ;Move in A ;Add Y coordinate ;Take it out of the stack ;Add register mask ;Set Cursor Address
LAGotoXY
#%00000011
#$000E
1,SP #EA7123DAddr LAWriteReg7123
LAPrintStr pshx pulh tax
;Load pointer ; ;
LAPrintStr1 lda beq ora aix pshh pshx bsr pulx pulh bra
,X LAEndString #$80 #1
; ; ; ; ;Save pointer ; ; ;Restore pointer ; ;
LAPrintChar
LAPrintStr1
LAEndString rts
;
LAPrintChar1 ora
#$80
;
jsr inc lda clrh ldx div
LAPutChar7123 CurX CurX
;Print char ;Increment cursor position ;Check if new line ; ; ;
LAPrintChar
DRM005 96
#$0C
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
pshh pulx stx cbeqa add clrh ldx div pshh pulx stx lda bsr
CurX #$00,LAEndPrintChar CurY #$3
CurY CurX LAGotoXY
; ; ; ; ;New line ; ; ; ; ; ; ; ;
LAEndPrintChar rts
;
LAPrintDec ldx clrh div pshh clrh div pshh tsta bne lda jsr pula tsta bne lda jsr bra
#$0A
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
add jsr pula
#$30 LAPrintChar1
; ; ;
add jsr
#$30 LAPrintChar1
; ;
pula add jsr rts
#$30 LAPrintChar1
; ; ; ;
LADigit3 #’ ’ LAPrintChar1
LADigit2 #’ ’ LAPrintChar1 LADigit1
LADigit3
LADigit2
LADigit1
LAPrintHex psha pshx bra
LAPrintLowByte
; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 97
Source Code LAPrintShort psha pshx txa nsa and jsr lda and jsr
;Save Low byte ;Save High byte ; ; ; ; ; ; ;
#$0F LAPrintNibble 1,SP #$0F LAPrintNibble
LAPrintLowByte lda nsa and jsr lda and jsr pulx pula rts
2,SP
; ; ; ; ; ; ; ; ; ;
add cmp bls add
#$B0 #$B9 LANoAlfa #$07
; ;Convert to ascii ; ;
jsr rts
LAPrintChar
; ;
lda jsr cbeqa lda jsr cbeqa jsr jsr rts
#EA7123Addr LASendCtrlByte #$01,LAStopBit1 #EA7123RData LASendByte #$01,LAStopBit1 LAStopBit LARead7123
;Send StartBit and Address ; ;If not Ack exit with error ;Send ReadBusyFlag Control Register ; ;If not Ack exit with error ;Send StopBit ;Read Data ;
jmp
LAStopBit
;
Min
;Space for local var ; ; ;Save Min ;
#$0F LAPrintNibble 2,SP #$0F LAPrintNibble
LAPrintNibble
LANoAlfa
LAGetChar7123
LAStopBit1
LAInputHex psha psha lda psha lda DRM005 98
Max
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
psha lda psha lda psha mov mov mov jsr sta sta sta jsr jsr jsr jsr
#$30,Min #$46,Max #$FF,EncStep LAGetChar7123 6,SP 5,SP EncCnt LASamePoint LAWaitNotKeyOK LAWaitNotPush LASamePoint
;Save Max ; ;Save EncCnt ; ;Save EncStep ; ; ; ; ;Save Char ;Set Last Char ; ; ; ; ;
bset lda cmp blo cmp bhi lda cmp bhi lda sta bra lda sta
1,INTSCR EncCnt #$3A LAInpHexOK #$40 LAInpHexOK 5,SP EncCnt LAChar39 #$41 EncCnt LAInpHexOK #$39 EncCnt
; ; ; ; ; ; ; ; ; ; ; ; ; ;
lda cbeq lda bclr sta jsr jsr
5,SP EncCnt,LANoNewInp EncCnt 1,INTSCR 5,SP LAPutChar7123 LASamePoint
; ; ; ; ; ; ;
bclr jsr cbeqa jsr cbeqa jsr sta jsr
1,INTSCR LAPushOK #$01,LAEndInpHex LAKeyOK #$00,LAInputHexLoop LAGetChar7123 6,SP LASamePoint
; ; ; ; ; ; ; ;
EncCnt EncStep
LAInputHexLoop
LAChar39
LAInpHexOK
LANoNewInp
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 99
Source Code LAEndInpHex pula sta pula sta pula sta pula sta pula lda jsr jsr pula sub cmp blo sub
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
EncStep EncCnt Max Min 1,SP LAPutChar7123 LASamePoint #$30 #$0A LAExitInpHex #$07
LAExitInpHex rts
;
LASamePoint lda ldx jsr rts
CurX CurY LAGotoXY
; ; ; ;
;****************************************************************************** ; ; Menu manager ; ;****************************************************************************** Arrow
equ
$2E
;Menu selection char
;Redraw current menu ; ;On entry ; CurMenuPtr Ponter to menu template ; A=Current item ;On exit ; No parameter
LAMenuRedraw psha lda psha jsr ldhx lda DRM005 100
;Save CurItem ;Init counter ; ;Clear screen ;Get text pointer into HX ;
#$04 LAClr CurMenuPtr ,X
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
psha lda psha pulx pulh jsr ldhx aix
; ; ; ; ; ;Print menu mask ; ;
1,X
LAPrintStr1 CurMenuPtr #$02
LAMenuDrawLoop pshx pshh lda
,X
bne lda beq
LADrawItem 1,X LANextItemDraw
lda psha ldx pulh lda jsr
,X
; ; ;Use DrawItem routine if pointer not null ; ; ;
LADrawItem ; ; ; ; ;Get CurItem ;
1,X 4,SP ,X
LANextItemDraw pulh pulx aix dbnz clra ldx jsr lda jsr pula pula rts
#$02 1,SP,LAMenuDrawLoop EncCnt LAGotoXY #Arrow LAPrintChar
; ; ; ; ;Print arrow at current item ; ; ; ; ;Free stack ; ;
;Menu Rotine handles menu N ; ;On entry ; CurMenuPtr Ponter to menu template ; A=Current item ; H=Item Max ; X=Item min ;On exit ; No parameter
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 101
Source Code LAMenu psha pshx pshh sei jsr
;Save ;Save ;Save ; ;Push
LAPushEncoder
CurItem Min Max Encoder status
LAInitMenu sei lda sta lda sta mov lda sta lda sta lda sta bsr cli jsr jsr
LAWaitNotKeyOK LAWaitNotPush
; ; ; ; ; ; ; ; ; ; ; ; ;Draw menu (A=CurItem) ; ; ;
jsr cbeqa jsr cbeqa jsr ldhx cphx bne clr clr ldhx
LAKeyOK #$01,LASelected LAPushOK #$01,LAEscaped LADly1ms RS232Tmo #$0000 LANoTmo RS232St BufferCnt #$0401
; ;If select do item action ; ;Else exit menu ; ; ; ; ; ; ;
aix sthx lda cbeq tax clra jsr lda jsr lda sta clra ldx jsr lda jsr bra
#$FF RS232Tmo 7,SP EncCnt,LASelectLoop
; ; ; ; ;If arrow position changes ; ; ; ;Clear the old one ; ; ; ; ; ; ;And draw the new one ;
6,SP Min 5,SP Max #$01,EncStep $0A,SP CurMenuPtr $0B,SP CurMenuPtr+1 7,SP EncCnt LAMenuRedraw
LASelectLoop
LANoTmo
DRM005 102
LAGotoXY #’ ’ LAPrintChar1 EncCnt 7,SP 7,SP LAGotoXY #Arrow LAPrintChar LASelectLoop
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LASelected lda asla add add tax clra adc psha pulh lda bne lda beq
7,SP
;Get Item DoProcPtr ; ; ; ; ; ; ; ; ; ; ; ;
lda psha ldx pulh jsr
,X
,X
; ; ; ; ;
jmp
LAInitMenu
;
jsr pula ais rts
LAPullEncoder
;Resore old Encoder status ; ; ;
#$0A CurMenuPtr+1
CurMenuPtr
,X LADoItem 1,X LADoNotItem
LADoItem
1,X
LADoNotItem LAEscaped
#$02
;****************************************************************************** ; ; Input Device Driver ; ;****************************************************************************** ;Input 2 Digit hex value ; ;On entry ;A=Start value ;On exit ;A=Selected value
LAInputByte psha lda ldx jsr lda jsr sei
; ; ; ; ; ; ;
CurX CurY LAGotoXY 1,SP LAPrintHex
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 103
Source Code jsr clr mov lda sta psha lda sta cli jsr jsr
LAPushEncoder Min #$FF,Max 5,SP EncCnt
jsr cbeqa lda cbeq sta ldx lda deca deca jsr lda jsr bra
LAKeyOK #$01,LASelHex EncCnt 1,SP,LASameHex 1,SP CurY CurX
#$01 EncStep LAWaitNotKeyOK LABlinkOn
;Save Encoder status ; ; ; ; ; ; ; ; ; ;
LASameHex
LAGotoXY 1,SP LAPrintHex LASameHex
; ; ; ; ; ; ; ; ; ; ; ; ;
LASelHex sei lda sta pula jsr jsr jsr pula rts
EncCnt 6,SP LAPullEncoder LACursOff LAWaitNotKeyOK
; ; ; ; ; ; ; ; ;
;Wait Input wait for Select or Escape ; ;On exit ;Carry=1 Select, Carry=0 Escape ; LAWaitInput jsr jsr
LAWaitNotKeyOK LAWaitNotPush
; ;
jsr sec cbeqa jsr cbeqa clc
LAKeyOK
; ; ; ; ; ;
WaitInput1
DRM005 104
#$01,WaitInputEnd LAPushOK #$00,WaitInput1
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
WaitInputEnd rts
;
LAKeyOK clra brset lda dbnza brset inca
KEY,PORTC,ExitOK #Dly100us $ KEY,PORTC,ExitOK
; ;If Key not pressed return FALSE ; ;Else wait 100us ;If noise return FALSE ;Else return TRUE
ExitOK rts
;
clrx
;
LAWaitKeyOK KeyDown bsr cbeqa dbnzx rts
LAKeyOK #$00,LAWaitKeyOK KeyDown
; ; ; ;
LAWaitNotKeyOK clrx
;
KeyDown1 bsr cbeqa dbnzx rts
LAKeyOK #$01,LAWaitNotKeyOK KeyDown1
; ; ; ;
LAWaitNotPush clrx
;
PushDown bsr cbeqa dbnzx rts
LAPushOK #$01,LAWaitNotPush PushDown
; ; ; ;
LAWaitPush clrx
;
PushDown1 bsr cbeqa dbnzx rts
LAPushOK #$00,LAWaitPush PushDown1
; ; ; ;
LAPushOK clra brset lda dbnza brset inca
PUSHBUT,PORTD,ExitPush #Dly100us $ PUSHBUT,PORTD,ExitPush
; ;If Key not pressed return FALSE ; ;Else wait 100us ;If noise return FALSE ;Else return TRUE
ExitPush rts
;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 105
Source Code ;Save current Encoder status into the stack ;On Entry ; No parameter ;On Exit ; No parameter LAPushEncoder pulh pulx lda psha lda psha lda psha lda psha jmp
; ; ;Save Encoder Status ; ; ; ; ; ; ; ;
Min Max EncCnt EncStep ,X
;Restore Encoder status from the stack ;On Entry ; No parameter ;On Exit ; No parameter ;Stack status ; SP-1,SP-2=Return address ; SP-3=EncStep ; SP-4=EncCnt ; SP-5=Max ; SP-6=Min LAPullEncoder pulh pulx sei pula sta pula sta pula sta pula sta cli jmp
DRM005 106
; ; ;Disable interrupt during ;Encoder status restore ; ; ; ; ; ; ; ;Enable interrupt ;
EncStep EncCnt Max Min ,X
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
; IRQ Handling procedures ; ; LAIRQProc psha pshx ldx
#Dly100us
;Save A ;Save X ;Wait 100uS for anti-debouncing
dbnzx bih
EncDly EndIRQ
; ;If IRQ1=1 the interrupt isn’t
lda tax brclr sub sta lda bpl
EncCnt ENCB,PORTD,EncUp EncStep EncCnt EncStep ChkEncMin
;EncCnt value loaded in Accumulator ; ;If EncB=1 then increase ;Otherwise decrase ; ; ;
cpx bhi lda cmp bls
EncCnt SetToMax EncCnt Max EndIRQ
; ; ; ;If less than Max is OK ;
lda sta bra
Max EncCnt EndIRQ
; ; ;
lda add sta lda bpl
EncStep EncCnt EncCnt EncStep ChkEncMax
; ;Increase EncCnt ; ; ;
cpx blo lda cmp bhs
EncCnt SetToMin EncCnt Min EndIRQ
; ; ; ; ;If bigger than Min is OK
lda sta
Min EncCnt
; ;
bset pulx pula rti
2,INTSCR
;Delete wrong IRQ ;Reload X ;Reload A ;
EncDly
correct
ChkEncMax
SetToMax
EncUp
ChkEncMin
SetToMin
EndIRQ
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 107
Source Code ;****************************************************************************** ; ; RS232 Device Driver ; ;******************************************************************************
LAGetRS232 pshh ldhx sthx clrh tst lda brclr bra
;Save H ; ; ; SCS1 ;Read Received byte and clear flag SCDR ; EscRec,RS232St,LAChkEsc ;Check if $1B already received LAEscOk ; #$0400 RS232Tmo
LAChkEsc cmp bne bset clr bra
#$1B LA232NoCode EscRec,RS232St BufferCnt LA232NoCode
;If char is Esc=$1B init buffer ;If not skip ;Set flag ; ;
ldx sta cbeqx cpx beq bra
BufferCnt RxBuffer,X #$00,LAInitPack RxBuffer LAChkPack LANext232
; ; ;If first byte clear CRC ; ;If last byte validate Packet ;Else store into Rx buffer
clr cmp bhs cmp blo
CRC232 #LOW(BufferSize) LABadPack #$04 LABadPack
; ;If packet too big exit with error ; ;If packet too small exit with error ;
add sta inc bra
CRC232 CRC232 BufferCnt LA232NoCode
; ; ; ;
coma cbeq
CRC232,LADecode
; ;If CRC ok decode command
lda clr clr jsr
#’N’ RS232St BufferCnt LAPutRS232
;Exit with bad packet message ; ; ;
LAEscOk
LAInitPack
LANext232
LAChkPack
LABadPack
DRM005 108
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LA232NoCode pulh rti
; ;
;Decode Command LADecode bclr ldhx lda bsr cphx beq jsr bra
EscRec,RS232St #CmdTab CmdNum LASrcCmd #$0000 LASrcUserCmd ,X LA232NoCode
; ;Search command in Bios table ; ; ;If not found ;Search User command ;Else execute it ;
brclr ldhx lda bsr cphx beq jsr bra
UserC,SFlags,LABadPack #UserCmdTab UserCmdNum LASrcCmd #$0000 LABadPack ,X LA232NoCode
; ;Search command in Bios table ; ; ;If not found ;Error ;Else execute it ;
LASrcUserCmd
;Search a command in the table pointed by HX ; ;On entry ; HX=TablePtr ; A=Num Commands in the table ; Rxbuffer+1->RxBuffer+3 Command ;On exit ; HX=Command Routine Pointer LASrcCmd psha pshx pshh clra psha psha
;Save number of commands ;Save Table addr ; ; ;Init command counter ;Space for char counter
NextCmd clr
1,SP
;Init char counter
lda add tax lda adc psha
4,SP 1,SP
; ; ; ; ; ;
NextCmdChar
3,SP #$00
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 109
Source Code pulh lda clrh ldx inc cbeqx cmp beq inc lda cmp bhs lda add sta clra adc sta bra
; ;Get Cmd char ; ; ; ;If 4th char Cmd found ; ;Loop for oll Cmd char ;If not equal next Cmd ; ; ;Untill last Cmd ;Next Cmd ; ; ; ; ; ;
,X 1,SP 1,SP #$03,CmdFound RxBuffer+1,X NextCmdChar 2,SP 2,SP 5,SP CmdTableEnd #$05 4,SP 4,SP 3,SP 3,SP NextCmd
CmdFound lda tax lda psha pulh lda psha ldx pulh ais rts
4,SP
; ; ; ; ; ; ; ; ; ; ;
ldhx ais rts
#$0000 #$05
; ; ;
brclr sta rts
7,SCS1,* SCDR
; ; ;
ldx clrh div pshh clrh div pshh add
#$0A
; ; ; ; ; ; ; ;
3,SP
3,X 4,X #$05
CmdTableEnd
LAPutRS232
LASendDec
DRM005 110
#$30
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
bsr pula add bsr pula add bsr rts
LAPutRS232
lda beq aix pshh pshx bsr pulx pulh bra
,X LAEndString1 #$01
; ; ; ; ; ; ; ;
#$30 LAPutRS232 #$30 LAPutRS232
LASendStr1 ; ; ; ;Save pointer ; ; ;Restore pointer ; ;
LAPutRS232
LASendStr1
LAEndString1 rts
;
;Get the length of a string ; ;On entry ; HX=String pointer ;On exit ; A=Len (max 254 char) A=FF length error ; HX=String end pointer
LAStrLen pshx pshh clra
;Save string pointer ;
LANextStrLen tst beq aix inca cbeqa bra
,X LAStrLenEnd #$01 #$FF,LAStrLenEnd LANextStrLen
; ; ; ; ; ;
LAStrLenEnd pulh pulx rts
; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 111
Source Code ;****************************************************************************** ; ; Remote commands ; ;******************************************************************************
;*********************************************** ; Programmer Identify Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "PID" ; 04 Packet Checksum ($1E) ;*********************************************** CmdPID ldhx
#PIDStr
;
jsr rts
LASendStr1
; ;
PID1
;*********************************************** ; Erase User Memory Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "EUM" ; 04 Packet Checksum ($14) ;*********************************************** CmdEUM jsr ldhx jsr jsr jmp
DRM005 112
LAClr #EraseFirmMsg LAPrintStr1 LAEraseUM LACmdOK
; ; ; ; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;*********************************************** ; Erase Programming Code Memory Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "EPG" ; 04 Packet Checksum ($1F) ;*********************************************** CmdEPG jsr bclr jmp
LAErasePG UserP,SFlags LACmdOK
; ; ;
;*********************************************** ; Erase TX Memory Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "ETX" ; 04 Packet Checksum ($0A) ;*********************************************** CmdETX jsr jmp
LAEraseTX LACmdOK
; ;
;*********************************************** ; Load TX Memory Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "LTX" ; 04 Packet Checksum ($03) ;*********************************************** CmdLTX jsr jmp
LAUpdateTX LACmdOK
; ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 113
Source Code ;*********************************************** ; Load Program Code Memory Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "LPG" ; 04 Packet Checksum ($18) ;*********************************************** CmdLPG jsr
LAUpdatePG
;
lda clr clr jsr rts
#’Y’ RS232St BufferCnt LAPutRS232
; ; ; ; ;
LACmdOK
;*********************************************** ; Update User Code Command ; ; Buffer status; ; ; 00 PackLen (Packet Length 04) ; 01-03 "UUC" ; 04 Packet Checksum ($0E) ;*********************************************** CmdUUC jsr ldhx jsr jsr bcc jsr ldhx jsr jsr jmp
LAClr #LoadFirmMsg LAPrintStr1 LAUpdateUM CmdUUC3 LAClr #ErrFirmMsg LAPrintStr1 LAWaitInput LASoftReset
; ; ; ; ; ; ; ; ; ;
lda jmp
SCDR LASoftReset
; ;
CmdUUC3
DRM005 114
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;**************************************************** ; ; Flash programming routine ; ;****************************************************
;SourcePtr=address of page (128bytes) to be erased LAErasePage ldhx lda sta lda sta lda dbnza lda sta ldx
SourcePtr #%00000010 FLCR FLBPR ,X #Dly10us $ #%00001010 FLCR #$0A
; ; ;ERASE to 1 ; ; ;Wait 10uS ; ; ;HVEN to 1 ;
lda dbnza dbnzx lda sta lda dbnza clra sta rts
#Dly100us $ EraseDly #%00001000 FLCR #Dly100us $
; ; ; ; ;ERASE to 0 ; ; ; ; ;
EraseDly
FLCR
LAErasePageEnd LAErasePageLen equ
LOW(LAErasePageEnd-LAErasePage)
;SourcePtr=Start Address ;DestPtr=End Address ;FlashBuffer=Data buffer LAProgRange ldhx clra psha
SourcePtr
; ; ;
NextRow lda sta lda sta lda
#%00000001 FLCR FLBPR ,X #Dly10us
; ;PGM to 1 ; ;Dummy write in a flash location ;
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 115
Source Code dbnza lda sta lda dbnza
$ #%00001001 FLCR #Dly5us $
;Wait 10us ; ;HVEN to 1 ; ;Wait 5us
NextRowByte ldx clrh lda ldhx sta inc aix sthx cphx beq txa and beq lda dbnza bra
1,SP
; ; ; ; ; ; ; ; ; ; ; ;Check if end of row ; ; ;Wait 30us ;Next Byte
FlashBuffer,X SourcePtr ,X 1,SP #$01 SourcePtr DestPtr EndRow #%00111111 EndRow #Dly30us $ NextRowByte
EndRow lda dbnza lda sta lda dbnza sta cphx bne pula rts
#Dly30us $ #%00001000 FLCR #Dly10us $ FLCR DestPtr NextRow
; ;Wait 30us ; ;PGM to 0 ; ;Wait 10us ; ; ; ; ;
LAProgRangeEnd LAProgRangeLen equ
LOW(LAProgRangeEnd-LAProgRange)
LALoadRAM psha clra psha
; ; ;
LALoadRAMLoop lda aix pshx pshh clrh ldx DRM005 116
,X #$01
; ; ; ; ; ;
3,SP
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
sta pulh pulx inc dbnz pula pula rts
RxBuffer,X
1,SP 2,SP,LALoadRAMLoop
; ; ; ; ; ; ; ;
LAEraseFPage ldhx lda jsr jsr rts
#LAErasePage #LAErasePageLen LALoadRAM RxBuffer
; ; ;Load routine in RAM ; ;
ldhx lda jsr jsr rts
#LAProgRange #LAProgRangeLen LALoadRAM RxBuffer
; ; ;Load routine in RAM ; ;
ldhx
#$0000
;
lda sta aix cphx bne rts
LAFirmUpdate,X $100,X #$01 #LAFirmUpdateLen LAUpdateLoop
; ; ; ; ; ;
ldhx
#$0000
;
lda sta aix cphx bne rts
LAEraseUser,X $100,X #$01 #LAEraseUserLen LAEraseLoop
; ; ; ; ; ;
bsr ldhx sthx ldhx sthx jsr rts
LALoadUpdate #$D700 EndAddr #$8000 FlashTop $100
; ; ; ; ; ; ;
LAProgFRange
LALoadUpdate LAUpdateLoop
LALoadErase LAEraseLoop
LAUpdateUM
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 117
Source Code LAEraseUM bsr ldhx sthx ldhx sthx jsr rts
LALoadErase #$8000 StartAddr #$D700 EndAddr $100
; ; ; ; ; ; ;
bsr ldhx sthx ldhx sthx jsr rts
LALoadUpdate #$E700 EndAddr #$D700 FlashTop $100
; ; ; ; ; ; ;
bsr ldhx sthx ldhx sthx jsr rts
LALoadErase #$D700 StartAddr #$E700 EndAddr $100
; ; ; ; ; ; ;
bsr ldhx sthx ldhx sthx jsr rts
LALoadUpdate #$F000 EndAddr #$E700 FlashTop $100
; ; ; ; ; ; ;
bsr ldhx sthx ldhx sthx jsr rts
LALoadErase #$E700 StartAddr #$F000 EndAddr $100
; ; ; ; ; ; ;
LAUpdatePG
LAErasePG
LAUpdateTX
LAEraseTX
LAEraseUser tpa psha sei ldhx DRM005 118
;Save Status register ; ; ;
StartAddr
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LAEraseUserLoop sthx lda sta lda sta lda dbnza lda sta ldx
StartAddr #%00000010 FLCR FLBPR ,X #Dly10us $ #%00001010 FLCR #$0A
; ; ;ERASE to 1 ; ; ;Wait 10uS ; ; ;HVEN to 1 ;
lda dbnza dbnzx lda sta lda dbnza clra sta ldhx aix aix cphx bne pula tap rts
#Dly100us $ LAEraseDly #%00001000 FLCR #Dly100us $
; ; ; ; ;ERASE to 0 ; ; ; ; ; ; ; ; ; ; ; ;
LAEraseDly
FLCR StartAddr #$40 #$40 EndAddr LAEraseUserLoop
LAEraseUserEnd
LAFirmUpdate tpa psha sei bsr
LASendYes
;Save Status register ; ; ;
bsr cbeqa lda bsr bra
LAGet232 #’S’,LAFirm1 #’N’ LAPut232 LAFirmUpdate1
; ; ; ; ;
bsr bsr psha bsr tax pulh bra
LAPut232 LAGet232
; ; ; ; ; ; ;
LAFirmUpdate1
LAFirm1
LAGet232
LANextL
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 119
Source Code LAGet232 brclr lda rts
5,SCS1,* SCDR
; ; ;
lda bsr pula tap sec rts
#’N’ LAPut232
; ; ; ; ; ;
lda
#’Y’
;
brclr sta rts
7,SCS1,* SCDR
; ; ;
sthx bsr sta sta clr bsr sta bsr sta ldhx
NumLines LAGet232 LineLen ByteCount LineSum LAGet232 StartAddr LAGet232 StartAddr+1 #$0090
; ; ;Save Line length ; ; ; ; ; ; ;
bsr sta add sta incx dbnz bsr cmp bne ldhx lda sta
LAGet232 ,X LineSum LineSum
; ; ; ; ; ; ; ; ; ; ; ;
LAProgErr
LASendYes LAPut232
LANextL
NextLineByte
LineLen,NextLineByte LAGet232 LineSum LAProgErr StartAddr #$90 LASourceData
LANextRow lda sta lda sta lda dbnza lda sta lda dbnza DRM005 120
#%00000001 FLCR FLBPR ,X #Dly10us $ #%00001001 FLCR Dly5us $
; ;PGM to 1 ; ;Dummy write in a flash location ;Wait 10us ; ; ;HVEN to 1 ; ;Wait 10us
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
LANextRowByte lda cphx bhs cphx blo sta
$90 EndAddr SkipByte FlashTop SkipByte ,X
; ; ; ; ; ;
SkipByte lda dbnza aix txa and beq lda inca sta dbnz
#Dly30us $ #$01
; ;Wait 30us ; ; #%00111111 ;Check if end of row LAEndRow ; LASourceData ; ; LASourceData ; ByteCount,LANextRowByte ;
lda sta lda dbnza sta cbeq dbnz
#%00001000 FLCR #Dly10us $ FLCR ByteCount,LAEndRow1 ByteCount,LANextRowByte
LAEndRow ; ;PGM to 0 ;Wait 10us ; ; ; ;
LAEndRow1 bsr ldhx aix cphx bne pula tap brclr lda clc rts
LASendYes NumLines #$FF #$0000 LANextL
; ; ; ; ; ; ; ; ; ; ;
equ
LOW(LAEraseUserEnd-LAEraseUser)
equ
LOW(LAFirmUpdateEnd-LAFirmUpdate)
equ
LANextRowByte-LAFirmUpdate+$101
5,SCS1,* SCDR
LAFirmUpdateEnd
LAEraseUserLen
LAFirmUpdateLen
LASourceData
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 121
Source Code ;**************************************************** ; ; ROM DATA SECTION FOR LOADER AGENT ; ;**************************************************** FirmUpdMsg EraseFirmMsg LoadFirmMsg ErrFirmMsg
DevName
AgentMsg SumMsg
FirmOKMsg BadFirmMsg Contrast VHHVal PIDStr
CmdNum CmdTab
DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B
"Waiting for "Firmware... "Erasing "Firmware... "Loading "Firmware... "Error ! "Press a kay
" ",$00 " ",$00 " ",$00 " ",$00
DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B DC.B
" 68HC908RF2 " Reference " Board "BLIC Agent "Rev 1.0 "Code : "Prog : "Table: ":Pass ":Fail "No Firmware $60 $FF "RFB A0.0
" " ",$00 " ",$00 " " ",$00 ",$00 ",$00 ",$00
DC.B
$07
DC.B DC.W DC.B DC.W DC.B DC.W DC.B DC.W DC.B DC.W DC.B DC.W DC.B DC.W
"PID" CmdPID "EPG" CmdEPG "ETX" CmdETX "EUM" CmdEUM "LPG" CmdLPG "LTX" CmdLTX "UUC" CmdUUC
",$00
; ; ; ; ; ; ; ; ; ; ; ; ; ;
CmdTabEnd
DRM005 122
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Mother Board Firmware
;****************************************************************************** ; ; BIOS Jump Table ; ;****************************************************************************** IFNDEF TestAgent BiosVectors:
SECTION
WaitInput KeyOK WaitKeyOK WaitNotKeyOK WaitNotPush PushOK WaitPush PushEncoder PullEncoder InputByte PowerOff Dly1ms DlyNms Wait20ms Wait200ms Wait1s SetContrast SetVHH WriteDAC Wait5uS Home CursOn CursOff BlinkOn Clr GotoXY PrintStr PrintStr1 PrintChar PrintChar1 PrintHex PrintShort PrintDec InputHex PutRS232 GetRS232 SendDec SendStr1 EraseFPage ProgFRange UpdateUM Menu SoftReset StrLen
jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp jmp
LAWaitInput LAKeyOK LAWaitKeyOK LAWaitNotKeyOK LAWaitNotPush LAPushOK LAWaitPush LAPushEncoder LAPullEncoder LAInputByte LAPowerOff LADly1ms LADlyNms LAWait20ms LAWait200ms LAWait1s LASetContrast LASetVHH LAWriteDAC LAWait5uS LAHome LACursOn LACursOff LABlinkOn LAClr LAGotoXY LAPrintStr LAPrintStr1 LAPrintChar LAPrintChar1 LAPrintHex LAPrintShort LAPrintDec LAInputHex LAPutRS232 LAGetRS232 LASendDec LASendStr1 LAEraseFPage LAProgFRange LAUpdateUM1 LAMenu LASoftReset LAStrLen
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
ENDIF Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 123
Source Code ;****************************************************************************** ; ; Parameter Flash ; ;****************************************************************************** Param:
SECTION
NVRegs
DC.B DC.B DC.B
$D4 $A1 $00
END
A.2.2 UK509 PRM NAMES ansi.lib /* other object files to link are passed from the IDF with the linker -Add option */ END SECTIONS DIRECT_RAM = READ_WRITE 0x40 TO 0xFF; BUFF_RAM = READ_WRITE 0x0100 TO 0x01FF; STACK_RAM = READ_WRITE 0x0200 TO 0x023F; MY_ROM = READ_ONLY 0x8000 TO 0xEFFF; LOADER_ROM = READ_ONLY 0xF000 TO 0xFBFF; BIOSVEC_ROM = READ_ONLY 0xFC00 TO 0xFCFF; PARAM_ROM = READ_ONLY 0xFD00 TO 0xFDFF; END PLACEMENT DEFAULT_ROM, ROM_VAR, STRINGS DEFAULT_RAM BUFFERS BiosVectors Loader Param SSTACK END
INTO INTO INTO INTO INTO INTO INTO
MY_ROM; DIRECT_RAM; BUFF_RAM; BIOSVEC_ROM; LOADER_ROM; PARAM_ROM; STACK_RAM;
STACKSIZE 0x40 INIT LAInit VECTOR ADDRESS 0xFFFE LAInit VECTOR ADDRESS 0xFFFA IRQProc VECTOR ADDRESS 0xFFE4 GetRS232
DRM005 124
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Transmitter Firmware
A.3 Transmitter Firmware ;Emulated
equ
0
;
;------------------------------------------------------------------------------; ; UK804 : Transmitter Sw (inside the MC68HC908RF2) ; ;------------------------------------------------------------------------------; ; SOURCE : UK804.ASM ; CONTROLLER : 68HC908RF2 ; CLOCK : 8 Mhz ; ; VERSIONE : 1.00 28 Feb 2001 ; ;------------------------------------------------------------------------------; ; ; #$-VIEW:UK804 Schematics-$# include
;
"C:\Metrowerks\lib\HC08c\INC\H908RK2.INC"
#$-VIEW:RK2 Registers Declarations-$#
;############################################################################### ;# # ;# TRANSMISSION FRAME COMPOSITION # ;# # ;# NNNNNNME-IIIIIIII-IIIIIIII-IIIIIIII-DGGGTTTT-RRRRRRRR # ;# | EXTRA |--------ID NUMBER--------| codice | --CRC--| # ;# # ;# I=ID NUMBER -> FIX IDENTIFICATION CODE (3 BYTES) # ;# G=GROUP -> SELECTED GROUP # ;# D=DIRECTION -> 1=INCREASE 0=DECREASE # ;# M=MODE -> 1=Toggle 0=Normal # ;# T=BUTTON -> BUTTON SELECTED CODE # ;# R=CRC -> CRC # ;# E=EXTRA -> COMMUTATION FLAG (1-> COMMUTATION 0-> IT CHANGES) # ;# N=UNUSED -> THEY MUST BE 0 # ;# # ;# # ;# TEMPORIZATIONS # ;# # ;# Duration Time of the sync signal = 6ms # ;# Duration Time of a Bit = 2ms # ;# Bit 0 -> LowTime=1.33ms HighTime=0.66ms # ;# Bit 1 -> LowTime=0.66ms HighTime=1.33ms # ;# # ;###############################################################################
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 125
Source Code ; Keyboard Buttons Codification ; ; ; ; ;
COL0 COL1 02
04 06 01
82 84 86 81
ROW0 ROW1 ROW2 ROW3
; Porta A PLLEn Row0 Row1 Row2 Row3 Col0 Col1 Led
equ equ equ equ equ equ equ equ
0 1 2 3 4 5 6 7
;Tango PLL Enable ;Keyboard Row 0 ;Keyboard Row 1 ;Keyboard Row 2 ;Keyboard Row 3 ;Keyboard Column 0 ;Keyboard Column 1 ;Led
DDRAInit PortAInit
equ equ
%10000001 %00000000
; ;
Data DClk
equ equ
2 3
;Data Out to Tango ;Data Clock from Tango
DDRBInit PortBInit
equ equ
%00000100 %00000000
; ;
1 1 1 1 1 1 1 1 1 1 1 1
;Control Byte ;ID0 ;ID1 ;ID2 ;Key ;RC0 ;RC1 ; ; ; ; ;
; Porta B
ORG $80 Buffer0 Buffer1 Buffer2 Buffer3 Buffer4 Buffer5 Buffer6 CRC BitCount LastRow LastCol TxCnt
DRM005 126
DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B DS.B
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Transmitter Firmware
; Costanti Dly300ms MinTx FrameDly
equ equ equ
$03 $03 $20
codeSec:
SECTION
XDEF XDEF
;300ms@8Mhz ;Minimum number of frame transmitted ;Delay between frames (771*FrameDly cycles)
main KeybIRQ
main mov
#%00000011,CONFIG1
;Diasble COP and enable Stop instruction ;Init stack pointer
#DDRAInit,DDRA #PortAInit,PORTA #DDRBInit,DDRB #PortBInit,PORTB PLLEn,PORTA
;Init PORTA ; ;Init PORTB ; ;Start PLL of Tango
rsp WarmStart mov mov mov mov bset
; ; WARNING !!!!! IMASKK is inverted in emulation with MMDS/MMEVS ; ifdef
Emulated mov
#%00000011,INTKBSCR
;Init Keyboard
mov
#%00100001,INTKBSCR
;
mov
#%00011110,INTKBIER
;
bset
ACKK,INTKBSCR
bset bclr
Led,PORTA PLLEn,PORTA
;Clear possible Keyboard interrupt before Stop ;Power off led ;Stop PLL of Tango
else endif Sleep
; ; WARNING !!!!! Stop instruction does not work with MMDS/MMEVS ; ifdef Emulated
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 127
Source Code StopProc cli nop bra
;Emulated Stop instruction ; StopProc
else StopProc stop nop bra
; ; StopProc
brclr jmp
7,INTKBSCR,KeyboardProc ;Check if IRQ intetrrupt IRQProc ;
bset bclr clrx
2,INTKBSCR Led,PORTA
;Reset Keyboard Flag ;Led On ;
lda coma and lsra bne dbnza dbnzx jmp
PORTA
RowOk $ WaitRow ExitKeyb
;Read Key Row ; ; ; ; ; ;If Row=0 wait until timeout ;Row timeout
sta clr
LastRow INTKBIER
;Save Row number ;Clear Keyboard interrupt enable
lda ora sta lda ora sta clrx mov
#%00011110 DDRA DDRA #%00011110 PORTA PORTA #$10,BitCount
;All rows to 1 ; ; ; ; ; ; ;
lda
#$40
;
endif
KeybIRQ
KeyboardProc
WaitRow
#%00011110
RowOk
bits
ColLoop KeyLoop dbnzx dbnza
DRM005 128
KeyLoop KeyLoop
; ;Wait 49152 cycles
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Transmitter Firmware
WaitCol lda and nsa lsra bne dbnz jmp
PORTA #%01100000
ColOk BitCount,ColLoop ExitKeyb
;Get Column ; ; ; ; ;If Row=0 wait until timeout ;Column timeout
sta lda brset lda brset lda brset lda
LastCol #$02 0,LastRow,SetCol #$04 1,LastRow,SetCol #$06 2,LastRow,SetCol #$01
;Save column ;Decode Key ; ; ; ; ; ;
brclr ora
1,LastCol,SetKey #$80
; ;
ColOk
SetCol
;Init Transmission Buffer SetKey sta clr lda sta lda sta lda sta lda
Buffer4 Buffer0 ID0 Buffer1 ID1 Buffer2 ID2 Buffer3 #Dly300ms
;Init Key Code ; ;Init ID ; ; ; ; ; ;Wait for the time specified in Accumulator ; ; ;
dbnzx dbnza dbnz pula
$ ToggleDly 1,SP,ToggleDly
;[3*256=768] ;[256*771] ;[197379*Dly300ms] ;
lda and nsa lsra bne bset
PORTA #%01100000
;Check if key still down ; ; ; ; ;
psha clra clrx ToggleDly
NoToggle 0,Buffer0
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 129
Source Code NoToggle lda add sta clra adc sta lda and beq tax
#$01 Buffer6 Buffer6
; ; ; ; ; ; ; ; ; ;
lda rora ror ror ror ror ror ror dbnzx
Buffer5 Buffer0 Buffer1 Buffer2 Buffer3 Buffer4 Buffer5 NextRotate
; ; ; ; ; ; ; ; ;
ldhx lda eor sta eor sta eor sta eor sta eor sta
#Buffer0 ,X 1,X 1,X 2,X 2,X 3,X 3,X 4,X 4,X 5,X 5,X
; ; ; ; ; ; ; ; ; ; ; ;
Buffer5 Buffer5 Buffer6 #$0F NoRotate
NextRotate
NoRotate
; Calculate CRC clr ldhx
CRC #Buffer6
; ;
mov
#$08,BitCount
;
lda eor lsr and beq lda eor sta
0,X CRC CRC #$01 NoXor #%10001100 CRC CRC
; ; ; ; ; ; ; ;
NextCRCByte NextCRCBit
DRM005 130
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Transmitter Firmware
NoXor lda rora ror dbnz decx cpx bne lda ror rora nsa sta
0,X 0,X BitCount,NextCRCBit #Buffer0-1 NextCRCByte CRC CRC
CRC
; ; ; ; ; ; ; ; ; ; ; ;
;################################################################################ ;# ;# Data Timing ;# ;# Timing is derived from Tango DataClock signal (Tango Xtal/64) that is ;# [email protected] (4.717 us period). ;# Tango DataClock is used as Timer Module Clock by MCU. When external clock ;# is used by Timer Module the prescaler is not available and the clock is ;# directly to the timer counter. ;# ;################################################################################
# # # # # # # # #
;Transmission Loop mov mov mov mov bset mov
#DDRAInit,DDRA #PortAInit,PORTA #%00011110,INTKBIER #MinTx,TxCnt PLLEn,PORTA #%00110111,TASCR
; ; ; ; ; ;Stop and reset Timer
bset ldx clra
Data,PORTB #FrameDly
; ; ;
clr dbnza dbnzx mov bclr mov ldhx sthx ldhx sthx bclr
TASC0 $ FrameBlank #%00110111,TASCR Data,PORTB #%00010010,TASC0 #$0300 TAMODH #$0180 TACH0H 7,TASC0
; ; ; ;Stop and reset Timer ; ; ;Timer modulo=$0300 (3.622ms) ; ;Compare Value=$0180 (0.603ms) ; ;Clear Flag
NextFrame
FrameBlank
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 131
Source Code mov
#%00011110,TASC0
bclr bclr brclr mov ldhx sthx clr lda sta ldhx psha mov
7,TASCR 5,TASCR 7,TASCR,* #%00110111,TASCR #$00D2 TAMODH TACH0H #$46 TACH0L #CRC
bclr
5,TASCR
;Set On Compare and Toggle on Overflow ;Clear Flag ;Start Timer ;Wait ;Stop Timer ;Timer modulo=$00D2 (990us) ; ; ; ;Compare Value=1/3 bit time ;HX points to CRC ;Space in stack for bit counter ;Set On Compare and Toggle on Overflow ;Start Timer
lda sta
#$08 1,SP
;Init Bit Counter ;
lda rora ror clr lda bcs lsla
0,X
; ; ; ; ;Compare Value=1/3 bit time if bit=1 ; ;Compare Value=2/3 bit time if bit=0
sta brclr bclr dbnz decx cpx bne mov pula clra dbnza tst beq dbnz
TACH0L 7,TASCR,* 7,TASCR 1,SP,NextTxBit
#%00011110,TASC0
NextTxByte
NextTxBit
0,X TACH0H #$46 Bit1
Bit1
#Buffer0-1 NextTxByte #%00110111,TASCR
$ TxCnt ChkKey TxCnt,NextFrame
; ;Wait ;Clear Flag ; ; ; ; ;Stop Timer ;Free stack ; ; ; ; ;
ChkKey lda coma and bne bclr
DRM005 132
PORTA
; ; ; ; ;
#%00011110 NextFrame PLLEn,PORTA
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Source Code Transmitter Firmware
ExitKeyb mov mov mov
#DDRAInit,DDRA #PortAInit,PORTA #%00011110,INTKBIER
; ; ;
lda coma and bne bset bset tst bne dec
PORTA
; ; ; ; ; ; ;Test Return Address Low ; ;
dec rti
5,SP
; ;
bset rti
6,INTKBSCR
;Reset IRQ Flag
DC.B DC.B DC.B
$54 $23 $F4
WaitKeyUp
#%00011110 WaitKeyUp ACKK,INTKBSCR Led,PORTA 5,SP DecLow 4,SP
DecLow
IRQProc
ID0 ID1 ID2
END
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Source Code
DRM005 133
Source Code
DRM005 134
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Source Code
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Appendix B. Schematics
This appendix includes: •
Mother Board schematic — Figure B-1
•
Receiver schematic — Figure B-2
•
Transmitter schematic — Figure B-3
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Schematics
DRM005 135
Schematics
DRM005 136
Schematics
MOTOROLA
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
Figure B-1. Mother Board Schematic
1uH
R5 10 K
CN2
100 P CDG
CN3
470 K
CN2
DMDAT
19
MIKOUT
23
SCLK MOSI MISO
IC2 MC33591
RFIN
C19
RESETB
5
6
8
9 19
22
12
24
7
17 16
CN2
11
25 CN4 24 CN5 23
15 CN6 CN2
14
33
21 CN7 20
CN2
X1
X2
ROBGAP PFD
DMIXAGO
CAFC
GND1 GND0
GND
GNDS
STROBE CAGC
4 C8
18 VDC0
3 VDCL
VCC 1.4–3 pF 3 MM
2 VCC1
1
36
R2
CN2
GNDL
Schematics
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
MOTOROLA
VCC
CN2
28 32
10
CR1
C5
C3
C8
C11
C10
C4
C12
R3 500P 00G
500M XJA
XJA 10N
6P CDG
180K
B8N X7A
1U Y5V
1U Y6V
CN8 CN2
7
GND
Schematics
DRM005
137
Figure B-2. Receiver Schematic
Schematics
DRM005
138
VCC
R22
PTA0 1 PTA1/KBD1 32 PTA2/KBD2 31 PTA3/KBD3 30 PTA4/KBD4 29 PTA5/KBD5 28 PTA6/KBD6 27 PTA7 3 PTB0/MCLK 4 PTB1 5 PTB2/TCHO 20 PTB3/TCLK
SW4
BAT1 1 C42032 SW1
SW2
2
26
24
RESET
2
SW3
14
11
IC1 HC908RF2REV1
C8 1U YBV
R18
R16
1K
1K
R21 R19
R23
10
10
10K
22
23
8
10
7
9
13
L1
6
R17
CN4 CR1 C5 CN5
12K
8P C0G GND
MOTOROLA
Figure B-3. Transmitter Schematic
22 nH
RFOUT 12 GND
GNDPF
PEXT
CFBK
X1
CNE
X0
DCLK 18 DATA 17 BAND 16 PLLEN 15 MODE OSC1 21
VSS
19
OSC2
Schematics
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
IRQ
25
VCC
R20 R18
VCCPF
R14
VDD
SW5
10k
SW6
10k
SW8 330
SW7
10
LD1
TL0U1002
CN1 CN2 CN3
C8 10N X7R
8P C0G
C3 3 MM 1.4–3 pF
C8
C2 100P 1U COB Y5V
C7
Designer Reference Manual — Remote Keyless Entry
Appendix C. Board Layouts
This appendix includes pictorials of the board layouts (top and bottom views) for: •
Transmitter — Figure C-1 and Figure C-2
•
Receiver — Figure C-3 and Figure C-4
•
Mother board — Figure C-5 and Figure C-6
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Board Layouts
DRM005 139
Board Layouts
Figure C-1. Transmitter Layout (Top View) DRM005 140
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Board Layouts
MOTOROLA
Board Layouts
Figure C-2. Transmitter Layout (Bottom View) Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Board Layouts
DRM005 141
Board Layouts
Figure C-3. Receiver Layout (Top View)
DRM005 142
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Board Layouts
MOTOROLA
Board Layouts
Figure C-4. Receiver Layout (Bottom View)
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Board Layouts
DRM005 143
Board Layouts
DRM005 144
Board Layouts
MOTOROLA
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2
Figure C-5. Mother Board Layout (Top View)
Board Layouts
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Board Layouts
145
DRM005
Figure C-6. Mother Board Layout (Bottom View)
Board Layouts
DRM005 146
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Board Layouts
MOTOROLA
Designer Reference Manual — Remote Keyless Entry
Appendix D. Bill of Materials
D.1 Contents D.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
D.3
Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
D.4
Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
D.5
Mother Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
D.2 Introduction This appendix provides the remote keyless entry (RKE) reference design bill of materials.
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Bill of Materials
DRM005 147
Bill of Materials D.3 Transmitter Transmitter PARTLIST Title TX Customer Motorola Author Andrea Martini Rev A1.0 PWS Rev A0.0 Date 09 Nov 2001
Components
DRM005 148
Ref
Value
Package
Function
BAT1 C2 C3 C5 C6 C7 C8 C9 CR1 IC1 L1 LD1 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 SW
100p 8p 6p 1u 1u 10n 1.4-3pF 13.560MHz HC908RF2REV1 22nH LED0805 330 1K 1K 12K 10K 10K 10 10 10K 10
PIH 0603 0603 0603 0603 0603 0603 SMD HC49SMX LQFP32 008 0805 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603
BATTERY CONTACT CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR TRIMMER XTAL MICRO INDUCTORS LED RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR Keyboard
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Bill of Materials
MOTOROLA
Bill of Materials Receiver
D.4 Receiver Receiver PARTLIST Title RX Board Customer MOTOROLA Author Andrea Martini Rev A1.0 PWS Rev A0.0.0 Date 09/11/01
Components
Ref
Value
Package
Function
C10 C11 C12 C13 C3 C4 C5 C6 C8 CR1 IC2 L1 R2 R3 R5
1u 6p 1u 1.4-3pF 100n 68n 100p 10n 100p 13.5806MHz MC33591 1uH 470K 180K 10K
0603 0603 0603 1008 0603 0603 0603 0603 0603 SMD3118 LQFP24 1008 0603 0805 0603
CAPACITOR CAPACITOR CAPACITOR TRIMMER CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR XTAL IC INDUCTORS RESISTOR RESISTOR RESISTOR
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Bill of Materials
DRM005 149
Bill of Materials D.5 Mother Board MotherBoard PARTLIST Title Motherboard Customer MOTOROLA Author Andrea Martini Rev A0.0 PWS Rev A0.0.0 Date 09/11/00
Components
DRM005 150
Ref
Value
Package
Function
C34 C51 C52 C57 C58 C59 C60 C61 C62 C63 C64 C65 C66 CN12 CN13 CN14 CN15 CN29 CR1 D1 D2 D3 D4 IC13 IC14 IC15 IC16
1u 100n 1u 100n 470uF 100n 10uF 10uF 1u 1u 1u 1u 1u FH40 FH40 FH40 PLUG2.5mm DB9 9.8304MHZ 1SS355 ZRA250F01 MBRD835 MMSZ5225B MIC4416 MIC5206BMM MIC5206 MIC4416
0603 0603 0603 0603 8/16-VERT 0603 5/11-VERT 5/11-VERT 0603 0603 0603 0603 0603
CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CAPACITOR CONNECTOR CONNECTOR CONNECTOR CONNECTOR CONNECTOR OSC DIODE REFERENCE DIODE ZENER MOSFET REGULATOR REGULATOR MOSFET —Continued on next page —
DIP8 SOD323 SOT23 DPACK SOD123 SOT143 MSOP8 SOT23-5 SOT143
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Bill of Materials
MOTOROLA
Bill of Materials Mother Board
Ref
Value
Package
Function
IC17 IC29 IC30 IC31 IC33 IC34 IC35 IC36 IC37 MOS1 Q1 R12 R13 R17 R2 R21 R22 R24 R25 R26 R27 R28 R3 R30 R31 R32 R33 R34 R35 R36 R37 R38 R39 R7 R9 SW4 SW5
EA7123I2C HC908GP32 HN29W128 74HC04D MAX533BCEE LMV321 74HC125D MAX232SO 74HC139D IRL9024 SMBT3904 10K 10K 10K 56K 10K 10K 1K 1K 10K 100K 100K 10K 10K 10K 10K 10K 10K 10K 470 1K 1K 1K 10K 10K EC11B15242 SW5511M1X
QFP44 48TSOP SO14 SSOP16 SC70 SO14 SO16W SO16 D-PACK SOT23 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 0603 Oriz PIH
LCD MCU Memory LOGIC DAC OPERATIONAL LOGIC INTERFACE LOGIC MOSFET BJT RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR RESISTOR SWITCHES SWITCHES
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 MOTOROLA
Bill of Materials
DRM005 151
Bill of Materials
DRM005 152
Remote Keyless Entry (RKE) Reference Design Using the MC68HC908RF2 Bill of Materials
MOTOROLA
HOW TO REACH US: USA/EUROPE/LOCATIONS NOT LISTED: Motorola Literature Distribution; P.O. Box 5405, Denver, Colorado 80217 1-303-675-2140 or 1-800-441-2447 JAPAN: Motorola Japan Ltd.; SPS, Technical Information Center, 3-20-1, Minami-Azabu Minato-ku, Tokyo 106-8573 Japan 81-3-3440-3569 ASIA/PACIFIC: Motorola Semiconductors H.K. Ltd.; Silicon Harbour Centre, 2 Dai King Street, Tai Po Industrial Estate, Tai Po, N.T., Hong Kong 852-26668334 TECHNICAL INFORMATION CENTER: 1-800-521-6274
Information in this document is provided solely to enable system and software implementers to use Motorola products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. Motorola reserves the right to make changes without further notice to any products herein. Motorola makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Motorola assume any
HOME PAGE: http://www.motorola.com/semiconductors
liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters which may be provided in Motorola data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including “Typicals” must be validated for each customer application by customer’s technical experts. Motorola does not convey any license under its patent rights nor the rights of others. Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal injury or death may occur. Should Buyer purchase or use Motorola products for any such unintended or unauthorized application, Buyer shall indemnify and hold Motorola and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Motorola was negligent regarding the design or manufacture of the part.
Motorola and the Stylized M Logo are registered in the U.S. Patent and Trademark Office. digital dna is a trademark of Motorola, Inc. All other product or service names are the property of their respective owners. Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer.
© Motorola, Inc. 2002
DRM005/D