ETC TM58P05

TM58P05
1 . 基本特性
ROM: 0.5K x 14 位
RAM: 33 x 8 位
堆棧: 4 級
I/O 口: 12 個 I/O
定時器/計數器: 8 位 x 1 (TMR0)
預分頻器: 8 位
2 個中斷請求: 內部中斷請求: (TMR0)
外部中斷請求: (PA 0)
Watchdog 計時器: 在芯片上基於內部 RC 振盪器的 watchdog, 最短周期是 20mS; 用戶可通過使
用預分頻器使 watchdog 溢出周期達到 2.6S。
上電復位 & 掉電復位
復位計時器: 20 mS (5V)
1 個內部 RC 振盪器
4 种外部振盪模式: RC 和 (LS,NS,HS)晶掁
2 种操作模式:一般模式, 高級模式
工作電壓: 2.5V∼5.5V
指令集: 79 個
喚醒: watchdog 計時器溢出, Port A (PA 3~ PA 0)
復位向量: 1FFH
中斷請求向量: 1FEH
低電壓檢測: 電壓不足將導致復位。
tenx technology, inc.
Rev:1.0 Page:1/1
TM58P05
2. 腳位定義
PA2
1
18
PA1
PA3
2
17
PA0
EXT_CLK
3
16
OSC1
RESETB/VPP
4
15
OSC2
VSS
5
14
VDD
PB0
6
13
PB7
PB1
7
12
PB6
PB2
8
11
PB5
PB3
9
10
PB4
Package Types :PDIP.
PA2
1
20
PA1
PA3
2
19
PA0
EXT_CLK
3
18
OSC1
RESETB/VPP
4
17
OSC2
VSS
5
16
VDD
VSS
6
15
VDD
PB0
7
14
PB7
PB1
8
13
PB6
PB2
9
12
PB5
PB3
10
11
PB4
Package Type : SOIC.
tenx technology, inc.
Rev:1.0 Page:2/2
TM58P05
腳位描述
腳位名稱
I/O
EXT_CLK
I
TMR0 計數器的外部時鐘輸入腳
PA0
I
I/O 口&外部中斷請求輸入&喚醒輸入
PA3-0
I/O
I/O 口&喚醒 (輸入模式)
PB7-0
I/O
I/O 口
RESETB/VPP
I
描述
系統復位信號& VPP (高電壓) 輸入
1 低電壓: 復位模式
2
高電壓: 編程模式
OSC1
I
振盪器輸入
OSC2
O
振盪器輸出
VDD
P
電源輸入
VSS
P
接地輸入
I: 輸入; O: 輸出; I/O: Bi-方向; P: 電源
3. 存儲器
Name
Addr
Bit 7
CONFIG
(Instruction)
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
LV1
LV0
TYPE
CPT
WDTE
FOSC1
FOSC0
SUR0
EDGE0
PSA
PS2
PS1
PS0
A6
A5
A4
A3
A2
A1
A0
SELECT
INDF
$00
TMR0
$01
D7
D6
D5
D4
D3
D2
D1
D0
PC
$02
D7
D6
D5
D4
D3
D2
D1
D0
STATUS
$03
DC
C
$04
PD
D3
Z
FSR
TO
D4
D2
D1
D0
I/O PortA
$05
PA3
PA2
PA1
PA0
I/O PortB
$06
PB7
PB6
PB5
PB3
PB2
PB1
PB0
WAKE_UP
$20
WDTS
WUE
EIS
PUH3
PUH2
PUH1
PUH0
IRQM
$21
INTM
IRQF
$22
tenx technology, inc.
PB4
EXINTM
TMR0M
EXINTF
TMR0F
Rev:1.0 Page:3/3
TM58P05
4. 系統圖表
中斷控制器
指令寄存器
EPROM 512*14
程序計數器
PB7:PB0
指令解碼器
I/O Port
PA3:PA 0
4級堆棧
Data Bus
TMR0
Option
寄存器
Status
Watchdog/TMR0
預分頻器
Watchdog
計時器
FSR
Acc
ALU and Control
Unit
33字節RAM
振盪器&低電壓檢測器
Configuration
Word
Sleep
EXT_CLK
tenx technology, inc.
OSC1
OSC2
RESETB/VPP
Rev:1.0 Page:4/4
TM58P05
5. 存儲器解說
TM58P05 存儲器分為程序存儲器和數據存儲器。
5 . 1 程序存儲器
TM58P05 提供 2 种程序存儲器映像, 即一般模式和高級模式。用戶可通過設置 configure word
選擇不同模式。
在一般模式下, 可直接尋址的同一頁上只有 512 個字。 指令執行順序是由程序計數器控制
的, 程序計數器自動加 1。然而順序也能被 skip, call, goto 指令改變, 或者通過移動數據到程序
計數器改變順序。
在高級模式下, TM58P05 允許直接尋址 0.5K 存儲器任何地址, 而不受頁面大小限制。另外,
lcall 和 lgoto 指令可提供靈活的尋址模式。
TM58P05有一個可訪問0.5K空間的 9位程序計數器。 如果訪問地址超過0.5K, 地址仍會映像
到0.5K存儲器, 也就是0.5K+M 將會映像到M. 在復位向量位置加一個NOP指令會導致在地址
000h處重啟動。 ROM結構如圖 5-1所示:
高級模式
一般模式
000H
000H
…
…
Program
Page 0
...
0FDH
0FFH
1FEH
100H
Page 1
IRQ vector
1FEH
1FFH
1FFH
Reset vector
Reset vector
圖 5-1 ROM 結構
tenx technology, inc.
Rev:1.0 Page:5/5
TM58P05
TM58P05 只在高級模式提供中斷請求功能。在該模式下地址 1EEH 保存中斷向量。 用戶可
通過設置 configuration word 進入高級模式。configuration word 位於 800H, 包含振盪選擇, WDT
允許, 編碼保護; 運行類型選擇和電平如圖 5.2 所示:
Bit
1~0
2
3
Symbol
FOSC1~FOSC0
WDTE
CPT
Description
Bit1
Bit0
OSC Type
Resonance Frequency
0
0
0
1
LS (低速)
NS (一般速度)
32~200Khz
1~10Mhz
1
0
HS (高速)
10~20Mhz
1
1
RC
31K ~ 6M Hz
WDTE: Watchdog enable/disable control
1: WDT enable
0: WDT disable
CPT: Code Protection bit
1: OFF
0: ON
TYPE: Select operating mode
4
6~5
TYPE
LV1~LV0
1: Advanced mode
0: General mode
LV1
LV0
Detect voltage
1
0
1
1
Don’t use
1V
1
0
2V
0
0
4V
圖 5-2 Configuration Word
tenx technology, inc.
Rev:1.0 Page:6/6
TM58P05
5 . 2 數據存儲器
數據存儲器是由專用的功能寄存器和通用隨機存儲器組成的。數據存儲器的大小是不固定
的, 它是根據 configure word 的 bit4 來決定的 (一般模式或高級模式)。
在一般模式下, TM58P05提供25個通過bank選擇機制存取數據的通用寄存器。 專用功能寄存
器包含程序計數器, 計時器(TMR 0)寄存器, 狀態寄存器,選擇寄存器(BANK), I/O寄存器。此外
TM58P05有3個輔助寄存器: 間接尋址寄存器(IAR), 選擇寄存器(Select), I/O direction register
(IODIR)。 一般模式的寄存器映像如圖5-3所示:
RAM_General (Type=0 )
Bank0
00h
IAR
01h
TMR0
02h
03h
PC
STATUS
04h
FSR
05h
PORTA
06h
PORTB
General Purpose Register
07 – 0F
9+16=25
General Purpose Register
10 -1F
圖5-3 一般模式寄存器映像
tenx technology, inc.
Rev:1.0 Page:7/7
TM58P05
A. 間接尋址寄存器不是物理寄存器, 而是以間接尋址來選擇寄存器。訪問間接尋址寄存器的
任何指令實際上是映像到所選擇寄存器所指的地址。 因為間接尋址寄存器不是物理線路,
用戶讀取間接尋址寄存器本身(BSR=00H)將總是返回數據00h。寫間接尋址寄存器本身等同
於NOP指令。
B. 選擇寄存器用來控制WDT和TMR0。 在數據存儲器中它不分配一個特定的地址, 而通過選
擇指令只設置控制位, 也就是說, 它是只寫寄存器。累加器的內容將會通過執行選擇指令
被送到選擇寄存器。如果程序未設置選擇寄存器, 默認值是3FH。 如圖5-4所示說明如何設
置選擇寄存器。
位
2~0
3
符號
描述
PS2
PS1
PS0
TMR0 rate
WDT rate
0
0
0
0
0
0
1
1
0
1
0
1
1:2
1:4
1:8
1:16
1:1
1:2
1:4
1:8
1
1
1
1
0
0
1
1
0
1
0
1
1:32
1:64
1:128
1:256
1:16
1:32
1:64
1:128
PS2~PS0
PSA
PSA: 預分頻器分配位
1: 分配到 WDT 的預分頻器
0: 分配到TMR0的預分頻器
EDGE0: TMR0 源信號邊沿控制位
4
5
EDGE0
SUR0
1: 外部時鐘信號從高電平到低電平時, 計時器加1。
0: 外部時鐘信號由低電平到高電平時, 計時器加1。
SUR0: TMR0 時鐘源位
1: 外部時鐘輸入
0: (內部時鐘)/4 或內部指令周期
圖5-4 選擇寄存器
C. I/O控制寄存器與選擇寄存器相似, 也是只寫寄存器。 設置一個I/O口作為輸入, 相應的方
向控制位必須是一, 同樣地零代表輸出。任何方向控制位可用I/O控制寄存器指令作為輸入
或輸出單獨地被編程。如果寄存器不被編程, 所有的I/O口將總保持輸入模式。
tenx technology, inc.
Rev:1.0 Page:8/8
TM58P05
l
程序計數器是11位二進制計數器, 除了在下面的條件下, 每個指令周期, 計數器都加1。
1 call, goto, lcall 與 lgoto: 標記地址放到程序記數器
2.
ret, retla 與 reti: 堆棧最上層的資料彈到程序記數器
當程序計數器到下一頁時自動加1。
為了減少程序的復雜性, 高級模式提供2個指令益於子程序調用和分步處理, 即LCALL,
LGOTO。 LCALL和LGOTO可尋址ROM任何地址, 但不必設定頁選位。 CALL和GOTO的
操作數分別是8位和9位, 因此需要特殊位(即頁選位)尋址整個存儲器。 然而LCALL和
LGOTO有11位易於尋址ROM所有空間的操作數。
l
TMR0 是8位二進制計數器/計時器,該寄存器通過EXT_CLK腳的外部信號邊沿變化或內部
指令周期加1。它具有如下特性:
A. 可讀可寫
B. 2個內部時鐘同步
C. 可通過設置選擇寄存器使用可編程預分頻器, 其他詳細說明在下一章會有具體描
述。
l
狀態寄存器包含頁選位, 超時位, 掉電位和ALU狀態。 值得注意的是TO 和 PD 是受硬件
控制的, 而不會被程序改變。
tenx technology, inc.
Rev:1.0 Page:9/9
TM58P05
位
符號
描述
進位位與借位位:
加指令
0
C
減指令
1: 無借位(Note1)
0: 從MSB借位
1: 從 MSB 進位
0: 無進位
四位元進位位與四位元借位位
1
DC
加指令
1: 從低四位元進位
0: 無低四位元進位
2
3
4
Z
PD
TO
減指令
1: 無低四位元借位
0: 從低四位元借位
0標誌位:
1: 邏輯操作結果是0
0: 邏輯操作結果非0
掉電標誌位: (注2)
1: 上電後或執行CLRWDT指令後, 結果為1
0: 執行SLEEP指令後, 結果為0
溢出標誌位:
1: 上電後或執行CLRWDT或SLEEP指令後, 結果為1
0: WDT 時間溢出時, 結果為0
圖 5-5 狀態寄存器
tenx technology, inc.
Rev:1.0 Page:10/10
TM58P05
注1: 減指令的執行是通過與減數的二進制補碼相加來實現的, C = 1 代表結果是正數。C位與
借位之間的關係如圖5-5-1所示。
B0H-50H
50H-B0H
C B7 B6 B5 B4 B3 B2 B1 B0
+
=
1
C B7 B6 B5 B4 B3 B2 B1 B0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
+
0
1
1
0
0
0
0
0
=
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
圖 5-5-1
注 2: TO 和 PD 位是低有效, 且用來判別復位的不同原因。 圖 5-5-2 舉例說明了不同復位后
TO 和 PD 的值。
復位結果
TO
0
PD
0
從睡眠模式喚醒超時
0
1
從一般模式 WDT 超時
1
1
0
1
上電復位
從睡眠模式 MCLR 復位
不變
不變
從一般模式 MCLR 復位
圖 5-5-2
tenx technology, inc.
Rev:1.0 Page:11/11
TM58P05
bank 選擇寄存器協同間接尋址寄存器間接地尋址數據存儲器。直接尋址必須根據 bank 選擇寄
存器存取 bank0 ~ bank1, 因為在一般模式下只有 5 位地址操作數。 Bank 選擇寄存器的 bit5 被
用來選擇指定的存儲器 bank。 地址 20H~2FH 是不可存取的, 這些地址將映像到 00H~0FH
(Bank0), 地址映像如圖 5-6 所示:
直接尋址模式
FSR
間接尋址模式
FSR
Operand
5 + 4
0
5 4
00
0F
10
20~2F are
unimplemented,
these locations will
mapping to 00~0F
30
Select location
Select location
1F
Select bank
0
Bank0
0
3F
Bank1
1
Select bank
圖 5-6 直接尋址與間接尋址映像
l
Port A~C 是可編程的 I/O 口。 值得注意的是, 即使 I/O 腳是輸出模式, 讀 I/O 指令也總是
讀 I/O 腳,。 復位時所有 I/O 腳都被置成輸入模式, 直到 IO 寄存器被改變。
tenx technology, inc.
Rev:1.0 Page:12/12
TM58P05
在高級模式中提供了中斷請求, 方便叫醒功能和靈活尋址模式。除擴充數據存儲器之外, 還
增加了 3 個支持中斷請求和叫醒功能的寄存器。 這一節將介紹這些增加的控制寄存器和字符
特性。高級模式的數據存儲器映像和尋址映像如圖 5-7 和圖 5-8 所示:
高級模式( T y p e = 1 )
00~1F
20~3F
00h
01h
IAR
TMR0
WAKE_UP
02h
PC
IRQF
03h
STATUS
04h
FSR
05h
PORTA
06h
PORTB
IRQM
Unimplemented
General Purpose
Register
07-0F
17+16=33
General Purpose
Register
General Purpose Register
28-2F
Unimplemented
10-1F
圖 5-7 高級模式數據存儲器映像
直接尋址模式
Operand
5
間接尋址模式
FSR
0
00
07
08
20
21
22
5
0
Unimplemented
u
28
Location select
Select location
1F
3F
圖 5-8 直接尋址和間接尋址映像
tenx technology, inc.
Rev:1.0 Page:13/13
TM58P05
在高級模式, 我們增加了 8 個通用寄存器, 即圖 5-7 中的區域 28~2F。 中斷請求和喚醒控制
寄存器 (WAKE_UP, IRQM, IRQF) 分別被分配到 20, 21, 22。 在一般模式, FSR<5> 是 bank 選擇位,
用來選擇 bank (0=bank0, 1=bank1)。 bank1 的低 16 位映像到 bank0。 在高級模式, TM58P05 允
許 7 位操作數訪問隨機存儲器, 操作數<4:0>可直接尋址 00~3F, 不需要 bank 選擇位, 減少編程
的復雜性。
tenx technology, inc.
Rev:1.0 Page:14/14
TM58P05
l
喚醒控制寄存器(WAKE_UP )被用作設定 watchdog 允許或禁止, 區別外部喚醒信號和中斷
請求。 復位時, 所有位清零。 喚醒寄存器的具體定義如圖 5-9 所示:
位
符號
描述
Watch Dog計時器軟件控制位:
TM58P05有2個WDT控制位(WDTE, WDTS), WDTE是在 configuration word
中由硬件設置的, 而WDTS是在控制寄存器中由軟件設置的。只有當
7
WDTS
WDTE被設置后, WDTS才是有效的, 也就是說, WDTE比WDTS有更高的
優先級。
1: 允許
0: 禁止
喚醒允許位:
6
WUE
0: 不支持外部喚醒
1: 允許外部喚醒功能
外部中斷選擇:
5
EIS
1: 置PA0作外部中斷請求腳
(注3)
0: 置PA0 as a bi-directional I/O pin
4
---A口bit3 ~1上拉:
3~1 PUH3~PUH1
0: 禁止外部喚醒
1: 如果(WUE) & (PUHN) & (在PAN輸入一個下降沿信號), 那麼將從睡
眠狀態喚醒芯片。N可以是3, 2或1, 但必須保持一致。
A口bit0上拉:
0: 禁止外部喚醒和外部中斷
1: 如果(WUE) & (PUH0) & (在PA0輸入一個下降沿信號) , 那麼將從睡
0
PUH0
眠狀態喚醒芯片。 或者如果(EIS) & (PUH0) & (在PA0輸入一個下降
沿信號) , 那麼產生一個中斷請求。.
注: 如果PUH0, WUE , EIS 被置成‘1’, 那麼PA0 被定義成中斷請求輸
入腳。
Figure 5-9 The Scheme of Wake_Up Register
注 3: 中斷請求必須在一般模式下執行。 如果在睡眠狀態出現中斷請求, 那麼直到芯片被外
部喚醒信號喚醒時中斷請求才會執行。其他喚醒方式包含 (1) 上電復位 (2) 外部復位 (3)
WDT 溢出 (允許時)。在上列狀態下, 中斷請求應該被忽略。
tenx technology, inc.
Rev:1.0 Page:15/15
TM58P05
l
中斷屏蔽寄存器和中斷標誌寄存器被用作控制中斷請求處理。TM58P05 支持 TMR0 和外
部中斷, 但不允許中斷嵌套。 中斷屏蔽寄存器和中斷標誌寄存器的具體定義分別如
Fig 5-10 和 Fig 5-11 所示:
位
7
符號
INTM
描述
整體允許位:
INTM比EXINTM和TMR0M有更高的優先級。
1: 允許
0: 禁止
RETI指令將置INTM 為‘1’。
6~3
----
2
EXINTM
1
---TMR0M
外部中斷允許:
1:允許中斷
0: 禁止中斷
外部中斷允許:
1:允許中斷
0: 禁止中斷
圖 5-10 中斷屏蔽寄存器
位
符號
7~3
----
2
EXINTF
1
----
0
TMR0F
描述
外部中斷標誌:
1: 外部接口(PA0) (注 4)產生的外部中斷請求。
外部中斷標誌:
1: TMR0 計數器溢出產生一個中斷請求。
圖 5-11 中斷標誌寄存器
注 4: 中斷標誌都是由硬件設置的, 軟件只能清除標誌。 寫 1 到標誌是無用的。
tenx technology, inc.
Rev:1.0 Page:16/16
TM58P05
6. 功能描述
6.1 T M R 0 和 W a t c h d o g 計時器
圖 6-1 顯示 TMR0/WDT 預分頻器的方框圖。如圖所示, 預分頻器寄存器可以是 TMR0 的預分
頻器或是 WDT 的后分頻器。
Instruction
Cycle
0
SUR0
EDGE0
Ext_CLK
1
WDT Timer
2 To 1 MUX
0
1
1
0
2 To 1 MUX
2 to 1 MUX
PSA
PSA
8-bit prescaler
Synchronize with 2
internal cycles
( T2 and T4 )
8 bit
8 To 1 MUX
PS2 ~PS 0
TMR0 Counter
1
0
2 To 1 MUX
8 bit
PSA
Data bus
WDT time-out
圖 6-1 TMR0/WDT 預分頻器方框圖
tenx technology, inc.
Rev:1.0 Page:17/17
TM58P05
TMR0 是一個 8 位計時器/計數器。TMR0 的時鐘源可以來自指令時鐘或外部時鐘。
A. 選擇指令時鐘, 選擇寄存器的 SUR0 位應該清零。當未使用預分頻器時, TMR0 將會在每
個指令周期加 1。
B.
選擇外部時鐘, 選擇寄存器的 SUR0 位應該置 1。在該模式, TMR0 根據 EDGE0 來決定在外
部時鐘的上升沿或下降沿加 1。 當 TMR0 選擇外部時鐘時, 應當注意外部時鐘將與內部時
鐘進行同步。 TM58P05 通過內部時鐘的 T2 和 T4 采樣來同步外部時鐘。 如果外部脈衝
小於 2 個內部時鐘周期, 那麼脈衝可能會被忽略。 也就是說, 外部時鐘必須至少在 2 個
內部時鐘周期保持穩定狀態。
WDT 計數器是一個 8 位二進制計數器, WDT 時鐘源是由一個獨立的不需要任何外部時鐘的
RC 振盪芯片提供的。 因此即使芯片已進入睡眠狀態 WDT 仍將繼續計數。 若 WDT 超時, 系
統將重啟動並將超時標誌位(狀態寄存器的 bit4) 清 0。 WDT 超時時間會隨溫度, 電源電壓的
變化而變化, 並且可通過設置預分頻器來改變超時時間。 通過設置 PS2~PS0 為“111”, 最大分頻
率可達 1:128。
通過 PSA 位預分頻器可分配到 TMR0 或 WDT。 WDT 或 TMR0 不能同時使用預分頻器。當預
分頻器被分配到 WDT, “CLRWDT”和“SLEEP”指令將會清除預分頻器和 WDT。 當預分頻器被
分配到 TMR0, 任何寫到 TMR0 的指令都會清除預分頻器。
tenx technology, inc.
Rev:1.0 Page:18/18
TM58P05
6.2
復位
當滿足下列任意一個條件TM58P05都可能復位:
(1) 上電
(2) 掉電線路保護, refer to electrical character characteristic.
(3) RESETB/VPP 腳輸入一個負脈衝
(4) WDT 超時復位 (如果允許).
Power On
Power
Power Down
(Low Voltage
Detector)
Oscillator
(RC or Crystal)
Synchronize by
ripple cpunter
RESETB/VPP
Pin
Delay for Setup
Time
WDTE
Reset
WDT
WDT overflow
On-chip RC oscillator
Figure 6-2 Scheme of the Reset Controller
如圖6-2所示, 四個復位條件被列出。 掉電會導致TM58P05復位, 電平是根據configuration
word中的bit6~bit5 定義的。在電壓不足的條件下, 掉電復位可保護芯片。在電氣特性中定義了
掉電的電壓範圍。 此外, 掉電的電壓範圍也受process和溫度變化的影響。一般來說, 我們稱
前兩種復位情況為冷復位。冷復位的時間對於低速晶掁和RC振盪器來說可能太短了, 它們需
要比啟動時間長得多的時間。為了確保系統正常, 掉電復位時間應與系統時鐘同步。上面討
論了power on 比crystal快的影響, 如果power on的速率非常慢,則有可能影響configuration word的
讀取.
注: 啟動時間大約20ms, 啟動時間隨電源電壓, process, 溫度變化而變化。后兩种情況被稱為
熱復位。 不同的復位對寄存器和ram影響也是不同的。TO 和TD 位用來決定復位的類型
(參照figure 5-5-2)。Figure 6-3 列出了不同復位后寄存器和通用ram的值。
tenx technology, inc.
Rev:1.0 Page:19/19
TM58P05
Address
Name
Cold Reset
Warm Reset
N/A
Accumulator
xxxx xxxx
pppp pppp
N/A
IODIR
1111 1111
1111 1111
N/A
Select
1111 1111
1111 1111
00h
IAR
---- ----
---- ----
01h
TMR0
xxxx xxxx
pppp pppp
02h
PC
111 1111 1111
111 1111 1111
03h
STATUS
0001 1xxx
000? ?ppp
04h
BSR
-xxx xxxx
-ppp pppp
05h
PORTA
0000 xxxx
0000 pppp
06h
PORTB
xxxx xxxx
pppp pppp
07h
PORTC
xxxx xxxx
pppp pppp
20h
WAKE_UP
0000 0000
0000 0000
21h
IRQM
0000 0000
0000 0000
22h
IRQF
0000 0000
0000 0000
Xxxx xxxx
Pppp pppp
General Purpose
RAM
1
2
圖 6-3 存儲器初始化值摘要
X: 未知的或無所謂; P: 原來的數值; ? : 依據不同復位條件
tenx technology, inc.
Rev:1.0 Page:20/20
TM58P05
7. Instruction Set
Mnemonic
Instruction
Operands
Code (Advance)
ADDAM M, m
(M)+(acc) → (M)
1
C, DC, Z
10 0101 1MMM MMMM
ADDAM M, a
(M)+(acc) → (acc)
1
C, DC, Z
10 0101 0MMM MMMM
ANDAM M, m
(M).(acc) → (M)
1
Z
10 0100 1MMM MMMM
ANDAM M, a
(M).(acc) → (acc)
1
Z
10 0100 0MMM MMMM
ANDLA I
Literal .(acc) → (acc)
1
Z
11 1001 iiii iiii
BCM M, b0
Clear bit0 of (M)
1
None
00 1100 0MMM MMMM
BCM M, b1
Clear bit1 of (M)
1
None
00 1100 1MMM MMMM
BCM M, b2
Clear bit2 of (M)
1
None
00 1101 0MMM MMMM
BCM M, b3
Clear bit3 of (M)
1
None
00 1101 1MMM MMMM
BCM M, b4
Clear bit4 of (M)
1
None
00 1110 0MMM MMMM
BCM M, b5
Clear bit5 of (M)
1
None
00 1110 1MMM MMMM
BCM M, b6
Clear bit6 of (M)
1
None
00 1111 0MMM MMMM
BCM M, b7
Clear bit7 of (M)
1
None
00 1111 1MMM MMMM
BSM M, b0
Set bit0 of (M)
1
None
00 1000 0MMM MMMM
BSM M, b1
Set bit1 of (M)
1
None
00 1000 1MMM MMMM
BSM M, b2
Set bit2 of (M)
1
None
00 1001 0MMM MMMM
BSM M, b3
Set bit3 of (M)
1
None
00 1001 1MMM MMMM
BSM M, b4
Set bit4 of (M)
1
None
00 1010 0MMM MMMM
BSM M, b5
Set bit5 of (M)
1
None
00 1010 1MMM MMMM
BSM M, b6
Set bit6 of (M)
1
None
00 1011 0MMM MMMM
BSM M, b7
Set bit7 of (M)
1
None
00 1011 1MMM MMMM
BTMSC M, b0
If bit0 of (M) = 0, skip next instruction
1 + (skip)
None
00 0100 0MMM MMMM
BTMSC M, b1
If bit1 of (M) = 0, skip next instruction
1 + (skip)
None
00 0100 1MMM MMMM
BTMSC M, b2
If bit2 of (M) = 0, skip next instruction
1 + (skip)
None
00 0101 0MMM MMMM
BTMSC M, b3
If bit3 of (M) = 0, skip next instruction
1 + (skip)
None
00 0101 1MMM MMMM
BTMSC M, b4
If bit4 of (M) = 0, skip next instruction
1 + (skip)
None
00 0110 0MMM MMMM
BTMSC M, b5
If bit5 of (M) = 0, skip next instruction
1 + (skip)
None
00 0110 1MMM MMMM
BTMSC M, b6
If bit6 of (M) = 0, skip next instruction
1 + (skip)
None
00 0111 0MMM MMMM
tenx technology, inc.
Cycles
Status
Affected
OP-code
Rev:1.0 Page:21/21
TM58P05
BTMSC M, b7
If bit7 of (M) = 0, skip next instruction
1 + (skip)
None
00 0111 1MMM MMMM
BTMSS M, b0
If bit0 of (M) = 1, skip next instruction
1 + (skip)
None
00 0000 0MMM MMMM
BTMSS M, b1
If bit1 of (M) = 1, skip next instruction
1 + (skip)
None
00 0000 1MMM MMMM
BTMSS M, b2
If bit2 of (M) = 1, skip next instruction
1 + (skip)
None
00 0001 0MMM MMMM
BTMSS M, b3
If bit3 of (M) = 1, skip next instruction
1 + (skip)
None
00 0001 1MMM MMMM
BTMSS M, b4
If bit4 of (M) = 1, skip next instruction
1 + (skip)
None
00 0010 0MMM MMMM
BTMSS M, b5
If bit5 of (M) = 1, skip next instruction
1 + (skip)
None
00 0010 1MMM MMMM
BTMSS M, b6
If bit6 of (M) = 1, skip next instruction
1 + (skip)
None
00 0011 0MMM MMMM
BTMSS M, b7
If bit7 of (M) = 1, skip next instruction
1 + (skip)
None
00 0011 1MMM MMMM
CALL I
Call subroutine
2
None
11 0110 iiii iiii
CLRA
Clear accumulator
1
Z
10 0001 0000 0000
CLRM M
Clear memory M
1
Z
10 0001 1MMM MMMM
CLRWDT
Clear watch-dog register
1
TO, PO
10 0000 0000 0001
COMM M, m
~(M) → (M)
1
Z
10 0010 1MMM MMMM
COMM M, a
~(M) → (acc)
1
Z
10 0010 0MMM MMMM
DECM M, m
Decrement M to M
1
Z
10 0110 1MMM MMMM
DECM M, a
(M) - 1 → (acc)
1
Z
10 0110 0MMM MMMM
DECMSZ M, m
(M) - 1 → (M), skip if (M) = 0
1 + (skip)
None
10 0111 1MMM MMMM
DECMSZ M, a
(M) - 1 → (acc), skip if (M) = 0
1 + (skip)
None
10 0111 0MMM MMMM
GOTO I
Goto branch
2
None
11 101i iiii iiii
INCM M, m
(M) + 1 → (M)
1
Z
10 1000 1MMM MMMM
INCM M, a
(M) + 1 → (acc)
1
Z
10 1000 0MMM MMMM
INCMSZ M, m
(M) + 1 → (M), skip if (M) = 0
1 + (skip)
None
10 1001 1MMM MMMM
INCMSZ M, a
(M) + 1 → (acc), skip if (M) = 0
1 + (skip)
None
10 1001 0MMM MMMM
IODIR M
Set i/o direction
1
None
10 0000 0000 0MMM
IORAM M, m
(M) ior (acc) → (M)
1
Z
10 1111 1MMM MMMM
IORAM M, a
(M) ior (acc) → (acc)
1
Z
10 1111 0MMM MMMM
IORLA l
Literal ior (acc) → (acc)
1
Z
11 0011 iiii iiii
tenx technology, inc.
Rev:1.0 Page:22/22
TM58P05
LCALL I
Call subroutine. However, LCALL can
addressing 2K address
2
None
01 0iii iiii iiii
LGOTO I
Go branch to any address
2
None
01 1iii iiii iiii
MOVAM m
Move data form acc to memory
1
None
10 0000 1MMM MMMM
MOVLA l
Move literal to accumulator
1
None
11 0001 iiii iiii
MOVM M, m
(M) → (M)
1
Z
10 0011 1MMM MMMM
MOVM M, a
(M) → (acc)
1
Z
10 0011 0MMM MMMM
NOP
No operation
1
None
10 0000 0000 0000
RET
Return
2
None
11 1111 0111 1111
RETI
Return and enable INTM
2
None
11 1111 1111 1111
RETLA l
Return and move literal to accumulator
2
None
11 1100 iiii iiii
RLM M, m
Rotate left from m to itself
1
C
10 1100 1MMM MMMM
RLM M, a
Rotate left from m to acc
1
C
10 1100 0MMM MMMM
RRM M, m
Rotate right from m to itself
1
C
10 1110 1MMM MMMM
RRM M, a
Rotate right from m to acc
1
C
10 1110 0MMM MMMM
SELECT
Set select register
1
None
10 0000 0000 0010
SLEEP
Enter sleep (saving) mode
1
TO, PO
10 0000 0000 0011
SUBAM M, m
(M)–(acc) → (M)
1
C, DC, Z
10 1010 1MMM MMMM
SUBAM M, a
(M) –(acc) → (acc)
1
C, DC, Z
10 1010 0MMM MMMM
SWAPM M, m
Swap data from m to itself
1
None
10 1101 1MMM MMMM
SWAPM M, a
Swap data from m to acc
1
None
10 1101 0MMM MMMM
XORAM M, m
(M) xor (acc) → (M)
1
Z
10 1011 1MMM MMMM
XORAM M, a
(M) xor (acc) → (acc)
1
Z
10 1011 0MMM MMMM
XORLA l
Literal xor (acc) → (acc)
1
Z
11 1000 iiii iiii
tenx technology, inc.
Rev:1.0 Page:23/23
TM58P05
8. Electrical Characteristics
8.1 Absolute Maximum Ratings
Supply Voltage …. Vss-0.3V to Vss+5.5V Storge Temperature ……. –50 C to 125 C
Input Voltage …… Vss-0.3V to VDD+0.3V Operating Temperature ….–40 C to 85 C
O
O
O
O
8.2 DC Characteristics
Symbol
Test Conditions
Parameter
VDD
VDD
Operating Voltage
Min
Typ
Max
2.5
---
5.5
VDVT
V
V
Low Voltage Detector
5V
Unit
Conditions
4
(Idd = 3uA)
Config bit6.bit5=00
Detect Voltage
V
Low Voltage Detector
3V
2
(Idd = 1.5uA)
Config bit6.bit5=10
VIH
Input High Voltage
5V
VIL
Input Low Voltage
5V
Standby Current
5V
IDD1
IIL
IOH
IOL
Input Leakage
Current
I/O Port Driving
Current
I/O Port Sink
tenx technology, inc.
Current
5V
5V
5V
I/O Port
2
VDD
0.8
I/O Port
LVD disable, WDT disable
1
LVD disable, WDT enable
10
Vin=VDD, VSS
1
Voh=4.5V
9
Voh=4V
17
Voh=3.5V
23
Vol=0.5V
20
Vol=01V
35
Vol=1.5V
50
V
V
uA
uA
mA
mA
Rev:1.0 Page:24/24
TM58P05
8.3 AC Characteristics
Test Conditions
Symbol
Parameter
fsys1
System Clock
fsys1
System Clock
fsys3
System Clock
fsys4
System Clock
Twdt
Trht
Typ
Max
Unit
Conditions
5V
LS Crystal
32
200
3V
mode
32
200
5V
NS Crystal
1
10
3V
mode
1
10
5V
HS Crystal
10
20
Mhz
3V
mode
6
Mhz
5V
3V
Watchdog
5V
Timer
3V
Reset Hold
5V
Time
3V
tenx technology, inc.
Min
VDD
RC mode
Khz
Khz
6
20
20
mS
mS
Rev:1.0 Page:25/25