7.6.1 Power Down Mode ··········································································································· 25 7.6.2 Dual Clock Mode·············································································································· 26 7.7 Interrupt··········································································································································26 Product Specification (V1.0) 03.22.2006 (This specification is subject to change without further notice) Universal Serial Bus Microcontroller ························································································· 8 ······························································································· 8 EM78612 • • • • 1...
Page 4
EM78612 Universal Serial Bus Microcontroller 8 Absolute Maximum Ratings···································································· 27 9 DC Electrical Characteristic Application Cricuit···································································································· 30 APPENDIX A. Special Register Map B. Instruction Set ········································································································· 32 C. Code option Register 2 • • • • ················································································· 28 ···························································································· 31 ····························································································...
Page 5
EM78612 Universal Serial Bus Microcontroller Specification Revision History Doc. Version Revision Description Date Initial Version 2006/03/22 • • • • 3 Product Specification (V1.0) 03.22.2006 (This specification is subject to change without further notice)
Universal Serial Bus Microcontroller General Description The EM78612 is a series of Universal Serial Bus 8-bit RISC microcontrollers. It is specifically designed for USB low speed device application and to support legacy device such as PS/2 mouse. The EM78612 also support one device address and two endpoints..
USB Plus data line interface or PS/2 line interface are user-defined through firmware setting. When the EM78612 is running under PS/2 mode, this pin will have an internal D+ / P50 pulled-high resistor (2.2K Ohm), with V When this pin is used as a PS/2 line interface, it will generate an interrupt when its state changes (Port5 state change interrupt enable).
Program Memory The program space of the EM78612 is 2K words, and is divided into two pages. Each page has 1K words long. After Reset, the 12-bit Program Counter (PC) points to location zero of the program space.
When the micro-controller executes the instruction, specific registers are invoked for assistance, such as; Status Register which records the calculation status, Port I/O Control Registers which control the I/O pins’ direction, etc. The EM78612 series provides a lot more of other special purpose registers with different functions.
Page 12
General Purpose Registers (Bank0) (Bank1) Fig 7-1 The Organization of EM78612 Data RAM (This specification is subject to change without further notice) IOC5 (Port 5 I/O Control Register) IOC6 (Port 6 I/O Control Register) IOC7 (Port 7 I/O Control Register)
Page 13
R2 (Program Counter & Stack) Default Value: (0B_0000_0000) The EM78612 Program Counter is an 11-bit long register that allows access to 2K bytes of Program Memory with 5 level stacks. The eight LSB bits, 00~07, are located at R2, while the one MSB bits, 10, is located at R3 [5].The Program Counter is cleared after Power-on reset or WatchDog reset.
Page 14
EM78612 Universal Serial Bus Microcontroller R3 [2] Zero flag. It will be set to 1 when the result of an arithmetic or logic operation is zero. R3 [3] Power down flag. It will be set to 1 during Power-on phase or by “WDTC”...
Page 15
1: Disable the wake-up function Product Specification (V1.0) 03.22.2006 (This specification is subject to change without further notice) R4[6]Bk0 /Wu65 /Wu64 EM78612 Universal Serial Bus Microcontroller RAM Bank # Bank 0 Bank 1 D- or DATA D+ or CLK /Wu63...
Page 16
EM78612 Universal Serial Bus Microcontroller 0: Enable the wake-up function R9 (Port 7 Wake-up Pin Selection Register) Default Value: (0B_1111_1111) R9 [0 ~ 3] Select which of the Port 7 pins are to be defined to wake-up the MCU from sleep mode.
Page 17
// Move data in A to RD register // Move data in A to RE register // Assign address point to EP0 FIFO // Read the fourth byte data (byte3) of the EP0 FIFO EM78612 Universal Serial Bus Microcontroller UAD2 UAD1 UAD0 •...
Page 18
Vender /Customer Command to EndPoint Zero. This bit is cleared by the firmware. RF [2] USB Suspend interrupt flag. It will be set when the EM78612 finds the USB Suspend Signal on USB bus. This bit is cleared by the firmware. RF [3] USB Reset interrupt flag.
Page 19
TSR0 NOTE WatchDog Timer prescaler bits. These three bits are used as the prescaler of WatchDog Timer. TCC Timer prescaler bits. PSR1/TSR1 PSR0/TSR0 EM78612 Universal Serial Bus Microcontroller PSR2 PSR1 TCC Rate WDT Rate ( 8mS ) 6MHz / 2...
Page 20
EM78612 Universal Serial Bus Microcontroller IOC5 (Data Line I/O Control Register) Default Value: (0B_0000_0011) IOC5 [2~7] Undefined registers. The default value is 0. IOC6 (Port 6 I/O Control Register) Default Value: (0B_1111_1111) IOC7 (Port 7 I/O Control Register) Default Value: (0B_0000_1111) IOC8 (Sink Current Control Register) Default Value: (0B_0000_0000) IOC8 [0,1][4,5] are P70/P71 sink current control registers.
Page 21
0: Disable the pull-high function. Product Specification (V1.0) 03.22.2006 (This specification is subject to change without further notice) Dual_Frq.0 PL65 PL64 PL63 PH65 PH64 PH63 EM78612 Universal Serial Bus Microcontroller PS/2 Mode USB Test Mode Frequency 500Hz 4kHz 32kHz 256kHz PL62...
Page 22
At the transition of wake-up signal from high to low, this bit is set to enable the clock system. 1: Run mode. The EM78612 is working normally. 0: Sleep mode. The EM78612 is in power down mode. IOCE [5] WatchDog Timer enable bit. The bit disable/enables the WatchDog Timer.
7.2.2 USB Application FIFOs For USB Application, EM78612 provides an 8-byte First-In-First-Out (FIFO) buffer for each endpoint. The buffer cannot be accessed directly. However, a corresponding Data Byte Pointer register for each endpoint is made available to address the individual byte of the FIFO buffer.
Universal Serial Bus Microcontroller I/O Ports The EM78612 has up to twelve General Purposes I/O pins, which are classifies into two port groups; Port 6 and Port 7. Each pin has an internal resistor that can be individually selected by user.
USB application. 7.4.1 Detect PS/2 or USB Mode When the EM78612 is connected to the bus, the firmware should detect and identify which type of bus (USB or PS/2) it is connected to. The conditions that influence detect function are described below: After a Power-on reset, the initial value of IOCA [0,1] is 0b00.
EM78612 supports one device address, two endpoints, EP0 for control endpoint, and EP1 for interrupt endpoint. Sending data to USB host in EM78612 is very easy. Just write data into EP’s FIFO, then set flag, and the UDC will handle the rest. It will then confirm that the USB host has received the correct data from EM78612.
7.6.1 Power Down Mode The EM78612 enters into Power Down mode by clearing the RUN register (IOCE[4]). During this mode, the oscillator is turned off and the MCU goes to sleep. It will wake up when signal from USB host is resumed, or when the WatchDog resets, or the input port state changes.
USB Bus. Interrupt The EM78612 has two interrupt vectors, one is in 0x0001, and the other is in 0x000A. When an interrupt occurs while the MCU is running, it will jump to the interrupt vector (0x0001 or 0x000A) and execute the instructions sequentially from interrupt vector. RF is the interrupt status register that records the interrupt status in the relative flags/bits.
Absolute Maximum Ratings Symbol Temperature under bias Storage temperature Input voltage Output voltage Product Specification (V1.0) 03.22.2006 (This specification is subject to change without further notice) Universal Serial Bus Microcontroller -0.5 -0.5 EM78612 Unit ºC ºC • • • • 27...
EM78612 Universal Serial Bus Microcontroller DC Electrical Characteristic (T = 25 , VDD = 5V, VSS = 0V) Symble Parameter Output voltage of 3.3v Regulator Low Power Reset detecting low Voltage ResetL Low Power Reset detecting high Voltage ResetH Ireg 3.3V Regulator driving capacity...
Page 31
Programmable Large Current = 0.4V, IOC8[0,1] or IOC8[4,5] = 00 = 0.4V, IOC8[0,1] or IOC8[4,5] = 01 = 0.4V, IOC8[0,1] or IOC8[4,5] = 10 = 0.4V, IOC8[0,1] or IOC8[4,5] = 11 EM78612 -30% +30% -30% +30% -30% +30% -30% +30%...
EM78612 Universal Serial Bus Microcontroller 10 Application Cricuit EM78612_CP V3.3 V3.3 OSCI 4.7uF 6MHz or 12MHz resonator 30pF Note : A. Place C1 and C2 close to MCU VDD pin. B. Place Y1, C4 and C5 close to MCU OSCI pin.
EM78612 Universal Serial Bus Microcontroller B. Instruction Set Each instruction in the instruction set is a 11-bit word divided into an OP code and one or more operands. All instructions are executed within one single instruction cycle (consisting of 2 oscillator periods), unless the program counter is changed by- (a) Executing the instruction "MOV R2,A", "ADD R2,A", "TBL", or any other instructions...
Page 35
R(b)=1, skip PC+1 → [SP], CALL k (Page, k) → PC (Page, k) → PC JMP k k → A MOV A,k A ∨ k → A OR A,k EM78612 STATUS AFFECTED Z,C,DC Z,C,DC None None None None None None None <Note2>...
EM78612 Universal Serial Bus Microcontroller INSTRUCTION BINARY 1 1010 kkkk kkkk 1Akk 1 1011 kkkk kkkk 1Bkk 1 1100 kkkk kkkk 1Ckk 1 1101 kkkk kkkk 1Dkk 1 1111 kkkk kkkk 1Fkk 1 This instruction is applicable to IOCx only.
Page 37
EM78612 has one CODE option registers, which are not part of the normal program memory. The option bits cannot be accessed during normal program execution. R.S. Bit 0 (Frequency) : Frequency Selection. 0: The MCU run on 12 MHz 1: The MCU run on 6 MHz Bit 2~1 (OST_1 ~ OST_0) : Oscillator Start-up Time.
Need help?
Do you have a question about the EM78612 and is the answer not in the manual?
Questions and answers