Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

Similar documents
DPJJX1.DOC

微處理機期末專題

目 录

1 TPIS TPIS 2 2

12232A LED LED LED EL EL CCFL EL CCF

Microsoft Word - ~ doc

W77E58中文手册

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

Microsoft Word - 專題封面.doc

学习MSP430单片机推荐参考书

2 12

untitled

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

目录

单片机学习教程

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

Microsoft Word - P3.doc

Microsoft Word - MSP430 Launchpad 指导书.docx

untitled

Microsoft Word - ISSFA-0237_A_SM39R_series_EEPROM_APN_TC_.doc

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

1

Microsoft Word - ISSFA-0109_B_SM59264_WDT_ APN_TC_.doc

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

專題最終版.doc

PowerPoint 簡報

逢 甲 大 學

JLX

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

从MCS51向AVR的快速转换.PDF

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

单片机原理及应用实验指导书.doc

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

C语言的应用.PDF


() () () () () () () () DDRAM () II

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

穨control.PDF

RS-232C [11-13] 1 1 (PLC) (HMI) Visual Basic (PLC) 402

bingdian001.com

Microsoft Word - ~ doc

untitled

序 文 藝 社 (Society of Chinese Literature) 在 去 年 暑 假 開 始 籌 措 成 立, 二 零 一 三 年 九 月 正 式 展 開 所 有 活 動 文 藝 社 成 立 的 目 的 旨 在 讓 學 生 學 習 欣 賞 歷 代 名 篇 名 作, 其 中 以 古 典

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

µPSD3000 系列

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

車在走天在看 PC前的三輪車日記

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

PIC16F F MPLAB 08 16F LED 15 LED

<4D F736F F D203130B5A5C6ACBBFACAB5D1E9D6B8B5BCCAE92E646F63>

untitled

Visualize CMap

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

??????????????????

7688使用手冊V10.doc

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

untitled

AL-M200 Series

ORG 00BH JMP TIMER0 ORG 100H MOV TMOD,# B MOV IE,# B MOV TH0,#( )/32 MOV TL0,#( ).MOD.32 SETB P2.0 SETB TR0 JMP $ MOV R0,#

EK-STM32F

Microsoft PowerPoint - chap3.ppt

ITU-R P

TX-NR3030_BAS_Cs_ indd

Microsoft PowerPoint - chap5.ppt

