SyncMOS MSM9059 使用手册 SyncMOS MSM9059 使用手册 适用微控制器型号:SM59R02A1、SM59R03A1、SM59R04A1、SM59R04A2 内 容 1. 前言 ............................................................................................................................................... 3 2. MSM9059 外观图 ........................................................................................................................... 3 3. ISP 简介 ......................................................................................................................................... 4 4. 使用 ISP 功能之 Configuration 设定 ............................................................................................... 5 5. 进入 ISP 机制说明 ......................................................................................................................... 6 5.1 硬件 ISP ............................................................................................................................... 6 5.2 软件 ISP ............................................................................................................................... 6 6. ICP 简介 ......................................................................................................................................... 8 7. ICP 与 ISP 差异比较表 .............................................................................................................................9 8. 安装 Prolific USB 驱动程序 .......................................................................................................... 10 9. SMAP 设定说明 ............................................................................................................................ 11 10.1 设定烧录器 ....................................................................................................................... 11 10.2 自动更新韧体 .................................................................................................................... 12 10.3 手动更新韧体 .................................................................................................................... 13 10. SMAP 操作接口简介 ................................................................................................................... 15 10.1 烧录模式 ........................................................................................................................... 15 10.2 连接 COM Port ................................................................................................................. 15 10.3 选择烧录档案 .................................................................................................................... 15 10.4 芯片组态 ........................................................................................................................... 16 10.4.1 芯片组态界面 ........................................................................................................... 16 10.4.2 读取组态................................................................................................................... 16 10.4.3 组态选单.................................................................................................................... 17 10.5 烧录选单 ........................................................................................................................... 18 10.6 讯息窗口 ........................................................................................................................... 18 10.7 缓存区............................................................................................................................... 18 11. ISP 烧录教学 .............................................................................................................................. 20 11.1 硬件连接方式 .................................................................................................................... 20 11.2 手动烧录 ........................................................................................................................... 21 11.3 上电烧录 ........................................................................................................................... 21 11.4 自定义下载........................................................................................................................ 23 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 1 Ver. A 2010/03 SyncMOS MSM9059 使用手册 12. ICP 烧录教学 .............................................................................................................................. 30 13. 离线烧录教学 ............................................................................................................................. 31 13.1 离线 ICP ........................................................................................................................... 31 13.2 离线 ISP ........................................................................................................................... 31 13.3 离线 ISP 上电烧录 ............................................................................................................ 32 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 2 Ver. A 2010/03 SyncMOS MSM9059 使用手册 1 前言: 1.1 MSM9059 支持 ICP,使用者将程序烧录至 SM59R04A2 与 SM59R02/03/04A1 系列,使用者不 需要额外烧录 ISP Code 于 IC 上,即可将所要烧录的程序烧录于 IC 中,也可支持 ISP 功能。 1.2 可支持之传输接口:USB。 1.3 可支持 MCU 之烧录电压:5V、3.3V。 2 MSM9059 外观图: Button USB Plug ICP Interface VCC GND N/A OCI_SCL OCI_SDA ISP Interface VCC GND N/A RxD TxD POWER(Red LED) GOOD(Green LED) BUSY(Yellow LED) FAIL(Red LED) Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 3 Ver. A 2010/03 SyncMOS MSM9059 使用手册 3 ISP 简介: ISP(In System Programming),它是一个可在线烧录的功能,何谓可在线烧录,就是使用者不需将 IC 从机器中取下,放在特定的烧录器进行烧录的动作,它可直接透过特定的传输接口,例如 UART,搭配特 定的传输协议即可进行芯片抹除、写入,为一便利的功能。但在执行此功能前须预先将 ISP 韧体程序透过 烧录器烧进芯片内,这样才可以跟 PC 端的应用程序进行连结与沟通,这种方式我们称之为 ISP。下图所示 为 ISP 系统图。 UART COM Port MSM9059 USB Port 使用者程序 Windows 应用程序 {…… 判断执行 ISP(); SMAP …..} ISP 韧体程序 ISP 系统图 新茂提供上图中 Windows 应用程序、ISP 韧体程序的 hex/bin 和原始码供客户使用,以缩短客户开发 时间。为方便开发者使用,新茂公司在 SM59R04A2 与 SM59R02/03/04A1 系列 IC,出厂前已将 ISP 韧体 程序烧入 IC。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 4 Ver. A 2010/03 SyncMOS MSM9059 使用手册 4 使用 ISP 功能之 Configuration 设定: 若 IC 出厂的 ISP code 已经被通用烧录器抹除过,需重新烧录 ISP code 才能正常使用 ISP 功能,请依 照下列步骤烧录 ISP code: 4.1 在 SM59R04A2 与 SM59R02/03/04A1 系列 IC,请使用通用型烧录器设定 N=2。 4.2 依所使用的 IC 型号加载 ISP code,出厂 ISP code 在程序菜单中的 SMAP 路径找到。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 5 Ver. A 2010/03 SyncMOS MSM9059 使用手册 5 进入 ISP 机制说明: 5.1 硬件 ISP:使用 IC 内部的硬件机制,使 PC Counter 可跳跃到 ISP code 执行 ISP 功能。 IC 型号 第一个位置的值 $0000=FFH P3.0 输入两个频率 P2.6/P2.7 = 0 P4.3 = 0 SM59R02A1 SM59R03A1 SM59R04A1 SM59R04A2 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes 各 IC 型号支持硬件 ISP 机制一览表 5.1.1 “第一个位置的值 $0000=FFH”:当 IC 为空片时,PC Counter 可自行跳跃到 ISP code。 5.1.2 “P2.6/P2.7 = 0”:当 Power-on 或 Reset 发生时,若 P2.6 与 P2.7 同时为低电位,PC Counter 可跳跃到 ISP code。 5.1.3 “P4.3 = 0”:当 Power-on 或 Reset 发生时,若 P4.3 为低电位,PC Counter 可跳跃到 ISP code。 因 DIP 无 Port 4,所以必须要 QFP 或 PLCC 封装 IC 才可支持。 5.1.4 “P3.0 输入两个频率”:当 Power-on 或 Reset 发生时,若 P3.0 收到两个频率,PC Counter 可跳跃到 ISP code。 5.2 软件 ISP:以 Keil C 为例,要让使用者程序能够进入 ISP 韧体程序执行,须在 Project 内加入 Gotoisp.a51 档案一起编译,并在使用者程序加入是否执行 ISP 的判断。如下所示: Gotoisp.a51 档案: ; GOTOISP.A51 NAME GOTOISP ?PR?GotoIsp?GOTOISP SEGMENT CODE PUBLIC GotoIsp RSEG ?PR?GotoIsp?GOTOISP USING 0 GotoIsp: LJMP 03E00H ;isp start address END Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 6 Ver. A 2010/03 SyncMOS MSM9059 使用手册 使用者程序: #include <….h> … extern void GoToIsp(void); … void main(void) { if(P4.3 = = 0) { GoToIsp(); } // 使用者须在呼叫此函式先定义 // 是否执行 ISP 的判断,此 Pin 4.3 使用者可自行定义。 … … } 备注: ※ Code Size 为 16KB 以下的 IC(如 SM59D04G2 与 SM59R04A2),其 ISP 地址在 3E00H;Code Size 为 32KB 的 IC(如 SM59R08A2),其 ISP 地址在 7E00H;Code Size 为 64KB 以上的 IC(如 SM5964A、 SM59264),其 ISP 地址在 FE00H,请依使用的 IC 型号修改需跳跃的 ISP 地址。 ※ SM59XX 系列与 SM59DXX 系列 ISP code 使用 Timer 1 当鲍率产生器,因此若客户在主程序中使 用 Timer2 作为鲍率产生器,请必须在跳跃到 ISP code 前将 T2CON 给 00H,避免 Timer2 占用 UART 串口。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 7 Ver. A 2010/03 SyncMOS MSM9059 使用手册 6 ICP 简介: ICP(In Circuit Programming),它是一个可在线烧录的功能,与 ISP 相较,由于 ISP 须预先将 ISP 韧体 程序透过烧录器烧进芯片内,必须占用 IC 的 code size,而 ICP 因内建在芯片硬件架构,不需内含 ISP boot code 即可进行芯片抹除、写入,这种方式我们称之为 ICP。下图所示为 ICP 系统图。 COM Port ICP Interface MSM9059 USB Port Windows 应用程序 SMAP ICP 系统图 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 8 Ver. A 2010/03 SyncMOS MSM9059 使用手册 7 ICP 与 ISP 差异比较表: 上线烧录方式 烧录 IC 组态 IC 加密 界面 备注 优点 ISP 可 可 VCC,GND,RX,TX 1. 需内含 0.5k ISP code 2. 出厂有 ISP code 可透过 MAX232 或 USB-toUART IC 直接与 PC 联机更新 ICP(2-Wires interface) 可 可 VCC, GND,OCI_SCL,OCI_SDA 无 不需内含 ISP code Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 9 Ver. A 2010/03 SyncMOS MSM9059 使用手册 8 安装 Prolific USB 驱动程序: 安装 SMAP 后可在程序菜单中的 SMAP 路径找到 USB 的驱动程序进行安装。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 10 Ver. A 2010/03 SyncMOS MSM9059 使用手册 9 SMAP 设定说明: 9.1 设定烧录器: 9.1.1 首先将 SyncMOS SMAP 安装于您的计算机,安装完成之后在您的桌面会产生一个快捷方 式。 9.1.2 第一次启动 SMAP 时,会跳出设定烧录器窗口,有 MSM9059、MSM9059、MSM9171 可 供选择,请选择 MSM9059,然后按<确定>。 9.1.3 接着跳出 SMAP 主窗口,可在[设定]画面中变更烧录器型号,更新韧体以及改变语言设定。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 11 Ver. A 2010/03 SyncMOS MSM9059 使用手册 9.2 自动更新韧体: 9.2.1 进入[烧录模式]并点选<连接>,若您的 MSM9059 韧体与目前的 SMAP 版本不符,会跳出 窗口请您更新韧体。依照下图流程点选,跳出[更新的方式]窗口时请选<自动>并点选<确定> 键。 9.2.2 选择 FW-9059VXXX.hex,并点选<开启(O)>键,即开始更新。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 12 Ver. A 2010/03 SyncMOS MSM9059 使用手册 9.2.3 讯息窗口会依序显示”扫瞄完成”、”抹除完成!”、”写入完成!”、”保护完成!”、”芯片重置完 成!”、”连接成功!”,即代表完成更新。 9.3 手动更新韧体: 9.3.1 当使用自动更新韧体失败时,也可以使用手动更新方式让韧体能顺利更新。先压住按钮同时 将 MSM9059 插入 USB 插孔,在[设定]页面,COM Port 的设定必须为正确的连接串口,再 按<更新>按钮,会跳出[更新方式]窗口。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 13 Ver. A 2010/03 SyncMOS MSM9059 使用手册 9.3.2 按<确定>后跳出[开启]窗口,选择 FW-9059VXXX.hex,然后按<开启(O)>,即可开始更新 韧体。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 14 Ver. A 2010/03 SyncMOS MSM9059 使用手册 10 SMAP 操作接口简介: 10.1 烧录模式:有在线 ISP、脱机 ISP、在线 ICP 与脱机 ICP 四种模式可供选择。 10.1.1 在线 ISP:MSM9059 需连接 PC,并透过 Rx、Tx 连接 MCU 烧录。需设定晶振频率,请依 照目标板所用的晶振频率设定。 10.1.2 脱机 ISP:可将待烧录的 code 先传到 MSM9059 上,便可不须联机计算机,透过 Rx、Tx 烧录连接 MCU 进行烧录。设定注意事项如同在线 ISP。 10.1.3 在线 ICP:MSM9059 需连接 PC,并透过 OCI_SCL、OCI_SDA 连接 MCU 烧录。 10.1.4 脱机 ICP:可将待烧录的 code 先传到 MSM9059 上,便可不须联机计算机,透过 OCI_SCL、 OCI_SDA 连接 MCU 进行烧录。 10.2 连接 COM Port: 10.2.1 开启 SMAP 会出现 COMx(Prolific USB-to-Serial Comm Port),直接按<连接>即可联机成 功。 10.2.2 当搜寻不到您的 COM Port 时,此时表示您的 USB 不在 COM1~COM32 之间?或 MSM9059 电源未上电?请从 Windows 的装置管理员更改您的 COM Port 于 COM1~COM32,并检查 MSM9059 电源灯是否有亮。 10.3 选择烧录文件: 10.3.1 点按<选择>,会跳出”选择烧录文件”窗口,按<打开>选择您要烧录的文件(XXX.HEX or XXX.BIN)。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 15 Ver. A 2010/03 SyncMOS MSM9059 使用手册 10.3.2 当使用 ICP 模式时如需同时加载 main code 与 ISP code 时,可以同时在”程序”与”ISP”各别 加载。 10.4 硬件配置: 10.4.1 硬件配置界面:选择您要设定的项目,会再烧录时将配置设定一起烧录进 IC 中。 10.4.2 读取组态:选取读取组态图示时,可读出芯片组态设定。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 16 Ver. A 2010/03 SyncMOS MSM9059 使用手册 10.4.3 组态选单: a. 看门狗:可选择<打开>或<关闭>,IC 出厂默认值为<打开>。 b. MCU 速度:可以选择使用内部频率 1~24MHz 或<使用外部频率>,IC 出厂默认值为<使用外 部频率>。 c. 脚位功能:可将 OCI_SCL、ALE、OCI_SDA 与 RESET 定义成 P4.4、P4.5、P4.6 与 P4.7 当 GPIO。可选择<设定>或<取消>,IC 出厂默认值为<设定>。 d. 重置时间:整合 MAX810,可提供使用者设定重置时间。可选择 4~200ms,IC 出厂默认值为 <25ms>。 e. 区块值(N):用来设定 ISP 程序保护区块的大小。可选择<无 ISP 编程>或 N=1~16,IC 出厂默 认值为<N=2 (3E00H)>。 f. ISP 启动机制:有 4 种 ISP 启动机制可供使用者选择,每种机制分别设定使用 MAX810 电源 启动方式或使用 Reset Pad 重置启动,IC 出厂预设皆为开启。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 17 Ver. A 2010/03 SyncMOS MSM9059 使用手册 10.5 烧录选单: 10.5.1 :使用 ISP 模式时,会扫描出适合使用的传输鲍率。 10.5.2 :擦除 IC 的所有数据。 10.5.3 :检查 IC 的资料是否为 0xFF。 10.5.4 :将您加载的烧录档案与所设定的 config 选项烧录到 IC 里。 10.5.5 :确认您所加载的烧录档案与烧录到 IC 的数据是否正确。 10.5.6 :将 IC 的数据加密,使其无法使用读出正确的数据。 10.5.7 :当使用 ISP 时,烧录完成后让 IC 内部自行 Reset。 10.5.8 :勾选您要执行的项目,如<擦除>、<编程>……等。点按<自动执行>则会执 行刚刚所选择的项目。 10.6 讯息窗口: 10.6.1 点选<硬件配置>左边的<讯息>可显示出讯息窗口。 10.6.2 若要清除讯息窗口的信息,按<擦除讯息>即可清除。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 18 Ver. A 2010/03 SyncMOS MSM9059 使用手册 10.7 缓存区: 10.7.1 文件内容:可开启档案缓存区窗口,可查看所加载档案的程序代码。 10.7.2 芯片内容:可开启芯片缓存区窗口,可查看所加载档案的程序代码。 10.7.3 存档:可将缓存区中的资料另存 bin 文件。 10.7.4 更新:更新档案中的程序代码到缓存区窗口中。 10.7.5 更新:读取 IC 中的程序代码到缓存区窗口中。 文件缓存区窗口 芯片缓存区窗口 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 19 Ver. A 2010/03 SyncMOS MSM9059 使用手册 11 ISP 烧录教学: 11.1 硬件连接方式: 11.1.1 当使用 ISP 连目标板时,MSM9059 需透过 Rx、Tx 与目标板联机,请将目标板的 Rx、Tx、 VCC 与 GND 连接至 MSM9059。 VCC GND Rx Tx 11.1.2 ISP 烧录需设定晶振频率,如果连接目标板,请依照目标板所用的晶振频率设定,若列表中 无贵公司所使用的频率,请反应给我们新茂,我们将协助加入 SMAP 支持。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 20 Ver. A 2010/03 SyncMOS MSM9059 使用手册 11.2 手动烧录: 11.2.1 请自行先让 IC 利用硬件 ISP 或软件 ISP 方式进入 ISP 状态。 11.2.2 设定欲烧录的芯片、频率,烧录方式选择<手动烧录>。 11.2.3 选择所需烧录之档案,然后在烧录功能图块中选取要执行之功能,按下<自动执行>即可, 也可以执行单步动作,直接按下所需功能之图块即可。 11.3 上电烧录:只要 Power on 即可重新烧录。SM59R04A2 与 SM59R02/03/04A1 有 P3.0 收两个频 率的 ISP 硬件机制,则跳跃到 ISP code 进行 ISP 烧录。操作步骤如下: (1) 将 MCU 放置于目标板上,先不要上电。 (2) 设定欲烧录的芯片、频率,烧录方式选择<上电烧录>。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 21 Ver. A 2010/03 SyncMOS MSM9059 使用手册 (3) 按下<自动执行>按钮,在停止键上方会显示”侦测中”,此时再将系统板上电,即可开始烧录。 (4) 烧录完成后在停止键上方会显示”芯片复位完成!”。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 22 Ver. A 2010/03 SyncMOS MSM9059 使用手册 11.4 自定义下载:此烧录方式仅适用在目标板烧录,可以让使用者自定义 command 作为进入 ISP 烧 录的通关指令,透过 UART 连接 SMAP 软件做联机更新。 11.4.1 操作步骤: (1) 先将范例程序及 ISP 服务程序烧进 MCU 中。 (2) 将 MCU 放至上,与 MSM9059 连接并上电。 (3) 选择<自定义>,并依据客户主程序所使用的传输速度设定鲍率值,因范例程序使用 115200bps, 因此需选择 115200bps。 (4) 接着将自定义的指令输入至窗口中,自定义的指令需配合客户主程序中 UART 中断的接收子程 序所接受之自定义的指令,客户可自定义的指令长度最多达 32 个字节,数据型态为 16 进制。 (5) 按下”自动执行”按钮,即开始烧录,烧录完成后在停止键上方会显示”芯片复位完成!”。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 23 Ver. A 2010/03 SyncMOS MSM9059 使用手册 11.4.2 动作流程图: PC SMAP MCU Initial UART Run customer’s main code NO Send user-defined command Receive data YES Enter UART interrupt NO Check data = userdefined data YES NO Check data number = nCommandLength YES NO Receive ACK Send 0x5A YES Fail Start ISP erase, program, protect, reset LJMP ISP address Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 24 Ver. A 2010/03 SyncMOS MSM9059 使用手册 11.4.3 范例程序(使用 SM59R04G2 为例): (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) Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 25 Ver. A 2010/03 SyncMOS MSM9059 使用手册 //TH1 = 0xFE; //TH1 = 0xFD; //TH1 = 0xFC; //TH1 = 0xFB; //TH1 = 0xF7; //TH1 = 0xF5; //TH1 = 0xF3; // // while(1) { P0 = 0xF0; P0 = 0x0F; P2 = 0xF0; P2 = 0x0F; } //12T, 14.31818MHz(38400), 22.1184MHz(57600), 14.7456MHz(38400) // 6T, 22.1184MHz(115200) //12T, 4MHz(7200), 8MHz(14400), 8.192MHz(14400), 16MHz(28800) // 6T, 4MHz(14400),8MHz(28800), 8.192MHz(28800), 16MHz(57600) // // 6T, 14.31818MHz(38400), 14.7456MHz(38400) //12T, 18.432MHz(19200) // 6T, 18.432MHz(38400) //12T, 24.576MHz(14400), 25MHz(14400) // 6T, 24.576MHz(28800), 25MHz(28800) //12T, 20MHz(9600) // 6T, 20MHz(19200) //12T, 6MHz(2400), 12MHz(4800), 24MHz(9600) // 6T, 6MHz(4800), 12MHz(9600), 24MHz(19200) delayms(300); delayms(300); delayms(300); 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 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 26 Ver. A 2010/03 SyncMOS MSM9059 使用手册 PUSH DPL PUSH DPH RETI END (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 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 27 Ver. A 2010/03 SyncMOS MSM9059 使用手册 DB DB DB DB DB 00000000B 10000001B 11000011B 11100111B 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 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 28 Ver. A 2010/03 SyncMOS MSM9059 使用手册 PUSH ACC 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 备注: ※ 相关范例程序已附在 SMAP 安装目录下 C:\Program Files\SyncMOS\SyncMOS Writers\SMAP\ OnlineUpdate\User-defined Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 29 Ver. A 2010/03 SyncMOS MSM9059 使用手册 12 ICP 烧录教学: 12.1 MSM9059 需透过 OCI_SCL、OCI_SDA 与目标板联机。请将目标板的 OCI_SCL、OCI_SDA、 VCC 与 GND 连接至 MSM9059。设定好所需的项目,点选<自动执行>,即可使用 ICP 烧录。 VCC GND OCI_SCL OCI_SDA 12.2 当 OCI_SCL、OCI_SDA 与 Reset pin 皆被组态为 GPIO,会影响 ICP 烧录时无法入 ICP mode, 只有 IC 刚 Power on 可进入 ICP mode。在此情况下使用 MSM9059 请依照下列操作步骤: (1) 先将目标板电源关闭,并将目标板的 OCI_SCL、OCI_SDA、VCC 与 GND 连接至 MSM9059。 (2) 按下<自动执行>时会显示”侦测中”。 (3) 这时候再开启目标板电源,烧录完成后会显示完成信息。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 30 Ver. A 2010/03 SyncMOS MSM9059 使用手册 13 离线烧录教学: 13.1 离线 ICP 13.1.1 设定好所需的项目,点选<自动执行>,MSM9059 便会将所需烧录的 code 存至 MSM9059 上的 flash 中,当执行成功后,停止键上方会显示”传送成功!”。 13.1.2 拔掉 USB 线,连接目标板并按下按钮,便可使用离线烧录的功能,烧录过程中黄灯 LED 会 不断闪烁,当黄灯熄灭且绿灯亮时,即代表离线烧录作业完成。若您的 MCU 已把 OCI_SCL 与 OCI_SDA 设定为 GPIO,则必须要用 ICP 上电烧录方式,先接好连接线,目标板再上电 即可开始烧录。 13.2 离线 ISP 13.2.1 设定好所需的项目,点选<自动执行>,MSM9059 便会将所需烧录的 code 存至 MSM9059 上的 flash 中,当执行成功后,停止键上方会显示”传送成功!”。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 31 Ver. A 2010/03 SyncMOS MSM9059 使用手册 13.2.2 拔掉 USB 线,连接目标板并按下按钮,便可使用离线烧录的功能,烧录过程中黄灯 LED 会 不断闪烁,当黄灯熄灭且绿灯亮时,即代表离线烧录作业完成。 13.3 离线 ISP 上电烧录: 13.3.1 烧录方式需设定为”上电烧录”,将欲烧录 main code 以离线 ISP 方式将 code 储存至 MSM9059 中。 13.3.2 先关掉目标板电源,拔掉 USB 线,如同一般 ISP 烧录在 MCU 目标板连接方式连接 Rx,Tx,GND,VCC。 13.3.3 开启电源,便会自动执行离线烧录,烧录过程中黄灯 LED 会不断闪烁,当黄灯熄灭且绿灯 亮时,即代表离线烧录作业完成。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 32 Ver. A 2010/03