(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H:

Chap6.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_15

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

ARM JTAG实时仿真器安装使用指南

第5章:汇编语言程序设计

Microsoft Word - 正文.doc

Microsoft Word - FM12232C.doc

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

<4D F736F F D20CBABC1FA DA3A8BAACB6C1D0B44D31A3A9C4A3BFE9D7CAC1CF B0E62E646F63>

ebook71-13

逢甲大學

CAUTION RISK OF ELECTRIC SHOCK DO NOT OPEN 2

50-FB23-24_BES_V_ z1_ b

电 阻 应 变 式 传 感 器 是 将 被 测 量 的 力, 通 过 它 产 生 的 金 属 弹 性 变 形 转 换 成 电 阻 变 化 的 元 件 由 电 阻 应 变 片 和 测 量 线 路 两 部 分 组 成 电 阻 应 变 片 产 生 的 误 差, 主 要 来 源 于 温 度 的 影 响, 本

CH559指令周期.doc

untitled

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

ICD ICD ICD ICD ICD

instructions.PDF

<4D F736F F F696E74202D204C4544C0B3A5CEBB50C558B0CAA4E8A6A15FC249B4B9ACECA7DE5F56322E707074>

2005.book

c_cpp

2

SDP

座號

untitled

IP-Routing-05.pdf

untitled

Transcription:

自定义下载应用说明 一 适用产品 :SM59XX 系列 SM59D XX 系列 SM59R XX 系列二 应用方式 : 可以让使用者自定义 command 作为进入 ISP 刻录的通关指令, 透过 UART 连接 ISAP 软件做联机更新三 操作说明 ( 使用 SM59D04G2 为例 ): 1. ISAP 操作方式 : 1.1 先将主程序及 ISP 服务程序烧进 MCU 中 1.2 将 MCU 放至系统版上, 与计算机连接并上电 1.3 启动计算机桌面上之 ISAP 应用程序, 并确认版本为 2.X.X ( 此版本开始支持自定义功能 ) 1.4 选择 自定义, 并依据客户主程序所使用的传输速度设定鲍率值, 因范例程序使用 115200bps, 因此需选择 115200bps 1.5 接着将自定义的指令输入至窗口中, 自定义的指令需配合客户主程序中 UART 中断的接收子程序所接受之自定义的指令, 客户可自定义的指令长度最多达 32 个字节, 数据型态为 16 进制 ISSFA-0134 1 Ver. A 2009/08

1.6 按下 自动执行 按钮, 即开始刻录, 刻录完成后在停止键上方会显示 晶片复位完成! ISSFA-0134 2 Ver. A 2009/08

2. 动作流程图 : PC MCU ISAP V2.X.X Initial UART Run customer's main code Send user-defined command Receive data YES NO Enter UART interrupt Check data = userdefined data YES NO Check data number = ncommandlength YES NO NO Receive ACK Send 0x5A YES Fail Start ISP erase, program, protect, reset LJMP ISP address ISSFA-0134 3 Ver. A 2009/08

3. 范例程序 ( 使用 SM59D04G2 为例 ): 3.1 Keil C 程序范例 : Description main.c (Main program) // 此范例应用包括 main.c GoToISP_Low.A51 #include "SM59D04G2.h" #define ncommandlength 32 #define nackcommand 0x5A unsigned char UartCmdCount; unsigned char code CommandArray[nCommandLength]= 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x30, 0x31, 0x32; extern GoToISP_Low(); void delayms(unsigned int mscnt) unsigned int i; while(mscnt--) for(i=0;i<250;i++); void init_uart_timer1(unsigned char BR) SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable receive TMOD = 0x22; //TMOD: timer 1, mode 2, 8-bit reload PCON = 0x80; //SMOD = 1; TH1 = BR; //Baud:57600 fosc=22.1184mhz TR1 = 1 ; //timer 1 run EA = 1; //all interrupt enable ES = 1; //UART enable void init_uart_timer2(unsigned int T2value) RCAP2L = (char)t2value; RCAP2H = (char)(t2value>>8); T2CON = 0x34; SCON = 0x50; EA = 1; //all interrupt enable ES = 1; //UART enable void main(void) init_uart_timer2(0xfffa);//choise Timer 1 or Timer 2 as baud rate generator //init_uart_timer1(0xff); //SyncMOS_GoToISP via UART //TH1 = 0xFF; //12T, 3.579MHz(19200), 11.0592MHz(57600) // 6T, 3.579MHz(38400), 11.0592MHz(115200) ISSFA-0134 4 Ver. A 2009/08

//TH1 = 0xFE; //12T, 14.31818MHz(38400), 22.1184MHz(57600), 14.7456MHz(38400) // 6T, 22.1184MHz(115200) //TH1 = 0xFD; //12T, 4MHz(7200), 8MHz(14400), 8.192MHz(14400), 16MHz(28800) // 6T, 4MHz(14400),8MHz(28800), 8.192MHz(28800), 16MHz(57600) //TH1 = 0xFC; // // 6T, 14.31818MHz(38400), 14.7456MHz(38400) //TH1 = 0xFB; //12T, 18.432MHz(19200) // 6T, 18.432MHz(38400) //TH1 = 0xF7; //12T, 24.576MHz(14400), 25MHz(14400) // 6T, 24.576MHz(28800), 25MHz(28800) //TH1 = 0xF5; //12T, 20MHz(9600) // 6T, 20MHz(19200) //TH1 = 0xF3; //12T, 6MHz(2400), 12MHz(4800), 24MHz(9600) // 6T, 6MHz(4800), 12MHz(9600), 24MHz(19200) while(1) P0 = 0xF0; delayms(300); P0 = 0x0F; delayms(300); // P2 = 0xF0; delayms(300); // P2 = 0x0F; delayms(300); GoToISP_Low. A51 void serial(void) interrupt 4 if(ri) if(sbuf == CommandArray[UartCmdCount]) UartCmdCount++; else UartCmdCount=0; RI = 0 ; if(uartcmdcount==ncommandlength) IE = 0x00; //disabling interrupt SBUF = nackcommand; while(!ti); TI = 0; T2CON = 0x00; //disabling T2 because using T1 baud rate generator in ISP code GoToISP_Low(); //LJMP 3E00H ISP code address else TI=0; ; GoToISP_Low.A51 NAME GoToISP_Low?PR?GoToISP_Low?GOTOISP_LOW SEGMENT CODE PUBLIC GoToISP_Low RSEG?PR?GoToISP_Low?GOTOISP_LOW USING 0 GoToISP_Low: MOV DPTR,#3E00H ;LJMP 3E00H ISP code address ISSFA-0134 5 Ver. A 2009/08

PUSH DPL PUSH DPH RETI END 3.2 汇编程序范例 : Description Main program ncommandlength EQU 32 ;setting command length by user UARTCmdCount EQU 20H T2CON EQU 0C8H RCAP2L EQU 0CAH RCAP2H EQU 0CBH ORG 0000H AJMP ISP_Entry ORG 0023H AJMP UART_INTERRUPT ISP_Entry: ACALL SyncMOS_GoToISP ;initial setting main code start /* LED display demo */ MOV DPTR,#TABLE_01 ;DPTR point to data area START: MOV R0,#0 ; MOV R1,#8 ;8 datas LOOP: MOV A,R0 ;put R0 contect to A MOVC A,@A+DPTR ;use indirect address get data, and put into A MOV P0,A ;put ACC to Port 0 MOV P1,A ;put ACC to Port 1 ACALL DELAY100MS ;delay 0.1 second INC R0 ;R0 point to next data DJNZ R1,LOOP ;if R1!= 0 then jump to LOOP SJMP START ;if R1=0 then jump to START dealy subroutine DELAY100MS: MOV R5,#10 ;Dealy 10x10ms=100ms DELAY10MS: MOV R6,#50 ;delay time 10ms @ 11.0592MHz DELAY01: MOV R7,#99 DJNZ R7,$ ; Inner loop delay DJNZ R6,DELAY01 ; DJNZ R5,DELAY10MS RET TABLE_01: DB 11100111B DB 11000011B DB 10000001B DB 00000000B ISSFA-0134 6 Ver. A 2009/08

DB 10000001B DB 11000011B DB 11100111B DB 11111111B main code End SyncMOS_GoToISP Subroutine SyncMOS_GoToISP: ======UART Timer1 setting============= ;MOV TMOD,#00100001B ;Timer 1 is mode1 is mode 2, Timer 0 is mode 1 ;MOV TH1,#0FFH ;baud rate, 12T, 3.579MHz(19200), 11.0592MHz(57600) ; 6T, 3.579MHz(38400), 11.0592MHz(115200) ;MOV TH1,#0FEH ;baud rate, 12T, 14.31818MHz(38400), 22.1184MHz(57600), 14.7456MHz(38400) ; 6T, 22.1184MHz(115200) ;MOV TH1,#0FDH ;baud rate, 12T, 4MHz(7200), 8MHz(14400), 8.192MHz(14400), 16MHz(28800) ; 6T, 4MHz(14400),8MHz(28800), 8.192MHz(28800), 16MHz(57600) ;MOV TH1,#0FCH ;baud rate, ; 6T, 14.31818MHz(38400), 14.7456MHz(38400) ;MOV TH1,#0FBH ;baud rate, 12T, 18.432MHz(19200) ; 6T, 18.432MHz(38400) ;MOV TH1,#0F7H ;baud rate, 12T, 24.576MHz(14400), 25MHz(14400) ; 6T, 24.576MHz(28800), 25MHz(28800) ;MOV TH1,#0F5H ;baud rate, 12T, 20MHz(9600) ; 6T, 20MHz(19200) ;MOV TH1,#0F3H ;baud rate, 12T, 6MHz(2400), 12MHz(4800), 24MHz(9600) ; 6T, 6MHz(4800), 12MHz(9600), 24MHz(19200) ;SETB TR1 ;enable Timer 1 ;MOV PCON,#10000000B ;set SMOD = 1 ====================================== ======UART Timer2 setting============= ;choise Timer 1 or Timer 2 as baud rate generator MOV RCAP2H,#0FFH MOV RCAP2L,#0FAH MOV T2CON,#34H ====================================== MOV SCON,#01010000B ;serial mode 1, REN=1, TI=0, RI=0 MOV IE,#90H ;enable UART interrupt MOV UARTCmdCount,#00H RET UART_INTERRUPT: JB RI,RX ; if RI=1 jump RX,else clear TI CLR TI RETI RX: CLR RI PUSH ACC ISSFA-0134 7 Ver. A 2009/08

PUSH DPL PUSH DPH MOV A,UARTCmdCount MOV DPTR,#COMMAND_TABLE MOVC A,@A+DPTR CJNE A,SBUF,CLR_UARTCmdCount INC UARTCmdCount MOV A,UARTCmdCount CJNE A,#nCommandLength,RETURN CLR EA MOV SBUF,#5AH ;transmit ack MOV DPTR,#3E00H ;LJMP 3E00H ISP code address PUSH DPL PUSH DPH JNB TI,$ CLR TI MOV T2CON,#00H ;disabling T2 because using T1 baud rate generator in ISP code RETI CLR_UARTCmdCount: MOV UARTCmdCount,#00H RETURN: POP DPH POP DPL POP ACC RETI COMMAND_TABLE: DB 01H,02H,03H,04H,05H,06H,07H,08H ;to define command by user DB 09H,10H,11H,12H,13H,14H,15H,16H DB 17H,18H,19H,20H,21H,22H,23H,24H DB 25H,26H,27H,28H,29H,30H,31H,32H END 备注 : 相关范例程序已附在 ISAP V2.X.X 安装目录下 C:\Program Files\SyncMOS\SyncMOS Writers\ISAP\ OnlineUpdate\User-defined Code Size 为 16KB 以下的 IC( 如 SM59D03G2 SM59D04G2), 其 ISP 服务程序地址在 0x3E00H; Code Size 为 32KB 的 IC( 如 SM59R08A2), 其 ISP 服务程序地址在 0x7E00H;Code Size 为 64KB 以上的 IC( 如 SM59R16A2 SM59264 SM5964 SM5964A SM59128), 其 ISP 服务程序地址在 0xFE00H, 请依使用的 IC 型号修改需跳跃的 ISP 地址 SM59XX 系列与 SM59DXX 系列 ISP 服务程序使用 Timer 1 当鲍率产生器, 因此若客户在主程序中使用 Timer2 作为鲍率产生器, 请必须在跳跃到 ISP 服务程序前将 T2CON 给 00H, 避免 Timer2 占用 UART 串口 ISSFA-0134 8 Ver. A 2009/08

四 鲍率设定参考表 : 1. Timer 1,TH1[7:0] 设定值参考表 : 1.1 仅列出部分频率, 其余频率可至新茂网站下载试算程序 (http://www.syncmos.com.tw/download_file/uart.rar) 1.2 下表中未填入数值部分, 因试算结果误差较大, 传输时较易发生传输错误, 不建议使用 Baud rate (BPS) 11.0592MHz/12T 22.1184MHz/12T 11.0592MHz/6T 115200 FF 57600 FF FE 28.6MHz/12T 28.63636MHz/12T 14.31818MHz/6T 36.81875MHz/12T 36.864MHz/12T 18.432MHz/6T 38400 FD FC FB 28800 FE FC 19200 FD FA F8 F6 14400 FC F8 F3 9600 FA F4 EC 7200 F8 F0 EB E5 4800 F4 E8 E1 D8 2400 E8 D0 C2 B0 1200 D0 A0 84 60 ISSFA-0134 9 Ver. A 2009/08

2. Timer 2,RCAP2[15:0] 设定值参考表 : 2.1 仅列出部分频率, 其余频率可至新茂网站下载试算程序 (http://www.syncmos.com.tw/download_file/uart.rar) 2.2 下表中未填入数值部分, 因试算结果误差较大, 传输时较易发生传输错误, 不建议使用 Baud rate (BPS) 3.579MHz/6T 14.7456MHz/12T 20MHz/12T 32MHz/12T 16MHz/6T 36.864MHz/12T 18.432MHz/6T 115200 FFFE FFFC FFF6 57600 FFFC FFF8 FFF5 FFEF FFEC 38400 FFFA FFF4 FFF0 FFE6 FFE2 28800 FFF8 FFF0 FFEA FFDD FFD8 19200 FFF4 FFE8 FFDF FFCC FFC4 14400 FFF1 FFE0 FFD5 FFBB FFB0 9600 FFE9 FFD0 FFBF FF98 FF88 7200 FFE1 FFC0 FFA9 FF75 FF60 4800 FFD1 FFA0 FF7E FF30 FF10 2400 FFA3 FF40 FEFC FE5F FE20 1200 FF46 FE80 FDF7 FCBF FC40 ISSFA-0134 10 Ver. A 2009/08