封
R01UH0629CJ0120
User's Manual
16
本产品仅在中国大陆和香港以及印度销售
本产品仅在中国大陆及香港地区销售
R7F0C903-908
用户手册 硬件篇
16位单芯片微控制器
本资料所记载的内容,均为本资料发行时的信息,瑞萨电子对于本资料所记载的产品或者
规格可能会作改动,恕不另行通知。
请通过瑞萨电子的主页确认发布的最新信息。
Rev.1.20
2019.06
Notice
Notice
1. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of
semiconductor products and application examples. You are fully responsible for the incorporation or any other use of the circuits,
software, and information in the design of your product or system. Renesas Electronics disclaims any and all liability for any losses and
damages incurred by you or third parties arising from the use of these circuits, software, or information.
2. Renesas Electronics hereby expressly disclaims any warranties against and liability for infringement or any other claims involving patents,
copyrights, or other intellectual property rights of third parties, by or arising from the use of Renesas Electronics products or technical
information described in this document, including but not limited to, the product data, drawings, charts, programs, algorithms, and
application examples.
3. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas
Electronics or others.
4. You shall not alter, modify, copy, or reverse engineer any Renesas Electronics product, whether in whole or in part. Renesas Electronics
disclaims any and all liability for any losses or damages incurred by you or third parties arising from such alteration, modification,
copying or reverse engineering.
5. Renesas Electronics products are classified according to the following two quality grades: “Standard” and “High Quality”. The intended
applications for each Renesas Electronics product depends on the product’s quality grade, as indicated below.
“Standard”:
Computers; office equipment; communications equipment; test and measurement equipment; audio and visual equipment;
home electronic appliances; machine tools; personal electronic equipment; industrial robots; etc.
“High Quality”: Transportation equipment (automobiles, trains, ships, etc.); traffic control (traffic lights); large-scale communication
equipment; key financial terminal systems; safety control equipment; etc.
Unless expressly designated as a high reliability product or a product for harsh environments in a Renesas Electronics data sheet or other
Renesas Electronics document, Renesas Electronics products are not intended or authorized for use in products or systems that may pose a
direct threat to human life or bodily injury (artificial life support devices or systems; surgical implantations; etc.), or may cause serious
property damage (space system; undersea repeaters; nuclear power control systems; aircraft control systems; key plant systems; military
equipment; etc.). Renesas Electronics disclaims any and all liability for any damages or losses incurred by you or any third parties arising
from the use of any Renesas Electronics product that is inconsistent with any Renesas Electronics data sheet, user’s manual or other
Renesas Electronics document.
6. When using Renesas Electronics products, refer to the latest product information (data sheets, user’s manuals, application notes, “General
Notes for Handling and Using Semiconductor Devices” in the reliability handbook, etc.), and ensure that usage conditions are within the
ranges specified by Renesas Electronics with respect to maximum ratings, operating power supply voltage range, heat dissipation
characteristics, installation, etc. Renesas Electronics disclaims any and all liability for any malfunctions, failure or accident arising out of
the use of Renesas Electronics products outside of such specified ranges.
7. Although Renesas Electronics endeavors to improve the quality and reliability of Renesas Electronics products, semiconductor products
have specific characteristics, such as the occurrence of failure at a certain rate and malfunctions under certain use conditions. Unless
designated as a high reliability product or a product for harsh environments in a Renesas Electronics data sheet or other Renesas
Electronics document, Renesas Electronics products are not subject to radiation resistance design. You are responsible for implementing
safety measures to guard against the possibility of bodily injury, injury or damage caused by fire, and/or danger to the public in the event
of a failure or malfunction of Renesas Electronics products, such as safety design for hardware and software, including but not limited to
redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other appropriate measures.
Because the evaluation of microcomputer software alone is very difficult and impractical, you are responsible for evaluating the safety of
the final products or systems manufactured by you.
8. Please contact a Renesas Electronics sales office for details as to environmental matters such as the environmental compatibility of each
Renesas Electronics product. You are responsible for carefully and sufficiently investigating applicable laws and regulations that regulate
the inclusion or use of controlled substances, including without limitation, the EU RoHS Directive, and using Renesas Electronics
products in compliance with all these applicable laws and regulations. Renesas Electronics disclaims any and all liability for damages or
losses occurring as a result of your noncompliance with applicable laws and regulations.
9. Renesas Electronics products and technologies shall not be used for or incorporated into any products or systems whose manufacture, use,
or sale is prohibited under any applicable domestic or foreign laws or regulations. You shall comply with any applicable export control
laws and regulations promulgated and administered by the governments of any countries asserting jurisdiction over the parties or
transactions.
10. It is the responsibility of the buyer or distributor of Renesas Electronics products, or any other party who distributes, disposes of, or
otherwise sells or transfers the product to a third party, to notify such third party in advance of the contents and conditions set forth in this
document.
11. This document shall not be reprinted, reproduced or duplicated in any form, in whole or in part, without prior written consent of Renesas
Electronics.
12. Please contact a Renesas Electronics sales office if you have any questions regarding the information contained in this document or
Renesas Electronics products.
(Note 1) “Renesas Electronics” as used in this document means Renesas Electronics Corporation and also includes its directly or indirectly
controlled subsidiaries.
(Note 2) “Renesas Electronics product(s)” means any product developed or manufactured by or for Renesas Electronics.
(Rev.4.0-1
November 2017)
ԕлĀ⌘һ亩āѪӾ㤡䈝は㘫䈁Ⲵѝ᮷䈁᮷ˈӵѪ৲㘳䈁᮷ˈ㤡᮷⡸ⲴĀ1RWLFHāާᴹ↓ᔿ᭸࣋DŽ
⌘һ亩
1.
ᵜ᮷ẓѝᡰ䇠䖭ⲴޣҾ⭥䐟ǃ䖟Ԧ઼ަԆؑޣӵ⭘Ҿ䈤᰾ॺሬփӗ૱Ⲵ઼ᓄ⭘ᇎֻDŽ⭘ᡧྲ൘ӗ૱ᡆ㌫㔏䇮
䇑ѝᓄ⭘ᵜ᮷ẓѝⲴ⭥䐟ǃ䖟Ԧ઼ؑޣᡆሶ↔ㅹᇩ⭘ҾަԆⴞⲴᰦˈ䈧㠚㹼䍏䍓DŽሩҾ⭘ᡧᡆㅜйᯩഐ֯⭘к
䘠⭥䐟ǃ䖟Ԧᡆؑ㘼䚝ਇⲴԫօᦏཡ઼ᦏᇣˈ⪎㩘⭥ᆀᾲнᣵԫօ䍓ԫDŽ
2.
⪎㩘⭥ᆀ൘↔᰾⺞༠᰾ˈሩҾഐ֯⭘⪎㩘⭥ᆀӗ૱ᡆᵜ᮷ẓѝᡰ䘠ᢰᵟؑ˄वᤜնн䲀Ҿӗ૱ᮠᦞǃമǃ㺘ǃ〻
ᒿǃ㇇⌅ǃᓄ⭘ᇎֻ˅㘼䙐ᡀⲴоㅜйᯩу࡙ǃ⡸ᵳᡆަԆ⸕䇶ӗᵳץⲴޣᵳᡆԫօަԆ㍒䎄ˈ⪎㩘⭥ᆀнԫօ
؍䇱ᒦᾲнᣵ䍓ԫDŽ
3.
ᵜ᮷ẓᡰ䇠䖭Ⲵᇩнᓄ㿶Ѫሩ⪎㩘⭥ᆀᡆަԆӪᡰᴹⲴу࡙ǃ⡸ᵳᡆަԆ⸕䇶ӗᵳࠪԫօ᰾⽪ǃ唈⽪ᡆަᆳᯩᔿ
Ⲵ䇨ਟ৺ᦸᵳDŽ
4.
⭘ᡧнᗇሩ⪎㩘⭥ᆀⲴԫօӗ૱䘋㹼ޘ䜘ᡆ䜘࠶ᴤ᭩ǃ؞᭩ǃ༽ࡦᡆ৽ੁᐕ〻DŽሩҾ⭘ᡧᡆㅜйᯩഐк䘠ᴤ᭩ǃ؞
᭩ǃ༽ࡦᡆሩ⪎㩘⭥ᆀӗ૱䘋㹼৽ੁᐕ〻Ⲵ㹼Ѫ㘼䚝ਇⲴԫօᦏཡᡆᦏᇣˈ⪎㩘⭥ᆀᾲнᣵԫօ䍓ԫDŽ
5.
⪎㩘⭥ᆀӗ૱ṩᦞަ䍘䟿ㅹ㓗࠶Ѫєњㅹ㓗˖Āḷ߶ㅹ㓗ā઼Ā儈䍘䟿ㅹ㓗āDŽ ⇿⪎㩘⭥ᆀӗ૱Ⲵ亴ᵏ⭘䙄൷ਆߣ
Ҿӗ૱Ⲵ䍘䟿ㅹ㓗ˈྲлᡰ⽪˖
ḷ߶ㅹ㓗˖
䇑㇇ᵪǃ࣎ޜ䇮༷ǃ䙊䇟䇮༷ǃ⍻䈅઼⍻䟿䇮༷ǃ㿶ੜ䇮༷ǃᇦ⭘⭥ಘǃᵪỠᐕާǃњӪ⭥ᆀ䇮༷ǃᐕ
ъᵪಘӪㅹDŽ
儈䍘䟿ㅹ㓗˖ 䘀䗃䇮༷˄⊭䖖ǃ⚛䖖ǃ䖞㡩ㅹ˅ǃӔ䙊᧗ࡦ㌫㔏˄Ӕ䙊ؑਧ⚟˅ǃབྷර䙊䇟䇮༷ǃޣ䭞䠁㶽㓸ㄟ㌫
㔏ǃᆹࡦ᧗ޘ䇮༷ㅹDŽ
䲔䶎ᱟ⪎㩘⭥ᆀᮠᦞ㺘ᡆަԆ⪎㩘⭥ᆀ᮷ẓѝ᰾⺞ᤷᇊѪ儈ਟ䶐ᙗӗ૱ᡆ⭘Ҿᚦ࣓⧟ຳⲴӗ૱ˈࡉ⪎㩘⭥ᆀӗ૱н
㜭⭘ҾǃӖᵚᦸᵳ⭘Ҿਟ㜭ሩӪ㊫⭏ભ䙐ᡀⴤ᧕ေ㛱Ⲵӗ૱ᡆ㌫㔏৺ਟ㜭䙐ᡀӪ䓛ՔᇣⲴӗ૱ᡆ㌫㔏˄Ӫᐕ⭏ભ㔤ᤱ
㻵㖞ᡆ㌫㔏ǃἽҾփⲴ㻵㖞ㅹ˅ѝˈᡆ㘵ਟ㜭䙐ᡀ䟽བྷ䍒ӗᦏཡⲴӗ૱ᡆ㌫㔏˄ཚオ㌫㔏ǃ⎧ᓅ໎丣ᵪǃṨ㜭᧗
ࡦ㌫㔏ǃ伎ᵪ᧗ࡦ㌫㔏ǃޣ䭞㻵㖞㌫㔏ǃߋ⭘䇮༷ㅹ˅ѝDŽሩҾ⭘ᡧᡆԫօㅜйᯩഐ֯⭘нㅖਸ⪎㩘⭥ᆀᮠᦞ㺘ǃ֯
⭘䈤᰾ҖᡆަԆ⪎㩘⭥ᆀ᮷ẓⲴ⪎㩘⭥ᆀӗ૱㘼䚝ਇⲴԫօᦏᇣᡆᦏཡˈ⪎㩘⭥ᆀᾲнᣵԫօ䍓ԫDŽ
6.
֯⭘⪎㩘⭥ᆀӗ૱ᰦˈ䈧৲䰵ᴰᯠӗ૱ؑ˄ᮠᦞ㺘ǃ֯⭘䈤᰾Җǃᓄ⭘ᤷইǃਟ䶐ᙗѝⲴĀॺሬփݳԦ༴⨶઼
֯⭘а㡜⌘һ亩āㅹ˅ˈᒦ⺞⭘֯؍ᶑԦ൘⪎㩘⭥ᆀᤷᇊⲴᴰབྷ仍ᇊ٬ǃ⭥Ⓚᐕ⭥㤳തǃᮓ✝⢩ᙗǃᆹ㻵ᶑԦ
ㅹ㤳ത֯⭘DŽሩҾ൘к䘠ᤷᇊ㤳തѻཆ֯⭘⪎㩘⭥ᆀӗ૱㘼ӗ⭏Ⲵԫօ᭵䳌ǃཡ᭸ᡆһ᭵ˈ⪎㩘⭥ᆀᾲнᣵԫօ
䍓ԫDŽ
7.
㲭❦⪎㩘⭥ᆀаⴤ㠤࣋Ҿᨀ儈⪎㩘⭥ᆀӗ૱Ⲵ䍘䟿઼ਟ䶐ᙗˈնᱟˈॺሬփӗ૱ᴹަ㠚䓛Ⲵާփ⢩ᙗˈྲаᇊⲴ᭵䳌
ਁ⭏⦷ԕ৺൘ḀӋ֯⭘ᶑԦлՊਁ⭏᭵䳌ㅹDŽ䲔䶎ᱟ⪎㩘⭥ᆀᮠᦞ㺘ᡆަԆ⪎㩘⭥ᆀ᮷ẓѝᤷᇊѪ儈ਟ䶐ᙗӗ૱ᡆ⭘
Ҿᚦ࣓⧟ຳⲴӗ૱ˈࡉ⪎㩘⭥ᆀӗ૱ᵚ䘋㹼䱢䗀ሴ䇮䇑DŽ⭘ᡧ䍏䍓ᢗ㹼ᆹ؍ޘᣔ᧚ᯭˈԕ䚯ݽഐ⪎㩘⭥ᆀӗ૱ཡ᭸
ᡆਁ⭏᭵䳌㘼䙐ᡀ䓛փՔᇣǃ⚛⚮ሬ㠤Քᇣᡆᦏᇣ઼ᡆަԆሩޜՇᶴᡀড䲙Ⲵһ᭵DŽֻྲ䘋㹼䖟⺜Ԧᆹޘ䇮䇑˄वᤜ
նн䲀Ҿ߇։䇮䇑ǃ䱢⚛᧗ࡦԕ৺᭵䳌亴䱢ㅹ˅ǃ䘲ᖃⲴ㘱ॆ༴⨶ᡆަԆ䘲ᖃⲴ᧚ᯭㅹDŽ⭡Ҿሩᗞᵪ䖟Ԧঅ⤜䘋㹼䇴
ՠ䶎ᑨഠ䳮фнᇎ䱵ˈᡰԕ䈧⭘ᡧ㠚㹼䍏䍓ሩᴰ㓸ӗ૱ᡆ㌫㔏䘋㹼ᆹޘ䇴ՠDŽ
8.
ޣҾ⧟ຳ؍ᣔᯩ䶒Ⲵ䈖㓶ᇩˈֻྲ⇿⪎㩘⭥ᆀӗ૱Ⲵ⧟ຳެᇩᙗㅹˈ䈧о⪎㩘⭥ᆀⲴ㩕ъ䜘䰘㚄㌫DŽ⭘ᡧ䍏䍓Ԅ
㓶ᒦ࠶ݵḕ䰵ሩ㇑ࡦ⢙䍘Ⲵ֯⭘ᡆਜ਼䟿䘋㹼㇑⨶Ⲵᡰᴹ䘲⭘⌅ᖻ⌅㿴˄वᤜնн䲀Ҿlj⅗ⴏ 5R+6 ᤷԔNJ˅ˈᒦ൘֯⭘
⪎㩘⭥ᆀӗ૱ᰦ䚥ᆸᡰᴹ䘲⭘⌅ᖻ⌅㿴DŽሩҾഐ⭘ᡧᵚ䚥ᆸᓄ⌅ᖻ⌅㿴㘼ሬ㠤Ⲵᦏᇣᡆᦏཡˈ⪎㩘⭥ᆀᾲнᣵԫ
օ䍓ԫDŽ
9.
нਟሶ⪎㩘⭥ᆀӗ૱઼ᢰᵟ⭘Ҿᡆ㘵፼ޕᰕᵜഭᡆ⎧ཆᓄⲴ⌅ᖻ⌅㿴ᡰ⾱→⭏ӗǃ֯⭘৺䬰Ⲵԫօӗ૱ᡆ㌫㔏
ѝDŽҏнਟሶ⪎㩘⭥ᆀӗ૱ᡆᢰᵟ⭘Ҿ(1)оབྷ㿴⁑ᵰՔᙗ↖ಘ˄ֻྲṨ↖ಘǃॆᆖ↖ಘǃ⭏⢙↖ಘᡆ䘀䘱↔ㅹ↖ಘⲴ
ሬᕩˈवᤜᰐӪᵪ(UAV)˅Ⲵᔰਁǃ䇮䇑ǃࡦ䙐ǃ֯⭘ǃᆈۘㅹⲴޣԫօⴞⲴ˗(2)оᑨ㿴↖ಘⲴᔰਁǃ䇮䇑ǃࡦ䙐
ᡆ֯⭘ⲴޣԫօⴞⲴ˗(3)ᢠҡഭ䱵઼ᒣоᆹⲴޘԫօަԆⴞⲴˈᒦфнਟੁԫօㅜйᯩ䬰ǃࠪਓǃ』䍱ǃ䖜䇙ǃ
ᡆ䇙о⪎㩘⭥ᆀӗ૱ᡆᢰᵟˈᰐ䇪ⴤ᧕ᡆ䰤᧕⸕ᚹᡆ㘵ᴹ⨶⭡⸕ᚹ䈕ㅜйᯩᡆԫօަԆᯩሶӾһк䘠⍫ࣘDŽ⭘ᡧᗵ享
䚥ᆸሩᯩᡆӔ᱃㹼֯ਨ⌅㇑䗆ᵳⲴԫഭᇦൠ४᭯ᓌᡰޜᐳ઼㇑⨶Ⲵԫօ䘲⭘ࠪਓ㇑ࡦ⌅ᖻ⌅㿴DŽ
⪎㩘⭥ᆀӗ૱ⲴҠᯩᡆ࠶䬰୶ˈᡆ㘵࠶䬰ǃ༴㖞ӗ૱ǃᡆԕަԆᯩᔿੁㅜйᯩࠪᡆ䖜䇙ӗ૱ⲴԫօަԆᯩᴹ䍓ԫһ
ੁݸᡰ䘠ㅜйᯩ䙊⸕ᵜ᮷ẓ㿴ᇊⲴᇩ઼ᶑԦDŽ
൘һݸᵚᗇࡠ⪎㩘⭥ᆀҖ䶒䇔ਟⲴᛵߥлˈнᗇԕԫօᖒᔿ䜘࠶ᡆޘ䜘⡸ǃ䖜䖭ᡆ༽ࡦᵜ᮷ẓDŽ
ྲ᷌ሩᵜ᮷ẓᡰ䇠䖭Ⲵؑᡆ⪎㩘⭥ᆀӗ૱ᴹԫօ⯁䰞ˈ䈧ੁ⪎㩘⭥ᆀⲴ㩕ъ䜘䰘䈒DŽ
˄⌘ 1˅ ⪎㩘⭥ᆀ˖൘ᵜ᮷ẓѝᤷ⪎㩘⭥ᆀṚᔿՊ⽮৺ަ᧗㛑ᆀޜਨDŽ
˄⌘ 2˅ ⪎㩘⭥ᆀӗ૱˖ᤷ⪎㩘⭥ᆀᔰਁᡆ⭏ӗⲴԫօӗ૱DŽ
˄⡸ᵜ 4.0-1 2017 ᒤ 11 ᴸ˅
关于 CMOS 器件的注意事项
关于 CMOS 器件的注意事项
①
输入引脚处的施加电压波形
输入噪声或由反射波引起的波形失真可能导致故障发生。如果由于噪声等影响,使 CMOS 器件的输
入电压范围处于在 VIL (MAX)和 VIH (MIN)之间,器件可能发生故障。在输入电平固定时以及
输入电平从 VIL (MAX)到 VIH (MIN)的过渡期间,要谨防颤振噪声进入器件。
②
未使用的输入引脚的处理
CMOS 器件上未连接的输入端可能是故障源。如果一个输入引脚未被连接,则由于噪声等原因可能
会产生内部输入电平,从而导致故障。 CMOS 器件的工作方式与双极性或 NMOS 器件不同。 CMOS
器件的输入电平必须借助上拉或下拉电路固定于高电平或低电平。每一个未使用引脚只要有可能成
为输出引脚时,都应该通过附加电阻连接到VDD 或 GND。对未使用引脚的处理因器件而不同,必
须遵循与器件相关的规格和说明。
③
ESD 防护措施
如果 MOS 器件周围有强电场,将会击穿氧化栅极,降低器件的工作性能。因此必须采取措施,尽
可能防止静电产生。一旦有静电,必须立即释放。环境必须控制适当。如果空气干燥,应当使用加
湿器。建议避免使用容易产生静电的绝缘体。半导体器件的存放和运输必须使用抗静电容器、静电
屏蔽袋或导电材料包装。所有包括工作台和工作面的测试和测量工具必须良好接地。操作员应当佩
戴手腕带以保证良好接地。不能用手直接接触半导体器件。对装配有半导体器件的 PW板也应采取
类似的静电防范措施。
④
初始化之前的状态
上电并不一定定义 MOS 器件的初始状态。刚接通电源时,具有复位功能的 MOS 器件并没有被初始
化。因此上电不能保证输出引脚的电平、输入 / 输出设置和寄存器的内容。器件在收到复位信号后
才进行初始化。具有复位功能的器件在上电后必须立即进行复位操作。
⑤
电源上电 / 断电序列
器件内部工作和外部接口使用不同电源的情况下,原则上应先在接通内部电源之后再接通外部电
源。当关闭电源时,原则上先关闭外部电源再关闭内部电源。如果电源开关顺序相反,可能会对器
件的内部元件施加电压,从而由于异常电流的流过而造成故障和降低元件的性能。
须视具体器件和支配器件的相关规格来单独决定正确的上电 / 断电序列。
⑥
断电状态期间的信号输入
不要在器件断电时输入信号或输入 / 输出上拉电源。因为输入信号或提供输入/ 输出上拉电源将引起
电流注入,从而引起器件的误操作,并且此时流过器件的异常电流引起内部元件性能劣化。
须视具体器件和支配器件的相关规格来单独决定断电状态期间的信号输入。
本手册的使用方法
对 象
本手册以理解 R7F0C903-908 的功能并且设计和开发其应用系统和程序的用户工程师为对象。
对象产品如下:
•
32 引脚:R7F0C903
R7F0C904
R7F0C905
R7F0C906
R7F0C907
R7F0C908
目 的
本手册以帮助用户理解下述结构中所示的功能为目的。
构 成
R7F0C903-908 的用户手册分为用户手册硬件篇(本手册)和用户手册软件篇(RL78 族通用)共 2 本。
R7F0C903-908
RL78 族
用户手册 硬件篇
用户手册 软件篇
• 引脚功能
• 内部块功能
• 中断
• 其他的内部外围功能
• 电特性
阅读方法
• CPU 功能
• 指令集
• 指令的说明
阅读本手册的读者应具备电气、逻辑电路以及微控制器的基础知识。
□ 要理解全部功能时
→ 请按照目录的顺序阅读本手册。
□ 寄存器格式的阅读方法
→ 关于方框 (□)内的位号,其位名称在汇编程序中被定义为保留字,而在编译程序中被
#pragma sfr 指令定义为 sfr 变量。
□ 要详细了解 R7F0C903-908 微控制器的指令功能时
→ 请参照另一本手册 《RL78 Family User’s Manual: Software》(R01US0015E)。
凡 例
数据表示法:
有效低电平表示法:
注:
注意:
备注:
数制表示法:
左侧为高位,右侧为低位。
xxx (在引脚或者信号名称上标注上划线)
正文中加 “ 注 ” 的说明
需要留心阅读的内容
正文的补充说明
二进制 ...... XXXX 或者 XXXXB
十进制 ...... XXXX
十六进制 ...... XXXXH
相关资料
相关资料中可能包括暂定版。但是,在以下资料中并未特别注明 “ 暂定版 ”,请谅解。
产品的相关资料
资料名称
资料号
R7F0C903-908 用户手册 硬件篇
本手册
RL78 Family User’s Manual: Software
R01US0015E
闪存编程器的相关资料 (用户手册)
资料名称
PG-FP5 Flash Memory Programmer User’s Manual
资料号
R20UT0008E
其他资料
资料名称
资料号
Renesas MPUs & MCUs RL78 Family
R01CP0003E
Semiconductor Package Mount Manual
R50ZZ0003E
Semiconductor Reliability Handbook
R51ZZ0001E
注意
上述相关资料的内容如有变更,恕不另行通知。设计等时请使用最新版本的资料。
所有商标及注册商标分别归属于其所有者。
本用户手册仅为参考译文,对应的日文版和英文版具有正式效力。
EEPROM 是瑞萨电子株式会社的注册商标。
SuperFlash 是美国 Silicon Storage Technology,Inc. 在美国以及日本等国的注册商标。
注意:本产品使用已获得 Silicon Storage Technology,Inc. 授权的 SuperFlash®。
目 录
第1章
1.1
1.2
1.3
1.4
1.5
1.6
概述 .................................................................................................................................................. 1
特点 ...................................................................................................................................................................... 1
产品型号一览表 .................................................................................................................................................. 3
引脚连接图 (俯视图)...................................................................................................................................... 4
引脚名 .................................................................................................................................................................. 5
框图 ...................................................................................................................................................................... 6
功能概要 .............................................................................................................................................................. 7
第 2 章 引脚功能 .......................................................................................................................................... 9
2.1
端口功能 .............................................................................................................................................................. 9
2.1.1
32 引脚产品 ............................................................................................................................................... 9
2.2
端口以外的功能 ................................................................................................................................................ 11
2.2.1
各产品配置的功能 .................................................................................................................................. 11
2.2.2
功能说明 .................................................................................................................................................. 13
2.3
未使用引脚的处理 ............................................................................................................................................ 15
2.4
引脚框图 ............................................................................................................................................................ 16
第 3 章 CPU 体系结构 ................................................................................................................................ 27
3.1
存储空间 ............................................................................................................................................................ 27
3.1.1
内部程序存储空间 .................................................................................................................................. 32
3.1.2
镜像区 ...................................................................................................................................................... 35
3.1.3
内部数据存储空间 .................................................................................................................................. 36
3.1.4
特殊功能寄存器 (SFR:Special Function Register)的区域 ............................................................ 36
3.1.5
扩展特殊功能寄存器 (2nd SFR:2nd Special Function Register)的区域 ...................................... 36
3.1.6
数据存储器的寻址 .................................................................................................................................. 37
3.2
处理器的寄存器 ................................................................................................................................................ 38
3.2.1
控制寄存器 .............................................................................................................................................. 38
3.2.2
通用寄存器 .............................................................................................................................................. 40
3.2.3
ES 寄存器和 CS 寄存器 ......................................................................................................................... 41
3.2.4
特殊功能寄存器 (SFR:Special Function Register) ......................................................................... 42
3.2.5
扩展特殊功能寄存器 (2nd SFR:2nd Special Function Register) ................................................... 47
3.3
指令地址的寻址 ................................................................................................................................................ 53
3.3.1
相对寻址 .................................................................................................................................................. 53
3.3.2
立即寻址 .................................................................................................................................................. 53
3.3.3
表间接寻址 .............................................................................................................................................. 54
3.3.4
寄存器直接寻址 ...................................................................................................................................... 54
3.4
处理数据地址的寻址 ........................................................................................................................................ 55
3.4.1
隐含寻址 .................................................................................................................................................. 55
3.4.2
寄存器寻址 .............................................................................................................................................. 55
3.4.3
直接寻址 .................................................................................................................................................. 56
3.4.4
短直接寻址 .............................................................................................................................................. 57
3.4.5
SFR 寻址 .................................................................................................................................................. 58
3.4.6
寄存器间接寻址 ...................................................................................................................................... 59
3.4.7
基址寻址 .................................................................................................................................................. 60
3.4.8
基址变址寻址 .......................................................................................................................................... 64
3.4.9
堆栈寻址 .................................................................................................................................................. 65
第 4 章 端口功能 ........................................................................................................................................ 69
4.1
端口功能 ............................................................................................................................................................ 69
目录 - 1
4.2
端口结构 ............................................................................................................................................................ 69
4.2.1
端口 0 ....................................................................................................................................................... 69
4.2.2
端口 1 ....................................................................................................................................................... 70
4.2.3
端口 2 ....................................................................................................................................................... 70
4.2.4
端口 3 ....................................................................................................................................................... 70
4.2.5
端口 4 ....................................................................................................................................................... 71
4.2.6
端口 5 ....................................................................................................................................................... 71
4.2.7
端口 6 ....................................................................................................................................................... 71
4.2.8
端口 7 ....................................................................................................................................................... 71
4.2.9
端口 12 ..................................................................................................................................................... 71
4.2.10
端口 13 ..................................................................................................................................................... 71
4.2.11
端口 14 ..................................................................................................................................................... 72
4.3
控制端口功能的寄存器 .................................................................................................................................... 73
4.3.1
端口模式寄存器 (PMxx) .................................................................................................................... 74
4.3.2
端口寄存器 (Pxx) ................................................................................................................................ 75
4.3.3
上拉电阻选择寄存器 (PUxx) ............................................................................................................. 76
4.3.4
端口输入模式寄存器 (PIMxx) ........................................................................................................... 77
4.3.5
端口输出模式寄存器 (POMxx) ......................................................................................................... 77
4.3.6
端口模式控制寄存器 (PMCxx) ......................................................................................................... 78
4.3.7
A/D 端口配置寄存器 (ADPC) ........................................................................................................... 79
4.3.8
外围 I/O 重定向寄存器 (PIOR) ......................................................................................................... 80
4.4
端口功能的运行 ................................................................................................................................................ 81
4.4.1
输入 / 输出端口的写操作 ....................................................................................................................... 81
4.4.2
输入 / 输出端口的读操作 ....................................................................................................................... 81
4.4.3
输入 / 输出端口的运算 ........................................................................................................................... 81
4.4.4
通过输入 / 输出缓冲器进行的不同电位 (1.8V、 2.5V、 3V)的对应 ........................................... 82
4.5
使用复用功能时的寄存器设定 ........................................................................................................................ 84
4.5.1
使用复用功能时的基本思想 .................................................................................................................. 84
4.5.2
不使用输出功能的复用功能的寄存器设定 .......................................................................................... 85
4.5.3
使用的端口功能和复用功能的寄存器设定例子 .................................................................................. 86
4.6
使用端口功能时的注意事项 ............................................................................................................................ 91
4.6.1
有关对端口寄存器 n (Pn)的位存储器操作指令的注意事项 .......................................................... 91
4.6.2
有关引脚设定的注意事项 ...................................................................................................................... 92
第 5 章 时钟发生电路 ................................................................................................................................. 93
5.1
时钟发生电路的功能 ........................................................................................................................................ 93
5.2
时钟发生电路的结构 ........................................................................................................................................ 94
5.3
控制时钟发生电路的寄存器 ............................................................................................................................ 96
5.3.1
时钟运行模式控制寄存器 (CMC) ..................................................................................................... 96
5.3.2
系统时钟控制寄存器 (CKC) .............................................................................................................. 97
5.3.3
时钟运行状态控制寄存器 (CSC) ...................................................................................................... 98
5.3.4
振荡稳定时间计数器的状态寄存器 (OSTC).................................................................................... 99
5.3.5
振荡稳定时间选择寄存器 (OSTS) .................................................................................................. 100
5.3.6
外围允许寄存器 0 (PER0) ............................................................................................................... 101
5.3.7
副系统时钟提供模式控制寄存器 (OSMC) .................................................................................... 102
5.3.8
高速内部振荡器的频率选择寄存器 (HOCODIV) ......................................................................... 103
5.3.9
高速内部振荡器的微调寄存器 (HIOTRM) .................................................................................... 104
5.4
系统时钟振荡电路 .......................................................................................................................................... 105
5.4.1
X1 振荡电路 .......................................................................................................................................... 105
5.4.2
高速内部振荡器 .................................................................................................................................... 108
5.4.3
低速内部振荡器 .................................................................................................................................... 108
5.5
时钟发生电路的运行 ...................................................................................................................................... 108
目录 - 2
5.6
时钟控制 .......................................................................................................................................................... 110
5.6.1
高速内部振荡器的设定例子 ................................................................................................................ 110
5.6.2
X1 振荡电路的设定例子 ...................................................................................................................... 112
5.6.3
CPU 时钟的状态转移图 ....................................................................................................................... 113
5.6.4
CPU 时钟状态转移前的条件和转移后的处理 ................................................................................... 116
5.6.5
CPU 时钟和主系统时钟的切换所需时间 ........................................................................................... 117
5.6.6
时钟振荡停止前的条件 ........................................................................................................................ 117
5.7
谐振器和振荡电路常数 .................................................................................................................................. 118
第 6 章 定时器阵列单元 ............................................................................................................................ 121
6.1
定时器阵列单元的功能 .................................................................................................................................. 122
6.1.1
独立通道运行功能 ................................................................................................................................ 122
6.1.2
多通道联动运行功能 ............................................................................................................................ 123
6.1.3
8 位定时器运行功能 (只限于通道 1 和通道 3) .............................................................................. 124
6.2
定时器阵列单元的结构 .................................................................................................................................. 125
6.2.1
定时器计数寄存器 0n (TCR0n) ....................................................................................................... 129
6.2.2
定时器数据寄存器 0n (TDR0n) ....................................................................................................... 131
6.3
控制定时器阵列单元的寄存器 ...................................................................................................................... 132
6.3.1
外围允许寄存器 0 (PER0) ............................................................................................................... 133
6.3.2
定时器时钟选择寄存器 0 (TPS0) .................................................................................................... 134
6.3.3
定时器模式寄存器 0n (TMR0n) ...................................................................................................... 136
6.3.4
定时器状态寄存器 0n (TSR0n) ....................................................................................................... 141
6.3.5
定时器通道允许状态寄存器 0 (TE0) .............................................................................................. 142
6.3.6
定时器通道开始寄存器 0 (TS0) ...................................................................................................... 143
6.3.7
定时器通道停止寄存器 0 (TT0) ...................................................................................................... 144
6.3.8
定时器输入选择寄存器 0 (TIS0) ..................................................................................................... 145
6.3.9
定时器输出允许寄存器 0 (TOE0) ................................................................................................... 145
6.3.10
定时器输出寄存器 0 (TO0) ............................................................................................................. 146
6.3.11
定时器输出电平寄存器 0 (TOL0) ................................................................................................... 147
6.3.12
定时器输出模式寄存器 0 (TOM0) .................................................................................................. 148
6.3.13
噪声滤波器允许寄存器 1 (NFEN1) ................................................................................................ 149
6.3.14
控制定时器输入 / 输出引脚端口功能的寄存器 ................................................................................. 150
6.4
定时器阵列单元的基本规则 .......................................................................................................................... 151
6.4.1
多通道联动运行功能的基本规则 ........................................................................................................ 151
6.4.2
8 位定时器运行功能的基本规则 (只限于通道 1 和通道 3) .......................................................... 153
6.5
计数器的运行 .................................................................................................................................................. 154
6.5.1
计数时钟 (fTCLK) .............................................................................................................................. 154
6.5.2
计数器的开始时序 ................................................................................................................................ 156
6.5.3
计数器的运行 ........................................................................................................................................ 157
6.6
通道输出 (TO0n 引脚)的控制................................................................................................................... 162
6.6.1
TO0n 引脚输出电路的结构 ................................................................................................................. 162
6.6.2
TO0n 引脚的输出设定 .......................................................................................................................... 163
6.6.3
通道输出运行的注意事项 .................................................................................................................... 164
6.6.4
TO0n 位的一次性操作 .......................................................................................................................... 168
6.6.5
有关开始计数时的定时器中断和 TO0n 引脚输出 ............................................................................ 169
6.7
定时器输入 (TI0n)的控制 ......................................................................................................................... 170
6.7.1
TI0n 引脚输入电路的结构 ................................................................................................................... 170
6.7.2
噪声滤波器 ............................................................................................................................................ 170
6.7.3
操作通道输入时的注意事项 ................................................................................................................ 171
6.8
定时器阵列单元的独立通道运行功能 .......................................................................................................... 172
6.8.1
作为间隔定时器 / 方波输出的运行 ..................................................................................................... 172
6.8.2
作为外部事件计数器的运行 ................................................................................................................ 176
目录 - 3
6.8.3
作为分频器的运行 ................................................................................................................................ 180
6.8.4
作为输入脉冲间隔测量的运行 ............................................................................................................ 184
6.8.5
作为输入信号高低电平宽度测量的运行 ............................................................................................ 188
6.8.6
作为延迟计数器的运行 ........................................................................................................................ 192
6.9
定时器阵列单元的多通道联动运行功能 ...................................................................................................... 196
6.9.1
作为单触发脉冲输出功能的运行 ........................................................................................................ 196
6.9.2
作为 PWM 功能的运行 ........................................................................................................................ 203
6.9.3
作为多重 PWM 输出功能的运行 ........................................................................................................ 210
6.10 使用定时器阵列单元时的注意事项 .............................................................................................................. 217
6.10.1
使用定时器输出时的注意事项 ............................................................................................................ 217
第 7 章 12 位间隔定时器 .......................................................................................................................... 218
7.1
12 位间隔定时器的功能 ................................................................................................................................. 218
7.2
12 位间隔定时器的结构 ................................................................................................................................. 218
7.3
控制 12 位间隔定时器的寄存器 .................................................................................................................... 219
7.3.1
外围允许寄存器 0 (PER0) ............................................................................................................... 219
7.3.2
副系统时钟提供模式控制寄存器 (OSMC) .................................................................................... 220
7.3.3
间隔定时器的控制寄存器 (ITMC) .................................................................................................. 221
7.4
12 位间隔定时器的运行 ................................................................................................................................. 222
7.4.1
12 位间隔定时器的运行时序 ............................................................................................................... 222
7.4.2
从 HALT/STOP 模式返回后开始计数器的运行并且再次向 HALT/STOP 模式的转移 ................. 223
第 8 章 时钟输出 / 蜂鸣器输出控制电路 ................................................................................................... 224
8.1
时钟输出 / 蜂鸣器输出控制电路的功能 ....................................................................................................... 224
8.2
时钟输出 / 蜂鸣器输出控制电路的结构 ....................................................................................................... 225
8.3
控制时钟输出 / 蜂鸣器输出控制电路的寄存器 ........................................................................................... 226
8.3.1
时钟输出选择寄存器 n (CKSn) ....................................................................................................... 226
8.3.2
控制时钟输出 / 蜂鸣器输出引脚端口功能的寄存器 ......................................................................... 227
8.4
时钟输出 / 蜂鸣器输出控制电路的运行 ....................................................................................................... 227
8.4.1
输出引脚的运行 .................................................................................................................................... 227
8.5
时钟输出 / 蜂鸣器输出控制电路的注意事项 ............................................................................................... 227
第 9 章 看门狗定时器 ............................................................................................................................... 228
9.1
看门狗定时器的功能 ...................................................................................................................................... 228
9.2
看门狗定时器的结构 ...................................................................................................................................... 229
9.3
控制看门狗定时器的寄存器 ......................................................................................................................... 230
9.3.1
看门狗定时器的允许寄存器 (WDTE) ............................................................................................ 230
9.4
看门狗定时器的运行 ...................................................................................................................................... 231
9.4.1
看门狗定时器的运行控制 .................................................................................................................... 231
9.4.2
看门狗定时器上溢时间的设定 ............................................................................................................ 232
9.4.3
看门狗定时器窗口打开期间的设定 .................................................................................................... 233
9.4.4
看门狗定时器间隔中断的设定 ............................................................................................................ 234
第 10 章 A/D 转换器 ................................................................................................................................... 235
10.1 A/D 转换器的功能 .......................................................................................................................................... 235
10.2 A/D 转换器的结构 .......................................................................................................................................... 237
10.3 控制 A/D 转换器的寄存器 ............................................................................................................................. 238
10.3.1
外围允许寄存器 0 (PER0) ............................................................................................................... 239
10.3.2
A/D 转换器的模式寄存器 0 (ADM0) .............................................................................................. 240
10.3.3
A/D 转换器的模式寄存器 1 (ADM1) .............................................................................................. 248
10.3.4
A/D 转换器的模式寄存器 2 (ADM2) .............................................................................................. 249
10.3.5
10 位 A/D 转换结果寄存器 (ADCR) ............................................................................................... 251
目录 - 4
10.3.6
8 位 A/D 转换结果寄存器 (ADCRH) .............................................................................................. 251
10.3.7
模拟输入通道指定寄存器 (ADS) .................................................................................................... 252
10.3.8
转换结果比较上限值设定寄存器 (ADUL) ..................................................................................... 253
10.3.9
转换结果比较下限值设定寄存器 (ADLL) ..................................................................................... 253
10.3.10
A/D 测试寄存器 (ADTES) ............................................................................................................... 254
10.3.11
控制模拟输入引脚端口功能的寄存器 ................................................................................................ 254
10.4 A/D 转换器的转换运行 .................................................................................................................................. 255
10.5 输入电压和转换结果 ...................................................................................................................................... 257
10.6 A/D 转换器的运行模式 .................................................................................................................................. 258
10.6.1
软件触发模式 (选择模式、连续转换模式) .................................................................................... 258
10.6.2
软件触发模式 (选择模式、单次转换模式) .................................................................................... 259
10.6.3
软件触发模式 (扫描模式、连续转换模式) .................................................................................... 260
10.6.4
软件触发模式 (扫描模式、单次转换模式) .................................................................................... 261
10.6.5
硬件触发无等待模式 (选择模式、连续转换模式) ........................................................................ 262
10.6.6
硬件触发无等待模式 (选择模式、单次转换模式) ........................................................................ 263
10.6.7
硬件触发无等待模式 (扫描模式、连续转换模式) ........................................................................ 264
10.6.8
硬件触发无等待模式 (扫描模式、单次转换模式) ........................................................................ 265
10.6.9
硬件触发等待模式 (选择模式、连续转换模式) ............................................................................ 266
10.6.10
硬件触发等待模式 (选择模式、单次转换模式) ............................................................................ 267
10.6.11
硬件触发等待模式 (扫描模式、连续转换模式) ............................................................................ 268
10.6.12
硬件触发等待模式 (扫描模式、单次转换模式) ............................................................................ 269
10.7 A/D 转换器的设定流程图 .............................................................................................................................. 270
10.7.1
软件触发模式的设定 ............................................................................................................................ 270
10.7.2
硬件触发无等待模式的设定 ................................................................................................................ 271
10.7.3
硬件触发等待模式的设定 .................................................................................................................... 272
10.7.4
选择内部基准电压时的设定 (以软件触发模式、单次转换模式为例) ........................................ 273
10.7.5
测试模式的设定 .................................................................................................................................... 274
10.8 SNOOZE 模式功能 ......................................................................................................................................... 275
10.9 A/D 转换器特性表的阅读方法 ...................................................................................................................... 279
10.10 A/D 转换器的注意事项 .................................................................................................................................. 281
第 11 章 串行阵列单元 ............................................................................................................................... 285
11.1 串行阵列单元的功能 ...................................................................................................................................... 286
11.1.1
3 线串行 I/O (CSI00、 CSI11、 CSI20) .......................................................................................... 286
11.1.2
UART (UART0 ~ UART2) ............................................................................................................. 287
11.1.3
简易 I2C (IIC00、 IIC11、 IIC20) ................................................................................................... 288
11.2 串行阵列单元的结构 ...................................................................................................................................... 289
11.2.1
移位寄存器 ............................................................................................................................................ 292
11.2.2
串行数据寄存器 mn (SDRmn)的低 8 位或者低 9 位 .................................................................... 292
11.3 控制串行阵列单元的寄存器 .......................................................................................................................... 294
11.3.1
外围允许寄存器 0 (PER0) ............................................................................................................... 295
11.3.2
串行时钟选择寄存器 m (SPSm) ...................................................................................................... 296
11.3.3
串行模式寄存器 mn (SMRmn) ........................................................................................................ 297
11.3.4
串行通信运行设定寄存器 mn (SCRmn) ......................................................................................... 298
11.3.5
串行数据寄存器 mn (SDRmn) ......................................................................................................... 301
11.3.6
串行标志清除触发寄存器 mn (SIRmn) .......................................................................................... 302
11.3.7
串行状态寄存器 mn (SSRmn) ......................................................................................................... 303
11.3.8
串行通道开始寄存器 m (SSm) ........................................................................................................ 305
11.3.9
串行通道停止寄存器 m (STm) ........................................................................................................ 306
11.3.10
串行通道允许状态寄存器 m (SEm) ................................................................................................ 307
11.3.11
串行输出允许寄存器 m (SOEm) ..................................................................................................... 308
11.3.12
串行输出寄存器 m (SOm) ............................................................................................................... 309
目录 - 5
11.3.13
串行输出电平寄存器 m (SOLm) ..................................................................................................... 310
11.3.14
串行待机控制寄存器 0 (SSC0) ........................................................................................................ 312
11.3.15
噪声滤波器允许寄存器 0 (NFEN0) ................................................................................................ 313
11.3.16
控制串行输入 / 输出引脚端口功能的寄存器 ..................................................................................... 314
11.4 运行停止模式 .................................................................................................................................................. 315
11.4.1
以单元为单位停止运行的情况 ............................................................................................................ 315
11.4.2
按通道停止运行的情况 ........................................................................................................................ 316
11.5 3 线串行 I/O (CSI00、 CSI11、 CSI20)通信的运行 ............................................................................... 317
11.5.1
主控发送 ................................................................................................................................................ 318
11.5.2
主控接收 ................................................................................................................................................ 326
11.5.3
主控的发送和接收 ................................................................................................................................ 334
11.5.4
从属发送 ................................................................................................................................................ 342
11.5.5
从属接收 ................................................................................................................................................ 350
11.5.6
从属的发送和接收 ................................................................................................................................ 356
11.5.7
SNOOZE 模式功能 ............................................................................................................................... 364
11.5.8
传送时钟频率的计算 ............................................................................................................................ 368
11.5.9
在 3 线串行 I/O (CSI00、 CSI11、 CSI20)通信过程中发生错误时的处理步骤 ........................ 370
11.6 UART (UART0 ~ UART2)通信的运行 .................................................................................................. 371
11.6.1
UART 发送 ............................................................................................................................................ 372
11.6.2
UART 接收 ............................................................................................................................................ 381
11.6.3
SNOOZE 模式功能 ............................................................................................................................... 388
11.6.4
波特率的计算 ........................................................................................................................................ 395
11.6.5
在 UART (UART0 ~ UART2)通信过程中发生错误时的处理步骤 ........................................... 399
11.7 简易 I2C (IIC00、 IIC11、 IIC20)通信的运行 ........................................................................................ 400
11.7.1
地址段发送 ............................................................................................................................................ 401
11.7.2
数据发送 ................................................................................................................................................ 406
11.7.3
数据接收 ................................................................................................................................................ 409
11.7.4
停止条件的产生 .................................................................................................................................... 413
11.7.5
传送速率的计算 .................................................................................................................................... 414
11.7.6
在简易 I2C (IIC00、 IIC11、 IIC20)通信过程中发生错误时的处理步骤 .................................. 416
第 12 章 串行接口 IICA .............................................................................................................................. 417
12.1 串行接口 IICA 的功能.................................................................................................................................... 417
12.2 串行接口 IICA 的结构.................................................................................................................................... 420
12.3 控制串行接口 IICA 的寄存器........................................................................................................................ 422
12.3.1
外围允许寄存器 0 (PER0) ............................................................................................................... 423
12.3.2
IICA 控制寄存器 n0 (IICCTLn0) ..................................................................................................... 423
12.3.3
IICA 状态寄存器 n (IICSn) .............................................................................................................. 428
12.3.4
IICA 标志寄存器 n (IICFn) .............................................................................................................. 430
12.3.5
IICA 控制寄存器 n1 (IICCTLn1) ..................................................................................................... 432
12.3.6
IICA 低电平宽度设定寄存器 n (IICWLn) ...................................................................................... 434
12.3.7
IICA 高电平宽度设定寄存器 n (IICWHn) ...................................................................................... 434
12.3.8
端口模式寄存器 6 (PM6) ................................................................................................................. 435
12.4 I2C 总线模式的功能 ....................................................................................................................................... 436
12.4.1
引脚结构 ................................................................................................................................................ 436
12.4.2
通过 IICWLn 寄存器和 IICWHn 寄存器设定传送时钟的方法 ........................................................ 437
2
12.5 I C 总线的定义和控制方法 ........................................................................................................................... 438
12.5.1
开始条件 ................................................................................................................................................ 438
12.5.2
地址 ........................................................................................................................................................ 439
12.5.3
传送方向的指定 .................................................................................................................................... 439
12.5.4
应答 (ACK) ....................................................................................................................................... 440
12.5.5
停止条件 ................................................................................................................................................ 441
目录 - 6
12.5.6
等待 ........................................................................................................................................................ 442
12.5.7
等待的解除方法 .................................................................................................................................... 444
12.5.8
中断请求 (INTIICAn)的产生时序和等待控制 .............................................................................. 445
12.5.9
地址匹配的检测方法 ............................................................................................................................ 446
12.5.10
错误的检测 ............................................................................................................................................ 446
12.5.11
扩展码 .................................................................................................................................................... 446
12.5.12
仲裁 ........................................................................................................................................................ 447
12.5.13
唤醒功能 ................................................................................................................................................ 449
12.5.14
通信预约 ................................................................................................................................................ 452
12.5.15
其他注意事项 ........................................................................................................................................ 455
12.5.16
通信运行 ................................................................................................................................................ 456
12.5.17
I2C 中断请求 (INTIICAn)的产生时序 ........................................................................................... 463
12.6 时序图 .............................................................................................................................................................. 484
第 13 章 乘除器和乘加器 ............................................................................................................................ 499
13.1 乘除器和乘加器的功能 .................................................................................................................................. 499
13.2 乘除器和乘加器的结构 .................................................................................................................................. 499
13.2.1
乘除数据寄存器 A (MDAH、 MDAL) ........................................................................................... 501
13.2.2
乘除数据寄存器 B (MDBL、 MDBH) ............................................................................................ 502
13.2.3
乘除数据寄存器 C (MDCL、 MDCH) ............................................................................................ 503
13.3 控制乘除器和乘加器的寄存器 ...................................................................................................................... 505
13.3.1
乘除控制寄存器 (MDUC) ................................................................................................................ 505
13.4 乘除器和乘加器的运算 .................................................................................................................................. 506
13.4.1
乘法运算 (无符号) ............................................................................................................................ 506
13.4.2
乘法运算 (带符号) ............................................................................................................................ 507
13.4.3
乘加运算 (无符号) ............................................................................................................................ 508
13.4.4
乘加运算 (带符号) ............................................................................................................................ 509
13.4.5
除法运算 ................................................................................................................................................ 511
第 14 章 DMA 控制器 ................................................................................................................................. 513
14.1 DMA 控制器的功能........................................................................................................................................ 513
14.2 DMA 控制器的结构........................................................................................................................................ 514
14.2.1
DMA SFR 地址寄存器 n (DSAn) .................................................................................................... 514
14.2.2
DMA RAM 地址寄存器 n (DRAn) .................................................................................................. 515
14.2.3
DMA 字节计数寄存器 n (DBCn) .................................................................................................... 516
14.3 控制 DMA 控制器的寄存器........................................................................................................................... 517
14.3.1
DMA 模式控制寄存器 n (DMCn) ................................................................................................... 517
14.3.2
DMA 运行控制寄存器 n (DRCn) .................................................................................................... 519
14.4 DMA 控制器的运行........................................................................................................................................ 520
14.4.1
运行步骤 ................................................................................................................................................ 520
14.4.2
传送模式 ................................................................................................................................................ 521
14.4.3
DMA 传送的结束 .................................................................................................................................. 521
14.5 DMA 控制器的设定例子................................................................................................................................ 521
14.5.1
CSI 连续发送 ......................................................................................................................................... 521
14.5.2
A/D 转换结果的连续读取 .................................................................................................................... 523
14.5.3
UART 连续接收 +ACK 发送 ............................................................................................................... 524
14.5.4
通过 DWAITn 位保留 DMA 传送 ....................................................................................................... 525
14.5.5
通过软件强制结束 ................................................................................................................................ 526
14.6 DMA 控制器的注意事项................................................................................................................................ 528
第 15 章 中断功能 ...................................................................................................................................... 531
15.1 中断功能的种类 .............................................................................................................................................. 531
目录 - 7
15.2 中断源和结构 .................................................................................................................................................. 531
15.3 控制中断功能的寄存器 .................................................................................................................................. 535
15.3.1
中断请求标志寄存器 (IF0L、 IF0H、 IF1L、 IF1H、 IF2L、 IF2H) ......................................... 538
15.3.2
中断屏蔽标志寄存器 (MK0L、 MK0H、 MK1L、 MK1H、 MK2L、 MK2H) ........................ 539
15.3.3
优先级指定标志寄存器 (PR00L、 PR00H、 PR01L、 PR01H、 PR02L、 PR02H、 PR10L、
PR10H、 PR11L、 PR11H、 PR12L、 PR12H) ............................................................................... 541
15.3.4
外部中断上升沿允许寄存器 (EGP0)、外部中断下降沿允许寄存器 (EGN0) ........................ 543
15.3.5
程序状态字 (PSW) ............................................................................................................................ 544
15.4 中断处理的操作 .............................................................................................................................................. 545
15.4.1
可屏蔽中断请求的接受 ........................................................................................................................ 545
15.4.2
软件中断请求的接受 ............................................................................................................................ 548
15.4.3
多重中断处理 ........................................................................................................................................ 548
15.4.4
中断请求的保留 .................................................................................................................................... 552
第 16 章 待机功能 ...................................................................................................................................... 553
16.1 待机功能 .......................................................................................................................................................... 553
16.2 控制待机功能的寄存器 .................................................................................................................................. 554
16.3 待机功能的运行 .............................................................................................................................................. 554
16.3.1
HALT 模式 ............................................................................................................................................ 554
16.3.2
STOP 模式 ............................................................................................................................................. 557
16.3.3
SNOOZE 模式 ....................................................................................................................................... 562
第 17 章 复位功能 ...................................................................................................................................... 565
17.1 复位时序 .......................................................................................................................................................... 567
17.2 复位期间的运行状态 ...................................................................................................................................... 569
17.3 确认复位源的寄存器 ...................................................................................................................................... 571
17.3.1
复位控制标志寄存器 (RESF) .......................................................................................................... 571
第 18 章 上电复位电路 ............................................................................................................................... 574
18.1 上电复位电路的功能 ...................................................................................................................................... 574
18.2 上电复位电路的结构 ...................................................................................................................................... 575
18.3 上电复位电路的运行 ...................................................................................................................................... 575
第 19 章 电压检测电路 ............................................................................................................................... 579
19.1 电压检测电路的功能 ...................................................................................................................................... 579
19.2 电压检测电路的结构 ...................................................................................................................................... 580
19.3 控制电压检测电路的寄存器 .......................................................................................................................... 581
19.3.1
电压检测寄存器 (LVIM) .................................................................................................................. 581
19.3.2
电压检测电平寄存器 (LVIS) ........................................................................................................... 582
19.4 电压检测电路的运行 ...................................................................................................................................... 585
19.4.1
用作复位模式时的设定 ........................................................................................................................ 585
19.4.2
用作中断模式时的设定 ........................................................................................................................ 587
19.4.3
用作中断 & 复位模式时的设定 ........................................................................................................... 589
19.5 电压检测电路的注意事项 .............................................................................................................................. 595
第 20 章 安全功能 ...................................................................................................................................... 597
20.1 安全功能的概要 .............................................................................................................................................. 597
20.2 安全功能使用的寄存器 .................................................................................................................................. 598
20.3 安全功能的运行 .............................................................................................................................................. 598
20.3.1
闪存 CRC 运算功能 (高速 CRC) ..................................................................................................... 598
20.3.2
CRC 运算功能 (通用 CRC) .............................................................................................................. 601
20.3.3
RAM 奇偶校验错误检测功能 .............................................................................................................. 603
目录 - 8
20.3.4
20.3.5
20.3.6
20.3.7
20.3.8
RAM 保护功能 ...................................................................................................................................... 604
SFR 保护功能 ........................................................................................................................................ 605
非法存储器存取检测功能 .................................................................................................................... 606
频率检测功能 ........................................................................................................................................ 608
A/D 测试功能 ........................................................................................................................................ 609
第 21 章 稳压器 .......................................................................................................................................... 613
21.1 稳压器的概要 .................................................................................................................................................. 613
第 22 章 选项字节 ...................................................................................................................................... 614
22.1 选项字节的功能 .............................................................................................................................................. 614
22.1.1
用户选项字节 (000C0H ~ 000C2H/010C0H ~ 010C2H) ............................................................ 614
22.1.2
片上调试选项字节 (000C3H/010C3H) ............................................................................................ 615
22.2 用户选项字节的格式 ...................................................................................................................................... 616
22.3 片上调试选项字节的格式 .............................................................................................................................. 621
22.4 选项字节的设定 .............................................................................................................................................. 622
第 23 章 闪存 .............................................................................................................................................. 623
23.1 使用闪存编程器的串行编程 .......................................................................................................................... 624
23.1.1
编程环境 ................................................................................................................................................ 625
23.1.2
通信方式 ................................................................................................................................................ 625
23.2 使用外部器件 (内置 UART)的串行编程 ................................................................................................. 626
23.2.1
编程环境 ................................................................................................................................................ 626
23.2.2
通信方式 ................................................................................................................................................ 627
23.3 电路板上的引脚处理 ...................................................................................................................................... 628
23.3.1
P40/TOOL0 引脚 ................................................................................................................................... 628
23.3.2
RESET 引脚 ........................................................................................................................................... 628
23.3.3
端口引脚 ................................................................................................................................................ 629
23.3.4
REGC 引脚 ............................................................................................................................................ 629
23.3.5
X1 引脚和 X2 引脚 ............................................................................................................................... 629
23.3.6
电源 ........................................................................................................................................................ 629
23.4 串行编程方法 .................................................................................................................................................. 629
23.4.1
串行编程的步骤 .................................................................................................................................... 629
23.4.2
闪存编程模式 ........................................................................................................................................ 630
23.4.3
通信方式 ................................................................................................................................................ 631
23.4.4
通信命令 ................................................................................................................................................ 632
23.5 使用 PG-FP5 时的各命令处理时间 (参考值)........................................................................................... 633
23.6 自编程 .............................................................................................................................................................. 634
23.6.1
自编程的步骤 ........................................................................................................................................ 635
23.6.2
引导交换功能 ........................................................................................................................................ 636
23.6.3
闪存屏蔽窗口功能 ................................................................................................................................ 638
23.7 安全设定 .......................................................................................................................................................... 639
23.8 数据闪存 .......................................................................................................................................................... 641
23.8.1
数据闪存的概要 .................................................................................................................................... 641
23.8.2
控制数据闪存的寄存器 ........................................................................................................................ 641
23.8.3
数据闪存的存取步骤 ............................................................................................................................ 642
第 24 章 片上调试功能 ............................................................................................................................... 643
24.1 和 E1 片上调试仿真器的连接........................................................................................................................ 643
24.2 片上调试安全 ID............................................................................................................................................. 644
24.3 用户资源的确保 .............................................................................................................................................. 644
目录 - 9
第 25 章 十进制校正 (BCD)电路 ............................................................................................................ 646
25.1 十进制校正电路的功能 .................................................................................................................................. 646
25.2 十进制校正电路使用的寄存器 ...................................................................................................................... 646
25.2.1
BCD 校正结果寄存器 (BCDADJ) ................................................................................................... 646
25.3 十进制校正电路的运行 .................................................................................................................................. 647
第 26 章 指令集的概要 ............................................................................................................................... 649
26.1 凡例 .................................................................................................................................................................. 649
26.1.1
操作数的表现形式和记述方法 ............................................................................................................ 649
26.1.2
操作栏的说明 ........................................................................................................................................ 650
26.1.3
标志栏的说明 ........................................................................................................................................ 651
26.1.4
PREFIX 指令 ......................................................................................................................................... 651
26.2 操作一览表 ...................................................................................................................................................... 652
第 27 章 电特性 (TA=–40 ~ +85°C) ....................................................................................................... 669
27.1 绝对最大额定值 .............................................................................................................................................. 669
27.2 振荡电路特性 .................................................................................................................................................. 671
27.2.1
X1 振荡电路特性 .................................................................................................................................. 671
27.2.2
内部振荡器特性 .................................................................................................................................... 671
27.3 DC 特性............................................................................................................................................................ 672
27.3.1
引脚特性 ................................................................................................................................................ 672
27.3.2
电源电流特性 ........................................................................................................................................ 677
27.4 AC 特性............................................................................................................................................................ 680
27.5 外围功能特性 .................................................................................................................................................. 684
27.5.1
串行阵列单元 ........................................................................................................................................ 684
27.5.2
串行接口 IICA ....................................................................................................................................... 711
27.6 模拟特性 .......................................................................................................................................................... 714
27.6.1
A/D 转换器特性 .................................................................................................................................... 714
27.6.2
内部基准电压的特性 ............................................................................................................................ 718
27.6.3
POR 电路特性 ....................................................................................................................................... 718
27.6.4
LVD 电路特性 ....................................................................................................................................... 719
27.6.5
电源电压的上升斜率特性 .................................................................................................................... 720
27.7 RAM 数据保持特性 ........................................................................................................................................ 721
27.8 闪存编程特性 .................................................................................................................................................. 721
27.9 专用闪存编程器通信 (UART)................................................................................................................... 721
27.10 闪存编程模式的转移时序 .............................................................................................................................. 722
第 28 章 封装尺寸图 ................................................................................................................................... 723
附录 A
修订记录 ...................................................................................................................................... 724
目录 - 10
R7F0C903-908
R01UH0629CJ0120
Rev.1.20
2019.06.28
16 位单芯片微控制器
第1章
1.1
概述
特点
超低功耗技术
●
●
●
●
●
工作电源为 1.6V ~ 5.5V的单电源。
STOP 模式:0.23μA (RAM 保持)、 0.31μA (LVD 工作)
HALT 模式 (LVD 工作):0.57μA
SNOOZE 模式:0.70mA (UART)、 1.20mA (A/D)
运行模式:66μA/MHz
16 位 RL78 CPU 内核
●
●
●
●
●
●
●
在最高工作频率 24MHz时为 31 DMIPS。
指令执行:86% 的指令执行能在 1 ~ 2 个时钟周期内完成。
3 段流水线的 CISC 体系结构 (哈佛)
在 1 个时钟周期内完成 16位 ×16位 =32 位的带符号或者无符号乘法运算。
在 2 个时钟周期内完成 16位 ×16位 +32 位 =32位的乘加运算。
在 1 个时钟周期内完成 16位桶式移位器的移位和循环。
内置单线片上调试功能。
代码闪存
● 闪存:16KB ~ 48KB
● 块大小:1KB
● 内置单电源闪存 (带块擦除 / 编程保护功能)。
● 自编程:有引导交换功能和闪存屏蔽窗口功能。
数据闪存
●
●
●
●
带后台操作功能的数据闪存
数据闪存:2KB或者不带数据闪存
擦除次数:1000000次 (TYP.)
擦除 / 编程电压:VDD=1.8 ~ 5.5V
RAM
● 2KB 或者 3KB
● 支持操作数和指令。
● 在所有模式中保持数据。
高速内部振荡器
● 24MHz±1.0% 高精度 (VDD=1.8 ~ 5.5V、 TA=–20 ~ +85°C)
● 可选择 24MHz、 16MHz、 12MHz、 8MHz、 6MHz、 4MHz、 3MHz、 2MHz或者 1MHz。
电源管理和复位功能
● 上电复位 (POR)监视 / 发生电路
● 有 14 种设定选项 (中断和复位)的低电压检测 (LVD)
R01UH0629CJ0120 Rev.1.20
2019.06.28
1
R7F0C903-908
第 1 章 概述
数据存储器存取 (DMA)控制器
● 2 个通道
● 传送单位:8 位或者16 位
多种通信接口
● I2C 多主控:1 个通道
● CSI/UART/ 简易 I2C:最多 3 个通道
扩展功能定时器
● 多功能 16 位定时器:最多 8 个通道
● 12 位间隔定时器:1 个通道
● 15kHz 看门狗定时器:1 个通道 (窗口功能)
丰富的模拟模块
● A/D 转换器:最多 8 个通道、 10位分辨率、 2.1μs 转换时间
● 支持 1.6V。
● 内部基准电压 (1.45V)
安全功能 (符合 IEC 或者 UL 60730)
●
●
●
●
●
●
●
闪存 CRC 运算
RAM 奇偶校验错误检测
RAM 写保护
SFR 写保护
非法存储器存取检测
时钟停止 / 频率检测
A/D 测试功能
输入 / 输出端口
● 5V 耐压、大电流 (各引脚最大 20mA)
● 支持 N 沟道漏极开路和内部上拉。
● 支持不同电位的接口:能连接 1.8V、 2.5V 或者 3V的器件。
工作环境温度
● 标准:–40 ~ +85°C
封装和引脚数
● 32 引脚 LQFP (7×7mm, 0.8mm 间距)
○ ROM、 RAM 容量
闪存 ROM
48KB
32KB
16KB
R01UH0629CJ0120 Rev.1.20
2019.06.28
数据闪存
2KB
—
2KB
—
2KB
—
RAM
3KB
2KB
2KB
R7F0C903-908
32 引脚
R7F0C908B2
R7F0C905B2
R7F0C907B2
R7F0C904B2
R7F0C906B2
R7F0C903B2
2
R7F0C903-908
1.2
第 1 章 概述
产品型号一览表
图 1-1
R7F0C903-908 的产品型号、存储容量和封装
ӝශਭȼ R 7 F 0C908 B 2D FP-C #AA0
ऻ㻻㿺Ṳ
#AA0φᢎⴎȽᰖ䫻(㓥Sn)
#HA0φু㓯ᑜভȽᰖ䫻(㓥Sn)
ሷ㻻〃㊱
FP-Cφ32ᕋ㝐LQFP(7×7mmȽ0.8mm䰪䐓)
⭞䙊॰࠼
2Dφ≇⭞ӝθᐛ֒⧥ູᓜφTA=–40Њ85°C
ᕋ㝐ᮦ
Bφ32ᕋ㝐
ROMૂᮦᦤ䰠ᆎⲺᇯ䠅
0C903φ16K ROMȽуᑜᮦᦤ䰠ᆎ
0C904φ32K ROMȽуᑜᮦᦤ䰠ᆎ
0C905φ48K ROMȽуᑜᮦᦤ䰠ᆎ
0C906φ16K ROMȽ2Kᮦᦤ䰠ᆎ
0C907φ32K ROMȽ2Kᮦᦤ䰠ᆎ
0C908φ48K ROMȽ2Kᮦᦤ䰠ᆎ
ROM〃㊱
Fφ䰠ᆎ
ӝ〃㊱
7φMCU
⪔㩞ঀሲ։
表 1-1
引脚数
封装
32 引脚 32 引脚
LQFP
(7×7mm、
0.8mm
闪存
ROM
数据
闪存
RAM
包装规格和环境对应
订购产品型号
48KB
2KB
3KB
托盘、无铅 (纯 Sn)
R7F0C908B2DFP-C#AA0
压纹带卷、无铅 (纯 Sn)
R7F0C908B2DFP-C#HA0
托盘、无铅 (纯 Sn)
R7F0C907B2DFP-C#AA0
压纹带卷、无铅 (纯 Sn)
R7F0C907B2DFP-C#HA0
托盘、无铅 (纯 Sn)
R7F0C906B2DFP-C#AA0
压纹带卷、无铅 (纯 Sn)
R7F0C906B2DFP-C#HA0
托盘、无铅 (纯 Sn)
R7F0C905B2DFP-C#AA0
压纹带卷、无铅 (纯 Sn)
R7F0C905B2DFP-C#HA0
托盘、无铅 (纯 Sn)
R7F0C904B2DFP-C#AA0
压纹带卷、无铅 (纯 Sn)
R7F0C904B2DFP-C#HA0
托盘、无铅 (纯 Sn)
R7F0C903B2DFP-C#AA0
压纹带卷、无铅 (纯 Sn)
R7F0C903B2DFP-C#HA0
32KB
2KB
间距 )
16KB
48KB
32KB
16KB
注意
产品型号一览表
—
3KB
2KB
订购产品型号是本手册发行时的型号。最新的订购产品型号请参照本公司网页的对象产品页。
R01UH0629CJ0120 Rev.1.20
2019.06.28
3
R7F0C903-908
1.3
第 1 章 概述
引脚连接图 (俯视图)
32 引脚 LQFP (7×7mm、 0.8mm 间距)
P10/SCK00/SCL00/(TI07)/(TO07)
P11/SI00/RxD0/TOOLRxD/SDA00/(TI06)/(TO06)
P12/SO00/TxD0/TOOLTxD/(TI05)/(TO05)
P13/TxD2/SO20/(SDAA0)/(TI04)/(TO04)
P14/RxD2/SI20/SDA20/(SCLA0)/(TI03)/(TO03)
P15/PCLBUZ1/SCK20/SCL20/(TI02)/(TO02)
P16/TI01/TO01/INTP5/(RXD0)
P17/TI02/TO02/(TXD0)
•
P147/ANI18
P23/ANI3
P22/ANI2
P21/ANI1/AVREFM
P20/ANI0/AV REFP
P01/ANI16/TO00/RxD1
P00/ANI17/TI00/TxD1
P120/ANI19
24 23 22 21 20 19 18 17
25
16
26
15
27
14
28
13
29
12
30
11
31
10
32
9
1 2 3 4 5 6 7 8
P51/INTP2/SO11
P50/INTP1/SI11/SDA11
P30/INTP3/SCK11/SCL11
P70
P31/TI03/TO03/INTP4/PCLBUZ0
P62
P61/SDAA0
P60/SCLA0
P40/TOOL0
RESET
P137/INTP0
P122/X2/EXCLK
P121/X1
REGC
VSS
VDD
INDEX MARK
注意
必须通过电容器 (0.47 ~ 1μF)将 REGC 引脚连接 VSS 引脚。
备注 1. 有关引脚名,请参照 “1.4 引脚名 ”。
2. 能通过设定外围 I/O 重定向寄存器 (PIOR),分配上图 ( ) 内的功能。详细内容请参照 “ 图 4-8 外围 I/O 重定向寄
存器 (PIOR)的格式 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
4
R7F0C903-908
1.4
第 1 章 概述
引脚名
REGC:
Regulator capacitance
ANI16 ~ ANI19:
Analog input
RESET:
Reset
AVREFM:
A/D converter reference
RxD0 ~ RxD2:
Receive data
potential (–side) input
SCK00、 SCK11、 SCK20、
A/D converter reference
ANI0 ~ ANI3、
SCLA0:
Serial clock input/output
potential (+side) input
SCL00、 SCL11、 SCL20:
Serial clock output
External clock input (main
SDA00、 SDA11、 SDA20、
system clock)
SDAA0:
Serial data input/output
Interrupt request from
SI00、 SI11、 SI20:
Serial data input
peripheral
SO00、 SO11、 SO20:
Serial data output
P00、 P01:
Port 0
TI00 ~ TI07:
Timer input
P10 ~ P17:
Port 1
TO00 ~ TO07:
Timer output
P20 ~ P23:
Port 2
TOOL0:
Data input/output for tool
P30、 P31:
Port 3
TOOLRxD、 TOOLTxD:
Data input/output for external device
P40:
Port 4
TxD0 ~ TxD2:
Transmit data
P50、 P51:
Port 5
VDD:
Power supply
P60 ~ P62:
Port 6
VSS:
Ground
P70:
Port 7
X1、 X2:
Crystal oscillator (main system clock)
P120 ~ P122:
Port 12
P137:
Port 13
P147:
Port 14
AVREFP:
EXCLK:
INTP0 ~ INTP5:
PCLBUZ0、 PCLBUZ1: Programmable clock
output/buzzer output
R01UH0629CJ0120 Rev.1.20
2019.06.28
5
R7F0C903-908
1.5
第 1 章 概述
框图
TIMER ARRAY
UNIT (8ch)
PORT 0
2
P00, P01
TI00/P00
TO00/P01
ch0
PORT 1
8
P10 to P17
TI01/TO01/P16
ch1
PORT 2
4
P20 to P23
TI02/TO02/P17
(TI02/TO02/P15)
ch2
PORT 3
2
P30, P31
TI03/TO03/P31
(TI03/TO03/P14)
ch3
(TI04/TO04/P13)
ch4
(TI05/TO05/P12)
ch5
(TI06/TO06/P11)
(TI07/TO07/P10)
RxD2/P14
PORT 4
LOW-SPEED
ON-CHIP
OSCILLATOR
PORT 5
2
P50, P51
ch6
PORT 6
3
P60 to P62
ch7
PORT 7
PORT 12
WINDOW
WATCHDOG
TIMER
12-BIT INTERVAL
TIMER
UART0
RxD1/P01
TxD1/P00
UART1
SCK00/P10
SI00/P11
SO00/P12
CSI00
P120
P121, P122
2
PORT 13
P137
PORT 14
P147
DATA FLASH MEMORY
A/D CONVERTER
SERIAL ARRAY
UNIT0 (4ch)
RxD0/P11(RxD0/P16)
TxD0/P12(TxD0/P17)
P70
CODE FLASH MEMORY
RL78
CPU
CORE
4
ANI0/P20 to
ANI3/P23
4
ANI16/P01, ANI17/P00,
ANI18/P147, ANI19/P120
AVREFP/P20
AVREFM/P21
POWER ON RESET/
VOLTAGE
DETECTOR
RAM
POR/LVD
CONTROL
RESET CONTROL
VDD
SCK11/P30
SI11/P50
SO11/P51
CSI11
SCL00/P10
SDA00/P11
IIC00
SCL11/P30
SDA11/P50
IIC11
VSS TOOLRxD/P11,
TOOLTxD/P12
ON-CHIP DEBUG
SCLA0/P60(SCLA0/P14)
BUZZER OUTPUT
CLOCK OUTPUT
CONTROL
SERIAL ARRAY
UNIT1 (2ch)
MULTIPLIER&
DIVIDER,
MULITIPLYACCUMULATOR
RxD2/P14
TxD2/P13
UART2
SCK20/P15
SI20/P14
SO20/P13
CSI20
DIRECT MEMORY
ACCESS CONTROL
SCL20/P15
SDA20/P14
IIC20
BCD
ADJUSTMENT
TOOL0/P40
SDAA0/P61(SDAA0/P13)
SERIAL
INTERFACE IICA0
2
备注
P40
PCLBUZ0/P31,
PCLBUZ1/P15
CRC
SYSTEM
CONTROL
RESET
X1/P121
HIGH-SPEED
ON-CHIP
OSCILLATOR
X2/EXCLK/P122
VOLTAGE
REGULATOR
REGC
RxD2/P14
INTP0/P137
INTERRUPT
CONTROL
2
2
INTP1/P50,
INTP2/P51
INTP3/P30,
INTP4/P31
INTP5/P16
能通过设定外围 I/O 重定向寄存器 (PIOR),分配上图 ( ) 内的功能。详细内容请参照 “ 图 4-8 外围 I/O 重定向寄
存器 (PIOR)的格式 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
6
R7F0C903-908
1.6
第 1 章 概述
功能概要
这是将外围 I/O 重定向寄存器 (PIOR)置 “00H” 时的功能概要。
注意
(1/2)
32 引脚
项目
R7F0C906/7/8
16 ~ 48
代码闪存 (KB)
2
数据闪存 (KB)
RAM (KB)
—
2 或者 3
1MB
地址空间
主系统时钟
R7F0C903/4/5
高速系统时钟
X1 (晶体 / 陶瓷)振荡、外部主系统时钟输入 (EXCLK)
1 ~ 20MHz:VDD=2.7 ~ 5.5V, 1 ~ 8MHz:VDD=1.8 ~ 2.7V,
1 ~ 4MHz:VDD=1.6 ~ 1.8V
高速内部振荡器
HS (高速主)模式:1 ~ 24MHz (VDD=2.7 ~ 5.5V)
HS (高速主)模式:1 ~ 16MHz (VDD=2.4 ~ 5.5V)
LS (低速主)模式:1 ~ 8MHz (VDD=1.8 ~ 5.5V)
LV (低电压主)模式:1 ~ 4MHz (VDD=1.6 ~ 5.5V)
—
副系统时钟
低速内部振荡器
15kHz(TYP.)
通用寄存器
(8 位 ×8 个寄存器 )×4 组
最短指令执行时间
0.04167μs (24MHz 运行时)
0.05μs (高速系统时钟:fMX=20MHz 运行时)
• 数据传送 (8/16 位)
指令集
• 加减 / 逻辑运算 (8/16 位)
• 乘法运算 (8 位 ×8 位)
• 循环、桶式移位、位操作 (置位、复位、测试和布尔运算)等
I/O 端口
合计
CMOS 输入 / 输出
28
22 (N 沟道漏极开路输入 / 输出 [VDD 耐压 ]:9)
CMOS 输入
3
CMOS 输出
—
N 沟道漏极开路
3
输入 / 输出 (6V 耐压)
定时器
16 位定时器
8 个通道
看门狗定时器
1 个通道
12 位间隔定时器 (IT)
1 个通道
定时器输出
注
4 个通道 (PWM 输出:3 个注 1)、 8 个通道 (PWM 输出:7 个注 1)注 2
1. PWM 输出的通道数因所用通道的设定(主控和从属的个数)而变(参照 “6.9.3 作为多重 PWM 输出功能的运行 ”)。
2. 这是将 PIOR0 置 “1” 的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
7
R7F0C903-908
第 1 章 概述
(2/2)
32 引脚
项目
R7F0C906/7/8
R7F0C903/4/5
2个
时钟输出 / 蜂鸣器输出
• 2.44kHz、 4.88kHz、 9.76kHz、 1.25MHz、 2.5MHz、 5MHz、 10MHz
(主系统时钟:fMAIN=20MHz 运行时)
8/10 位分辨率 A/D 转换器
8 个通道
• CSI:1 个通道/ 简易
串行接口
I2C:1 个通道 /UART:1 个通道
• CSI:1 个通道 / 简易 I2C:1 个通道 /UART:1 个通道
• CSI:1 个通道 / 简易 I2C:1 个通道 /UART:1 个通道
I2C 总线
乘除器和乘加器
1 个通道
• 16 位 ×16 位 =32 位 (无符号或者带符号)
• 32 位 ÷32 位 =32 位 (无符号)
• 16 位 ×16 位 +32 位 =32 位 (无符号或者带符号)
2 个通道
DMA 控制器
向量中断源
内部
26
外部
6
• 通过 RESET 引脚进行的复位
复位
• 通过看门狗定时器进行的内部复位
• 通过上电复位进行的内部复位
• 通过电压检测电路进行的内部复位
• 因执行非法指令而产生的内部复位注
• 因 RAM 奇偶校验错误而产生的内部复位
• 因存取非法存储器而产生的内部复位
上电复位电路
• 上电复位:1.51(TYP.)
• 断电复位:1.50(TYP.)
电压检测电路
• 上升沿:1.67V ~ 4.06V (14 种)
• 下降沿:1.63V ~ 3.98V (14 种)
片上调试功能
有
电源电压
VDD=1.6 ~ 5.5V
工作环境温度
TA=–40 ~ +85°C (2D:民用产品)
注
当执行指令码 FFH 时,发生非法指令错误。
在通过在线仿真器或者片上调试仿真器进行仿真时,不会因执行非法指令而产生复位。
R01UH0629CJ0120 Rev.1.20
2019.06.28
8
R7F0C903-908
第 2 章 引脚功能
第2章
2.1
引脚功能
端口功能
各端口设定的输入 / 输出、缓冲器、上拉电阻也对复用功能有效。
2.1.1
32 引脚产品
(1/2)
功能名称 引脚类型 输入 / 输出 解除复位后
复用功能
P00
ANI17/TI00/TxD1
7-3-2
输入 / 输出 模拟输入
P01
ANI16/TO00/RxD1
8-3-1
功能
端口 0
2 位输入 / 输出端口
能以位为单位指定输入或者输出。
输入端口能通过软件的设定,使用内部
上拉电阻。
P01 的输入能设定为 TTL 输入缓冲。
P00 的输出能设定为 N 沟道漏极开路输
出 (VDD 耐压)。
P00 和 P01 能设定为模拟输入注 1。
P10
8-1-2
输入 / 输出
输入端口
P11
P12
P13
7-1-2
8-1-2
P14
P15
SCK00/SCL00/(TI07)/(TO07)
端口 1
SI00/RxD0/TOOLRxD/SDA00/
8 位输入 / 输出端口
(TI06)/(TO06)
能以位为单位指定输入或者输出。
SO00/TxD0/TOOLTxD//(TI05)/
输入端口能通过软件的设定,使用内部
(TO05)
上拉电阻。
TxD2/SO20/(SDAA0)/(TI04)/
P10、P11 和 P13 ~ P17 的输入能设定
(TO04)
为 TTL 输入缓冲。
RxD2/SI20/SDA20/(SCLA0)/
P10 ~ P15 和 P17 的输出能设定为 N 沟
(TI03)/(TO03)
道漏极开路输出 (VDD 耐压)。
PCLBUZ1/SCK20/SCL20/
(TI02)/(TO02)
P16
8-1-1
TI01/TO01/INTP5/(RxD0)
P17
8-1-2
TI02/TO02/(TxD0)
P20
4-3-1
ANI0/AVREFP
端口 2
P21
ANI1/AVREFM
4 位输入 / 输出端口
P22
ANI2
能以位为单位指定输入或者输出。
P23
ANI3
能设定为模拟输入注 2。
INTP3/SCK11/SCL11
端口 3
TI03/TO03/INTP4/PCLBUZ0
2 位输入 / 输出端口
P30
7-1-1
输入 / 输出
输入 / 输出
P31
模拟输入
输入端口
能以位为单位指定输入或者输出。
输入端口能通过软件的设定,使用内部
上拉电阻。
注
1. 通过端口模式控制寄存器 (PMCxx)将各引脚设定为数字或者模拟 (能以位为单位进行设定)。
2. 通过 A/D 端口配置寄存器 (ADPC)将各引脚设定为数字或者模拟。
备注
能通过设定外围 I/O 重定向寄存器(PIOR),分配上表 ( ) 内的功能。详细内容请参照 “ 图 4-8 外围 I/O 重定向寄存
器 (PIOR)的格式 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
9
R7F0C903-908
第 2 章 引脚功能
(2/2)
功能名称 引脚类型 输入 / 输出 解除复位后
P40
7-1-1
输入 / 输出
输入端口
复用功能
TOOL0
功能
端口 4
1 位输入 / 输出端口
能以位为单位指定输入或者输出。
输入端口能通过软件的设定,使用内部
上拉电阻。
P50
7-1-2
P51
7-1-1
输入 / 输出
输入端口
INTP1/SI11/SDA11
端口 5
INTP2/SO11
2 位输入 / 输出端口
能以位为单位指定输入或者输出。
输入端口能通过软件的设定,使用内部
上拉电阻。
P50 的输出能设定为 N 沟道漏极开路输
出 (VDD 耐压)。
P60
SCLA0
端口 6
P61
SDAA0
3 位输入 / 输出端口
P62
—
能以位为单位指定输入或者输出。
12-1-1
输入 / 输出
输入端口
P60 ~ P62 的输出能设定为 N 沟道漏极
开路输出 (6V 耐压)。
P70
7-1-1
输入 / 输出
输入端口
—
端口 7
1 位输入 / 输出端口
能指定输入或者输出。
输入端口能通过软件的设定,使用内部
上拉电阻。
P120
7-3-1
输入 / 输出
模拟输入
ANI19
P121
2-2-1
输入
输入端口
X1
1 位输入 / 输出端口和 2 位输入专用端口
X2/EXCLK
只有 P120 才能指定输入或者输出。
P122
端口 12
只有 P120 的输入端口能通过软件的设
定,使用内部上拉电阻。
P120 能设定为模拟输入注。
P137
2-1-2
输入
输入端口
INTP0
端口 13
1 位输入专用端口
P147
7-3-1
输入 / 输出
模拟输入
ANI18
端口 14
1 位输入 / 输出端口
能指定输入或者输出。
输入端口能通过软件的设定,使用内部
上拉电阻。
P147 能设定为模拟输入注。
RESET
2-1-1
输入
—
—
外部复位的输入专用引脚
当不使用外部复位时,必须直接或者通
过电阻连接 VDD。
注
通过端口模式控制寄存器 (PMCxx)将各引脚设定为数字或者模拟 (能以位为单位进行设定)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
10
R7F0C903-908
2.2
2.2.1
第 2 章 引脚功能
端口以外的功能
各产品配置的功能
(1/2)
功能名称
32 引脚
ANI0
○
ANI1
○
ANI2
○
ANI3
○
ANI16
○
ANI17
○
ANI18
○
ANI19
○
INTP0
○
INTP1
○
INTP2
○
INTP3
○
INTP4
○
INTP5
○
PCLBUZ0
○
PCLBUZ1
○
REGC
○
RESET
○
RxD0
○
RxD1
○
RxD2
○
TxD0
○
TxD1
○
TxD2
○
SCK00
○
SCK11
○
SCK20
○
SCL00
○
SCL11
○
SCL20
○
SDA00
○
SDA11
○
SDA20
○
SI00
○
SI11
○
SI20
○
SO00
○
R01UH0629CJ0120 Rev.1.20
2019.06.28
11
R7F0C903-908
第 2 章 引脚功能
(2/2)
备注
功能名称
32 引脚
SO11
○
SO20
○
SCLA0
○
SDAA0
○
TI00
○
TI01
○
TI02
○
TI03
○
TI04
(○)
TI05
(○)
TI06
(○)
TI07
(○)
TO00
○
TO01
○
TO02
○
TO03
○
TO04
(○)
TO05
(○)
TO06
(○)
TO07
(○)
X1
○
X2
○
EXCLK
○
VDD
○
AVREFP
○
AVREFM
○
VSS
○
TOOLRxD
○
TOOLTxD
○
TOOL0
○
上表的 ( ○ ) 只有在将外围 I/O 重定向寄存器 (PIOR)的对应位置 “1” 后才能使用。
R01UH0629CJ0120 Rev.1.20
2019.06.28
12
R7F0C903-908
2.2.2
第 2 章 引脚功能
功能说明
(1/2)
功能名称
输入 / 输出
ANI0 ~ ANI3、 ANI16 ~ ANI19
输入
A/D 转换器的模拟输入 (参照 “ 图 10-44 模拟输入引脚的处理 ”)
INTP0 ~ INTP5
输入
外部中断请求输入
功能
有效边沿的指定:上升沿、下降沿、上升和下降的双边沿
PCLBUZ0、 PCLBUZ1
REGC
输出
—
时钟输出 / 蜂鸣器输出
连接用于内部工作的稳压器输出稳定电容器。
必须通过电容器 (0.47 ~ 1μF)连接 VSS。
为了稳定内部电压,必须使用特性好的电容器。
RESET
输入
低电平有效的系统复位输入
当不使用外部复位时,必须直接或者通过电阻连接 VDD。
RxD0 ~ RxD2
输入
串行接口 UART0、 UART1、 UART2 的串行数据输入
TxD0 ~ TxD2
输出
串行接口 UART0、 UART1、 UART2 的串行数据输出
SCK00、 SCK11、 SCK20
SCL00、 SCL11、 SCL20
SDA00、 SDA11、 SDA20
输入 / 输出 串行接口 CSI00、 CSI11、 CSI20 的串行时钟输入 / 输出
输出
串行接口 IIC00、 IIC11、 IIC20 的串行时钟输出
输入 / 输出 串行接口 IIC00、 IIC11、 IIC20 的串行数据输入 / 输出
SI00、 SI11、 SI20
输入
串行接口 CSI00、 CSI11、 CSI20 的串行数据输入
SO00、 SO11、 SO20
输出
串行接口 CSI00、 CSI11、 CSI20 的串行数据输出
SCLA0
输入 / 输出 串行接口 IICA0 的串行时钟输入 / 输出
SDAA0
输入 / 输出 串行接口 IICA0 的串行数据输入 / 输出
TI00 ~ TI07
输入
16 位定时器 00 ~ 07 的外部计数时钟 / 捕捉触发输入
TO00 ~ TO07
输出
16 位定时器 00 ~ 07 的定时器输出
X1、 X2
—
EXCLK
输入
备注
连接用于主系统时钟的谐振器。
主系统时钟的外部时钟输入
能通过设定外围 I/O 重定向寄存器 (PIOR),分配上表 ( ) 内的功能。
R01UH0629CJ0120 Rev.1.20
2019.06.28
13
R7F0C903-908
第 2 章 引脚功能
(2/2)
输入 / 输出
功能名称
VDD
—
功能
全部引脚的正电源
AVREFP
输入
A/D 转换器的正 (+)基准电压输入
AVREFM
输入
A/D 转换器的负 (–)基准电压输入
VSS
—
全部引脚的接地电位
TOOLRxD
输入
用于在闪存编程时连接外部器件的 UART 串行数据接收
TOOLTxD
输出
用于在闪存编程时连接外部器件的 UART 串行数据发送
TOOL0
注意
输入 / 输出 用于闪存编程器 / 调试器的数据输入 / 输出
解除复位时的 P40/TOOL0 和运行模式的关系如下:
表 2-1
解除复位时的 P40/TOOL0 和运行模式的关系
P40/TOOL0
运行模式
V DD
通常运行模式
0V
闪存编程模式
详细内容请参照 “23.4 串行编程方法”。
备注
作为噪声和锁定的对策,必须在 VDD-VSS 之间以最短的距离并且用较粗的布线连接旁路电容器 (0.1μF 左右)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
14
R7F0C903-908
2.3
第 2 章 引脚功能
未使用引脚的处理
各未使用引脚的处理如表 2-2 所示。
备注
配置的引脚因产品而不同。请参照 “1.3 引脚连接图 (俯视图) ” 和 “2.1 端口功能 ”。
表 2-2
引脚名
输入 / 输出
P00、 P01
输入 / 输出
各未使用引脚的处理
未使用时的推荐连接方法
输入时:必须单独通过电阻连接 VDD 或者 VSS。
输出时:必须置为开路。
P10 ~ P17
P20 ~ P23
输入时:必须单独通过电阻连接 VDD 或者 VSS。
输出时:必须置为开路。
P30、 P31
输入时:必须单独通过电阻连接 VDD 或者 VSS。
输出时:必须置为开路。
P40:Port4
输入时:必须单独通过电阻连接 VDD 或者置为开路。
输出时:必须置为开路。
P50、 P51
输入时:必须单独通过电阻连接 VDD 或者 VSS。
输出时:必须置为开路。
P60 ~ P62
输入时:必须单独通过电阻连接 VDD 或者 VSS。
输出时:必须将端口的输出锁存器置 “0” 并且置为开路,或者将端口的输出锁存器置 “1” 并
且单独通过电阻连接 VDD 或者 VSS。
P70
输入时:必须单独通过电阻连接 VDD 或者 VSS。
P120
输出时:必须置为开路。
P121、 P122
输入
必须单独通过电阻连接 VDD 或者 VSS。
P137
输入
必须单独通过电阻连接 VDD 或者 VSS。
P147
输入 / 输出 输入时:必须单独通过电阻连接 VDD 或者 VSS。
输出时:必须置为开路。
RESET
输入
REGC
—
必须直接或者通过电阻连接 VDD。
必须通过电容器 (0.47 ~ 1μF)连接 VSS。
R01UH0629CJ0120 Rev.1.20
2019.06.28
15
R7F0C903-908
2.4
第 2 章 引脚功能
引脚框图
对于 “2.1.1 32 引脚产品 ” 中记载的引脚类型,引脚框图如图 2-1 ~图 2-12 所示。
图 2-1
引脚类型 2-1-1 的引脚框图
RESET
RESET
图 2-2
引脚类型 2-1-2 的引脚框图
གྷ⭞ࣕ㜳
䜞ᙱ㓵
RD
备注
Pmn
复用功能请参照 “2.1 端口功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
16
R7F0C903-908
第 2 章 引脚功能
图 2-3
引脚类型 2-2-1 的引脚框图
ᰬ䫕ਇ⭕⭫䐥
CMC
OSCSEL
RD
གྷ⭞ࣕ㜳
䜞ᙱ㓵
P122/X2/EXCLK/གྷ⭞ࣕ㜳
CMC
EXCLKȽOSCSEL
N-ch
RD
P-ch
གྷ⭞ࣕ㜳
P121/X1/གྷ⭞ࣕ㜳
备注
复用功能请参照 “2.1 端口功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
17
R7F0C903-908
第 2 章 引脚功能
图 2-4
引脚类型 4-3-1 的引脚框图
WRADPC
0φ⁗ᤕ䗉ޛ
1φᮦᆍ䗉ޛ/䗉࠰
ADPC
ADPC3ЊADPC0
䜞ᙱ㓵
䘿ಞ
RD
V DD
WRPORT
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
Pmn
WRPM
N-ch
PMᇺᆎಞ
(PMmn)
VSS
P-ch
A/D䖢ᦘಞ
N-ch
R01UH0629CJ0120 Rev.1.20
2019.06.28
18
R7F0C903-908
第 2 章 引脚功能
图 2-5
引脚类型 7-1-1 的引脚框图
VDD
WRPU
PUᇺᆎಞ
(PUmn)
P-ch
གྷ⭞ࣕ㜳
䜞ᙱ㓵
䘿ಞ
RD
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
WRPM
Pmn
PMᇺᆎಞ
(PMmn)
N-ch
VSS
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
19
R7F0C903-908
第 2 章 引脚功能
图 2-6
引脚类型 7-1-2 的引脚框图
VDD
WRPU
PUᇺᆎಞ
(PUmn)
P-ch
གྷ⭞ࣕ㜳
䜞ᙱ㓵
䘿ಞ
RD
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
WRPM
Pmn
PMᇺᆎಞ
(PMmn)
N-ch
WRPOM
VSS
POMᇺᆎಞ
(POMmn)
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
注意
当通过端口输出模式寄存器 (POMxx)将引脚设定为 N 沟道漏极开路输出时,因为在输出模式中输入缓冲器处于
ON 的状态,所以如果引脚为中间电位,就可能有贯通电流流过。
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
20
R7F0C903-908
第 2 章 引脚功能
图 2-7
引脚类型 7-3-1 的引脚框图
VDD
WRPU
PUᇺᆎಞ
(PUmn)
P-ch
WRPMC
PMCᇺᆎಞ
(PMCmn)
གྷ⭞ࣕ㜳
䜞ᙱ㓵
䘿ಞ
RD
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
Pmn
WRPM
N-ch
PMᇺᆎಞ
(PMmn)
VSS
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
P-ch
A/D䖢ᦘಞ
N-ch
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
21
R7F0C903-908
第 2 章 引脚功能
图 2-8
引脚类型 7-3-2 的引脚框图
WRPU
VDD
PUᇺᆎಞ
(PUmn)
P-ch
WRPMC
PMCᇺᆎಞ
(PMCmn)
གྷ⭞ࣕ㜳
䜞ᙱ㓵
䘿ಞ
RD
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
Pmn
WRPM
N-ch
PMᇺᆎಞ
(PMmn)
WRPOM
VSS
POMᇺᆎಞ
(POMmn)
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
P-ch
A/D䖢ᦘಞ
N-ch
注意
当通过端口输出模式寄存器 (POMxx)将引脚设定为 N 沟道漏极开路输出时,因为在输出模式中输入缓冲器处于
ON 的状态,所以如果引脚为中间电位,就可能有贯通电流流过。
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
22
R7F0C903-908
第 2 章 引脚功能
图 2-9
引脚类型 8-1-1 的引脚框图
VDD
WRPU
PUᇺᆎಞ
(PUmn)
P-ch
WRPIM
PIMᇺᆎಞ
(PIMmn)
གྷ⭞ࣕ㜳
CMOS
䜞ᙱ㓵
䘿ಞ
RD
TTL
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
WRPM
Pmn
PMᇺᆎಞ
(PMmn)
N-ch
VSS
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
注意
如果通过端口输入模式寄存器(PIMxx)将引脚设定为 TTL 输入缓冲并且引脚有高电平输入,就可能因 TTL 输入缓
冲器的结构而有贯通电流流过。为了防止待机模式时的贯通电流,必须给引脚输入低电平。
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
23
R7F0C903-908
第 2 章 引脚功能
图 2-10
引脚类型 8-1-2 的引脚框图
VDD
WRPU
PUᇺᆎಞ
(PUmn)
P-ch
WRPIM
PIMᇺᆎಞ
(PIMmn)
གྷ⭞ࣕ㜳
CMOS
䜞ᙱ㓵
䘿ಞ
RD
TTL
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
WRPM
Pmn
PMᇺᆎಞ
(PMmn)
N-ch
WRPOM
VSS
POMᇺᆎಞ
(POMmn)
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
注意 1. 当通过端口输出模式寄存器 (POMxx)将引脚设定为 N 沟道漏极开路输出时,因为在输出模式中输入缓冲器处于
ON 的状态,所以如果引脚电平为中间电平,就可能有贯通电流流过。
2. 如果通过端口输入模式寄存器 (PIMxx)将引脚设定为 TTL 输入缓冲并且引脚有高电平输入,就可能因 TTL 输入
缓冲器的结构而有贯通电流流过。为了防止待机模式时的贯通电流,必须给引脚输入低电平。
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
24
R7F0C903-908
第 2 章 引脚功能
图 2-11
引脚类型 8-3-1 的引脚框图
WRPU
VDD
PUᇺᆎಞ
(PUmn)
P-ch
WRPIM
PIMᇺᆎಞ
(PIMmn)
WRPMC
PMCᇺᆎಞ
(PMCmn)
གྷ⭞ࣕ㜳
CMOS
䜞ᙱ㓵
䘿ಞ
RD
TTL
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
Pmn
WRPM
N-ch
PMᇺᆎಞ
(PMmn)
VSS
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
P-ch
A/D䖢ᦘಞ
N-ch
注意
如果通过端口输入模式寄存器(PIMxx)将引脚设定为 TTL 输入缓冲并且引脚有高电平输入,就可能因 TTL 输入缓
冲器的结构而有贯通电流流过。为了防止待机模式时的贯通电流,必须给引脚输入低电平。
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
25
R7F0C903-908
第 2 章 引脚功能
图 2-12
引脚类型 12-1-1 的引脚框图
གྷ⭞ࣕ㜳
䘿ಞ
RD
WRPORT
䜞ᙱ㓵
䗉࠰䬷ᆎಞ
(Pmn)
Pmn
N-ch
WRPM
VSS
PMᇺᆎಞ
(PMmn)
གྷ⭞ࣕ㜳
(SAU)
གྷ⭞ࣕ㜳
(SAUԛཌ)
注意
因为在输出模式中输入缓冲器处于 ON 的状态,所以如果引脚为中间电位,就可能有贯通电流流过。
备注 1. 复用功能请参照 “2.1 端口功能 ”。
2. SAU:串行阵列单元
R01UH0629CJ0120 Rev.1.20
2019.06.28
26
R7F0C903-908
第 3 章 CPU 体系结构
第3章
3.1
CPU 体系结构
存储空间
R7F0C903-908 能存取 48K 字节的地址空间。存储器映像如图 3-1 ~图 3-3 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
27
R7F0C903-908
第 3 章 CPU 体系结构
图 3-1
存储器映像 (R7F0C903、 R7F0C906)
03FFFH
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256ᆍ㢸
FFF00H
FFEFFH
䙐⭞ᇺᆎಞ
32ᆍ㢸
FFEE0H
FFEDFH
⌞1Ƚ2
RAM
2Kᆍ㢸
F4000H
F3FFFH
ぁᓅ॰
䮒܅॰
8Kᆍ㢸
F2000H
ؓ⮏॰
F1800H
F17FFH
ᮦᦤ䰠ᆎ
2Kᆍ㢸
F1000H
F0FFFH
01FFFH
⌞5
ؓ⮏॰
F0800H
F07FFH
ᮦᦤᆎ۞
グ䰪
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
010CEH
010CDH
010C4H
010C3H
010C0H
010BFH
01080H
0107FH
F0000H
EFFFFH
⡽р䈹䈋
ᆿޞID䇴ᇐ॰⌞3
10ᆍ㢸
䘿亯ᆍ㢸॰ ⌞3
4ᆍ㢸
CALLT㺞॰
64ᆍ㢸
ᕋሲ㈽1
ੇ䠅㺞॰
128ᆍ㢸
01000H
00FFFH
ぁᓅ॰
ؓ⮏॰
000CEH
000CDH
000C4H
000C3H
000C0H
000BFH
00080H
0007FH
ぁᓅᆎ۞
グ䰪
04000H
03FFFH
00000H
注
⡽р䈹䈋
ᆿޞID䇴ᇐ॰⌞3
10ᆍ㢸
䘿亯ᆍ㢸॰ ⌞3
4ᆍ㢸
ᕋሲ㈽0⌞4
CALLT㺞॰
64ᆍ㢸
ੇ䠅㺞॰
128ᆍ㢸
ԙ⸷䰠ᆎ
16Kᆍ㢸
00000H
1. 在自编程以及改写数据闪存时,不能将堆栈、闪存库使用的数据缓冲器、库函数的参数、向量中断处理的转移目标
和 DMA 传送目标 / 传送源使用的 RAM 地址分配到 FFE20H ~ FFEDFH 的区域。
2. 能从除了通用寄存器以外的 RAM 区执行指令。
3. 不使用引导交换功能时:给 000C0H ~ 000C3H 设定选项字节,并且给 000C4H ~ 000CDH 设定片上调试安全 ID。
使用引导交换功能时: 给 000C0H ~ 000C3H 和 010C0H ~ 010C3H 设定选项字节,并且给 000C4H ~ 000CDH
和 010C4H ~ 010CDH 设定片上调试安全 ID。
4. 能通过安全功能的设定来禁止改写引导簇 0 (参照 “23.7 安全设定 ”)。
5. 在 R7F0C903 产品中为保留区。
注意
在允许产生 RAM 奇偶校验错误复位 (RPERDIS=0)的情况下,当存取数据时,必须对 “ 所用 RAM 区 ” 进行初始
化;当从 RAM 区执行指令时,必须对 “ 所用 RAM 区 +10 字节 ” 的区域进行初始化。通过产生复位,进入允许产生
RAM 奇偶校验错误复位 (RPERDIS=0)的状态。详细内容请参照 “20.3.3 RAM 奇偶校验错误检测功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
28
R7F0C903-908
第 3 章 CPU 体系结构
图 3-2
存储器映像 (R7F0C904、 R7F0C907)
07FFFH
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256ᆍ㢸
FFF00H
FFEFFH
䙐⭞ᇺᆎಞ
32ᆍ㢸
FFEE0H
FFEDFH
⌞1Ƚ2
RAM
2Kᆍ㢸
F8000H
F7FFFH
ぁᓅ॰
䮒܅॰
24Kᆍ㢸
F2000H
ؓ⮏॰
F1800H
F17FFH
ᮦᦤ䰠ᆎ
2Kᆍ㢸
F1000H
F0FFFH
01FFFH
⌞5
ؓ⮏॰
F0800H
F07FFH
ᮦᦤᆎ۞
グ䰪
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
010CEH
010CDH
010C4H
010C3H
010C0H
010BFH
01080H
0107FH
F0000H
EFFFFH
⡽р䈹䈋
ᆿޞID䇴ᇐ॰⌞3
10ᆍ㢸
䘿亯ᆍ㢸॰ ⌞3
4ᆍ㢸
CALLT㺞॰
64ᆍ㢸
ᕋሲ㈽1
ੇ䠅㺞॰
128ᆍ㢸
01000H
00FFFH
ぁᓅ॰
ؓ⮏॰
000CEH
000CDH
000C4H
000C3H
000C0H
000BFH
00080H
0007FH
08000H
07FFFH
ᕋሲ㈽0⌞4
CALLT㺞॰
64ᆍ㢸
00000H
00000H
注
䘿亯ᆍ㢸॰ ⌞3
4ᆍ㢸
ੇ䠅㺞॰
128ᆍ㢸
ԙ⸷䰠ᆎ
32Kᆍ㢸
ぁᓅᆎ۞
グ䰪
⡽р䈹䈋
ᆿޞID䇴ᇐ॰⌞3
10ᆍ㢸
1. 在自编程以及改写数据闪存时,不能将堆栈、闪存库使用的数据缓冲器、库函数的参数、向量中断处理的转移目标
和 DMA 传送目标 / 传送源使用的 RAM 地址分配到 FFE20H ~ FFEDFH 的区域。
2. 能从除了通用寄存器以外的 RAM 区执行指令。
3. 不使用引导交换功能时:给 000C0H ~ 000C3H 设定选项字节,并且给 000C4H ~ 000CDH 设定片上调试安全 ID。
使用引导交换功能时: 给 000C0H ~ 000C3H 和 010C0H ~ 010C3H 设定选项字节,并且给 000C4H ~ 000CDH
和 010C4H ~ 010CDH 设定片上调试安全 ID。
4. 能通过安全功能的设定来禁止改写引导簇 0 (参照 “23.7 安全设定 ”)。
5. 在 R7F0C904 产品中为保留区。
注意
在允许产生 RAM 奇偶校验错误复位 (RPERDIS=0)的情况下,当存取数据时,必须对 “ 所用 RAM 区 ” 进行初始
化;当从 RAM 区执行指令时,必须对 “ 所用 RAM 区 +10 字节 ” 的区域进行初始化。通过产生复位,进入允许产生
RAM 奇偶校验错误复位 (RPERDIS=0)的状态。详细内容请参照 “20.3.3 RAM 奇偶校验错误检测功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
29
R7F0C903-908
第 3 章 CPU 体系结构
图 3-3
存储器映像 (R7F0C905、 R7F0C908)
0BFFFH
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256ᆍ㢸
FFF00H
FFEFFH
䙐⭞ᇺᆎಞ
32ᆍ㢸
FFEE0H
FFEDFH
⌞1Ƚ2
RAM
3Kᆍ㢸
FC000H
FBFFFH
ぁᓅ॰
䮒܅॰
40Kᆍ㢸
F2000H
ؓ⮏॰
F1800H
F17FFH
ᮦᦤ䰠ᆎ
2Kᆍ㢸
F1000H
F0FFFH
01FFFH
⌞5
ؓ⮏॰
F0800H
F07FFH
ᮦᦤᆎ۞
グ䰪
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
010CEH
010CDH
010C4H
010C3H
010C0H
010BFH
01080H
0107FH
F0000H
EFFFFH
⡽р䈹䈋
ᆿޞID䇴ᇐ॰⌞3
10ᆍ㢸
䘿亯ᆍ㢸॰ ⌞3
4ᆍ㢸
CALLT㺞॰
64ᆍ㢸
ᕋሲ㈽1
ੇ䠅㺞॰
128ᆍ㢸
01000H
00FFFH
ぁᓅ॰
ؓ⮏॰
000CEH
000CDH
000C4H
000C3H
000C0H
000BFH
00080H
0007FH
0C000H
0BFFFH
ぁᓅᆎ۞
グ䰪
䘿亯ᆍ㢸॰ ⌞3
4ᆍ㢸
ᕋሲ㈽0⌞4
CALLT㺞॰
64ᆍ㢸
ੇ䠅㺞॰
128ᆍ㢸
ԙ⸷䰠ᆎ
48Kᆍ㢸
00000H
00000H
注
⡽р䈹䈋
ᆿޞID䇴ᇐ॰⌞3
10ᆍ㢸
1. 在自编程以及改写数据闪存时,不能将堆栈、闪存库使用的数据缓冲器、库函数的参数、向量中断处理的转移目标
和 DMA 传送目标 / 传送源使用的 RAM 地址分配到 FFE20H ~ FFEDFH 的区域。另外,FF300H ~ FF309H 的区
域用于各库,因此禁止使用此区域。
2. 能从除了通用寄存器以外的 RAM 区执行指令。
3. 不使用引导交换功能时:给 000C0H ~ 000C3H 设定选项字节,并且给 000C4H ~ 000CDH 设定片上调试安全 ID。
使用引导交换功能时: 给 000C0H ~ 000C3H 和 010C0H ~ 010C3H 设定选项字节,并且给 000C4H ~ 000CDH
和 010C4H ~ 010CDH 设定片上调试安全 ID。
4. 能通过安全功能的设定来禁止改写引导簇 0 (参照 “23.7 安全设定 ”)。
5. 在 R7F0C905 产品中为保留区。
注意
在允许产生 RAM 奇偶校验错误复位 (RPERDIS=0)的情况下,当存取数据时,必须对 “ 所用 RAM 区 ” 进行初始
化;当从 RAM 区执行指令时,必须对 “ 所用 RAM 区 +10 字节 ” 的区域进行初始化。通过产生复位,进入允许产生
RAM 奇偶校验错误复位 (RPERDIS=0)的状态。详细内容请参照 “20.3.3 RAM 奇偶校验错误检测功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
30
R7F0C903-908
备注
第 3 章 CPU 体系结构
闪存分为多个块 (1 块 =1K 字节)。有关地址值和块号,请参照 “ 表 3-1 闪存的地址值和块号的对应 ”。
F17FFH
ඍ01H
F1400H
F13FFH
ඍ00H
1Kᆍ㢸
F1000H
(R7F0C906、 R7F0C907、 R7F0C908 的情况)
闪存的地址值和块号的对应如下所示。
表 3-1
备注
闪存的地址值和块号的对应
地址值
块号
地址值
块号
00000H ~ 003FFH
00H
06000H ~ 063FFH
18H
00400H ~ 007FFH
01H
06400H ~ 067FFH
19H
00800H ~ 00BFFH
02H
06800H ~ 06BFFH
1AH
00C00H ~ 00FFFH
03H
06C00H ~ 06FFFH
1BH
01000H ~ 013FFH
04H
07000H ~ 073FFH
1CH
01400H ~ 017FFH
05H
07400H ~ 077FFH
1DH
01800H ~ 01BFFH
06H
07800H ~ 07BFFH
1EH
01C00H ~ 01FFFH
07H
07C00H ~ 07FFFH
1FH
02000H ~ 023FFH
08H
08000H ~ 083FFH
20H
02400H ~ 027FFH
09H
08400H ~ 087FFH
21H
02800H ~ 02BFFH
0AH
08800H ~ 08BFFH
22H
02C00H ~ 02FFFH
0BH
08C00H ~ 08FFFH
23H
03000H ~ 033FFH
0CH
09000H ~ 093FFH
24H
03400H ~ 037FFH
0DH
09400H ~ 097FFH
25H
03800H ~ 03BFFH
0EH
09800H ~ 09BFFH
26H
03C00H ~ 03FFFH
0FH
09C00H ~ 09FFFH
27H
04000H ~ 043FFH
10H
0A000H ~ 0A3FFH
28H
04400H ~ 047FFH
11H
0A400H ~ 0A7FFH
29H
04800H ~ 04BFFH
12H
0A800H ~ 0ABFFH
2AH
04C00H ~ 04FFFH
13H
0AC00H ~ 0AFFFH
2BH
05000H ~ 053FFH
14H
0B000H ~ 0B3FFH
2CH
05400H ~ 057FFH
15H
0B400H ~ 0B7FFH
2DH
05800H ~ 05BFFH
16H
0B800H ~ 0BBFFH
2EH
05C00H ~ 05FFFH
17H
0BC00H ~ 0BFFFH
2FH
R7F0C903、 R7F0C906:块号 00H ~ 0FH
R7F0C904、 R7F0C907:块号 00H ~ 1FH
R7F0C905、 R7F0C908:块号 00H ~ 2FH
R01UH0629CJ0120 Rev.1.20
2019.06.28
31
R7F0C903-908
3.1.1
第 3 章 CPU 体系结构
内部程序存储空间
内部程序存储空间保存程序和表数据,本产品内置的 ROM (闪存)如下所示。
表 3-2
内部 ROM 容量
内部 ROM
产品
R7F0C903、 R7F0C906
构造
闪存
容量
16384×8 位 (00000H ~ 03FFFH)
R7F0C904、 R7F0C907
32768×8 位 (00000H ~ 07FFFH)
R7F0C905、 R7F0C908
49152×8 位 (00000H ~ 0BFFFH)
内部程序的存储空间分为以下区域。
(1)
向量表区
将 00000H ~ 0007FH 的 128 字节区域保留为向量表区,向量表区保存复位或者产生各中断请求时需要转移
的程序起始地址。另外,因为向量码为 2 字节,所以中断的转移目标地址为 00000H ~ 0FFFFH 的 64K 地址。
偶数地址保存 16 位地址中的低 8 位,奇数地址保存 16 位地址中的高 8 位。
在使用引导交换功能时,还必须给 01000H ~ 0107FH 设定向量表。
R01UH0629CJ0120 Rev.1.20
2019.06.28
32
R7F0C903-908
第 3 章 CPU 体系结构
表 3-3
向量表
向量表地址
中断源
本产品
00000H
RESET、 POR、 LVD、 WDT、 TRAP、 IAW、 RPE
○
00004H
INTWDTI
○
00006H
INTLVI
○
00008H
INTP0
○
0000AH
INTP1
○
0000CH
INTP2
○
0000EH
INTP3
○
00010H
INTP4
○
00012H
INTP5
○
00014H
INTST2/INTCSI20/INTIIC20
○
00016H
INTSR2
○
00018H
INTSRE2
○
0001AH
INTDMA0
○
0001CH
INTDMA1
○
0001EH
INTST0/INTCSI00/INTIIC00
○
00020H
INTSR0
○
00022H
INTSRE0
○
INTTM01H
○
00024H
INTST1
○
00026H
INTSR1/INTCSI11/INTIIC11
○
00028H
INTSRE1
○
INTTM03H
○
0002AH
INTIICA0
○
0002CH
INTTM00
○
0002EH
INTTM01
○
00030H
INTTM02
○
00032H
INTTM03
○
00034H
INTAD
○
00038H
INTIT
○
00042H
INTTM04
○
00044H
INTTM05
○
00046H
INTTM06
○
00048H
INTTM07
○
0005EH
INTMD
○
00062H
INTFL
○
0007EH
BRK
○
R01UH0629CJ0120 Rev.1.20
2019.06.28
33
R7F0C903-908
(2)
第 3 章 CPU 体系结构
CALLT 指令表区
00080H ~ 000BFH 的 64 字节区域能保存 2 字节调用指令 (CALLT)的子程序入口地址。必须给子程序入
口地址设定 00000H ~ 0FFFFH 内的值 (因为地址码为 2 字节)。
在使用引导交换功能时,还必须给 01080H ~ 010BFH 设定 CALLT 指令表。
(3)
选项字节区
000C0H ~ 000C3H 的 4 字节区域用作选项字节区。在使用引导交换功能时,还必须给 010C0H ~ 010C3H
设定选项字节。详细内容请参照 “ 第 22 章 选项字节 ”。
(4)
片上调试安全 ID 设定区
000C4H ~ 000CDH 和 010C4H ~ 010CDH 的 10 字节区域用作片上调试安全 ID 设定区。当不使用引导交换功
能时,必须给 000C4H ~ 000CDH设定 10 字节的片上调试安全 ID ;当使用引导交换功能时,必须给 000C4H ~
000CDH 和 010C4H ~ 010CDH 设定 10 字节的片上调试安全 ID。详细内容请参照 “ 第 24 章 片上调试功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
34
R7F0C903-908
3.1.2
第 3 章 CPU 体系结构
镜像区
本产品将 00000H ~ 0FFFFH 的代码闪存区镜像到 F0000H ~ FFFFFH。
能通过从镜像目标的 F0000H ~ FFFFFH读数据来使用操作数中不持有 ES 寄存器的指令,因此能用短代码读
代码闪存的内容。但是,不能将代码闪存区镜像到 SFR、扩展 SFR、 RAM 区以及保留区。
有关各产品的镜像区,请参照 “3.1 存储空间 ”。
镜像区为只读区,不能从此区域取指令。
例子如下所示。
例 R7F0C908 (闪存为 48K 字节, RAM 为 3K 字节)的情况
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256ᆍ㢸
FFF00H
FFEFFH
FFEE0H
FFEDFH
FC000H
FBFFFH
䙐⭞ᇺᆎಞ
32ᆍ㢸
RAM
3Kᆍ㢸
䮒܅॰
(ૂ02000HЊFBEFFHੂⲺᮦᦤ)
F2000H
F1FFFH
F1800H
F17FFH
F1000H
F0FFFH
F0800H
F07FFH
ׁྸθሼ0E789H䮒ࡦ܅FE789HȾ
ഖ↚θ㜳⭞Ԛφ
MOV A, !E789H
ԙᴵԛсԚφ
MOV ES, #00H
MOV A, ES:!E789H
ؓ⮏॰
ᮦᦤ䰠ᆎ
ؓ⮏॰
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
F0000H
EFFFFH
䮒܅
ؓ⮏॰
0C000H
0BFFFH
ԙ⸷䰠ᆎ
02000H
01FFFH
ԙ⸷䰠ᆎ
00000H
R01UH0629CJ0120 Rev.1.20
2019.06.28
35
R7F0C903-908
3.1.3
第 3 章 CPU 体系结构
内部数据存储空间
本产品内置以下 RAM。
表 3-4
内部 RAM 容量
内部 RAM
产品
R7F0C903、 R7F0C906
2048×8 位 (FF700H ~ FFEFFH)
R7F0C904、 R7F0C907
R7F0C905、 R7F0C908
3072×8 位 (FF300H ~ FFEFFH)
内部 RAM 除了能用作数据区以外,还能作为程序区执行指令 (不能在分配通用寄存器的区域执行指令)。给
内部 RAM 区 FFEE0H ~ FFEFFH 的 32 字节区域分配了以 8 个 8 位寄存器为 1 组的 4 组通用寄存器。
另外,堆栈存储器使用内部 RAM。
注意 1. 不能将分配通用寄存器 (FFEE0H ~ FFEFFH)的空间用于取指令和堆栈区。
2. 在自编程以及改写数据闪存时,不能将堆栈、闪存库使用的数据缓冲器、库函数的参数、向量中断处理的转移目标
和 DMA 传送目标 / 传送源使用的 RAM 地址分配到 FFE20H ~ FFEDFH 的区域。
3.1.4
特殊功能寄存器 (SFR:Special Function Register)的区域
内部外围硬件的特殊功能寄存器(SFR)分配在 FFF00H ~ FFFFFH 的区域(参照 “3.2.4 特殊功能寄存器
(SFR:Special Function Register) ” 的表 3-5)。
不能存取未分配 SFR 的地址。
注意
3.1.5
扩展特殊功能寄存器 (2nd SFR:2nd Special Function Register)的区域
内部外围硬件的扩展特殊功能寄存器 (2nd SFR)分配在 F0000H ~ F07FFH 的区域 (参照 “3.2.5 扩展特
殊功能寄存器 (2nd SFR:2nd Special Function Register) ” 的表 3-6。
在此区域中分配了SFR区(FFF00H~FFFFFH)以外的SFR,但是扩展SFR区的存取指令比SFR区长1字节。
注意
不能存取未分配扩展 SFR 的地址。
R01UH0629CJ0120 Rev.1.20
2019.06.28
36
R7F0C903-908
3.1.6
第 3 章 CPU 体系结构
数据存储器的寻址
所谓寻址,是指定下一次要执行的指令地址以及指令执行操作对象的寄存器或者存储器等地址的方法。
对于指令执行操作对象的存储器的寻址,考虑到可操作性等,本产品提供了丰富的寻址方式。尤其是能根
据特殊功能寄存器(SFR)和通用寄存器等各种功能进行特殊的寻址。数据存储器和寻址的对应如图 3-4 所示。
有关各寻址的详细内容,请参照 “3.4 处理数据地址的寻址 ”。
图 3-4
数据存储器和寻址的对应
FFFFFH
FFF20H
FFF1FH
FFF00H
FFEFFH
FFEE0H
FFEDFH
FFE20H
FFE1FH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256ᆍ㢸
䙐⭞ᇺᆎಞ
32ᆍ㢸
SFRሱ൶
ᇺᆎಞሱ൶
⸣ሱ൶
RAM
2Њ32Kᆍ㢸
䮒܅॰
ᮦᦤ䰠ᆎ
0/4/8Kᆍ㢸
F1000H
F0FFFH
ؓ⮏॰
F0800H
F07FFH
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
ሱ൶
ᇺᆎಞ䰪ሱ൶
F0000H
EFFFFH
ะ൶ሱ൶
ะ൶൶ሱ൶
ؓ⮏॰
ԙ⸷䰠ᆎ
16Њ512Kᆍ㢸
00000H
R01UH0629CJ0120 Rev.1.20
2019.06.28
37
R7F0C903-908
3.2
第 3 章 CPU 体系结构
处理器的寄存器
本产品内置以下处理器的寄存器。
3.2.1
控制寄存器
这是具有控制程序顺序、状态和堆栈存储器等专用功能的寄存器。在控制寄存器中有程序计数器 (PC)、
程序状态字 (PSW)和堆栈指针 (SP)。
(1)
程序计数器 (PC)
程序计数器是保存下一次要执行的程序地址信息的 20 位寄存器。
在通常运行时,根据预取的指令码字节数自动进行递增。在执行转移指令时,设定立即数或者寄存器的内
容。
在产生复位信号后,给程序计数器的低 16 位设定地址 00000H 和 00001H 的复位向量表的值,并且将程序
计数器的高 4 位清 “0000”。
图 3-5
程序计数器的结构
19
0
PC
(2)
程序状态字 (PSW)
程序状态字是由各种标志组成的 8 位寄存器,通过执行指令对这些标识进行置位和清除。
在接受向量中断请求以及执行 PUSH PSW 指令时,将程序状态字的内容保存到堆栈区,而在执行 RETB 指
令、 RETI 指令或者 POP PSW 指令时恢复程序状态字的内容。
在产生复位信号后, PSW 的值变为 “06H”。
图 3-6
程序状态字的结构
7
PSW
(a)
IE
0
Z
RBS1
AC
RBS0
ISP1
ISP0
CY
中断允许标志 (IE)
这是控制 CPU 的中断请求接受运行的标志。
当 IE 位是 “0” 时,为中断禁止 (DI)状态,禁止全部可屏蔽中断。
当 IE 位是 “1” 时,为中断允许 (EI)状态,通过服务优先级标志 (ISP1、 ISP0)、各中断源的中断屏蔽标
志和优先级指定标志进行可屏蔽中断请求的接受控制。
通过执行 DI 指令或者接受中断,将此标志清 “0” ;通过执行 EI 指令,将此标志置 “1”。
(b)
零标志 (Z)
当运算或者比较结果为零或者相等时,将此标志置 “1”。否则,将此标志清 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
38
R7F0C903-908
(c)
第 3 章 CPU 体系结构
寄存器组选择标志 (RBS0、 RBS1)
这是从 4 组寄存器中选择 1 组的 2 位标志。
此标志保存通过执行 SEL RBn 指令所选寄存器组的 2 位信息。
(d)
辅助进位标志 (AC)
当运算结果在 bit3 产生进位或者借位时,将此标志置 “1”。否则,将此标志清 “0”。
(e)
优先级控制标志 (ISP1、 ISP0)
这是管理能接受的可屏蔽向量中断优先级的标志。禁止接受优先级指定标志寄存器 (PRn0L、 PRn0H、
PRn1L、PRn1H、PRn2L、PRn2H、PRn3L)(参照 15.3.3)指定的低于 ISP0 标志值和 ISP1 标志值的向量中断
请求。另外,实际上根据中断允许标志 (IE)的状态控制是否接受向量中断请求。
n=0、 1
备注
(f)
进位标志 (CY)
这是在执行加减运算指令时保存上溢和下溢的标志。另外,在执行循环指令时保存移出的值,并且在执行
位操作指令时用作位累加器。
(3)
堆栈指针 (SP)
这是保存存储器堆栈区起始地址的 16 位寄存器。只有内部 RAM 区才能设定为堆栈区。
图 3-7
堆栈指针的结构
15
SP
SP15 SP14 SP13 SP12 SP11 SP10 SP9
0
SP8
SP7
SP6
SP5
SP4
SP3
SP2
SP1
0
在通过堆栈指针进行堆栈寻址的过程中, SP 在写堆栈存储器 (压栈)时先递减,而在读堆栈存储器 (退
栈)后递增。
注意 1. 在产生复位信号后, SP 的内容变为不定值,因此必须在使用堆栈前对 SP 进行初始化。
2. 不能将分配通用寄存器 (FFEE0H ~ FFEFFH)的空间用于取指令和堆栈区。
3. 在自编程以及改写数据闪存时,不能将堆栈、闪存库使用的数据缓冲器、库函数的参数、向量中断处理的转移目标
和 DMA 传送目标 / 传送源使用的 RAM 地址分配到 FFE20H ~ FFEDFH 的区域。
R01UH0629CJ0120 Rev.1.20
2019.06.28
39
R7F0C903-908
3.2.2
第 3 章 CPU 体系结构
通用寄存器
通用寄存器被映像到数据存储器的特定地址(FFEE0H ~ FFEFFH),由 8 个 8 位寄存器(X、A、C、B、
E、 D、 L、 H)为 1 组的 4 组寄存器构成。
各寄存器除了能分别用作 8 位寄存器以外,还能将 2 个 8 位寄存器成对用作 1 个 16 位寄存器 (AX、 BC、
DE、 HL)。
通过 CPU 控制指令 (SEL RBn)设定执行指令时使用的寄存器组。因为结构为 4 个寄存器组,所以能对通
常处理所用寄存器和中断处理所用寄存器进行寄存器组的切换,建立高效率的程序。
注意
不能将分配通用寄存器 (FFEE0H ~ FFEFFH)的空间用于取指令和堆栈区。
图 3-8
(a)
通用寄存器的结构
功能名称
16փ༺⨼
8փ༺⨼
FFEFFH
H
ᇺᆎಞ㓺0
HL
L
FFEF8H
D
ᇺᆎಞ㓺1
DE
E
FFEF0H
B
ᇺᆎಞ㓺2
BC
C
FFEE8H
A
ᇺᆎಞ㓺3
AX
X
FFEE0H
15
R01UH0629CJ0120 Rev.1.20
2019.06.28
0
7
0
40
R7F0C903-908
3.2.3
第 3 章 CPU 体系结构
ES 寄存器和 CS 寄存器
能通过 ES 寄存器和 CS 寄存器 (寄存器直接寻址)分别指定存取数据和执行转移指令时的高位地址。
ES 寄存器的复位后的初始值为 “0FH”, CS 寄存器的复位后的初始值为 “00H”。
图 3-9
ES
CS
ES/CS 寄存器的结构
7
6
5
4
3
2
1
0
0
0
0
0
ES3
ES2
ES1
ES0
7
6
5
4
3
2
1
0
0
0
0
0
CS3
CS2
CS1
CS0
能通过 16 位地址进行存取的数据区是 F0000H ~ FFFFFH 的 64K 字节空间,但是如果附加 “ES:”,就能扩
展到 00000H ~ FFFFFH 的 1M 字节空间。
图 3-10
!addr16
数据存取区的扩展
→ F 0000HЊFFFFH
ES:!addr16
→ 0HЊFH
0000HЊFFFFH
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256ᆍ㢸
!addr16
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
ES:!addr16
ᮦᦤᆎ۞グ䰪
F0000H
EFFFFH
ԙ⸷䰠ᆎ
00000H
R01UH0629CJ0120 Rev.1.20
2019.06.28
41
R7F0C903-908
3.2.4
第 3 章 CPU 体系结构
特殊功能寄存器 (SFR:Special Function Register)
SFR 是和通用寄存器不同的并且分别具有特殊功能的寄存器。
SFR 空间分配在 FFF00H ~ FFFFFH 的区域。
和通用寄存器相同,能通过运算指令、传送指令和位操作指令来操作 SFR。能操作的位单位 (1、 8、 16)
因各 SFR 而不同。
各操作位单位的指定方法如下所示。
•
1 位操作
给 1 位操作指令的操作数 (sfr.bit)进行以下的记述:
已定义位名的情况:<位名>
没有定义位名的情况:<寄存器名> .<位号>或者<地址> . <位号>
•
8 位操作
给 8 位操作指令的操作数 (sfr)记述汇编程序定义的符号,也能指定地址。
•
16 位操作
给 16 位操作指令的操作数 (sfrp)记述汇编程序定义的符号。当指定地址时,必须记述偶数地址。
SFR 一览表如表 3-5 所示。表中的项目的含义如下所示。
•
符号
•
义为 sfr 变量。在使用汇编程序、调试程序和仿真程序时,能记述为指令的操作数。
R/W
这是表示特殊功能寄存器地址的符号。在汇编程序中为保留字,在编译程序中通过 #pragma sfr 指令定
表示能否读 (Read)写 (Write)相应的特殊功能寄存器。
R/W:可读写
R:只能读
W:只能写
•
可操作的位单位
“ ○ ” 表示能操作的位单位 (1、 8、 16)。 “―” 表示不能操作的位单位。
•
复位后
表示产生复位信号后的各寄存器的状态。
注意
不能存取未分配 SFR 的地址。
备注
有关扩展 SFR (2nd SFR),请参照 “3.2.5 扩展特殊功能寄存器 (2nd SFR:2nd Special Function Register) ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
42
R7F0C903-908
第 3 章 CPU 体系结构
表 3-5
地址
特殊功能寄存器 (SFR)名称
SFR 一览表 (1/4)
符号
R/W
可操作位的范围
1位
8位
16 位
复位后
FFF00H
端口寄存器 0
P0
R/W
○
○
—
00H
FFF01H
端口寄存器 1
P1
R/W
○
○
—
00H
FFF02H
端口寄存器 2
P2
R/W
○
○
—
00H
FFF03H
端口寄存器 3
P3
R/W
○
○
—
00H
FFF04H
端口寄存器 4
P4
R/W
○
○
—
00H
FFF05H
端口寄存器 5
P5
R/W
○
○
—
00H
FFF06H
端口寄存器 6
P6
R/W
○
○
—
00H
FFF07H
端口寄存器 7
P7
R/W
○
○
—
00H
FFF0CH 端口寄存器 12
P12
R/W
○
○
—
不定值
FFF0DH 端口寄存器 13
P13
R/W
○
—
不定值
FFF0EH 端口寄存器 14
P14
R/W
○
○
—
00H
FFF10H
TXD0/
R/W
—
○
○
0000H
—
—
—
○
○
0000H
—
—
R/W
—
—
○
0000H
R/W
—
○
○
00H
—
○
串行数据寄存器 00
SDR00
○
SIO00
FFF11H
FFF12H
—
串行数据寄存器 01
RXD0/
SDR01
R/W
SIO01
FFF13H
FFF18H
—
定时器数据寄存器 00
TDR00
FFF19H
FFF1AH 定时器数据寄存器 01
TDR01L
FFF1BH
TDR01H
FFF1EH 10 位 A/D 转换结果寄存器
ADCR
R
—
—
○
0000H
FFF1FH
ADCRH
R
—
○
—
00H
8 位 A/D 转换结果寄存器
TDR01
00H
FFF20H
端口模式寄存器 0
PM0
R/W
○
○
—
FFH
FFF21H
端口模式寄存器 1
PM1
R/W
○
○
—
FFH
FFF22H
端口模式寄存器 2
PM2
R/W
○
○
—
FFH
FFF23H
端口模式寄存器 3
PM3
R/W
○
○
—
FFH
FFF24H
端口模式寄存器 4
PM4
R/W
○
○
—
FFH
FFF25H
端口模式寄存器 5
PM5
R/W
○
○
—
FFH
FFF26H
端口模式寄存器 6
PM6
R/W
○
○
—
FFH
FFF27H
端口模式寄存器 7
PM7
R/W
○
○
—
FFH
R01UH0629CJ0120 Rev.1.20
2019.06.28
43
R7F0C903-908
第 3 章 CPU 体系结构
表 3-5
地址
特殊功能寄存器 (SFR)名称
SFR 一览表 (2/4)
符号
R/W
可操作位的范围
复位后
1位
8位
16 位
○
○
—
FFH
FFH
FFF2CH 端口模式寄存器 12
PM12
R/W
FFF2EH 端口模式寄存器 14
PM14
R/W
○
○
—
FFF30H
A/D 转换器的模式寄存器 0
ADM0
R/W
○
○
—
00H
FFF31H
模拟输入通道指定寄存器
ADS
R/W
○
○
—
00H
FFF32H
○
○
—
00H
00H
A/D 转换器的模式寄存器 1
ADM1
R/W
FFF38H
外部中断上升沿允许寄存器 0
EGP0
R/W
○
○
—
FFF39H
外部中断下降沿允许寄存器 0
EGN0
R/W
○
○
—
00H
FFF44H
串行数据寄存器 02
TXD1/
R/W
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
R/W
—
○
—
00H
○
○
—
00H
00H
SDR02
SIO10
FFF45H
FFF46H
—
串行数据寄存器 03
RXD1/
SDR03
R/W
SIO11
FFF47H
FFF48H
—
串行数据寄存器 10
TXD2/
SDR10
R/W
SIO20
FFF49H
—
FFF4AH 串行数据寄存器 11
RXD2/
SDR11
R/W
SIO21
FFF4BH
—
FFF50H
IICA 移位寄存器 0
FFF51H
IICA0
IICA 状态寄存器 0
IICS0
R
FFF52H
IICA 标志寄存器 0
IICF0
R/W
○
○
—
FFF64H
定时器数据寄存器 02
TDR02
R/W
—
—
○
0000H
R/W
—
○
○
00H
—
○
FFF65H
FFF66H
定时器数据寄存器 03
FFF67H
FFF68H
TDR03L
TDR03
TDR03H
00H
定时器数据寄存器 04
TDR04
R/W
—
—
○
0000H
FFF6AH 定时器数据寄存器 05
TDR05
R/W
—
—
○
0000H
TDR06
R/W
—
—
○
0000H
TDR07
R/W
—
—
○
0000H
间隔定时器的控制寄存器
ITMC
R/W
—
—
○
0FFFH
—
○
—
00H
C0H
FFF69H
FFF6BH
FFF6CH 定时器数据寄存器 06
FFF6DH
FFF6EH 定时器数据寄存器 07
FFF6FH
FFF90H
FFF91H
FFFA0H
时钟运行模式控制寄存器
CMC
R/W
FFFA1H
时钟运行状态控制寄存器
CSC
R/W
○
○
—
FFFA2H
振荡稳定时间计数器的状态
寄存器
OSTC
R
○
○
—
00H
FFFA3H
振荡稳定时间选择寄存器
OSTS
R/W
—
○
—
07H
FFFA4H
系统时钟控制寄存器
CKC
R/W
○
○
—
00H
R01UH0629CJ0120 Rev.1.20
2019.06.28
44
R7F0C903-908
第 3 章 CPU 体系结构
表 3-5
地址
FFFA5H
特殊功能寄存器 (SFR)名称
SFR 一览表 (3/4)
符号
R/W
可操作位的范围
复位后
1位
8位
16 位
○
○
—
00H
00H
时钟输出选择寄存器 0
CKS0
R/W
FFFA6H
时钟输出选择寄存器 1
CKS1
R/W
○
○
—
FFFA8H
复位控制标志寄存器
RESF
R
—
○
—
不定值注1
FFFA9H
电压检测寄存器
LVIM
R/W
○
○
—
00H 注 1
FFFAAH 电压检测电平寄存器
LVIS
R/W
○
○
—
00H/01H/
81H 注 1
FFFABH 看门狗定时器允许寄存器
WDTE
R/W
—
○
—
1AH/9AH
注2
FFFACH CRC 输入寄存器
CRCIN
R/W
—
○
—
00H
FFFB0H DMA SFR 地址寄存器 0
DSA0
R/W
—
○
—
00H
FFFB1H DMA SFR 地址寄存器 1
DSA1
○
—
00H
FFFB2H DMA RAM 地址寄存器 0
DRA0L
FFFB3H
DRA0H
FFFB4H DMA RAM 地址寄存器 1
DRA1L
FFFB5H
DRA1H
FFFB6H DMA 字节计数寄存器 0
DBC0L
FFFB7H
DBC0H
FFFB8H DMA 字节计数寄存器 1
DBC1L
FFFB9H
FFFBAH DMA 模式控制寄存器 0
R/W
—
R/W
—
○
○
00H
R/W
—
○
○
00H
R/W
—
○
○
00H
R/W
—
○
○
00H
R/W
—
○
○
00H
R/W
—
○
○
00H
R/W
—
○
○
00H
DBC1H
R/W
—
○
○
00H
DMC0
R/W
○
○
—
00H
FFFBBH DMA 模式控制寄存器 1
DMC1
R/W
○
○
—
00H
FFFBCH DMA 运行控制寄存器 0
DRC0
R/W
○
○
—
00H
FFFBDH DMA 运行控制寄存器 1
DRC1
R/W
○
○
—
00H
FFFD1H 中断请求标志寄存器 2H
IF2H
R/W
○
○
○
00H
FFFD5H 中断屏蔽标志寄存器 2H
MK2H
R/W
○
○
○
FFH
注
DRA0
DRA1
DBC0
DBC1
1. 寄存器的复位值因复位源而不同,如下所示。
复位源
寄存器
RESF
LVIM
TRAP
RESET
输入
POR 产生
的复位
清 “0”
RAM 奇偶
执行非法
WDT 产生的
校验错误
指令产生的
复位
产生的复位
复位
置 “1”
保持
WDTRF
保持
置 “1”
RPERF
保持
IAWRF
保持
LVIRF
保持
LVISEN
清 “0”
LVIOMSK
保持
存取非法
存储器产生
的复位
LVD 产生的
复位
保持
保持
置 “1”
保持
置 “1”
置 “1”
保持
LVIF
LVIS
清除 (00H/01H/81H)
2. WDTE 寄存器的复位值取决于选项字节的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
45
R7F0C903-908
第 3 章 CPU 体系结构
表 3-5
地址
特殊功能寄存器 (SFR)名称
SFR 一览表 (4/4)
符号
R/W
可操作位的范围
1位
8位
16 位
复位后
FFFD9H 优先级指定标志寄存器 02H
PR02H
R/W
○
○
○
FFH
FFFDDH 优先级指定标志寄存器 12H
PR12H
R/W
○
○
○
FFH
FFFE0H 中断请求标志寄存器 0
IF0L
R/W
○
○
○
00H
FFFE1H
IF0H
R/W
○
○
FFFE2H 中断请求标志寄存器 1
IF1L
R/W
○
○
FFFE3H
IF1H
R/W
○
○
FFFE4H 中断屏蔽标志寄存器 0
MK0L
R/W
○
○
FFFE5H
MK0H
R/W
○
○
FFFE6H 中断屏蔽标志寄存器 1
MK1L
R/W
○
○
FFFE7H
MK1H
R/W
○
○
FFFE8H 优先级指定标志寄存器 00
PR00L
R/W
○
○
FFFE9H
PR00H
R/W
○
○
FFFEAH 优先级指定标志寄存器 01
PR01L
R/W
○
○
FFFEBH
PR01H
R/W
○
○
FFFECH 优先级指定标志寄存器 10
PR10L
R/W
○
○
FFFEDH
PR10H
R/W
○
○
FFFEEH 优先级指定标志寄存器 11
PR11L
R/W
○
○
FFFEFH
PR11H
R/W
○
○
乘除数据寄存器 A (L)
MDAL
R/W
—
—
○
0000H
乘除数据寄存器 A (H)
MDAH
R/W
—
—
○
0000H
乘除数据寄存器 B (H)
MDBH
R/W
—
—
○
0000H
乘除数据寄存器 B (L)
MDBL
R/W
—
—
○
0000H
PMC
R/W
○
○
—
00H
FFFF0H
IF0
IF1
MK0
MK1
PR00
PR01
PR10
PR11
00H
○
00H
00H
○
FFH
FFH
○
FFH
FFH
○
FFH
FFH
○
FFH
FFH
○
FFH
FFH
○
FFH
FFH
FFFF1H
FFFF2H
FFFF3H
FFFF4H
FFFF5H
FFFF6H
FFFF7H
FFFFEH 处理器模式控制寄存器
备注
有关扩展 SFR (2nd SFR),请参照 “ 表 3-6 扩展 SFR (2nd SFR)一览表 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
46
R7F0C903-908
3.2.5
第 3 章 CPU 体系结构
扩展特殊功能寄存器 (2nd SFR:2nd Special Function Register)
扩展 SFR (2nd SFR)是和通用寄存器不同的并且分别具有特殊功能的寄存器。
扩展 SFR 空间分配在 F0000H ~ F07FFH 的区域。在此区域中分配了 SFR 区 (FFF00H ~ FFFFFH)以外
的 SFR,但是扩展 SFR 区的存取指令比 SFR 区长 1 字节。
和通用寄存器相同,能通过运算指令、传送指令和位操作指令来操作扩展 SFR。能操作的位单位 (1、 8、
16)因各扩展 SFR 而不同。
各操作位单位的指定方法如下所示。
•
1 位操作
给 1 位操作指令的操作数 (!addr16.bit)进行以下的记述:
已定义位名的情况:<位名>
没有定义位名的情况:<寄存器名> .<位号>或者<地址> . <位号>
•
8 位操作
给 8 位操作指令的操作数 (!addr16)记述汇编程序定义的符号,也能指定地址。
•
16 位操作
给 16 位操作指令的操作数 (!addr16)记述汇编程序定义的符号。当指定地址时,必须记述偶数地址。
扩展 SFR 一览表如表 3-6 所示。表中的项目的含义如下所示。
•
符号
这是表示扩展 SFR 地址的符号。在汇编程序中为保留字,在编译程序中通过 #pragma sfr 指令定义为 sfr
•
变量。在使用汇编程序、调试程序和仿真程序时,能记述为指令的操作数。
R/W
表示能否读 (Read)写 (Write)相应的扩展SFR。
R/W:可读写
R:只能读
W:只能写
•
可操作的位单位
“ ○ ” 表示能操作的位单位 (1、 8、 16)。 “—” 表示不能操作的位单位。
•
复位后
表示产生复位信号后的各寄存器的状态。
注意
不能存取未分配扩展 SFR (2nd SFR)的地址。
备注
有关 SFR 区的 SFR,请参照 “3.2.4 特殊功能寄存器 (SFR:Special Function Register) ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
47
R7F0C903-908
第 3 章 CPU 体系结构
表 3-6
地址
扩展 SFR (2nd SFR)一览表 (1/5)
扩展特殊功能寄存器
符号
(2nd SFR)名称
R/W
可操作位的范围
1位
8位
16 位
复位后
F0010H
A/D 转换器的模式寄存器 2
ADM2
R/W
○
○
—
00H
F0011H
转换结果比较上限值设定寄存器 ADUL
R/W
—
○
—
FFH
F0012H
转换结果比较下限值设定寄存器 ADLL
R/W
—
○
—
00H
F0013H
A/D 测试寄存器
R/W
—
○
—
00H
F0030H
○
○
—
00H
00H
ADTES
上拉电阻选择寄存器 0
PU0
R/W
F0031H
上拉电阻选择寄存器 1
PU1
R/W
○
○
—
F0033H
上拉电阻选择寄存器 3
PU3
R/W
○
○
—
00H
F0034H
上拉电阻选择寄存器 4
PU4
R/W
○
○
—
01H
F0035H
○
○
—
00H
00H
上拉电阻选择寄存器 5
PU5
R/W
F0036H
上拉电阻选择寄存器 6
PU6
R/W
○
○
—
F0037H
上拉电阻选择寄存器 7
PU7
R/W
○
○
—
00H
F003CH 上拉电阻选择寄存器 12
PU12
R/W
○
○
—
00H
F003EH
○
○
—
00H
00H
上拉电阻选择寄存器 14
PU14
R/W
F0040H
端口输入模式寄存器 0
PIM0
R/W
○
○
—
F0041H
端口输入模式寄存器 1
PIM1
R/W
○
○
—
00H
F0050H
端口输出模式寄存器 0
POM0
R/W
○
○
—
00H
F0051H
○
○
—
00H
00H
端口输出模式寄存器 1
POM1
R/W
F0055H
端口输出模式寄存器 5
POM5
R/W
○
○
—
F0060H
端口模式控制寄存器 0
PMC0
R/W
○
○
—
FFH
F0061H
端口模式控制寄存器 1
PMC1
R/W
○
○
—
FFH
F006EH
○
○
—
FFH
00H
端口模式控制寄存器 14
PMC14
R/W
F0070H
噪声滤波器允许寄存器 0
NFEN0
R/W
○
○
—
F0071H
噪声滤波器允许寄存器 1
NFEN1
R/W
○
○
—
00H
F0074H
定时器输入选择寄存器 0
TIS0
R/W
—
○
—
00H
F0076H
A/D 端口配置寄存器
ADPC
R/W
—
○
—
00H
F0077H
外围 I/O 重定向寄存器
PIOR
R/W
—
○
—
00H
F0078H
非法存储器存取检测控制寄存器 IAWCTL
R/W
—
○
—
00H
F0090H
数据闪存控制寄存器
DFLCTL
R/W
○
○
—
00H
F00A0H
高速内部振荡器的微调寄存器
HIOTRM
R/W
—
○
—
不定值注1
F00A8H
高速内部振荡器的频率选择
HOCODIV
R/W
—
○
—
不定值注2
寄存器
乘除数据寄存器 C (L)
MDCL
R/W
—
—
○
0000H
F00E2H
F00E0H
乘除数据寄存器 C (H)
MDCH
R/W
—
—
○
0000H
F00E8H
乘除控制寄存器
MDUC
R/W
○
○
—
00H
F00F0H
外围允许寄存器 0
PER0
R/W
○
○
—
00H
F00F3H
副系统时钟提供模式控制
OSMC
R/W
—
○
—
00H
R/W
○
○
—
00H
R
—
○
—
不定值
R
—
○
○
0000H
—
—
寄存器
F00F5H
RAM 奇偶校验错误控制寄存器 RPECTL
F00FEH BCD 校正结果寄存器
BCDADJ
F0100H
SSR00L
串行状态寄存器 00
F0101H
注
SSR00
—
1. 复位值是产品发货时的调整值。
2. 这是选项字节 000C2H 的 FRQSEL2 ~ FRQSEL0 位设定的值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
48
R7F0C903-908
第 3 章 CPU 体系结构
表 3-6
地址
F0102H
扩展特殊功能寄存器
串行状态寄存器 01
串行状态寄存器 02
串行状态寄存器 03
串行标志清除触发寄存器 00
串行标志清除触发寄存器 01
串行标志清除触发寄存器 02
R
SSR03L
SSR03
R
SIR00L
SIR00
R/W
SIR01L
SIR01
R/W
SIR02L
SIR02
R/W
—
串行标志清除触发寄存器 03
F010FH
F0110H
SSR02
—
F010DH
F010EH
SSR02L
—
F010BH
F010CH
R
—
F0109H
F010AH
SSR01
—
F0107H
F0108H
SSR01L
R/W
—
F0105H
F0106H
符号
(2nd SFR)名称
F0103H
F0104H
扩展 SFR (2nd SFR)一览表 (2/5)
SIR03L
SIR03
R/W
—
可操作位的范围
1位
复位后
8位
16 位
—
○
○
0000H
—
—
—
○
○
0000H
—
—
○
0000H
○
0000H
○
0000H
○
0000H
○
0000H
—
○
—
—
—
○
—
—
—
○
—
—
—
○
—
—
—
○
—
—
串行模式寄存器 00
SMR00
R/W
—
—
○
0020H
串行模式寄存器 01
SMR01
R/W
—
—
○
0020H
串行模式寄存器 02
SMR02
R/W
—
—
○
0020H
串行模式寄存器 03
SMR03
R/W
—
—
○
0020H
串行通信运行设定寄存器 00
SCR00
R/W
—
—
○
0087H
串行通信运行设定寄存器 01
SCR01
R/W
—
—
○
0087H
串行通信运行设定寄存器 02
SCR02
R/W
—
—
○
0087H
串行通信运行设定寄存器 03
SCR03
R/W
—
—
○
0087H
串行通道允许状态寄存器 0
SE0L
R
○
○
○
0000H
—
—
○
0000H
○
0000H
○
0000H
F0111H
F0112H
F0113H
F0114H
F0115H
F0116H
F0117H
F0118H
F0119H
F011AH
F011BH
F011CH
F011DH
F011EH
F011FH
F0120H
F0121H
F0122H
—
串行通道开始寄存器 0
F0123H
F0124H
串行通道停止寄存器 0
SS0
R/W
ST0L
ST0
R/W
—
串行时钟选择寄存器 0
F0127H
F0128H
SS0L
—
F0125H
F0126H
SE0
SPS0L
SPS0
R/W
SO0
串行输出允许寄存器 0
SOE0L
○
—
○
○
—
—
—
○
—
—
R/W
—
—
○
0F0FH
R/W
○
○
○
0000H
—
—
—
串行输出寄存器 0
○
—
F0129H
F012AH
F012BH
R01UH0629CJ0120 Rev.1.20
2019.06.28
—
SOE0
49
R7F0C903-908
第 3 章 CPU 体系结构
表 3-6
地址
F0134H
扩展特殊功能寄存器
串行输出电平寄存器 0
串行待机控制寄存器 0
串行状态寄存器 10
串行状态寄存器 11
串行标志清除触发寄存器 10
SSC0
R/W
SSR10L
SSR10
R
SSR11L
SSR11
R
SIR10L
SIR10
R/W
—
串行标志清除触发寄存器 11
F014BH
F0150H
SSC0L
—
F0149H
F014AH
R/W
—
F0143H
F0148H
SOL0
—
F0141H
F0142H
SOL0L
R/W
—
F0139H
F0140H
符号
(2nd SFR)名称
F0135H
F0138H
扩展 SFR (2nd SFR)一览表 (3/5)
SIR11L
SIR11
R/W
—
可操作位的范围
1位
复位后
8位
16 位
—
○
○
0000H
—
—
—
○
○
0000H
—
—
○
0000H
○
0000H
○
0000H
○
0000H
—
○
—
—
—
○
—
—
—
○
—
—
—
○
—
—
串行模式寄存器 10
SMR10
R/W
—
—
○
0020H
串行模式寄存器 11
SMR11
R/W
—
—
○
0020H
串行通信运行设定寄存器 10
SCR10
R/W
—
—
○
0087H
串行通信运行设定寄存器 11
SCR11
R/W
—
—
○
0087H
串行通道允许状态寄存器 1
SE1L
○
0000H
○
0000H
○
0000H
○
0000H
F0151H
F0152H
F0153H
F0158H
F0159H
F015AH
F015BH
F0160H
F0161H
F0162H
串行通道开始寄存器 1
F0163H
F0164H
串行通道停止寄存器 1
SS1L
SS1
R/W
ST1L
ST1
R/W
串行时钟选择寄存器 1
SPS1L
SPS1
SO1
串行输出允许寄存器 1
SOE1L
○
—
○
○
—
—
○
○
—
—
○
—
—
R/W
—
—
○
0303H
R/W
○
○
○
0000H
—
—
○
0000H
R/W
—
串行输出寄存器 1
○
—
—
—
F0167H
F0168H
R
—
F0165H
F0166H
SE1
—
F0169H
F016AH
F016BH
F0174H
—
串行输出电平寄存器 1
F0175H
F0180H
SOE1
SOL1L
SOL1
R/W
—
—
○
—
—
定时器计数寄存器 00
TCR00
R
—
—
○
FFFFH
定时器计数寄存器 01
TCR01
R
—
—
○
FFFFH
定时器计数寄存器 02
TCR02
R
—
—
○
FFFFH
F0181H
F0182H
F0183H
F0184H
F0185H
R01UH0629CJ0120 Rev.1.20
2019.06.28
50
R7F0C903-908
第 3 章 CPU 体系结构
表 3-6
地址
F0186H
扩展 SFR (2nd SFR)一览表 (4/5)
扩展特殊功能寄存器
符号
(2nd SFR)名称
R/W
可操作位的范围
1位
8位
16 位
复位后
定时器计数寄存器 03
TCR03
R
—
—
○
FFFFH
定时器计数寄存器 04
TCR04
R
—
—
○
FFFFH
定时器计数寄存器 05
TCR05
R
—
—
○
FFFFH
定时器计数寄存器 06
TCR06
R
—
—
○
FFFFH
定时器计数寄存器 07
TCR07
R
—
—
○
FFFFH
定时器模式寄存器 00
TMR00
R/W
—
—
○
0000H
定时器模式寄存器 01
TMR01
R/W
—
—
○
0000H
定时器模式寄存器 02
TMR02
R/W
—
—
○
0000H
定时器模式寄存器 03
TMR03
R/W
—
—
○
0000H
定时器模式寄存器 04
TMR04
R/W
—
—
○
0000H
定时器模式寄存器 05
TMR05
R/W
—
—
○
0000H
定时器模式寄存器 06
TMR06
R/W
—
—
○
0000H
定时器模式寄存器 07
TMR07
R/W
—
—
○
0000H
定时器状态寄存器 00
TSR00L
R
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
—
○
○
0000H
—
—
F0187H
F0188H
F0189H
F018AH
F018BH
F018CH
F018DH
F018EH
F018FH
F0190H
F0191H
F0192H
F0193H
F0194H
F0195H
F0196H
F0197H
F0198H
F0199H
F019AH
F019BH
F019CH
F019DH
F019EH
F019FH
F01A0H
F01A1H
F01A2H
—
定时器状态寄存器 01
F01A3H
F01A4H
定时器状态寄存器 02
TSR01
R
TSR02L
TSR02
R
—
定时器状态寄存器 03
F01A7H
F01A8H
TSR01L
—
F01A5H
F01A6H
TSR00
TSR03L
TSR03
R
—
定时器状态寄存器 04
F01A9H
F01AAH 定时器状态寄存器 05
F01ABH
F01ACH 定时器状态寄存器 06
F01ADH
R01UH0629CJ0120 Rev.1.20
2019.06.28
TSR04L
TSR04
R
—
TSR05L
TSR05
R
—
TSR06L
—
TSR06
R
51
R7F0C903-908
第 3 章 CPU 体系结构
表 3-6
扩展 SFR (2nd SFR)一览表 (5/5)
扩展特殊功能寄存器
地址
符号
(2nd SFR)名称
F01AEH 定时器状态寄存器 07
F01AFH
F01B0H
定时器通道允许状态寄存器 0
定时器通道开始寄存器 0
TE0L
TE0
R
TS0L
TS0
R/W
定时器通道停止寄存器 0
TT0L
TT0
TPS0
定时器输出寄存器 0
TO0L
1位
复位后
8位
16 位
—
○
○
0000H
—
—
○
○
○
0000H
—
—
○
0000H
○
0000H
○
○
—
○
○
—
—
R/W
—
—
○
0000H
R/W
—
○
○
0000H
—
—
○
0000H
○
0000H
○
0000H
R/W
—
定时器时钟选择寄存器 0
可操作位的范围
—
—
F01B5H
F01B6H
R
—
F01B3H
F01B4H
TSR07
—
F01B1H
F01B2H
TSR07L
R/W
F01B7H
F01B8H
F01B9H
TO0
—
F01BAH 定时器输出允许寄存器 0
F01BBH
TOE0L
TOE0
R/W
—
F01BCH 定时器输出电平寄存器 0
F01BDH
TOL0L
TOL0
R/W
—
F01BEH 定时器输出模式寄存器 0
F01BFH
TOM0L
TOM0
R/W
—
○
○
—
—
—
○
—
—
—
○
—
—
F0230H
IICA 控制寄存器 00
IICCTL00
R/W
○
○
—
00H
F0231H
IICA 控制寄存器 01
IICCTL01
R/W
○
○
—
00H
F0232H
IICA 低电平宽度设定寄存器 0
IICWL0
R/W
—
○
—
FFH
F0233H
IICA 高电平宽度设定寄存器 0
IICWH0
R/W
—
○
—
FFH
F0234H
从属地址寄存器 0
SVA0
R/W
—
○
—
00H
F02F0H
闪存 CRC 控制寄存器
CRC0CTL
R/W
○
○
—
00H
F02F2H
闪存 CRC 运算结果寄存器
PGCRCL
R/W
—
—
○
0000H
备注
有关 SFR 区的 SFR,请参照 “ 表 3-5 SFR 一览表 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
52
R7F0C903-908
3.3
第 3 章 CPU 体系结构
指令地址的寻址
3.3.1
相对寻址
【功能】
相对寻址将指令码中的位移量 (带符号的补码数据:–128 ~ +127 或者 –32768 ~ +32767)加上程序计数
器 (PC)的值 (下一条指令的起始地址),结果保存在程序计数器 (PC)并且指定转移目标的程序地址。相
对寻址只适用于转移指令。
图 3-11
相对寻址的概要
PC
Ԛ⸷
OP code
DISPLACE
3.3.2
8/16փ
立即寻址
【功能】
立即寻址将指令码中的立即数保存到程序计数器,指定转移目标的程序地址。
在立即寻址中有指定 20 位地址的 CALL !!addr20/BR !!addr20 和指定 16 位地址的 CALL !addr16/BR !addr16。
当指定 16 位地址时,将高 4 位置 “0000”。
图 3-12
CALL !!addr20/BR !!addr20 的例子
Ԛ⸷
PC
OP code
Low Addr.
High Addr.
Seg Addr.
图 3-13
PC
PCS
CALL !addr16/BR !addr16 的例子
PCH
PCL
Ԛ⸷
OP code
0000
Low Addr.
High Addr.
R01UH0629CJ0120 Rev.1.20
2019.06.28
53
R7F0C903-908
3.3.3
第 3 章 CPU 体系结构
表间接寻址
【功能】
表间接寻址通过指令码中的 5 位立即数指定 CALLT 表区 (0080H ~ 00BFH)中的表地址,将此内容和其
后续的地址内容作为 16 位数据保存到程序计数器 (PC),指定程序地址。表间接寻址只适用于 CALLT 指令。
RL78 微控制器只能在 00000H ~ 0FFFFH 的 64K 字节空间内进行转移。
图 3-14
表间接寻址的概要
OP code
High Addr.
00000000
10
0
Low Addr.
㺞൦൶
ᆎ۞ಞ
0000
PC
3.3.4
PCS
PCH
PCL
寄存器直接寻址
【功能】
寄存器直接寻址将指令码指定的当前寄存器组的通用寄存器对 (AX/BC/DE/HL)和 CS 寄存器的内容作为
20 位数据保存到程序计数器 (PC),指定程序地址。寄存器直接寻址只适用于 CALL AX/BC/DE/HL 和 BR AX
指令。
图 3-15
寄存器直接寻址的概要
Ԛ⸷
OP code
rp
CS
PC
R01UH0629CJ0120 Rev.1.20
2019.06.28
PCS
PCH
PCL
54
R7F0C903-908
3.4
第 3 章 CPU 体系结构
处理数据地址的寻址
3.4.1
隐含寻址
【功能】
对于具有累加器等特殊功能寄存器的存取指令,在指令码中没有寄存器指定字段,而通过指令码直接指定。
【操作数形式】
指令能自动使用隐含寻址,因此没有特定的操作数形式。
隐含寻址只适用于 MULU X 指令。
图 3-16
隐含寻址的概要
Ԛ⸷
OP code
Aᇺᆎಞ
ᆎ۞ಞ(ᇺᆎಞ॰)
3.4.2
寄存器寻址
【功能】
寄存器寻址是将通用寄存器作为操作数进行存取的寻址方式。当指定 8 位寄存器时,通过指令码中的 3 位
选择寄存器;当指定 16 位寄存器时,通过指令码中的 2 位选择寄存器。
【操作数形式】
表现形式
记述方法
r
X、 A、 C、 B、 E、 D、 L、 H
rp
AX、 BC、 DE、 HL
图 3-17
OP code
寄存器寻址的概要
ᇺᆎಞ
ᆎ۞ಞ
(ᇺᆎಞ㓺॰ต)
R01UH0629CJ0120 Rev.1.20
2019.06.28
55
R7F0C903-908
3.4.3
第 3 章 CPU 体系结构
直接寻址
【功能】
直接寻址是以指令码中的立即数为操作数地址来直接指定对象地址的寻址方式。
【操作数形式】
表现形式
记述方法
!addr16
标号或者 16 位立即数
(只能指定 F0000H ~ FFFFFH 的空间)
ES:!addr16
标号或者 16 位立即数
(通过 ES 寄存器指定高 4 位地址)
图 3-18
MOV
!addr16 的例子
!addr16, A
FFFFFH
Ś
Ԛ⸷
ሯ䊗ᆎ۞ಞ
OP-code
Ś
Low Addr.
F0000H
High Addr.
Ś⭞16փ൦൶⽰F0000HЊFFFFFH
Ⲻ64Kᆍ㢸॰ตⲺሯ䊗ᆎ۞ಞȾ
(⭞ӄ2nd SFRㅿⲺᆎ)
ᆎ۞ಞ
图 3-19
ES:!addr16 的例子
ES: !addr16
Ś
FFFFFH
ś
Ԛ⸷
ሯ䊗ᆎ۞ಞ
OP-code
ś
Low Addr.
ᆎ۞൦൶Ⲻᇐ
X0000Њ
XFFFFH
Ⲻ॰ต
X0000H
High Addr.
64K॰ตⲺᇐ
ES
Ś⭞ESᇺᆎಞᇐ1Mᆍ㢸グ䰪Ⲻ(ଠѠ64Kᆍ㢸॰ต)
儎4փȾȼ
ś⭞16փ൦൶⽰⭧ŚᇐⲺX0000HЊXFFFFH॰ต
Ⲻሯ䊗ᆎ۞ಞȾ
(⭞ӄ䮒܅॰ԛཌⲺരᇐᮦᦤᆎ)
R01UH0629CJ0120 Rev.1.20
2019.06.28
00000H
ᆎ۞ಞ
56
R7F0C903-908
3.4.4
第 3 章 CPU 体系结构
短直接寻址
【功能】
短直接寻址是通过指令码中的8位数据直接指定对象地址的寻址方式。此寻址方式只适用于FFE20H~FFF1FH
的空间。
【操作数形式】
表现形式
SADDR
记述方法
标号、 FFE20H ~ FFF1FH 的立即数或者 0FE20H ~ 0FF1FH 的立即数
(只能指定 FFE20H ~ FFF1FH 的空间)
SADDRP
标号、 FFE20H ~ FFF1FH 的立即数或者 0FE20H ~ 0FF1FH 的立即数 (只限于偶数地址)
(只能指定 FFE20H ~ FFF1FH 的空间)
图 3-20
短直接寻址的概要
Ԛ⸷
OP code
FFF1FH
saddr
saddr
FFE20H
ᆎ۞ಞ
备注
SADDR 和 SADDRP 能通过 16 位立即数(省略了实际地址的高 4 位)记述 FE20H ~ FF1FH 的值,并且还能通过
20 位立即数记述 FFE20H ~ FFF1FH 的值。
但是,无论用哪种形式,都指定存储器的FFE20H~ FFF1FH 空间地址。
R01UH0629CJ0120 Rev.1.20
2019.06.28
57
R7F0C903-908
3.4.5
第 3 章 CPU 体系结构
SFR 寻址
【功能】
SFR 寻址是通过指令码中的 8 位数据直接指定对象 SFR 地址的寻址方式。此寻址方式只适用于 FFF00H ~
FFFFFH 的空间。
【操作数形式】
表现形式
记述方法
SFR
SFR 寄存器名
SFRP
16 位可操作的 SFR 寄存器名 (偶数地址)
图 3-21
SFR 寻址的概要
Ԛ⸷
FFFFFH
OP code
SFR
FFF00H
SFR
ᆎ۞ಞ
R01UH0629CJ0120 Rev.1.20
2019.06.28
58
R7F0C903-908
3.4.6
第 3 章 CPU 体系结构
寄存器间接寻址
【功能】
寄存器间接寻址以指令码指定的寄存器对的内容为操作数地址,指定对象地址。
【操作数形式】
表现形式
记述方法
—
[DE]、 [HL] (只能指定 F0000H ~ FFFFFH 的空间)
—
ES:[DE]、 ES:[HL] (通过 ES 寄存器指定高 4 位地址)
图 3-22
[DE]、 [HL] 的例子
FFFFFH
[DE]Ƚ[HL]
Ś
Ś
Ԛ⸷
ሯ䊗ᆎ۞ಞ
Ś
Ś
ᆎ۞൦൶Ⲻᇐ
OP-code
rp(HL/DE)
F0000H
Ś⭞ᇺᆎಞሯ⽰F0000HЊFFFFFHⲺ64Kᆍ㢸॰ต
Ⲻሯ䊗ᆎ۞ಞȾ
ᆎ۞ಞ
图 3-23
ES:[DE]、 ES:[HL] 的例子
ES: [DE]ȽES: [HL]
Ś
ś
Ś
ś
FFFFFH
ሯ䊗ᆎ۞ಞ
ś
Ԛ⸷
ś
OP-code
rp(HL/DE)
ᆎ۞൦൶Ⲻᇐ
X0000Њ
XFFFFH
Ⲻ॰ต
X0000H
Ś
Ś 64K॰ตⲺᇐ
ES
Ś⭞ESᇺᆎಞᇐ1Mᆍ㢸グ䰪Ⲻ(ଠѠ64Kᆍ㢸॰ต)
儎4փȾȼ
ś⭞ᇺᆎಞሯ⽰⭧ŚᇐⲺX0000HЊXFFFFH॰ต
Ⲻሯ䊗ᆎ۞ಞȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
00000H
ᆎ۞ಞ
59
R7F0C903-908
3.4.7
第 3 章 CPU 体系结构
基址寻址
【功能】
基址寻址以指令码指定的寄存器对的内容或者 16 位立即数为基址,以 8 位立即数或者 16 位立即数为偏移
量,用基址和偏移量的相加结果指定对象地址。
【操作数形式】
表现形式
记述方法
—
[HL+byte]、 [DE+byte]、 [SP+byte] (只能指定 F0000H ~ FFFFFH 的空间)
—
word[B]、 word[C] (只能指定 F0000H ~ FFFFFH 的空间)
—
word[BC] (只能指定 F0000H ~ FFFFFH 的空间)
—
ES:[HL+byte]、 ES:[DE+byte] (通过 ES 寄存器指定高 4 位地址)
—
ES:word[B]、 ES:word[C] (通过 ES 寄存器指定高 4 位地址)
—
ES:word[BC] (通过 ES 寄存器指定高 4 位地址)
图 3-24
[SP+byte] 的例子
FFFFFH
Ԛ⸷
Ś
ś
ś
byte
Ś
SP
ሯ䊗ᆎ۞ಞ
څ〱䠅
Ḿ॰
Ḿ॰Ⲻᇐ
F0000H
ŚᇐSPθԛḾ॰Ѱሯ䊗Ⱦȼ
䙐䗽śⲺbyteᇐᖉࢃḾ䪾ੇⲺ൦൶(Ḿ京)ᔶခ
Ⲻڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞ(SP+byte)Ⱦ
ᆎ۞ಞ
R01UH0629CJ0120 Rev.1.20
2019.06.28
60
R7F0C903-908
第 3 章 CPU 体系结构
图 3-25
[HL+byte]、 [DE+byte] 的例子
[HL + byte]Ƚ[DE + byte]
Ś
Ś
ś
ś
FFFFFH
Ԛ⸷
OP-code
ś
ሯ䊗ᆎ۞ಞ
ś
څ〱䠅
byte
ሯ䊗Ⲻ
ᮦᦤᮦ㓺
Ś
ᮦ㓺Ⲻ൦൶
rp(HL/DE)
ެԌⲺᮦᦤᮦ㓺
F0000H
⭞ŚⲺᇺᆎಞሯᇐF0000HЊFFFFFHⲺ64Kᆍ㢸グ䰪
Ⲻᮦᦤᮦ㓺(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽śⲺbyteᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
ᆎ۞ಞ
图 3-26
word
Ś
[B]Ƚword
[C]
ś
ś
Ś
Ԛ⸷
OP-code
word[B]、 word[C] 的例子
FFFFFH
ś
Low Addr.
ሯ䊗ᆎ۞ಞ
ś
څ〱䠅
r(B/C)
Ś
ᮦᦤᮦ㓺
word
ᮦ㓺wordⲺ൦൶
F0000H
High Addr.
ŚᇐF0000HЊFFFFFHⲺ64K㢸グ䰪Ⲻᮦᦤᮦ㓺word
(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽śⲺᇺᆎಞᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
ᆎ۞ಞ
图 3-27
word
[BC]
Ś
ś
Ԛ⸷
OP-code
Ś
Low Addr.
word[BC] 的例子
FFFFFH
ሯ䊗ᆎ۞ಞ
ś
ś
rp(BC)
Ś
څ〱䠅
ᮦᦤᮦ㓺
word
ᮦ㓺wordⲺ൦൶
F0000H
High Addr.
ŚᇐF0000HЊFFFFFHⲺ64K㢸グ䰪Ⲻᮦᦤᮦ㓺word
(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽śⲺᇺᆎಞሯᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
ᆎ۞ಞ
R01UH0629CJ0120 Rev.1.20
2019.06.28
61
R7F0C903-908
第 3 章 CPU 体系结构
图 3-28
ES:[HL+byte]、 ES:[DE+byte] 的例子
ES: [HL + byte]ȽES: [DE + byte]
Ś
ś
Ŝ
Ś
ś
Ŝ
XFFFFH
Ԛ⸷
ś
Ŝ
OP-code
byte
Ŝ
ሯ䊗ᆎ۞ಞ
څ〱䠅
ሯ䊗Ⲻ
ᮦᦤᮦ㓺
ś
ᮦ㓺Ⲻ൦൶
rp(HL/DE)
ެԌⲺᮦᦤᮦ㓺
X0000H
X0000H
Ś
Ś 64K॰ตⲺᇐ
ES
Ś⭞ESᇺᆎಞᇐ1Mᆍ㢸グ䰪Ⲻ(ଠѠ64Kᆍ㢸॰ต)
ȼ儎4փȾ
ś⭞ᇺᆎಞሯᇐŚⲺ64Kᆍ㢸グ䰪Ⲻᮦᦤᮦ㓺
(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽ŜⲺbyteᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
图 3-29
ᆎ۞ಞ
ES:word[B]、 ES:word[C] 的例子
ES: word [B]ȽES: word [C]
Ś
ś
Ŝ
Ś
ś
Ŝ
XFFFFH
Ԛ⸷
Ŝ
Ŝ
OP-code
Low Addr.
ś
ሯ䊗ᆎ۞ಞ
څ〱䠅
r(B/C)
ś
High Addr.
ᮦ㓺wordⲺ൦൶
X0000H
X0000H
Ś
ES
Ś 64K॰ตⲺᇐ
Ś⭞ESᇺᆎಞᇐ1Mᆍ㢸グ䰪Ⲻ(ଠѠ64Kᆍ㢸॰ต)儎4փȾ
śᇐŚⲺ64Kᆍ㢸グ䰪Ⲻᮦᦤᮦ㓺word(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽ŜⲺᇺᆎಞᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᮦᦤᮦ㓺
word
ᆎ۞ಞ
62
R7F0C903-908
第 3 章 CPU 体系结构
图 3-30
ES:word[BC] 的例子
ES: word [BC]
Ś
ś
Ŝ
XFFFFH
Ԛ⸷
OP-code
ś
ሯ䊗ᆎ۞ಞ
Ŝ
Ŝ
rp(BC)
Low Addr.
ś
High Addr.
څ〱䠅
ᮦ㓺wordⲺ൦൶
ES
Ś 64K॰ตⲺᇐ
Ś⭞ESᇺᆎಞᇐ1Mᆍ㢸グ䰪Ⲻ(ଠѠ64Kᆍ㢸॰ต)儎4փȾ
śᇐŚⲺ64Kᆍ㢸グ䰪Ⲻᮦᦤᮦ㓺word(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽ŜⲺᇺᆎಞሯᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
X0000H
X0000H
Ś
ᮦᦤᮦ㓺
word
ᆎ۞ಞ
63
R7F0C903-908
3.4.8
第 3 章 CPU 体系结构
基址变址寻址
【功能】
基址变址寻址以指令码指定的寄存器对的内容为基址,以指令码指定的 B 寄存器或者 C 寄存器的内容为偏
移地址,用基址和偏移地址的相加结果指定对象地址。
【操作数形式】
表现形式
记述方法
—
[HL+B]、 [HL+C] (只能指定 F0000H ~ FFFFFH 的空间)
—
ES:[HL+B]、 ES:[HL+C] (通过 ES 寄存器指定高 4 位地址)
图 3-31
[HL+B]、 [HL+C] 的例子
[HL +B]Ƚ[HL+C]
Ś
ś
Ś
ś
FFFFFH
ሯ䊗ᆎ۞ಞ
Ԛ⸷
ś څ〱䠅
r(B/C)
OP-code
Ś
ᮦ㓺Ⲻ൦൶
rp(HL)
ሯ䊗Ⲻ
ᮦᦤᮦ㓺
ެԌⲺᮦᦤᮦ㓺
F0000H
⭞ŚⲺᇺᆎಞሯᇐF0000HЊFFFFFHⲺ64Kᆍ㢸グ䰪
Ⲻᮦᦤᮦ㓺(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽śⲺᇺᆎಞᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
ᆎ۞ಞ
图 3-32
ES:[HL+B]、 ES:[HL+C] 的例子
ES: [HL +B]ȽES: [HL +C]
Ś
ś
Ŝ
Ś
ś
Ŝ
XFFFFH
Ŝ
Ԛ⸷
OP-code
Ŝ
ሯ䊗ᆎ۞ಞ
Ŝ
څ〱䠅
r(B/C)
ś
rp(HL)
ś
ᮦ㓺Ⲻ൦൶
Ś
Ś
ES
X0000H
64K॰ตⲺᇐ
Ś⭞ESᇺᆎಞᇐ1Mᆍ㢸グ䰪Ⲻ(ଠѠ64Kᆍ㢸॰ต)儎4փȾ
ś⭞ᇺᆎಞሯᇐŚⲺ64Kᆍ㢸グ䰪Ⲻᮦᦤᮦ㓺(Ⲻ䎭ခ൦൶)Ⱦ
䙐䗽ŜⲺᇺᆎಞᇐᮦ㓺ѣⲺڅ〱䠅θ⽰ሯ䊗ᆎ۞ಞȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ެԌⲺᮦᦤᮦ㓺
X0000H
byte
ሯ䊗Ⲻ
ᮦᦤᮦ㓺
ᆎ۞ಞ
64
R7F0C903-908
3.4.9
第 3 章 CPU 体系结构
堆栈寻址
【功能】
堆栈寻址是通过堆栈指针 (SP)的值间接指定堆栈区域的寻址方式。当执行 PUSH、 POP、子程序调用和
返回指令时,或者在因产生中断请求而保存 / 恢复寄存器时,自动使用这种寻址方式。
只能将堆栈区设定在内部 RAM 区。
【记述形式】
表现形式
记述方法
—
PUSH PSW AX/BC/DE/HL
POP PSW AX/BC/DE/HL
CALL/CALLT
RET
BRK
RETB
(发生中断请求)
RETI
根据各堆栈的运行,压栈和退栈的数据如图 3-33 ~图 3-38 所示。
图 3-33
PUSH
rp
Ś
ś
Ś
Ԛ⸷
OP-code
ś
PUSH rp 的例子
SP
SP
Ŝ
SP–1
SP–2
rpⲺ儎փᆍ㢸
rpⲺքփᆍ㢸
rp
ŚᇐḾሱ൶Ⱦ
ሼśᇐⲺᇺᆎಞሯⲺ儎փᆍ㢸ؓᆎࡦ൦൶SP–1θᒬъሼ
քփᆍ㢸ؓᆎࡦ൦൶SP–2Ⱦ
ŜሼSPⲺࠅٲ2Ⱦ
ȼ(rp→PSWⲺ߫φሼPSWⲺؓٲᆎࡦSP–1㙂SP–2Ѱ“0”)
R01UH0629CJ0120 Rev.1.20
2019.06.28
Ḿ॰
F0000H
ᆎ۞ಞ
65
R7F0C903-908
第 3 章 CPU 体系结构
图 3-34
POP 的例子
POP rp
Ś
ś
Ś
Ԛ⸷
OP-code
ś
SP+2
SP+1
SP
SP
SP
(SP+1)
(SP)
F0000H
rp
ŚᇐḾሱ൶Ⱦ
ሼśᇐⲺᇺᆎಞሯⲺքփᆍ㢸ؓᆎࡦ൦൶SPθᒬъ
ሼ儎փᆍ㢸ؓᆎࡦ൦൶SP+1Ⱦ
ŜሼSPⲺࣖٲ2Ⱦ
ȼ(rp→PSWⲺ߫φሼ൦൶SP+1ⲺᇯؓᆎࡦPSW)
图 3-35
Ḿ॰
ᆎ۞ಞ
CALL、 CALLT 的例子
CALL
Ś
Ԛ⸷
Ś
SP
OP-code
SP
SP–1
SP–2
SP–3
Ŝ SP–4
00H
PC19ЊPC16
PC15ЊPC8
PC7ЊPC0
ś
F0000H
PC
ŚᇐḾሱ൶ȾPCੇCALLԚⲺсжѠԚ൦൶Ⱦ
śሼPC19Њ16Ⲻؓٲᆎࡦ൦൶SP–2θሼPC15Њ8Ⲻؓٲᆎ
ࡦ൦൶SP–3θᒬъሼPC7Њ0Ⲻؓٲᆎࡦ൦൶SP–4Ⱦ
ŜሼSPⲺࠅٲ4Ⱦ
R01UH0629CJ0120 Rev.1.20
2019.06.28
Ḿ॰
ᆎ۞ಞ
66
R7F0C903-908
第 3 章 CPU 体系结构
图 3-36
RET 的例子
RET
Ś
Ԛ⸷
SP+4
SP+3
SP+2
SP+1
Ŝ
SP
SP
Ś
OP-code
SP
(SP+3)
(SP+2)
(SP+1)
(SP)
ś
F0000H
PC
ŚᇐḾሱ൶Ⱦ
śሼ൦൶SPⲺᇯؓᆎࡦPC7Њ0θሼ൦൶SP+1Ⲻᇯؓᆎ
ࡦPC15Њ8θᒬъሼ൦൶SP+2ⲺᇯؓᆎࡦPC19Њ16Ⱦ
ŜሼSPⲺࣖٲ4Ⱦ
图 3-37
SP
Ś
OP-code
SP
or
ᆎ۞ಞ
中断、 BRK 的例子
ś
PSW
Ԛ⸷
SP–1
SP–2
SP–3
Ŝ SP–4
ѣᯣ
PSW
PC19ЊPC16
PC15ЊPC8
PC7ЊPC0
ś
ŚᇐḾሱ൶ȾPCੇBRKԚᡌ㘻ѣᯣⲺсж
ѠԚ൦൶Ⱦ
śሼPSWⲺؓٲᆎࡦ൦൶SP–1θሼPC19Њ16Ⲻؓٲᆎࡦ
൦൶SP–2θሼPC15Њ8Ⲻؓٲᆎࡦ൦൶SP–3θᒬъሼ
PC7Њ0Ⲻؓٲᆎࡦ൦൶SP–4Ⱦ
ŜሼSPⲺࠅٲ4Ⱦ
Ḿ॰
F0000H
PC
R01UH0629CJ0120 Rev.1.20
2019.06.28
Ḿ॰
ᆎ۞ಞ
67
R7F0C903-908
第 3 章 CPU 体系结构
图 3-38
RETI、 RETB 的例子
RETIȽRETB
Ś
PSW
Ԛ⸷
Ś
SP
OP-code
SP
SP+4
SP+3
SP+2
SP+1
Ŝ
SP
(SP+3)
(SP+2)
(SP+1)
(SP)
ś
F0000H
PC
ŚᇐḾሱ൶Ⱦ
śሼ൦൶SPⲺᇯؓᆎࡦPC7Њ0θሼ൦൶SP+1Ⲻᇯؓᆎ
ࡦPC15Њ8θሼ൦൶SP+2ⲺᇯؓᆎࡦPC19Њ16θᒬъ
ሼ൦൶SP+3ⲺᇯؓᆎࡦPSWȾ
ŜሼSPⲺࣖٲ4Ⱦ
R01UH0629CJ0120 Rev.1.20
2019.06.28
Ḿ॰
ᆎ۞ಞ
68
R7F0C903-908
第 4 章 端口功能
第4章
4.1
端口功能
端口功能
本产品提供数字输入 / 输出端口,能进行各种各样的控制。
除了作为数字输入 / 输出端口的功能以外,还提供各种复用功能。有关复用功能,请参照 “ 第 2 章 引脚功能”。
4.2
端口结构
端口由以下硬件构成。
表 4-1
端口结构
项目
结构
端口模式寄存器 (PM0 ~ PM7、 PM12、 PM14)
控制寄存器
端口寄存器 (P0 ~ P7、 P12 ~ P14)
上拉电阻选择寄存器 (PU0、 PU1、 PU3 ~ PU5、 PU7、 PU12、 PU14)
端口输入模式寄存器 (PIM0、 PIM1)
端口输出模式寄存器 (POM0、 POM1、 POM5)
端口模式控制寄存器 (PMC0、 PMC12、 PMC14)
A/D 端口配置寄存器 (ADPC)
外围 I/O 重定向寄存器 (PIOR)
合计:28 个 (CMOS 输入 / 输出:22 个 (N 沟道漏极开路输入 / 输出 [VDD 耐压 ]:9 个),
端口
CMOS 输入:3 个, N 沟道漏极开路输入 / 输出 [6V 耐压 ]:3 个)
上拉电阻
4.2.1
合计:18 个
端口 0
端口 0 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 0 (PM0)以位为单位指定输入模式或
者输出模式。当将 P00 ~ P07 引脚用作输入端口时,能通过上拉电阻选择寄存器 0 (PU0)以位为单位使用内
部上拉电阻。
能通过设定端口输入模式寄存器 0 (PIM0),以位为单位给 P01、 P03、 P04 引脚的输入指定通常的输入缓
冲或者 TTL 输入缓冲。
能通过端口输出模式寄存器 0 (POM0),以位为单位将 P00 引脚和 P02 ~ P04 引脚的输出设定为 N 沟道
漏极开路输出 (VDD 耐压)。
当将 P00 ~ P03 引脚用作数字输入 / 输出端口时,必须通过端口模式控制寄存器 0 (PMC0)设定为数字输
入 / 输出 (能以位为单位进行设定)。
端口 0 作为复用功能,有定时器的输入 / 输出、A/D 转换器的模拟输入、串行接口的数据输入 / 输出和时钟
的输入 / 输出。
在产生复位信号后,端口 0 变为以下状态:
•
本产品的 P00 引脚和 P01 引脚:模拟输入
R01UH0629CJ0120 Rev.1.20
2019.06.28
69
R7F0C903-908
4.2.2
第 4 章 端口功能
端口 1
端口 1 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 1 (PM1)以位为单位指定输入模式或
者输出模式。当将 P10 ~ P17 引脚用作输入端口时,能通过上拉电阻选择寄存器 1 (PU1)以位为单位使用内
部上拉电阻。
能通过设定端口输入模式寄存器 1 (PIM1),以位为单位给 P10、 P11、 P13 ~ P17 引脚的输入指定通常的
输入缓冲或者 TTL 输入缓冲。
能通过端口输出模式寄存器 1 (POM1),以位为单位将 P10 ~ P15 引脚和 P17 引脚的输出设定为 N 沟道
漏极开路输出 (VDD 耐压)。
端口 1 作为复用功能,有串行接口的数据输入 / 输出、时钟的输入 / 输出、编程 UART 的输入 / 输出、定时
器的输入 / 输出和外部中断的请求输入。
在产生复位信号后,端口 1 变为输入模式。
4.2.3
端口 2
端口 2 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 2 (PM2)以位为单位指定输入模式或
者输出模式。
端口 2 作为复用功能,有 A/D 转换器的模拟输入、 A/D 转换器的正 (+)基准电压输入和 A/D 转换器的负
(–)基准电压输入。
当将 P20/ANI0 ~ P23/ANI3 用作数字输入 / 输出时,必须在通过 A/D 端口配置寄存器 (ADPC)设定为数字
输入 / 输出后从高位开始使用。
当将 P20/ANI0 ~ P23/ANI3 用作模拟输入时,必须在通过 A/D 端口配置寄存器 (ADPC)设定为模拟输入
并且通过 PM2 寄存器设定为输入模式后从低位开始使用。
表 4-2
ADPC 寄存器
数字输入 / 输出的选择
模拟功能的选择
P20/ANI0 ~ P23/ANI3 引脚的功能设定
PM2 寄存器
ADS 寄存器
P20/ANI0 ~ P23/ANI3 引脚
输入模式
—
数字输入
输出模式
—
数字输出
输入模式
输出模式
选择 ANI。
模拟输入 (转换对象)
不选择 ANI。
模拟输入 (非转换对象)
选择 ANI。
禁止设定。
不选择 ANI。
在产生复位信号后, P20/ANI0 ~ P23/ANI3 都变为模拟输入。
4.2.4
端口 3
端口 3 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 3 (PM3)以位为单位指定输入模式或
者输出模式。当将 P30 引脚和 P31 引脚用作输入端口时,能通过上拉电阻选择寄存器 3 (PU3)以位为单位使
用内部上拉电阻。
端口 3 作为复用功能,有外部中断的请求输入、时钟 / 蜂鸣器的输出、定时器的输入 / 输出和 A/D 转换器
的模拟输入。
在产生复位信号后, P30 和 P31 变为输入模式。
R01UH0629CJ0120 Rev.1.20
2019.06.28
70
R7F0C903-908
4.2.5
第 4 章 端口功能
端口 4
端口 4 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 4 (PM4)以位为单位指定输入模式或
者输出模式。当将 P40 引脚用作输入端口时,能通过上拉电阻选择寄存器 4 (PU4)以位为单位使用内部上拉
电阻。
端口 4 作为复用功能,有用于闪存编程器 / 调试器的数据输入 / 输出。
在产生复位信号后,端口 4 变为输入模式。
4.2.6
端口 5
端口 5 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 5 (PM5)以位为单位指定输入模式或
者输出模式。当将 P50 引脚和 P51 引脚用作输入端口时,能通过上拉电阻选择寄存器 5 (PU5)以位为单位使
用内部上拉电阻。
能通过端口输出模式寄存器 5(POM5),以位为单位将 P50 引脚的输出设定为 N 沟道漏极开路输出(VDD
耐压)。
端口 5 作为复用功能,有串行接口的数据输入 / 输出。
在产生复位信号后,端口 5 变为输入模式。
4.2.7
端口 6
端口 6 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 6 (PM6)以位为单位指定输入模式或
者输出模式。
P60 ~ P62 引脚的输出为 N 沟道漏极开路输出 (6V 耐压)。
端口 6 作为复用功能,有串行接口的数据输入 / 输出。
在产生复位信号后,端口 6 变为输入模式。
4.2.8
端口 7
端口 7 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 7 (PM7)以位为单位指定输入模式或
者输出模式。当将端口 7 用作输入端口时,能通过上拉电阻选择寄存器 7(PU7)以位为单位使用内部上拉电阻。
在产生复位信号后,端口 7 变为输入模式。
4.2.9
端口 12
P120 是带输出锁存器的 1 位输入 / 输出端口,能通过端口模式寄存器 12 (PM12)以位为单位指定输入模
式或者输出模式。当将端口 12 用作输入端口时,能通过上拉电阻选择寄存器 12 (PU12)使用内部上拉电阻。
P121 和 P122 是 2 位输入专用端口。
能通过设定端口模式控制寄存器 12 (PMC12)将 P120 引脚指定为数字输入 / 输出或者模拟输入。
端口12作为复用功能,有A/D转换器的模拟输入、主系统时钟的谐振器连接和主系统时钟的外部时钟输入。
在产生复位信号后, P120 变为模拟输入, P121 和 P122 变为输入模式。
4.2.10
端口 13
P137 是 1 位输入专用端口。
P137 固定为输入模式。
端口 13 作为复用功能,有外部中断的请求输入。
R01UH0629CJ0120 Rev.1.20
2019.06.28
71
R7F0C903-908
4.2.11
第 4 章 端口功能
端口 14
端口 14 是带输出锁存器的输入 / 输出端口,能通过端口模式寄存器 14 (PM14)以位为单位指定输入模式
或者输出模式。
能通过设定端口模式控制寄存器 14(PMC14),以位为单位将 P147 引脚指定为数字输入 / 输出或者模拟输
入。
端口 14 作为复用功能,有 A/D 转换器的模拟输入。
在产生复位信号后, P147 变为模拟输入。
R01UH0629CJ0120 Rev.1.20
2019.06.28
72
R7F0C903-908
4.3
第 4 章 端口功能
控制端口功能的寄存器
通过以下寄存器控制端口。
•
端口模式寄存器 (PMxx)
•
端口寄存器 (Pxx)
•
上拉电阻选择寄存器 (PUxx)
•
端口输入模式寄存器 (PIMx)
•
端口输出模式寄存器 (POMx)
•
•
端口模式控制寄存器 (PMCxx)
A/D 端口配置寄存器 (ADPC)
•
外围 I/O 重定向寄存器 (PIOR)
表 4-3
各产品分配的 PMxx、 Pxx、 PUxx、 PIMxx、 POMxx、 PMCxx 寄存器及其位
位名
端口
32
引脚
PMxx
寄存器
Pxx
寄存器
PUxx
寄存器
PIMxx
寄存器
POMxx
寄存器
PMCxx
寄存器
0
PM00
P00
PU00
—
POM00
PMC00
○
1
PM01
P01
PU01
PIM01
—
PMC01
○
0
PM10
P10
PU10
PIM10
POM10
—
○
1
PM11
P11
PU11
PIM11
POM11
—
○
2
PM12
P12
PU12
—
POM12
—
○
3
PM13
P13
PU13
PIM13
POM13
—
○
4
PM14
P14
PU14
PIM14
POM14
—
○
5
PM15
P15
PU15
PIM15
POM15
—
○
6
PM16
P16
PU16
PIM16
—
—
○
7
PM17
P17
PU17
PIM17
POM17
—
○
0
PM20
P20
—
—
—
—
○
1
PM21
P21
—
—
—
—
○
2
PM22
P22
—
—
—
—
○
3
PM23
P23
—
—
—
—
○
0
PM30
P30
PU30
—
—
—
○
1
PM31
P31
PU31
—
—
—
○
端口 4
0
PM40
P40
PU40
—
—
—
○
端口 5
0
PM50
P50
PU50
—
POM50
—
○
1
PM51
P51
PU51
—
—
—
○
0
PM60
P60
—
—
—
—
○
1
PM61
P61
—
—
—
—
○
2
PM62
P62
—
—
—
—
○
端口 7
0
PM70
P70
PU70
—
—
—
○
端口 12
0
PM120
P120
PU120
—
—
PMC120
○
1
—
P121
—
—
—
—
○
2
—
P122
—
—
—
—
○
端口 13
7
—
P137
—
—
—
—
○
端口 14
7
PM147
P147
PU147
—
—
PMC147
○
端口 0
端口 1
端口 2
端口 3
端口 6
R01UH0629CJ0120 Rev.1.20
2019.06.28
73
R7F0C903-908
4.3.1
第 4 章 端口功能
端口模式寄存器 (PMxx)
这是以位为单位设定端口输入 / 输出的寄存器。
通过 1 位或者 8 位存储器操作指令设定端口模式寄存器。
在产生复位信号后,这些寄存器的值变为 “FFH”。
当将端口引脚用作复用功能的引脚时,必须参照 “4.5 使用复用功能时的寄存器设定 ” 进行设定。
图 4-1
端口模式寄存器的格式
符号
7
6
5
4
3
2
1
0
地址
复位后
R/W
PM0
1
1
1
1
1
1
PM01
PM00
FFF20H
FFH
R/W
PM1
PM17
PM16
PM15
PM14
PM13
PM12
PM11
PM10
FFF21H
FFH
R/W
PM2
1
1
1
1
PM23
PM22
PM21
PM20
FFF22H
FFH
R/W
PM3
1
1
1
1
1
1
PM31
PM30
FFF23H
FFH
R/W
PM4
1
1
1
1
1
1
1
PM40
FFF24H
FFH
R/W
PM5
1
1
1
1
1
1
PM51
PM50
FFF25H
FFH
R/W
PM6
1
1
1
1
1
PM62
PM61
PM60
FFF26H
FFH
R/W
PM7
1
1
1
1
1
1
1
PM70
FFF27H
FFH
R/W
PM12
1
1
1
1
1
1
1
PM120
FFF2CH
FFH
R/W
PM14
PM147
1
1
1
1
1
1
1
FFF2EH
FFH
R/W
PMmn
注意
Pmn 引脚的输入 / 输出模式的选择 (m=0 ~ 7、 12、 14, n=0 ~ 7)
0
输出模式 (输出缓冲器 ON)
1
输入模式 (输出缓冲器 OFF)
必须给未分配的位设定初始值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
74
R7F0C903-908
4.3.2
第 4 章 端口功能
端口寄存器 (Pxx)
这是设定端口输出锁存器的值的寄存器。
读时,在输入模式中读引脚电平,而在输出模式中读端口的输出锁存器的值注。
通过 1 位或者 8 位存储器操作指令设定端口寄存器。
在产生复位信号后,这些寄存器的值变为 “00H”。
在将 P20 ~ P23、 P120 和 P147 设定为 A/D 转换器的模拟输入的情况下,如果在输入模式中读端口,读取值就不
注
是引脚电平而总是 “0”。
图 4-2
端口寄存器的格式
符号
7
6
5
4
3
2
1
0
P0
0
0
0
0
0
0
P01
P00
FFF00H 00H(输出锁存器) R/W
P1
P17
P16
P15
P14
P13
P12
P11
P10
FFF01H 00H(输出锁存器) R/W
P2
0
0
0
0
P23
P22
P21
P20
FFF02H 00H(输出锁存器) R/W
P3
0
0
0
0
0
0
P31
P30
FFF03H 00H(输出锁存器) R/W
P4
0
0
0
0
0
0
0
P40
FFF04H 00H(输出锁存器) R/W
P5
0
0
0
0
0
0
P51
P50
FFF05H 00H(输出锁存器) R/W
P6
0
0
0
0
0
P62
P61
P60
FFF06H 00H(输出锁存器) R/W
P7
0
0
0
0
0
0
0
P70
FFF07H 00H(输出锁存器) R/W
P12
0
0
0
0
0
0
0
P120
FFF0CH
不定值
R/W
P13
P137
0
0
0
0
0
0
0
FFF0DH
不定值
R
P14
P147
0
0
0
0
0
0
0
FFF0EH 00H(输出锁存器) R/W
Pmn
输出数据的控制 (输出模式)
输出 “0”。
输入低电平。
1
输出 “1”。
输入高电平。
必须给未分配的位设定初始值。
备注
m=0 ~ 7、 12 ~ 14, n=0 ~ 7
R01UH0629CJ0120 Rev.1.20
2019.06.28
复位后
R/W
输入数据的读取 (输入模式)
0
注意
地址
75
R7F0C903-908
4.3.3
第 4 章 端口功能
上拉电阻选择寄存器 (PUxx)
这是设定是否使用内部上拉电阻的寄存器。只能对通过上拉电阻选择寄存器指定使用内部上拉电阻的引脚
并且设定为通常的输出模式 (POMmn=0)和输入模式 (PMmn=1)的位,以位为单位使用内部上拉电阻。对
于设定为输出模式的位,与上拉电阻选择寄存器的设定无关,不连接内部上拉电阻。当用作复用功能的输出引
脚或者设定为模拟输入 (PMC=1、 ADPC=1)时也相同。
通过 1 位或者 8 位存储器操作指令设定上拉电阻选择寄存器。
在产生复位信号后,这些寄存器的值变为 “00H” (只有 PU4 为 “01H”)。
注意
当是带 PIMn 寄存器的端口并且将信号从不同电位的设备输入到 TTL 缓冲器时,必须将 PUmn 位置 “0” 并且通过外
部电阻将此引脚上拉到不同电位设备的电源。
图 4-3
上拉电阻选择寄存器的格式
符号
7
6
5
4
3
2
1
0
地址
复位后
R/W
PU0
0
0
0
0
0
0
PU01
PU00
F0030H
00H
R/W
PU1
PU17
PU16
PU15
PU14
PU13
PU12
PU11
PU10
F0031H
00H
R/W
PU3
0
0
0
0
0
0
PU31
PU30
F0033H
00H
R/W
PU4
0
0
0
0
0
0
0
PU40
F0034H
01H
R/W
PU5
0
0
0
0
0
0
PU51
PU50
F0035H
00H
R/W
PU7
0
0
0
0
0
0
0
PU70
F0037H
00H
R/W
PU12
0
0
0
0
0
0
0
PU120
F003CH
00H
R/W
PU14
PU147
0
0
0
0
0
0
0
F003EH
00H
R/W
PUmn
注意
Pmn 引脚的内部上拉电阻的选择 (m=0、 1、 3 ~ 5、 7、 12、 14, n=0 ~ 7)
0
不连接内部上拉电阻。
1
连接内部上拉电阻。
必须给未分配的位设定初始值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
76
R7F0C903-908
4.3.4
第 4 章 端口功能
端口输入模式寄存器 (PIMxx)
这是以位为单位设定输入缓冲器的寄存器。
在和不同电位的外部设备进行串行通信时,能选择 TTL 输入缓冲器。
通过 1 位或者 8 位存储器操作指令设定端口输入模式寄存器。
在产生复位信号后,这些寄存器的值变为 “00H”。
图 4-4
端口输入模式寄存器的格式
符号
7
6
5
4
3
2
1
0
地址
复位后
R/W
PIM0
0
0
0
0
0
0
0
PIM00
F0040H
00H
R/W
PIM1
PIM17
PIM16
PIM15
PIM14
PIM13
0
PIM11
PIM10
F0041H
00H
R/W
PIMmn
注意
Pmn 引脚的输入缓冲器的选择 (m=0、 1, n=0 ~ 7)
0
通常的输入缓冲器
1
TTL 输入缓冲器
必须给未分配的位设定初始值。
4.3.5
端口输出模式寄存器 (POMxx)
这是以位为单位设定输出模式的寄存器。
在和不同电位的外部设备进行串行通信以及和同电位的外部设备进行简易 I2C 通信时,能给 SDA00、
SDA11、 SDA20 引脚选择 N 沟道漏极开路输出 (VDD 耐压)模式。
POMxx 寄存器和 PUxx 寄存器一起设定是否使用内部上拉电阻。
通过 1 位或者 8 位存储器操作指令设定端口输出模式寄存器。
在产生复位信号后,这些寄存器的值变为 “00H”。
注意
对于设定 N 沟道漏极开路输出 (VDD 耐压)模式的位,不连接内部上拉电阻。
图 4-5
端口输出模式寄存器的格式
符号
7
6
5
4
3
2
1
0
地址
复位后
R/W
POM0
0
0
0
0
0
0
0
POM00
F0050H
00H
R/W
POM1
POM17
0
POM15
POM14
POM13
POM12
POM11
POM10
F0051H
00H
R/W
POM5
0
0
0
0
0
0
0
POM50
F0055H
00H
R/W
POMmn
注意
Pmn 引脚的输出模式的选择 (m=0、 1、 5, n=0 ~ 7)
0
通常的输出模式
1
N 沟道漏极开路输出 (VDD 耐压)模式
必须给未分配的位设定初始值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
77
R7F0C903-908
4.3.6
第 4 章 端口功能
端口模式控制寄存器 (PMCxx)
这是以位为单位设定数字输入 / 输出或者模拟输入的寄存器。
通过 1 位或者 8 位存储器操作指令设定端口模式控制寄存器。
在产生复位信号后,这些寄存器的值变为 “FFH”。
图 4-6
端口模式控制寄存器的格式
符号
7
6
5
4
3
2
1
0
地址
复位后
R/W
PMC0
1
1
1
1
1
1
PMC01
PMC00
F0060H
FFH
R/W
PMC12
1
1
1
1
1
1
1
PMC120 F006CH
FFH
R/W
1
1
1
1
1
1
FFH
R/W
PMC14 PMC147
PMCmn
1
F006EH
Pmn 引脚的数字输入 / 输出或者模拟输入的选择 (m=0、 12、 14, n=0 ~ 7)
0
数字输入 / 输出 (模拟输入以外的复用功能)
1
模拟输入
注意 1. 对于由 PMCxx 寄存器设定为模拟输入的端口,必须通过端口模式寄存器 0、12、14(PM0、PM12、PM14)将其
设定为输入模式。
2. 对于由 PMCxx 寄存器设定为数字输入 / 输出的引脚,不能通过模拟输入通道指定寄存器 (ADS)进行设定。
3. 必须给未配置的位设定初始值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
78
R7F0C903-908
4.3.7
第 4 章 端口功能
A/D 端口配置寄存器 (ADPC)
这是将 P20/ANI0 ~ P23/ANI3 引脚切换为端口的数字输入 / 输出或者 A/D 转换器的模拟输入的寄存器。
通过 8 位存储器操作指令设定 ADPC 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 4-7
地址:F0076H
复位后:00H
A/D 端口配置寄存器 (ADPC)的格式
R/W
符号
7
6
5
4
3
2
1
0
ADPC
0
0
0
0
ADPC3
ADPC2
ADPC1
ADPC0
ADPC3
ADPC2
ADPC1
ADPC0
0
0
0
0
0
0
模拟输入 (A) / 数字输入 / 输出 (D)的切换
ANI3/P23
ANI2/P22
ANI1/P21
ANI0/P20
0
A
A
A
A
0
1
D
D
D
D
0
1
0
D
D
D
A
0
0
1
1
D
D
A
A
0
1
0
0
D
A
A
A
0
1
0
1
A
A
A
A
注意 1. 对于由 ADPC 寄存器设定为模拟输入的端口,必须通过端口模式寄存器 2 (PM2)将其设定为输入模式。
2. 对于由 ADPC 寄存器设定为数字输入 / 输出的引脚,不能通过模拟输入通道指定寄存器 (ADS)进行设定。
3. 当使用 AVREFP 和 AVREFM 时,必须将 ANI0 和 ANI1 设定为模拟输入并且将端口模式寄存器设定为输入模式。
R01UH0629CJ0120 Rev.1.20
2019.06.28
79
R7F0C903-908
4.3.8
第 4 章 端口功能
外围 I/O 重定向寄存器 (PIOR)
这是设定允许或者禁止外围 I/O 重定向功能的寄存器。
外围 I/O 重定向功能切换被分配了复用功能的端口。
必须通过 PIOR 寄存器将端口分配给重定向功能,然后置为允许重定向功能的运行。
在允许该功能的运行前,能更改重定向的设定。
通过 8 位存储器操作指令设定 PIOR 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 4-8
地址:F0077H
复位后:00H
外围 I/O 重定向寄存器 (PIOR)的格式
R/W
符号
7
6
5
4
3
2
1
0
PIOR
0
0
0
0
0
PIOR2
PIOR1
PIOR0
32 引脚
位
PIOR2
PIOR1
PIOR0
备注
设定值
复用功能
0
1
SCLA0
P60
P14
SDAA0
P61
P13
TxD2
P13
—
RxD2
P14
—
SCL20
P15
—
SDA20
P14
—
SI20
P14
—
SO20
P13
—
SCK20
P15
—
TxD0
P12
P17
RxD0
P11
P16
SCL00
P10
—
SDA00
P11
—
SI00
P11
—
SO00
P12
—
SCK00
P10
—
TI02/TO02
P17
P15
TI03/TO03
P31
P14
TI04/TO04
—
P13
TI05/TO05
—
P12
TI06/TO06
—
P11
TI07/TO07
—
P10
—:不能用作复用功能。
R01UH0629CJ0120 Rev.1.20
2019.06.28
80
R7F0C903-908
4.4
第 4 章 端口功能
端口功能的运行
如下所示,端口的运行因输入 / 输出模式的设定而不同。
4.4.1
(1)
输入 / 输出端口的写操作
输出模式的情况
能通过传送指令给输出锁存器写值,并且输出锁存器的内容从引脚输出。
保持被写在输出锁存器中的数据,直到下一次写数据为止。
在产生复位信号时清除输出锁存器的数据。
(2)
输入模式的情况
通过传送指令,给输出锁存器写值,但是因输出缓冲器处于 OFF 状态而引脚的状态不发生变化。因此,能
对同时具有输入和输出功能的端口进行字节写。
保持被写在输出锁存器中的数据,直到下一次写数据为止。
在产生复位信号时清除输出锁存器的数据。
4.4.2
(1)
输入 / 输出端口的读操作
输出模式的情况
能通过传送指令读输出锁存器的内容,但是输出锁存器的内容不发生变化。
(2)
输入模式的情况
能通过传送指令读引脚状态,但是输出锁存器的内容不发生变化。
4.4.3
(1)
输入 / 输出端口的运算
输出模式的情况
对输出锁存器的内容进行运算,将结果写到输出锁存器,并且输出锁存器的内容从引脚输出。
保持被写在输出锁存器中的数据,直到下一次写数据为止。
在产生复位信号时清除输出锁存器的数据。
(2)
输入模式的情况
读引脚电平并且对其内容进行运算,将运算结果写到输出锁存器,但是因输出缓冲器处于 OFF 状态而引脚
的状态不发生变化。因此,能对同时具有输入和输出功能的端口进行字节写。
在产生复位信号时清除输出锁存器的数据。
R01UH0629CJ0120 Rev.1.20
2019.06.28
81
R7F0C903-908
4.4.4
第 4 章 端口功能
通过输入 / 输出缓冲器进行的不同电位 (1.8V、 2.5V、 3V)的对应
能通过端口输入模式寄存器 (PIMxx)和端口输出模式寄存器 (POMxx)切换输入 / 输出缓冲器,连接不
同电位 (1.8V、 2.5V、 3V)的外部设备。
当从不同电位 (1.8V、 2.5V、 3V)的外部设备输入时,通过按位设定端口输入模式寄存器 0、 1 (PIM0、
PIM1),进行通常的输入 (CMOS)和 TTL 输入缓冲的切换。
当输出到不同电位 (1.8V、 2.5V、 3V)的外部设备时,通过按位设定端口输出模式寄存器 0、 1 (POM0、
POM1),进行通常的输出 (CMOS)和 N 沟道漏极开路 (VDD 耐压)的切换。
以下说明有关串行接口的连接。
(1)
将 UART0 ~ UART2、 CSI00、 CSI20 功能的输入端口用于 TTL 输入缓冲器时的设定步骤
UART0 的情况:P11 (P16)
UART1 的情况:P03
UART2 的情况:P14
CSI00 的情况: P10、 P11 (P16)
CSI20 的情况: P14、 P15
备注
能通过设定外围 I/O 重定向寄存器 (PIOR),分配 ( ) 内的功能。
① 通过外部电阻将使用的输入引脚上拉到对象设备的电源 (不能使用内部上拉电阻)。
② 将 PIM0 寄存器和 PIM1 寄存器的对应位置 “1”,切换到 TTL 输入缓冲器。 VIH 和 VIL 请参照选择为 TTL
输入缓冲器时的 DC特性。
③ 允许串行阵列单元的运行,设定为 UART/CSI 模式。
(2)
将 UART0 ~ UART2、 CSI00、 CSI20 功能的输出端口用于 N 沟道漏极开路输出模式时的设定步骤
UART0 的情况:P12 (P17)
UART1 的情况:P02
UART2 的情况:P13
CSI00 的情况: P10、 P12 (P17)
CSI20 的情况: P13、 P15
备注
能通过设定外围 I/O 重定向寄存器 (PIOR),分配 ( ) 内的功能。
① 通过外部电阻将使用的输入引脚上拉到对象设备的电源 (不能使用内部上拉电阻)。
② 在解除复位后,端口模式为输入模式 (Hi-Z)。
③ 将对应的端口输出锁存器置 “1”。
④ 将 POM0 寄存器和 POM1 寄存器的对应位置 “1”,设定为 N 沟道漏极开路输出 (VDD 耐压)模式。
⑤ 允许串行阵列单元的运行,设定为 UART/CSI 模式。
⑥ 将 PM0 寄存器和 PM1寄存器的对应位设定为输出模式。此时,因为输出数据是高电平,所以引脚处于
Hi-Z 状态。
R01UH0629CJ0120 Rev.1.20
2019.06.28
82
R7F0C903-908
(3)
第 4 章 端口功能
将 IIC00、 IIC20 功能的输入 / 输出端口用于不同电位 (1.8V、 2.5V、 3V)时的设定步骤
IIC00 的情况: P10、 P11
IIC20 的情况: P14、 P15
备注
能通过设定外围 I/O 重定向寄存器 (PIOR),分配 ( ) 内的功能。
① 通过外部电阻将使用的输入引脚上拉到对象设备的电源 (不能使用内部上拉电阻)。
② 在解除复位后,端口模式为输入模式 (Hi-Z)。
③ 将对应的端口输出锁存器置 “1”。
④ 将 POM0 寄存器和 POM1 寄存器的对应位置 “1”,设定为 N 沟道漏极开路输出 (VDD 耐压)模式。
⑤ 将 PIM0 寄存器和 PIM1 寄存器的对应位置 “1”,切换到 TTL 输入缓冲器。 VIH 和 VIL 请参照选择为 TTL
输入缓冲器时的 DC特性。
⑥ 允许串行阵列单元的运行,设定为简易 I2C模式。
⑦ 将 PM0 寄存器和 PM1 寄存器的对应位设定为输出模式 (能在输出模式中进行数据的输入 / 输出)。此
时,因为输出数据是高电平,所以引脚处于 Hi-Z状态。
R01UH0629CJ0120 Rev.1.20
2019.06.28
83
R7F0C903-908
4.5
第 4 章 端口功能
使用复用功能时的寄存器设定
4.5.1
使用复用功能时的基本思想
首先,必须对与模拟输入复用的引脚,通过 ADPC 寄存器或者端口模式控制寄存器 (PMCxx)设定是用作
模拟输入还是用作数字输入 / 输出。
用作数字输入 / 输出的引脚输出电路的基本结构如图 4-9 所示。与端口的输出锁存器输出复用的 SAU 功能
的输出被输入到 AND 门, AND 门的输出被输入到 OR 门, OR 门的其他输入连接复用的非 SAU 功能 (TAU、
时钟 / 蜂鸣器的输出、 IICA 等)的输出。当将这样的引脚用作端口功能或者复用功能时,不使用的复用功能不
能影响要使用的功能的输出。此时的设定基本思想如表 4-4 所示。
图 4-9
引脚的输出电路的基本结构
WRPORT
VDD
䗉࠰䬷ᆎಞ
(Pmn)
P-ch
WRPM
Pmn/གྷ⭞ࣕ㜳
䜞ᙱ㓵
PMᇺᆎಞ
(PMmn)
注
N-ch
WRPOM
VSS
POMᇺᆎಞ
(POMmn)
⌞1
གྷ⭞ࣕ㜳
(SAU)
⌞2
གྷ⭞ࣕ㜳
(SAUԛཌ)
⌞3
䗉⭫ޛ䐥
1. 当没有 POM 寄存器时,此信号为低电平 (0)。
2. 当没有复用功能时,此信号为高电平 (1)。
3. 当没有复用功能时,此信号为低电平 (0)。
备注
m:端口号 (m=0 ~ 7、 12 ~ 14)、 n:位号 (n=0 ~ 7)
表 4-4
使用的引脚输出功能
设定的基本思想
不使用的复用功能的输出设定
端口输出功能
SAU 的输出功能
SAU 以外的输出功能
—
高电平输出 (1)
低电平输出 (0)
SAU 的输出功能
高电平 (1)
—
低电平输出 (0)
SAU 以外的输出功能
低电平 (0)
高电平输出 (1)
低电平输出 (0)注
端口输出功能
注
因为 1 个引脚有可能复用多个 SAU 以外的输出功能,所以需要将不使用的复用功能的输出置为低电平 (0)。有关
具体的设定方法,请参照 “4.5.2 不使用输出功能的复用功能的寄存器设定 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
84
R7F0C903-908
4.5.2
第 4 章 端口功能
不使用输出功能的复用功能的寄存器设定
当不使用引脚复用功能的输出时,必须进行以下的设定。如果为外围 I/O 重定向功能的对象,就能通过设
定外围 I/O 重定向寄存器 (PIOR),将输出切换到其他引脚。从而能使用分配给对象引脚的端口功能和其他复
用功能。
(1)
SOp=1/TxDq=1 (不使用 SAU 的串行输出 (SOp/TxDq)时的设定)
当只将 SAU 用作串行输入等而不使用串行输出 (SOp/TxDq)时,必须将与不使用的输出对应的串行输出
允许寄存器 m (SOEm)的位置 “0” (禁止输出),并且将串行输出寄存器 m (SOm)的 SOmn 位置 “1” (高
电平)。这是和初始状态相同的设定。
(2)
SCKp=1/SDAr=1/SCLr=1 (不使用 SAU 的通道 n 时的设定)
当不使用 SAU 时,必须将串行通道允许状态寄存器 m (SEm)的 bit n (SEmn)置 “0” (运行停止状态),
将与不使用的输出对应的串行输出允许寄存器 m (SOEm)的位置 “0” (禁止输出),并且将串行输出寄存器 m
(SOm)的 SOmn 位和 CKOmn 位置 “1” (高电平)。这是和初始状态相同的设定。
(3)
TOmn=0 (不使用 TAU 通道 n 的输出时的设定)
当不使用 TAU 的 TOmn 输出时,必须将与不使用的输出对应的定时器输出允许寄存器 0 (TOE0)的位置
“0” (禁止输出),并且将定时器输出寄存器 0 (TO0)的位置 “0” (低电平)。这是和初始状态相同的设定。
(4)
SDAAn=0/SCLAn=0 (不使用 IICA 时的设定)
当不使用 IICA 时,必须将 IICA 控制寄存器 n0 (IICCTLn0)的 IICEn 位置 “0” (停止运行)。这是和初始
状态相同的设定。
(5)
PCLBUZn=0 (不使用时钟输出 / 蜂鸣器输出时的设定)
当不使用时钟输出 / 蜂鸣器输出时,必须将时钟输出选择寄存器 n (CKSn)的 PCLOEn 位置 “0” (禁止输
出)。这是和初始状态相同的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
85
R7F0C903-908
4.5.3
第 4 章 端口功能
使用的端口功能和复用功能的寄存器设定例子
使用的端口功能和复用功能的寄存器设定例子如表 4-5 所示。必须按照表 4-5 所示的内容设定要控制端口
功能的寄存器。另外,有关表 4-5 中的记载,请参照以下备注。
备注
—:
对象外
×:
忽略
PIORx:
外围 I/O 重定向寄存器
POMxx: 端口输出模式寄存器
PMCxx: 端口模式控制寄存器
PMxx:
端口模式寄存器
Pxx:
端口的输出锁存器
能通过设定外围 I/O 重定向寄存器 (PIOR),分配 ( ) 内的功能。
表 4-5
引脚
名
P00
使用的功能
功能名称
P00
ANI17
TI00
P01
输入 / 输出
复用功能的输出
PIORx
POMxx PMCxx
32
引脚
PMxx
Pxx
SAU 的
输出功能
SAU 以外
×
―
TxD1=1
―
―
○
输入
―
×
0
1
×
输出
―
0
0
0
0/1
N 沟道漏极
开路输出
―
1
0
0
0/1
模拟输入
―
×
1
1
×
×
○
输入
―
×
0
1
×
×
―
○
TxD1
输出
―
0/1
0
0
1
×
―
○
P01
输入
―
―
0
1
×
×
×
输出
―
―
0
0
0/1
―
TO00=0
ANI16
P10
使用引脚功能时的寄存器和输出锁存器设定例子 (1/8)
○
模拟输入
―
―
1
1
×
×
×
○
TO00
输出
―
―
0
0
0
―
×
○
RxD1
输入
―
―
0
1
×
―
×
○
P10
输入
―
×
―
1
×
×
×
输出
―
0
―
0
0/1
(TO07)=0
SCK00
○
1
―
0
0/1
SCK00/
SCL00=1
PIOR1=0
×
―
1
×
×
×
○
0/1
―
0
1
○
N 沟道漏极
开路输出
―
输入
输出
PIOR1=0
×
(TO07)=0
SCL00
输出
PIOR1=0
0/1
―
0
1
×
(TO07)=0
○
(TI07)
输入
PIOR0=1
×
―
1
×
×
×
○
输出
PIOR0=1
0
―
0
0
SCK00/
SCL00=1
×
○
(TO07)
R01UH0629CJ0120 Rev.1.20
2019.06.28
86
R7F0C903-908
第 4 章 端口功能
表 4-5
引脚
名
P11
使用的功能
功能名称
P11
输入 / 输出
PMxx
Pxx
SAU 的
输出功能
SAU 以外
32
引脚
×
―
1
×
×
×
输出
―
0
―
0
0/1
SDA00=1
(TO06)=0
N 沟道漏极
开路输出
―
1
―
0
0/1
SDA00=1
(TO06)=0
SI00
输入
PIOR1=0
×
―
1
×
×
×
○
RxD0
输入
PIOR1=0
×
―
1
×
×
×
○
×
(TO06)=0
○
○
输入 / 输出
PIOR1=0
1
―
0
1
(TI06)
输入
PIOR0=1
×
―
1
×
×
×
○
(TO06)
输出
PIOR0=1
0
―
0
0
SDA00=1
×
○
P12
输入
―
×
―
1
×
―
―
输出
―
0
―
0
0/1
SO00/TxD0=1
(TO05)=0
SO00
―
1
―
0
0/1
○
输出
PIOR1=0
0/1
―
0
1
×
(TO05)=0
TxD0
输出
PIOR1=0
0/1
―
0
1
×
(TO05)=0
○
(TI05)
输入
PIOR0=1
×
―
1
×
×
×
○
(TO05)
输出
PIOR0=1
0
―
0
0
SO00/TxD0=1
×
○
P13
输入
―
×
―
1
×
×
×
输出
―
0
―
0
0/1
N 沟道漏极
开路输出
―
1
―
0
0/1
TxD2/SO20=1
(TO04)=0
(SDAA0)=0
TxD2
输出
PIOR1=0
0/1
―
0
1
×
(TO04)=0
(SDAA0)=0
○
SO20
输出
PIOR1=0
0/1
―
0
1
×
(TO04)=0
(SDAA0)=0
○
输入 / 输出
PIOR2=1
1
―
0
0
TxD2/SO20=1
(TO04)=0
○
(TI04)
输入
PIOR0=1
×
―
1
×
×
×
○
(TO04)
输出
PIOR0=1
0
―
0
0
TxD2/SO20=1
(SDAA0)=0
○
P14
输入
―
×
―
1
×
×
×
输出
―
0
―
0
0/1
―
1
―
0
0/1
SDA20=1
(TO03)=0
(SCLA0)=0
○
N 沟道漏极
开路输出
RxD2
输入
PIOR1=0
×
―
1
×
×
×
○
SI20
输入
PIOR1=0
×
―
1
×
×
×
○
SDA20
输入 / 输出
PIOR1=0
1
―
0
1
×
(TO03)=0
(SCLA0)=0
○
(SCLA0)
输入 / 输出
PIOR2=1
1
―
0
0
SDA20=1
(TO03)=0
○
(TI03)
输入
PIOR0=1
×
―
1
×
×
×
○
(TO03)
输出
PIOR0=1
0
―
0
0
SDA20=1
(SCLA0)=0
○
(SDAA0)
P14
POMxx PMCxx
―
N 沟道漏极
开路输出
P13
复用功能的输出
PIORx
输入
SDA00
P12
使用引脚功能时的寄存器和输出锁存器设定例子 (2/8)
R01UH0629CJ0120 Rev.1.20
2019.06.28
○
○
87
R7F0C903-908
第 4 章 端口功能
表 4-5
引脚
名
P15
P16
使用的功能
功能名称
P15
输入 / 输出
复用功能的输出
PIORx
POMxx PMCxx
32
引脚
PMxx
Pxx
SAU 的
输出功能
SAU 以外
×
×
SCK20/
SCL20=1
PCLBUZ1=0
(TO02)=0
○
(TO02)=0
○
输入
―
×
―
1
×
输出
―
0
―
0
0/1
N 沟道漏极
开路输出
―
1
―
0
0/1
PCLBUZ1
输出
―
0
―
0
0
SCK20/
SCL20=1
SCK20
输入
PIOR1=0
×
―
1
×
×
×
○
○
输出
PIOR1=0
0/1
―
0
1
×
PCLBUZ1=0
(TO02)=0
SCL20
输出
PIOR1=0
0/1
―
0
1
×
PCLBUZ1=0
(TO02)=0
○
(TI02)
输入
PIOR0=1
×
―
1
×
×
×
○
(TO02)
输出
PIOR0=1
0
―
0
0
SCK20/
SCL20=1
PCLBUZ1=0
○
P16
输入
―
―
―
1
×
×
×
输出
―
―
―
0
0/1
×
TO01=0
×
TI01
P17
使用引脚功能时的寄存器和输出锁存器设定例子 (3/8)
○
输入
―
―
―
1
×
×
TO01
输出
―
―
―
0
0
×
×
○
INTP5
输入
―
―
―
1
×
×
×
○
(RxD0)
输入
PIOR1=1
―
―
1
×
×
×
○
P17
输入
―
×
―
1
×
×
×
输出
―
0
―
0
0/1
N 沟道漏极
开路输出
―
1
―
0
0/1
(TxD0)=1
TO02=0
TI02
输入
PIOR0=0
×
―
1
×
×
×
○
TO02
输出
PIOR0=0
0
―
0
0
(TxD0)=1
×
○
(TxD0)
输出
PIOR1=1
0/1
―
0
1
×
TO02=0
○
R01UH0629CJ0120 Rev.1.20
2019.06.28
○
○
88
R7F0C903-908
第 4 章 端口功能
表 4-5
引脚
名
P20
使用的功能
功能名称
P20
ANI0
AVREFP
P21
P21
ANI1
AVREFM
P22
P22
ANI2
P23
P23
ANI3
ADM2
PMxx
输入
ADPC=01H
×
1
×
输出
ADPC=01H
×
0
0/1
模拟输入
ADPC=00H/02H ~ 0FH
00x0xx0x、
10x0xx0x
1
×
○
基准电压输入
ADPC=00H/02H ~ 0FH
01x0xx0x
1
×
○
输入
ADPC=01H/02H
×
1
×
输出
ADPC=01H/02H
×
0
0/1
模拟输入
ADPC=00H/03H ~ 0FH
xx00xx0x
1
×
○
基准电压输入
ADPC=00H/03H ~ 0FH
xx10xx0x
1
×
○
输入
ADPC=01H ~ 03H
×
1
×
输出
ADPC=01H ~ 03H
×
0
0/1
模拟输入
ADPC=00H/04H ~ 0FH
×
1
×
×
输入
ADPC=01H ~ 04H
×
1
输出
ADPC=01H ~ 04H
×
0
0/1
模拟输入
ADPC=00H/05H ~ 0FH
×
1
×
P30
P30
输入 / 输出
输入
输出
INTP3
P40
P50
○
○
○
○
○
复用功能的输出
PIORx
―
―
POMxx PMCxx
―
―
PMxx
Pxx
1
SAU 的
输出功能
SAU 以外
×
×
×
×
―
―
0
0/1
SCK11/
SCL11=1
32
引脚
○
输入
―
―
―
1
×
×
×
○
输入
―
―
―
1
×
×
×
○
输出
―
―
―
0
1
×
×
○
SCL11
输出
―
―
―
0
1
×
×
○
P31
输入
―
―
―
1
×
―
×
○
SCK11
P31
○
使用引脚功能时的寄存器和输出锁存器设定例子 (5/8)
使用的功能
功能名称
Pxx
32
引脚
ADPC
输入 / 输出
表 4-5
引脚
名
使用引脚功能时的寄存器和输出锁存器设定例子 (4/8)
输出
―
―
―
0
0/1
―
TO03=0
PCLBUZ0=0
TI03
输入
PIOR0=0
―
―
1
×
―
×
○
TO03
输出
PIOR0=0
―
―
0
0
―
PCLBUZ0=0
○
INTP4
输入
―
―
―
1
×
―
×
○
PCLBUZ0
输出
―
―
―
0
0
―
TO03=0
○
P40
输入
―
―
―
1
×
―
―
输出
―
―
―
0
0/1
―
―
输入
―
―
―
1
×
×
―
输出
―
0
―
0
0/1
N 沟道漏极
开路输出
―
1
―
0
0/1
SDA11=1
―
INTP1
输入
―
×
―
1
×
×
―
○
SI11
输入
―
×
―
1
×
×
―
○
输入 / 输出
―
1
―
0
1
×
―
○
P50
SDA11
R01UH0629CJ0120 Rev.1.20
2019.06.28
○
○
89
R7F0C903-908
第 4 章 端口功能
表 4-5
引脚
名
P51
P60
使用的功能
功能名称
P51
P70
P120
输入 / 输出
SAU 以外
32
引脚
×
×
―
输出
―
―
―
0
0/1
SO01=1
―
INTP2
输入
―
―
―
1
×
×
―
○
SO11
输出
―
○
P60
P61
P62
P70
P120
―
―
0
1
×
―
输入
―
―
1
×
―
×
N 沟道漏极
开路输出
(6V 耐压)
―
―
0
0/1
―
SCLA0=0
―
―
0
0
―
×
输入
―
―
1
×
―
×
N 沟道漏极
开路输出
(6V 耐压)
―
―
0
0/1
―
SDAA0=0
输入 / 输出
PIOR2=0
输入 / 输出
PIOR2=0
―
―
0
0
―
×
输入
―
―
―
1
×
―
×
N 沟道漏极
开路输出
(6V 耐压)
―
―
―
0
0/1
―
×
输入
―
―
―
1
×
×
―
输出
―
―
―
0
0/1
×
―
输入
―
―
0
1
×
―
―
输出
―
―
0
0
0/1
―
―
模拟输入
―
―
1
1
×
―
―
功能名称
P122
P122
X1
X2
EXCLK
CMC
○
○
○
○
○
○
○
○
Pxx
32
引脚
○
输入 / 输出
(EXCLK、 OSCSEL)
输入
00xx/10xx/11xx
×
―
01xx
―
○
输入
00xx/10xx
×
○
―
01xx
―
○
输入
11xx
―
○
表 4-5
使用引脚功能时的寄存器和输出锁存器设定例子 (8/8)
使用的功能
功能名称
○
使用引脚功能时的寄存器和输出锁存器设定例子 (7/8)
使用的功能
P121
P147
SAU 的
输出功能
1
P121
P137
Pxx
―
表 4-5
引脚
名
PMxx
―
ANI19
引脚
名
POMxx PMCxx
―
SDAA0
P62
复用功能的输出
PIORx
输入
SCLA0
P61
使用引脚功能时的寄存器和输出锁存器设定例子 (6/8)
输入 / 输出
复用功能的输出
PIORx
POMxx PMCxx
PMxx
Pxx
SAU 的
输出功能
SAU 以外
32
引脚
P137
输入
―
―
―
―
×
―
―
○
INTP0
输入
―
―
―
―
×
―
―
○
输入
―
―
0
1
×
―
―
输出
―
―
0
0
0/1
―
―
模拟输入
―
―
1
1
×
―
―
P147
ANI18
R01UH0629CJ0120 Rev.1.20
2019.06.28
○
○
90
R7F0C903-908
4.6
第 4 章 端口功能
使用端口功能时的注意事项
4.6.1
有关对端口寄存器 n (Pn)的位存储器操作指令的注意事项
在对同时具有输入和输出功能的端口执行位存储器操作指令时,除了操作对象的位以外,也可能改写非操
作对象的输入端口的输出锁存器的值。
因此,建议在将任意的端口从输入模式切换为输出模式前重新写输出锁存器的值。
<例> 当 P10 为输出端口并且 P11 ~ P17 为输入端口 (引脚状态全部为高电平)而且端口 1 的输出锁存
器值为 “00H” 时,如果通过位存储器操作指令将输出端口 P10 的输出从低电平改为高电平,端口
1 的输出锁存器的值就变为 “FFH”。
说明: PMnm 位为 “1” 的端口的 Pn 寄存器的写对象是输出锁存器,而读对象是引脚状态。
在本产品内部,位存储器操作指令按照以下顺序执行:
以 8 位为单位读 Pn 寄存器。
操作 1 位对象位。
以 8 位为单位写 Pn 寄存器。
在 时,读输出端口 P10 的输出锁存器的值 “0”,并且读输入端口 P11 ~ P17 的引脚状态。此
时,如果 P11 ~ P17 的引脚状态为高电平,读取值就为 “FEH”。
通过 的操作,值变为 “FFH”。
通过 的操作,给输出锁存器写 “FFH”。
图 4-10
位存储器操作指令 (P10 的情况)
P10
P10
ሯP10փθᢝ㺂փᆎ۞
ಞᬃ֒Ԛ(set1 P1.0)Ⱦ
ք⭫ᒩ䗉࠰
P11ЊP17
儎⭫ᒩ䗉࠰
P11ЊP17
ᕋ㝐⣬ᘷφ儎⭫ᒩ
ㄥਙ1Ⲻ䗉࠰䬷ᆎಞ
0
0
0
0
ᕋ㝐⣬ᘷφ儎⭫ᒩ
ㄥਙ1Ⲻ䗉࠰䬷ᆎಞ
0
0
0
0
1
1
1
1
1
1
1
1
ሯP10փᢝ㺂Ⲻփᬃ֒Ԛ
Śȼԛ8փѰঋփ䈱ㄥਙᇺᆎಞ1(P1)Ⱦ
ȼȼgሯ䗉࠰ㄥਙP10θ䈱ㄥਙⲺ䗉࠰䬷ᆎಞⲺ“ٲ0”Ⱦ
ȼȼgሯ䗉ޛㄥਙP11ЊP17θ䈱ᕋ㝐⣬ᘷ“1”Ⱦ
śȼሼP10փ㖤“1”Ⱦ
Ŝȼԛ8փѰঋփ㔏ㄥਙᇺᆎಞ1(P1)Ⲻ䗉࠰䬷ᆎಞߏśⲺ㔉᷒Ⱦ
R01UH0629CJ0120 Rev.1.20
2019.06.28
91
R7F0C903-908
4.6.2
第 4 章 端口功能
有关引脚设定的注意事项
对于分配了多个复用功能的输出引脚,需要将不使用的复用功能的输出置初始值 (避免输出的冲突)。对
于根据外围 I/O 重定向寄存器 (PIOR)的设定来分配的功能也同样。有关复用输出,请参照 “4.5 使用复用功
能时的寄存器设定 ”。
对于用作输入的引脚,复用功能的输出无效 (缓冲器输出为 Hi-Z),因此不需要进行处理。
为了降低功耗,建议停止不使用的功能,包括只有输入或者没有输入 / 输出的模块。
R01UH0629CJ0120 Rev.1.20
2019.06.28
92
R7F0C903-908
第 5 章 时钟发生电路
第5章
5.1
时钟发生电路
时钟发生电路的功能
时钟发生电路是产生给 CPU 和外围硬件提供时钟的电路。
有以下 3 种系统时钟和时钟振荡电路。
(1)
主系统时钟
① X1 振荡电路
能通过给 X1 引脚和 X2 引脚连接谐振器使 fX=1 ~ 20MHz 的时钟振荡,并且能通过执行 STOP 指令或者
设定 MSTOP 位 (时钟运行状态控制寄存器 (CSC)的 bit7)使振荡停止。
② 高速内部振荡器
能通过选项字节(000C2H)从 fIH=24MHz、16MHz、12MHz、8MHz、4MHz和 1MHz(TYP.) 中选择频
率进行振荡。在解除复位后,CPU 一定以此高速内部振荡器时钟开始运行。能通过执行 STOP 指令或者
设定 HIOSTOP 位 (CSC 寄存器的 bit0)使振荡停止。
能通过高速内部振荡器的频率选择寄存器 (HOCODIV)更改选项字节设定的频率。有关频率设定,
请参照 “ 图 5-9 高速内部振荡器的频率选择寄存器 (HOCODIV)的格式 ”。
能通过高速内部振荡器设定的振荡频率如下所示 (能通过选项字节和高速内部振荡器的频率选择寄存
器 (HOCODIV)选择的种类)。
电源电压
振荡频率 (MHz)
1
2
3
4
6
8
12
16
24
2.7V ≤ VDD ≤ 5.5V
○
○
○
○
○
○
○
○
○
2.4V ≤ VDD ≤ 5.5V
○
○
○
○
○
○
○
○
—
1.8V ≤ VDD ≤ 5.5V
○
○
○
○
○
○
—
—
—
1.6V ≤ VDD ≤ 5.5V
○
○
○
○
—
—
—
—
—
另外,能由 EXCLK/X2/P122 引脚提供外部主系统时钟(fEX=1 ~ 20MHz),并且能通过执行 STOP 指令或
者设定 MSTOP 位将外部主系统时钟的输入置为无效。
能通过设定 MCM0 位 (系统时钟控制寄存器 (CKC)的 bit4)进行高速系统时钟 (X1 时钟或者外部主系
统时钟)和高速内部振荡器时钟的切换。
主系统时钟能使用的频率范围因电源电压VDD 而不同,需要通过选项字节(000C2H)的CMODE0和CMODE1
设定闪存的工作电压模式 (参照 “ 第 22 章 选项字节 ”)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
93
R7F0C903-908
(2)
第 5 章 时钟发生电路
低速内部振荡器时钟 (低速内部振荡器)
能使 fIL=15kHz (TYP.) 的时钟振荡。
不能将低速内部振荡器时钟用作 CPU 时钟。
只有以下外围硬件才能通过低速内部振荡器时钟运行:
•
看门狗定时器
•
12 位间隔定时器
当选项字节(000C0H)的bit4(WDTON)或者副系统时钟提供模式控制寄存器(OSMC)的bit4(WUTMMCK0)
为 “1” 时,低速内部振荡器振荡。
但是,在 WDTON 位为 “1” 并且 WUTMMCK0 位为 “0” 而且选项字节 (000C0H)的 bit0 (WDSTBYON)
为 “0” 时,如果执行 HALT 指令或者 STOP 指令,低速内部振荡器就停止振荡。
备注
fX:
X1 时钟振荡频率
fIH:
高速内部振荡器的时钟频率
fEX:
外部主系统时钟频率
fIL:
低速内部振荡器的时钟频率
5.2
时钟发生电路的结构
时钟发生电路由以下硬件构成。
表 5-1
时钟发生电路的结构
项目
控制寄存器
结构
时钟运行模式控制寄存器 (CMC)
系统时钟控制寄存器 (CKC)
时钟运行状态控制寄存器 (CSC)
振荡稳定时间计数器的状态寄存器 (OSTC)
振荡稳定时间选择寄存器 (OSTS)
外围允许寄存器 0 (PER0)
副系统时钟提供模式控制寄存器 (OSMC)
高速内部振荡器的频率选择寄存器 (HOCODIV)
高速内部振荡器的微调寄存器 (HIOTRM)
振荡电路
X1 振荡电路
高速内部振荡器
低速内部振荡器
R01UH0629CJ0120 Rev.1.20
2019.06.28
94
R01UH0629CJ0120 Rev.1.20
2019.06.28
ཌ䜞䗉ޛ
ᰬ䫕
Წ։䲬⬭
ᥥ㦗
儎䙕㌱㔕ᰬ䫕
ᥥ㦗⭫䐥
(6 MHz (TYP.))
(3 MHz (TYP.))
(1 MHz (TYP.))
(8 MHz (TYP.))
(4 MHz (TYP.))
(2 MHz (TYP.))
(15 kHz (TYP.))
fIL
ք䙕䜞ᥥ㦗ಞ
WUTMMCK0
12փ䰪䳊ᇐᰬಞ
䜞ᙱ㓵
儎䙕䜞ᥥ㦗ಞⲺ
ᗤ䈹ᇺᆎಞ(HIOTRM)
HIOTRM5 HIOTRM4 HIOTRM3 HIOTRM2 HIOTRM1 HIOTRM0
6
⭫䐥
HALT/STOP⁗ᕅؗਭ
䘿亯ᆍ㢸
(000C0H)
WDTON WDSTBYON
ѱ㌱㔕ᰬ䫕
Ⓠ䘿⭫䐥
ᥥ㦗どᇐᰬ䰪䇗ᮦಞⲺ
⣬ᘷᇺᆎಞ(OSTC)
MOST MOST MOST MOST MOST MOST MOST MOST
8
9
10
11 13 15 17 18
䘿ಞ
ᰬ䫕䘆㺂⣬ᘷ
ᇺᆎಞ(CSC)
HIOSTOP
STOP
⁗ᕅؗਭ
X1ᥥ㦗どᇐ
ᰬ䰪䇗ᮦಞ
3
OSTS2 OSTS1 OSTS0
TMKA
EN
ADC
EN
ⵁ䰞⤍ᇐᰬಞ
SAU0
EN
fCLK
CPU
䙐ᑮ䘆㺂⁗ᕅ
HALT⁗ᕅ
STOP⁗ᕅ
ᖻᵰ⭫䐥
⭫䐥
TAU0
EN
ཌപݷ䇮ᇺᆎಞ0
(PER0)
SAU1
EN
CPUᰬ䫕ૂ
ཌപ⺢Ԭᰬ䫕
Ⓠ䘿
IICA0
EN
ᰬ䫕䗉࠰/
㴸呙ಞ䗉࠰
CSS MCS MCM0
ࢥ㌱㔕ᰬ䫕ᨆ⁗בᕅ
ᇺᆎಞ(OSMC)
WUTMMCK0
fMAIN
CLS
㌱㔕ᰬ䫕
ᇺᆎಞ(CKC)
ȼ
HOCODIV2 HOCODIV1 HOCODIV0
fIH
fMX
MSTOP
ᥥ㦗どᇐᰬ䰪䘿
ᇺᆎಞ(OSTS)
ȼ
儎䙕䜞ᥥ㦗ಞⲺ仇⦽
䘿ᇺᆎಞ(HOCODIV)
(12 MHz (TYP.))
(16 MHz (TYP.))
(24 MHz (TYP.))
fEX
fX
ᰬ䫕䘆㺂⣬ᘷ
ᇺᆎಞ(CSC)
Ѩ㺂ਙIICA1
Ѩ㺂䱫ࡍঋݹ1
Ѩ㺂䱫ࡍঋݹ0
Ѩ㺂ਙIICA0
A/D䖢ᦘಞ
ᇐᰬಞ䱫ࡍঋݹ1
ᇐᰬಞ䱫ࡍঋݹ0
图 5-1
儎䙕䜞ᥥ㦗ಞ
䘿亯ᆍ㢸(000C2H)
FRQSEL0ЊFRQSEL3
X2/EXCLK
/P122
X1/P121
AMPH EXCLK OSCSEL
ᰬ䫕䘆㺂⁗ᕅ
ᇺᆎಞ(CMC)
䜞ᙱ㓵
R7F0C903-908
第 5 章 时钟发生电路
时钟发生电路的框图
ȼ
95
R7F0C903-908
备注
第 5 章 时钟发生电路
fX:
X1 时钟振荡频率
fIH:
高速内部振荡器的时钟频率
fEX:
外部主系统时钟频率
fMX:
高速系统时钟频率
fMAIN:
主系统时钟频率
fCLK:
CPU/ 外围硬件的时钟频率
fIL:
低速内部振荡器的时钟频率
5.3
控制时钟发生电路的寄存器
通过以下 9 种寄存器控制时钟发生电路。
•
时钟运行模式控制寄存器 (CMC)
•
系统时钟控制寄存器 (CKC)
•
时钟运行状态控制寄存器 (CSC)
•
振荡稳定时间计数器的状态寄存器 (OSTC)
•
振荡稳定时间选择寄存器 (OSTS)
•
外围允许寄存器 0 (PER0)
•
副系统时钟提供模式控制寄存器 (OSMC)
•
•
高速内部振荡器的频率选择寄存器 (HOCODIV)
高速内部振荡器的微调寄存器 (HIOTRM)
注意
分配的寄存器和位因产品而不同。必须给未分配的位设定初始值。
5.3.1
时钟运行模式控制寄存器 (CMC)
这是设定 X1/P121 引脚和 X2/EXCLK/P122 引脚的运行模式以及选择振荡电路增益的寄存器。
在解除复位后,只能通过 8 位存储器操作指令写 1 次 CMC 寄存器。能通过 8 位存储器操作指令读此寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 5-2
地址:FFFA0H
复位后:00H
时钟运行模式控制寄存器 (CMC)的格式
R/W
符号
7
6
5
4
3
2
1
0
CMC
EXCLK
OSCSEL
0
0
0
0
0
AMPH
EXCLK
OSCSEL
0
0
输入端口模式
输入端口
0
1
X1 振荡模式
连接晶体或者陶瓷谐振器。
1
0
输入端口模式
输入端口
1
1
外部时钟输入模式
输入端口
高速系统时钟
引脚的运行模式
AMPH
X1/P121 引脚
X2/EXCLK/P122 引脚
外部时钟输入
X1 时钟振荡频率的控制
0
1MHz ≤ fX ≤ 10MHz
1
10MHz < fX ≤ 20MHz
R01UH0629CJ0120 Rev.1.20
2019.06.28
96
R7F0C903-908
第 5 章 时钟发生电路
注意 1. 在解除复位后,只能通过 8 位存储器操作指令写 1 次 CMC 寄存器。当以初始值 (“00H”)使用 CMC 寄存器时,
为了防止程序失控时的误动作(如果误写“00H” 以外的值就不能恢复),必须在解除复位后将 CMC寄存器置“00H”。
2. 在解除复位后并且在通过设定时钟运行状态控制寄存器 (CSC)开始 X1 振荡前,必须设定 CMC 寄存器。
3. 当 X1 时钟振荡频率超过 10MHz 时,必须将 AMPH 位置 “1”。
4. 必须在解除复位后并且在选择 fIH 作为 fCLK 的状态 (将 fCLK 切换为 fMX 前的状态)下设定 AMPH 位。
5. 系统时钟的频率上限为 24MHz,但是 X1 振荡电路的频率上限为 20MHz。
fX:X1 时钟振荡频率
备注
5.3.2
系统时钟控制寄存器 (CKC)
这是选择 CPU/ 外围硬件时钟和主系统时钟的寄存器。
通过 1 位或者 8 位存储器操作指令设定 CKC 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 5-3
地址:FFFA4H
系统时钟控制寄存器 (CKC)的格式
R/W 注
复位后:00H
符号
7
6
5
4
3
2
1
0
CKC
0
0
MCS
MCM0
0
0
0
0
MCS
主系统时钟 (fMAIN)的状态
0
高速内部振荡器时钟 (fIH)
1
高速系统时钟 (fMX)
MCM0
主系统时钟 (fMAIN)的运行控制
0
选择高速内部振荡器时钟 (fIH)作为主系统时钟 (fMAIN)。
1
选择高速系统时钟 (fMX)作为主系统时钟 (fMAIN)。
注
bit5 是只读位。
备注
fIH:
高速内部振荡器的时钟频率
fMX:
高速系统时钟频率
fMAIN:
主系统时钟频率
注意
必须将 bit7、 bit6 和 bit0 ~ 3 置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
97
R7F0C903-908
5.3.3
第 5 章 时钟发生电路
时钟运行状态控制寄存器 (CSC)
这是控制高速系统时钟和高速内部振荡器 (低速内部振荡器时钟除外)运行的寄存器。
通过 1 位或者 8 位存储器操作指令设定 CSC 寄存器。
在产生复位信号后,此寄存器的值变为 “C0H”。
图 5-4
地址:FFFA1H
时钟运行状态控制寄存器 (CSC)的格式
R/W
复位后:C0H
符号
7
6
5
4
3
2
1
0
CSC
MSTOP
1
0
0
0
0
0
HIOSTOP
高速系统时钟的运行控制
MSTOP
X1 振荡模式
外部时钟输入模式
0
X1 振荡电路运行
EXCLK 引脚的外部时钟有效
1
X1 振荡电路停止
EXCLK 引脚的外部时钟无效
HIOSTOP
输入端口模式
输入端口
高速内部振荡器时钟的运行控制
0
高速内部振荡器运行
1
高速内部振荡器停止
注意 1. 在解除复位后,必须在设定时钟运行模式控制寄存器 (CMC)后设定 CSC 寄存器。
2. 在解除复位后并且在将 MSTOP 位置 “0” 前,必须设定振荡稳定时间选择寄存器 (OSTS)。但是,当以初始值使
用 OSTS 寄存器时,不需要设定 OSTS 寄存器。
3. 要通过设定 MSTOP 位开始 X1 振荡时,必须通过振荡稳定时间计数器的状态寄存器 (OSTC)确认 X1 时钟的振
荡稳定时间。
4. 不能通过 CSC 寄存器停止被选择为 CPU/ 外围硬件时钟 (fCLK)的时钟。
5. 有关用于停止时钟振荡 (外部时钟输入无效)的寄存器标志设定和停止前的条件,请参照表 5-2。
必须在停止时钟振荡前确认条件,然后停止时钟振荡。
表 5-2
时钟
X1 时钟
时钟停止方法
时钟停止前的条件 (外部时钟输入无效)
CSC 寄存器的标志设定
CPU/ 外围硬件时钟以高速内部振荡器时钟运行 (MCS=0)。
MSTOP=1
CPU/ 外围硬件时钟以高速系统时钟运行 (MCS=1)。
HIOSTOP=1
外部主系统时钟
高速内部振荡器时钟
R01UH0629CJ0120 Rev.1.20
2019.06.28
98
R7F0C903-908
5.3.4
第 5 章 时钟发生电路
振荡稳定时间计数器的状态寄存器 (OSTC)
这是表示 X1 时钟的振荡稳定时间计数器计数状态的寄存器。
能在以下情况下确认 X1 时钟的振荡稳定时间:
•
当 CPU时钟为高速内部振荡器时钟并且开始 X1时钟的振荡时
•
当 CPU时钟为高速内部振荡器时钟并且在 X1 时钟振荡的状态下转移到 STOP 模式后解除 STOP 模式时
能通过 1 位或者 8 位存储器操作指令读 OSTC 寄存器。
通过复位信号的产生、 STOP 指令或者 MSTOP 位 (时钟运行状态控制寄存器 (CSC)的 bit7)为 “1”,此
寄存器的值变为 “00H”。
备注
在以下情况下,振荡稳定时间计数器开始计数:
• 当 X1时钟开始振荡 (EXCLK、 OSCSEL=0、 1→MSTOP=0)时
• 当解除STOP模式时
图 5-5
地址:FFFA2H
振荡稳定时间计数器的状态寄存器 (OSTC)的格式
R
复位后:00H
符号
7
6
5
4
3
2
1
0
OSTC
MOST8
MOST9
MOST10
MOST11
MOST13
MOST15
MOST17
MOST18
MOST MOST MOST MOST MOST MOST MOST MOST
8
9
10
11
13
15
17
18
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
振荡稳定时间状态
小于 28/fX
fX=10MHz
fX=20MHz
小于 25.6μs
小于 12.8μs
至少
28/f
X
至少 25.6μs
至少 12.8μs
至少
29/f
X
至少 51.2μs
至少 25.6μs
至少
210/fX
至少 102μs
至少 51.2μs
至少
211/f
X
至少 204μs
至少 102μs
至少
213/fX
至少 819μs
至少 409μs
至少
215/fX
至少 3.27ms
至少 1.63ms
至少
217/fX
至少 13.1ms
至少 6.55ms
至少
218/fX
至少 26.2ms
至少 13.1ms
注意 1. 在经过上述时间后,各位从 MOST8 位开始依次变为 “1” 并且保持 “1” 的状态。
2. 振荡稳定时间计数器只在振荡稳定时间选择寄存器 (OSTS)所设振荡稳定时间内进行计数。
在以下情况下, OSTS 寄存器的振荡稳定时间的设定值必须大于通过 OSTC 寄存器确认的计数值。
• 当 CPU 时钟为高速内部振荡器时钟并且开始 X1 时钟的振荡时
• 当 CPU 时钟为高速内部振荡器时钟并且在 X1 时钟振荡的状态下转移到 STOP 模式后解除 STOP 模式时
(因此必须注意,解除 STOP 模式后的 OSTC 寄存器只设定 OSTS 寄存器所设振荡稳定时间内的状态)
3. X1 时钟的振荡稳定时间不包含时钟开始振荡前的时间 (下图 a)。
STOPᓣⱘ㾷䰸
X1ᓩ㛮ⱘ
⬉य़⊶ᔶ
a
备注
fX:X1 时钟振荡频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
99
R7F0C903-908
5.3.5
第 5 章 时钟发生电路
振荡稳定时间选择寄存器 (OSTS)
这是选择 X1 时钟的振荡稳定时间的寄存器。
如果使 X1 时钟振荡,就在 X1 振荡电路运行 (MSTOP=0)后自动等待 OSTS 寄存器设定的时间。
如果将 CPU 时钟从高速内部振荡器时钟切换到 X1 时钟,或者如果 CPU 时钟为高速内部振荡器时钟并且在
X1 时钟振荡的状态下转移到 STOP 模式后解除 STOP 模式,就必须通过振荡稳定时间计数器的状态寄存器
(OSTC)确认是否经过振荡稳定时间。能通过 OSTC 寄存器确认 OSTS 寄存器事先设定的时间。
通过 8 位存储器操作指令设定 OSTS 寄存器。
在产生复位信号后,此寄存器的值变为 “07H”。
图 5-6
地址:FFFA3H
复位后:07H
振荡稳定时间选择寄存器 (OSTS)的格式
R/W
符号
7
6
5
4
3
2
1
0
OSTS
0
0
0
0
0
OSTS2
OSTS1
OSTS0
OSTS2
OSTS1
OSTS0
振荡稳定时间的选择
fX=10MHz
fX=20MHz
0
0
0
28/fX
25.6μs
12.8μs
0
0
1
29/fX
51.2μs
25.6μs
0
1
0
210/fX
102μs
51.2μs
0
1
1
211/fX
204μs
102μs
1
0
0
213/fX
819μs
409μs
1
0
1
215/fX
3.27ms
1.63ms
1
1
0
217/f
X
13.1ms
6.55ms
1
1
1
218/fX
26.2ms
13.1ms
注意 1. 要更改 OSTS 寄存器的设定时,必须在将时钟运行状态控制寄存器 (CSC)的 MSTOP 位置 “0” 前进行更改。
2. 振荡稳定时间计数器只在 OSTS 寄存器所设振荡稳定时间内进行计数。
在以下情况下, OSTS 寄存器的振荡稳定时间的设定值必须大于在开始振荡后通过 OSTC 寄存器确认的计数值。
• 当 CPU 时钟为高速内部振荡器时钟并且开始 X1 时钟的振荡时
• 当 CPU 时钟为高速内部振荡器时钟并且在 X1 时钟振荡的状态下转移到 STOP 模式后解除 STOP 模式时
(因此必须注意,解除 STOP 模式后的 OSTC 寄存器只设定 OSTS 寄存器所设振荡稳定时间内的状态)
3. X1 时钟的振荡稳定时间不包含时钟开始振荡前的时间 (下图 a)。
STOPᓣⱘ㾷䰸
X1ᓩ㛮ⱘ
⬉य़⊶ᔶ
a
备注
fX:X1 时钟振荡频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
100
R7F0C903-908
5.3.6
第 5 章 时钟发生电路
外围允许寄存器 0 (PER0)
这是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过停止给不使用的硬件提供时钟,以降低功耗
和噪声。
要使用由这些寄存器控制的以下外围功能时,必须在进行外围功能的初始设定前将对应位置 “1”。
•
12 位间隔定时器
•
A/D 转换器
•
串行接口 IICA0
•
串行阵列单元 1
•
串行阵列单元 0
•
定时器阵列单元 0
通过 1 位或者 8 位存储器操作指令设定 PER0 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 5-7
地址:F00F0H
外围允许寄存器 0 (PER0)的格式 (1/2)
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
TMKAEN
0
12 位间隔定时器的输入时钟的控制
停止提供输入时钟。
• 不能写 12 位间隔定时器使用的 SFR。
• 12 位间隔定时器处于复位状态。
1
提供输入时钟。
• 能读写 12 位间隔定时器使用的 SFR。
ADCEN
0
A/D 转换器的输入时钟的控制
停止提供输入时钟。
• 不能写 A/D 转换器使用的 SFR。
• A/D 转换器处于复位状态。
1
提供输入时钟。
• 能读写 A/D 转换器使用的 SFR。
IICA0EN
0
串行接口 IICA0 的输入时钟的控制
停止提供输入时钟。
• 不能写串行接口 IICA0 使用的 SFR。
• 串行接口 IICA0 处于复位状态。
1
提供输入时钟。
• 能读写串行接口 IICA0 使用的 SFR。
R01UH0629CJ0120 Rev.1.20
2019.06.28
101
R7F0C903-908
第 5 章 时钟发生电路
图 5-7
地址:F00F0H
外围允许寄存器 0 (PER0)的格式 (2/2)
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
SAU1EN
串行阵列单元 1 的输入时钟的控制
0
停止提供输入时钟。
• 不能写串行阵列单元 1 使用的 SFR。
• 串行阵列单元 1 处于复位状态。
1
提供输入时钟。
• 能读写串行阵列单元 1 使用的 SFR。
SAU0EN
串行阵列单元 0 的输入时钟的控制
0
停止提供输入时钟。
• 不能写串行阵列单元 0 使用的 SFR。
• 串行阵列单元 0 处于复位状态。
1
提供输入时钟。
• 能读写串行阵列单元 0 使用的 SFR。
TAU0EN
定时器阵列单元 0 的输入时钟的控制
0
停止提供输入时钟。
• 不能写定时器阵列单元 0 使用的 SFR。
• 定时器阵列单元 0 处于复位状态。
1
提供输入时钟。
• 能读写定时器阵列单元 0 使用的 SFR。
5.3.7
副系统时钟提供模式控制寄存器 (OSMC)
OSMC 寄存器控制 12 位间隔定时器运行时钟的提供。
要使用 12 位间隔定时器时,必须事先将 WUTMMCK0 位置 “1”,并且不能在定时器停止前将 WUTMMCK0
位置 “0”。
通过 8 位存储器操作指令设定 OSMC 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 5-8
地址:F00F3H
副系统时钟提供模式控制寄存器 (OSMC)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
OSMC
0
0
0
WUTMMCK0
0
0
0
0
WUTMMCK0
12 位间隔定时器运行时钟的提供
0
停止提供时钟。
1
提供低速内部振荡器时钟 (fIL)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
102
R7F0C903-908
5.3.8
第 5 章 时钟发生电路
高速内部振荡器的频率选择寄存器 (HOCODIV)
这是更改选项字节 (000C2H)设定的高速内部振荡器频率的寄存器。但是,能选择的频率因选项字节
(000C2H)的 FRQSEL3 位的值而不同。
通过 8 位存储器操作指令设定 HOCODIV 寄存器。
在产生复位信号后,此寄存器的值变为选项字节 (000C2H)的 FRQSEL2 ~ FRQSEL0 位的设定值。
图 5-9
高速内部振荡器的频率选择寄存器 (HOCODIV)的格式
复位后:选项字节 (000C2H)的 FRQSEL2 ~ FRQSEL0 位的设定值
地址:F00A8H
符号
7
6
5
4
3
HOCODIV
0
0
0
0
0
HOCODIV2 HOCODIV1 HOCODIV0
2
R/W
1
0
HOCODIV2 HOCODIV1 HOCODIV0
高速内部振荡器时钟频率的选择
FRQSEL3 位为 “0”
FRQSEL3 位为 “1”
0
0
0
24MHz
禁止设定。
0
0
1
12MHz
16MHz
0
1
0
6MHz
8MHz
0
1
1
3MHz
4MHz
1
0
0
禁止设定。
2MHz
1
0
1
禁止设定。
1MHz
上述以外
禁止设定。
注意 1. 在更改频率前后,必须将高速内部振荡器的频率选择寄存器 (HOCODIV)设定在选项字节 (000C2H)所设闪存
运行模式的可工作电压范围内。
选项字节 (000C2H)的值
闪存运行模式
工作频率范围
工作电压范围
0
LV (低电压主)模式
1MHz ~ 4MHz
1.6V ~ 5.5V
1
0
LS (低速主)模式
1MHz ~ 8MHz
1.8V ~ 5.5V
1
1
HS (高速主)模式
1MHz ~ 16MHz
2.4V ~ 5.5V
1MHz ~ 24MHz
2.7V ~ 5.5V
CMODE1
CMODE0
0
2. 必须在选择高速内部振荡器时钟 (fIH)作为 CPU/ 外围硬件时钟 (fCLK)的状态下设定 HOCODIV 寄存器。
3. 在通过 HOCODIV 寄存器更改频率后,经过以下转移时间之后进行频率切换:
• 以更改前的频率,最多进行 3 个时钟的运行。
• 以更改后的频率,最多等待 3 个 CPU/ 外围硬件时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
103
R7F0C903-908
5.3.9
第 5 章 时钟发生电路
高速内部振荡器的微调寄存器 (HIOTRM)
这是校正高速内部振荡器精度的寄存器。
能使用高精度的外部时钟输入的定时器 (定时器阵列单元)等进行高速内部振荡器频率的自测量和精度校
正。
通过 8 位存储器操作指令设定 HIOTRM 寄存器。
注意
如果在校正精度后温度和 VDD 引脚的电压发生变化,频率就发生变化。
在温度和VDD 引脚的电压发生变化的情况下,需要在要求频率的精度前或者定期地进行校正。
图 5-10
高速内部振荡器的微调寄存器 (HIOTRM)的格式
复位后:不定值注
地址:F00A0H
R/W
符号
7
6
5
4
3
2
1
0
HIOTRM
0
0
HIOTRM5
HIOTRM4
HIOTRM3
HIOTRM2
HIOTRM1
HIOTRM0
HIOTRM5
HIOTRM4
HIOTRM3
HIOTRM2
HIOTRM1
HIOTRM0
高速内部振荡器
0
0
0
0
0
0
最低速
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
•
•
•
注
1
1
1
1
1
0
1
1
1
1
1
1
最高速
复位值是发货时的调整值。
备注 1. HIOTRM 寄存器的每 1 位能对高速内部振荡器的时钟精度进行 0.05% 左右的校正。
2. 有关 HIOTRM 寄存器的使用例子,请参照 RL78 MCU 系列高速内部振荡器时钟频率校正的应用说明(R01AN0464)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
104
R7F0C903-908
5.4
第 5 章 时钟发生电路
系统时钟振荡电路
5.4.1
X1 振荡电路
X1 振荡电路通过连接 X1 引脚和 X2 引脚的晶体谐振器或者陶瓷谐振器 (1 ~ 20MHz)进行振荡。
也能输入外部时钟,此时必须给 EXCLK 引脚输入时钟信号。
当使用 X1 振荡电路时,必须对时钟运行模式控制寄存器 (CMC)的 bit7 和 bit6 (EXCLK、 OSCSEL)进
行以下的设定:
•
晶体或者陶瓷振荡:EXCLK、 OSCSEL=0、 1
•
外部时钟输入:
EXCLK、 OSCSEL=1、 1
当不使用 X1 振荡电路时,必须设定为输入端口模式 (EXCLK、 OSCSEL=0、 0)。
而且,当也不用作输入端口时,请参照 “ 表 2-2 各未使用引脚的处理 ”。
X1 振荡电路的外接电路例子如图 5-11 所示。
图 5-11
X1 振荡电路的外接电路例子
(a) 晶体或者陶瓷振荡
(b) 外部时钟
VSS
X1
X2
Წ։䉆ᥥಞᡌ㘻
䲬⬭䉆ᥥಞ
ཌ䜞ᰬ䫕
EXCLK
注意事项如下页所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
105
R7F0C903-908
第 5 章 时钟发生电路
不正确的谐振器连接例子如图 5-12 所示。
图 5-12
不正确的谐振器连接例子 (1/2)
(a) 连接电路的布线太长
(b) 信号线交叉
PORT
VSS
X1
X2
VSS
X1
X2
NG
NG
NG
(c)X1 和 X2 的信号线交叉布线
(d)X1 和 X2 的布线下方有电源或者接地图形
VSS
VSS
X1
X1
X2
X2
⌞
⭫Ⓠ൦ഴᖘ
注
在多层板或者双面板中,不能在 X1 引脚、X2 引脚和谐振器的布线区(图中虚线部分)下方配置电源或者接地图形。
布线不能产生电容成分而影响振荡特性。
R01UH0629CJ0120 Rev.1.20
2019.06.28
106
R7F0C903-908
第 5 章 时钟发生电路
图 5-12
(e) 有变化的大电流接近信号线
不正确的谐振器连接例子 (2/2)
(f) 振荡电路的接地线有电流流过
(A 点、 B 点、 C 点的电位发生变化)
VDD
VSS
X1
Pmn
X2
X1
X2
ཝ⭫⍷
VSS
A
B
C
ཝ⭫⍷
(g) 取出信号
VSS
X1
R01UH0629CJ0120 Rev.1.20
2019.06.28
X2
107
R7F0C903-908
5.4.2
第 5 章 时钟发生电路
高速内部振荡器
本产品内置高速内部振荡器。能通过选项字节 (000C2H)从 24MHz、 16MHz、 12MHz、 8MHz、 6MHz、
4MHz、 3MHz、 2MHz 和 1MHz 中选择频率。能通过时钟运行状态控制寄存器 (CSC)的 bit0 (HIOSTOP)控
制振荡。
在解除复位后,高速内部振荡器自动开始振荡。
5.4.3
低速内部振荡器
本产品内置低速内部振荡器。
低速内部振荡器时钟用作看门狗定时器和 12 位间隔定时器的时钟,但是不能用作 CPU 时钟。
当选项字节(000C0H)的bit4(WDTON)或者副系统时钟提供模式控制寄存器(OSMC)的bit4(WUTMMCK0)
为 “1” 时,低速内部振荡器振荡。
当看门狗定时器停止运行并且 WUTMMCK0 位不为 “0” 时,低速内部振荡器继续振荡。但是,如果看门狗
定时器运行而 WUTMMCK0 位为 “0”,就在 WDSTBYON 位为 “0” 并且处于 HALT 模式、STOP 模式或者 SNOOZE
模式时低速内部振器停止振荡。在看门狗定时器运行时,即使程序失控,低速内部振荡器时钟也不停止运行。
5.5
时钟发生电路的运行
时钟发生电路产生以下所示各种时钟,并且控制待机模式等 CPU 的运行模式 (参照图 5-1)。
○ 主系统时钟 fMAIN
•
高速系统时钟 fMX
X1 时钟 fX
外部主系统时钟 fEX
•
高速内部振荡器时钟 fIH
○ 低速内部振荡器时钟 fIL
○ CPU/ 外围硬件时钟 fCLK
本产品在解除复位后, CPU 通过高速内部振荡器的输出开始运行。
接通电源时的时钟发生电路的运行如图 5-13 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
108
R7F0C903-908
第 5 章 时钟发生电路
图 5-13
接通电源时的时钟发生电路的运行
ᐛ֒⭫ু㤹പс䲆
VPOR
р⭫གྷփؗਭ
㠩ቇ10μs
Ś
RESETᕋ㝐
䙐䗽䖥Ԭ࠽ᦘȾ
གྷփ༺⨼ᰬ䰪
⌞3
Ş
Ŝ
儎䙕䜞ᥥ㦗ಞᰬ䫕
CPUᰬ䫕
儎䙕㌱㔕ᰬ䫕
ś
儎䙕䜞ᥥ㦗ಞ
ᰬ䫕(fIH)
⌞1
ŝ
儎䙕㌱㔕ᰬ䫕(fMX)
(䘿X1ᥥ㦗Ⲻ߫)
X1ᰬ䫕ᥥ㦗どᇐᰬ䰪⌞2
䙐䗽䖥Ԭ䇴ᇐ
X1ᔶခᥥ㦗Ⱦ
① 在接通电源后,通过上电复位 (POR)电路产生内部复位信号。但是,在达到 “27.4 AC 特性 ” 所示的
工作电压范围前,通过电压检测电路或者外部复位保持复位状态 (上图是使用外部复位时的例子)。
② 如果解除复位,高速内部振荡器就自动开始振荡。
③ 在解除复位后,进行电压稳定等待和复位处理,然后 CPU 以高速内部振荡器时钟开始运行。
④ 必须通过软件设定 X1 时钟的开始振荡 (参照 “5.6.2 X1振荡电路的设定例子 ”)。
⑤ 如果要将 CPU时钟切换到 X1 时钟,就必须在等待时钟振荡稳定后通过软件设定切换。
注
1. 复位处理时间包含高速内部振荡器时钟的振荡精度稳定等待时间。
2. 当解除复位时,必须通过振荡稳定时间计数器的状态寄存器 (OSTC)确认 X1 时钟的振荡稳定时间。
3. 有关复位处理时间,请参照 “ 第 18 章 上电复位电路 ”。
注意
如果使用 EXCLK 引脚输入的外部时钟,就不需要振荡稳定等待时间。
R01UH0629CJ0120 Rev.1.20
2019.06.28
109
R7F0C903-908
5.6
第 5 章 时钟发生电路
时钟控制
5.6.1
高速内部振荡器的设定例子
在解除复位后,CPU/ 外围硬件时钟(fCLK)一定以高速内部振荡器时钟运行。能通过选项字节(000C2H)的
FRQSEL0 ~ FRQSEL3 位,从 24MHz、16MHz、12MHz、8MHz、6MHz、4MHz、3MHz、2MHz 和 1MHz 中选择高
速内部振荡器的频率。另外,也能通过高速内部振荡器的频率选择寄存器 (HOCODIV)更改频率。
【选项字节的设定】
地址:000C2H
选项
7
6
5
4
3
2
1
0
FRQSEL3
FRQSEL2
FRQSEL1
FRQSEL0
0/1
0/1
0/1
0/1
CMODE1
字节
(000C2H)
0/1
CMODE0
CMODE1
CMODE0
0
0
LV (低电压主)模式
VDD=1.6V ~ 5.5V@1MHz ~ 4MHz
1
0
LS (低速主)模式
VDD=1.8V ~ 5.5V@1MHz ~ 8MHz
1
1
HS (高速主)模式
VDD=2.4V ~ 5.5V@1MHz ~ 16MHz
0/1
1
0
闪存的运行模式设定
VDD=2.7V ~ 5.5V@1MHz ~ 24MHz
上述以外
禁止设定。
FRQSEL3
FRQSEL2
FRQSEL1
FRQSEL0
高速内部振荡器的频率
0
0
0
0
24MHz
1
0
0
1
16MHz
0
0
0
1
12MHz
1
0
1
0
8MHz
0
0
1
0
6MHz
1
0
1
1
4MHz
0
0
1
1
3MHz
1
1
0
0
2MHz
1
1
0
1
1MHz
上述以外
R01UH0629CJ0120 Rev.1.20
2019.06.28
禁止设定。
110
R7F0C903-908
第 5 章 时钟发生电路
【高速内部振荡器的频率选择寄存器 (HOCODIV)的设定】
地址:F00A8H
HOCODIV
7
6
5
4
3
0
0
0
0
0
HOCODIV2 HOCODIV1 HOCODIV0
2
1
HOCODIV2 HOCODIV1 HOCODIV0
高速内部振荡器时钟频率的选择
FRQSEL3 位为 “0”
FRQSEL3 位为 “1”
0
0
0
24MHz
禁止设定。
0
0
1
12MHz
16MHz
0
1
0
6MHz
8MHz
0
1
1
3MHz
4MHz
1
0
0
禁止设定。
2MHz
1
0
1
禁止设定。
1MHz
上述以外
R01UH0629CJ0120 Rev.1.20
2019.06.28
0
禁止设定。
111
R7F0C903-908
5.6.2
第 5 章 时钟发生电路
X1 振荡电路的设定例子
在解除复位后, CPU/ 外围硬件时钟 (fCLK)一定以高速内部振荡器时钟运行。此后,如果改为 X1 振荡时
钟,就通过振荡稳定时间选择寄存器 (OSTS)、时钟运行模式控制寄存器 (CMC)和时钟运行状态控制寄存
器 (CSC)进行振荡电路的设定和振荡开始的控制,并且通过振荡稳定时间计数器的状态寄存器 (OSTC)等
待振荡稳定。在等待振荡稳定后通过系统时钟控制寄存器 (CKC)将 X1 振荡时钟设定为 fCLK。
【寄存器的设定】 必须按照①~⑤的顺序设定寄存器。
① 将 CMC 寄存器的 OSCSEL 位置 “1”,当 fX 大于等于 10MHz时,将 AMPH 位置 “1”,使 X1 振荡电路运行。
CMC
7
6
EXCLK
OSCSEL
0
1
5
4
3
2
1
0
0
0
0
0
0
AMPH
0/1
② 通过 OSTS 寄存器选择解除 STOP 模式时的 X1 振荡电路的振荡稳定时间。
例)要通过 10MHz 谐振器至少等待 102μs 时,必须设定为以下的值。
7
OSTS
6
0
0
5
0
4
0
3
0
2
1
0
OSTS2
OSTS1
OSTS0
0
1
0
0
③ 将 CSC寄存器的 MSTOP 位清 “0”,使 X1振荡电路开始振荡。
7
CSC
6
5
4
3
2
1
0
0
0
0
0
0
0
MSTOP
HIOSTOP
0
④ 通过 OSTC 寄存器等待 X1振荡电路的振荡稳定。
例)要通过 10MHz 谐振器至少等待 102μs 时,必须等到各位变为以下的值。
OSTC
7
6
5
4
3
2
1
0
MOST8
MOST9
MOST10
MOST11
MOST13
MOST15
MOST17
MOST18
1
1
1
0
0
0
0
0
⑤ 通过 CKC 寄存器的 MCM0位将 X1 振荡时钟设定为 CPU/ 外围硬件时钟。
CKC
7
6
0
0
R01UH0629CJ0120 Rev.1.20
2019.06.28
5
4
MCS
MCM0
0
1
3
2
1
0
0
0
0
0
112
R7F0C903-908
5.6.3
第 5 章 时钟发生电路
CPU 时钟的状态转移图
本产品的 CPU 时钟状态转移图如图 5-14 所示。
图 5-14
CPU 时钟的状态转移图
⭫ⓆON
(A)
儎䙕䜞ᥥ㦗ಞφ䟈
X1ᥥ㦗EXCLK䗉ޛφ(↘ڒ䗉ޛㄥਙ⁗ᕅ)
VDDŐᐛ֒⭫ু㤹പс䲆
(䙐䗽LVD⭫䐥ᡌ㘻ཌ䜞གྷփ䀙䲚གྷփ)
䀙䲚གྷփ
儎䙕䜞ᥥ㦗ಞφ䘆㺂ѣ
X1ᥥ㦗EXCLK䗉ޛφ(↘ڒ䗉ޛㄥਙ⁗ᕅ)
(B)
儎䙕䜞ᥥ㦗ಞφ䘆㺂ѣ
X1ᥥ㦗EXCLK䗉ޛφCPU㜳䘿
(F )
CPUφ儎䙕
䜞ᥥ㦗ಞ
䘆㺂ѣ
CPUφ儎䙕
䜞ᥥ㦗ಞ
→STOP
儎䙕䜞ᥥ㦗ಞφ↘ڒ
X1ᥥ㦗EXCLK䗉ޛφ↘ڒ
CPUφ儎䙕
䜞ᥥ㦗ಞ
→SNOOZE
儎䙕䜞ᥥ㦗ಞφ䘆㺂ѣ
X1ᥥ㦗EXCLK䗉ޛφ↘ڒ
(H)
(D)
CPUφ儎䙕
䜞ᥥ㦗ಞ
→HALT
(C)
儎䙕䜞ᥥ㦗ಞφ䘆㺂ѣ
X1ᥥ㦗EXCLK䗉ޛφ㜳ᥥ㦗䘆㺂
CPUφX1ᥥ㦗
EXCLK䗉ޛ
䘆㺂ѣ
儎䙕䜞ᥥ㦗ಞφCPU㜳䘿
X1ᥥ㦗EXCLK䗉ޛφ䘆㺂ѣ
(E)
(G)
CPUφX1ᥥ㦗
EXCLK䗉ޛ
→STOP
CPUφX1ᥥ㦗
EXCLK䗉ޛ
→HALT
儎䙕䜞ᥥ㦗ಞφ↘ڒ
X1ᥥ㦗EXCLK䗉ޛφ↘ڒ
儎䙕䜞ᥥ㦗ಞφ㜳ᥥ㦗䘆㺂
X1ᥥ㦗EXCLK䗉ޛφ䘆㺂ѣ
R01UH0629CJ0120 Rev.1.20
2019.06.28
113
R7F0C903-908
第 5 章 时钟发生电路
CPU 时钟的状态转移和 SFR 寄存器的设定例子等如表 5-3 所示。
表 5-3
CPU 时钟的状态转移和 SFR 寄存器的设定例子 (1/3)
(1) 在解除复位 (A) 后, CPU 转移到高速内部振荡器时钟运行 (B)。
SFR 寄存器的设定
状态转移
(A)→(B)
不需要设定 SFR 寄存器 (解除复位后的初始状态)。
(2) 在解除复位 (A) 后, CPU 转移到高速系统时钟运行 (C)。
(CPU 在解除复位后立即以高速内部振荡器时钟运行 (B))
(SFR 寄存器的设定顺序)
SFR 寄存器的设定标志
状态转移
(A)→(B)→(C)
CMC 寄存器注 1
OSTS
EXCLK
OSCSEL
AMPH
0
1
0
1
寄存器
CSC
寄存器
MSTOP
OSTC
寄存器
CKC
寄存器
MCM0
0
注2
0
需要确认
1
1
1
注2
0
需要确认
1
1
×
注2
0
不需要
1
(X1 时钟:1MHz ≤ fX ≤ 10MHz)
(A)→(B)→(C)
(X1 时钟:10MHz < fX ≤ 20MHz)
(A)→(B)→(C)
(外部主时钟)
注
确认
1. 在解除复位后,只能通过 8 位存储器操作指令写 1 次时钟运行模式控制寄存器 (CMC)。
2. 必须对振荡稳定时间选择寄存器 (OSTS)的振荡稳定时间进行以下的设定:
• 期待的振荡稳定时间计数器的状态寄存器 (OSTC)的振荡稳定时间≤ OSTS 寄存器设定的振荡稳定时间
注意
必须在电源电压达到设定的时钟可运行电压 (参照 “ 第 27 章 电特性 (TA=–40 ~ +85°C) ”)后设定时钟。
备注 1. ×:忽略
2. 表 5-3 的 (A) ~ (H) 对应图 5-14 的 (A) ~ (H)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
114
R7F0C903-908
第 5 章 时钟发生电路
表 5-3
CPU 时钟的状态转移和 SFR 寄存器的设定例子 (2/3)
(3) CPU 从高速内部振荡器时钟运行 (B) 转移到高速系统时钟运行 (C)。
(SFR 寄存器的设定顺序)
SFR 寄存器的设定标志
CMC 寄存器注 1
OSTS
状态转移
EXCLK
OSCSEL
AMPH
(B)→(C)
0
1
0
1
寄存器
CSC
寄存器
MSTOP
OSTC
寄存器
CKC
寄存器
MCM0
0
注2
0
需要确认
1
1
1
注2
0
需要确认
1
1
×
注2
0
不需要
1
(X1 时钟:1MHz ≤ fX ≤ 10MHz)
(B)→(C)
(X1 时钟:10MHz < fX ≤ 20MHz)
(B)→(C)
(外部主时钟)
确认
如果已设定就不需要。
注
在高速系统时钟运行中不需要。
1. 在解除复位后,只能通过 8 位存储器操作指令写 1 次时钟运行模式控制寄存器 (CMC)。如果已设定就不需要。
2. 必须对振荡稳定时间选择寄存器 (OSTS)的振荡稳定时间进行以下的设定:
• 期待的振荡稳定时间计数器的状态寄存器 (OSTC)的振荡稳定时间≤ OSTS 寄存器设定的振荡稳定时间
注意
必须在电源电压达到设定的时钟可运行电压 (参照 “ 第 27 章 电特性 (TA=–40 ~ +85°C) ”)后设定时钟。
(4) CPU 从高速系统时钟运行 (C) 转移到高速内部振荡器时钟运行 (B)。
(SFR 寄存器的设定顺序)
SFR 寄存器的设定标志
CSC 寄存器
状态转移
HIOSTOP
(C)→(B)
0
振荡精度稳定的等待
18μs ~ 65μs
CKC 寄存器
MCM0
0
在高速内部振荡器时钟运行中不需要。
备注
高速内部振荡器时钟的振荡精度稳定等待因温度条件和 STOP 模式期间而变。
(5) •
•
CPU 在高速内部振荡器时钟运行中 (B) 转移到HALT 模式 (D)。
CPU在高速系统时钟运行中 (C) 转移到HALT 模式 (E)。
状态转移
(B)→(D)
设定内容
执行 HALT 指令。
(C)→(E)
备注 1. ×:忽略
2. 表 5-3 的 (A) ~ (H) 对应图 5-14 的 (A) ~ (H)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
115
R7F0C903-908
第 5 章 时钟发生电路
表 5-3
(6) •
•
CPU 时钟的状态转移和 SFR 寄存器的设定例子 (3/3)
CPU 在高速内部振荡器时钟运行中 (B) 转移到STOP 模式 (F)。
CPU在高速系统时钟运行中 (C) 转移到STOP 模式 (G)。
(设定顺序)
状态转移
(B)→(F)
设定内容
—
停止 STOP 模式中禁止
(C)→(G)
X1 振荡
运行的外围功能。
执行 STOP 指令。
设定 OSTS 寄存器。
—
外部时钟
(7) CPU 从 STOP 模式 (F) 转移到 SNOOZE 模式 (H)。
有关从 STOP 模式转移到 SNOOZE 模式的详细设定,请参照 “10.8 SNOOZE 模式功能 ”、 “11.5.7
SNOOZE 模式功能 ”和 “11.6.3 SNOOZE 模式功能 ”。
表 5-3 的 (A) ~ (H) 对应图 5-14 的 (A) ~ (H)。
备注
5.6.4
CPU 时钟状态转移前的条件和转移后的处理
CPU 时钟状态转移前的条件和转移后的处理如下所示。
表 5-4
有关 CPU 时钟的状态转移
CPU 时钟
转移前
转移前的条件
转移后
转移后的处理
高速内部振荡器 X1 时钟
X1 振荡稳定。
在确认了 CPU 被切换到转移后的时钟
时钟
• OSCSEL=1, EXCLK=0, MSTOP=0
• 经过振荡稳定时间后
(HIOSTOP=1),就能减小工作电流。
后,如果停止高速内部振荡器的振荡
外部主系统时钟 将 EXCLK 引脚输入的外部时钟置为有效。
• OSCSEL=1, EXCLK=1, MSTOP=0
X1 时钟
高速内部振荡器 允许高速内部振荡器振荡。
• HIOSTOP=0
时钟
在确认了 CPU 被切换到转移后的时钟
后,能停止 X1 的振荡 (MSTOP=1)。
• 经过振荡稳定时间后
外部主系统时钟 不能转移。
外部主系统时钟 高速内部振荡器 允许高速内部振荡器振荡。
• HIOSTOP=0
时钟
• 经过振荡稳定时间后
X1 时钟
R01UH0629CJ0120 Rev.1.20
2019.06.28
不能转移。
—
在确认了 CPU 被切换到转移后的时钟
后,能将外部主系统时钟的输入置为无
效 (MSTOP=1)。
—
116
R7F0C903-908
5.6.5
第 5 章 时钟发生电路
CPU 时钟和主系统时钟的切换所需时间
能通过设定系统时钟控制寄存器 (CKC)的 bit4 (MCM0)进行主系统时钟的切换 (高速内部振荡器时钟
↔ 高速系统时钟)。
在改写 CKC 寄存器后不立即进行实际的切换,而是在更改 CKC 寄存器后仍然以切换前的时钟继续运行数
个时钟 (参照表 5-5)。
能通过 CKC 寄存器的 bit5(MCS)来判断主系统时钟是以高速系统时钟还是以高速内部振荡器时钟运行。
如果切换 CPU 时钟,就同时切换外围硬件时钟。
表 5-5
fIH↔fMX 所需要的最大时钟数
切换前的设定值
切换后的设定值
MCM0
MCM0
0
1
(fMAIN=fIH)
(fMAIN=fMX)
0
fMX ≥ fIH
2 个时钟
(f MAIN=f IH)
fMX < fIH
2 个 fIH/fMX 时钟
1
fMX ≥ fIH
2 个 fMX/fIH 时钟
(f MAIN=f MX)
fMX < fIH
2 个时钟
备注 1. 时钟数是切换前的 CPU 时钟数。
2. 时钟数是舍入小数部分的时钟数。
例 主系统时钟从高速系统时钟切换到高速内部振荡器时钟的情况 (选择 fIH=8MHz、 fMX=10MHz 振荡的情况)
2fMX/fIH=2(10/8)=2.5→3 个时钟
5.6.6
时钟振荡停止前的条件
用于停止时钟振荡 (外部时钟输入无效)的寄存器标志设定和停止前的条件如下所示。
必须在停止时钟振荡前确认条件,然后停止时钟振荡。
表 5-6
时钟
高速内部振荡器时钟
时钟振荡停止前的条件和标志设定
时钟停止前的条件 (外部时钟输入无效)
MCS=1
SFR 寄存器的标志设定
HIOSTOP=1
(CPU 以高速系统时钟运行)
X1 时钟
MCS=0
外部主系统时钟
(CPU 以高速内部振荡器时钟运行)
R01UH0629CJ0120 Rev.1.20
2019.06.28
MSTOP=1
117
R7F0C903-908
5.7
第 5 章 时钟发生电路
谐振器和振荡电路常数
已验证的谐振器及其振荡电路常数 (供参考)如下所示。
注意 1. 此振荡电路常数是基于谐振器厂商在特定环境下进行评估的参考值。在实际应用中,请委托谐振器厂商给予安装电
路后的评估。
在更改其他产品的单片机和电路板时,请委托谐振器厂商再次给予安装电路后的评估。
2. 振荡电压和振荡频率原则上是表示振荡电路的特性。有关 RL78 微控制器的内部工作条件,请在 DC、AC 特性的规
格内使用。
图 5-15
外接振荡电路的例子 (X1 振荡)
VSS X1
C1
R01UH0629CJ0120 Rev.1.20
2019.06.28
X2
Rd
C2
118
R7F0C903-908
(1)
X1 振荡
厂商
所公司
注
截至 2013 年 3 月 (1/2)
产品名称注 3
谐振器
村田制作 陶瓷
注4
第 5 章 时钟发生电路
谐振器
SMD/
引线
频率 闪存运行 振荡电路常数注 2(参考) 电压范围 (V)
(MHz) 模式注 1 C1(pF) C2(pF) Rd(kΩ) MIN. MAX.
CSTCC2M00G56-R0
SMD
2.0
CSTCR4M00G55-R0
(47)
(47)
0
SMD
4.0
(39)
(39)
0
(15)
(15)
0
(47)
(47)
0
(39)
(39)
0
(15)
(15)
0
(39)
(39)
0
(15)
(15)
0
4.915
(15)
(15)
0
(15)
(15)
0
5.0
(15)
(15)
0
(15)
(15)
0
(15)
(15)
0
(15)
(15)
0
(10)
(10)
0
(15)
(15)
0
(10)
(10)
0
CSTLS4M00G53-B0
引线
CSTCC2M00G56-R0
SMD
2.0
CSTCR4M00G55-R0
SMD
4.0
CSTLS4M00G53-B0
引线
CSTCR4M19G55-R0
SMD
CSTLS4M19G53-B0
引线
CSTCR4M91G53-R0
SMD
CSTLS4M91G53-B0
引线
CSTCR5M00G53-R0
SMD
CSTLS5M00G53-B0
引线
CSTCR6M00G53-R0
SMD
CSTLS6M00G53-B0
引线
CSTCE8M00G52-R0
SMD
CSTLS8M00G53-B0
引线
CSTCE8M38G52-R0
SMD
CSTLS8M38G53-B0
引线
CSTCE10M0G52-R0
SMD
CSTLS10M0G53-B0
引线
CSTCE12M0G52-R0
SMD
CSTCE16M0V53-R0
SMD
CSTLS16M0X51-B0
引线
CSTCE20M0V51-R0
SMD
CSTLS20M0X51-B0
引线
LV
LS
4.194
6.0
8.0
8.388
HS
(15)
(15)
0
(10)
(10)
0
(15)
(15)
0
12.0
(10)
(10)
0
16.0
(15)
(15)
0
(5)
(5)
0
(5)
(5)
0
(5)
(5)
0
10.0
20.0
1.6
5.5
1.8
5.5
2.4
5.5
2.7
5.5
1. 通过选项字节 (000C2H)的 CMODE1 位和 CMODE0 位设定闪存运行模式。
2. C1 和 C2 栏的 ( ) 内表示内部电容值。
3. 支持 105°C 的产品名称不同。详细内容请向村田制作所公司 (http://www.murata.com)询问。
4. 在使用此振荡器时,有关匹配的详细内容,请向村田制作所公司 (http://www.murata.com)询问。
备注 1. 工作电压范围、 CPU 工作频率和运行模式的关系如下所示:
HS (高速主)模式: 2.7V ≤ VDD ≤ 5.5V@1MHz ~ 24MHz
2.4V ≤ VDD ≤ 5.5V@1MHz ~ 16MHz
LS (低速主)模式: 1.8V ≤ VDD ≤ 5.5V@1MHz ~ 8MHz
LV (低电压主)模式:1.6V ≤ VDD ≤ 5.5V@1MHz ~ 4MHz
2. 有关最新的已得到验证的谐振器及其振荡电路常数 (参考),请参阅本公司网站 (http://www.renesas.com)对应
产品的网页。
R01UH0629CJ0120 Rev.1.20
2019.06.28
119
R7F0C903-908
第 5 章 时钟发生电路
截至 2013 年 3 月 (2/2)
厂商
谐振器
产品名称注 2
SMD/
引线
频率 闪存运行 振荡电路常数 (参考) 电压范围 (V)
(MHz) 模式注 1 C1(pF) C2(pF) Rd(kΩ) MIN. MAX.
日本电波 晶体
NX8045GB
SMD
8.0
工业注 3
NX5032GA
SMD
16.0
NX3225HA
SMD
20.0
CX8045GB04000D0PPTZ1
SMD
4.0
振荡器
京瓷晶体 晶体
元件公司 振荡器
注4
注3
LV
12
12
0
LS
CX8045GB08000D0PPTZ1
SMD
8.0
CX8045GB10000D0PPTZ1
SMD
10.0
CX3225GB12000B0PPTZ1
SMD
CX3225GB16000B0PPTZ1
LS
5.5
1.8
5.5
2.4
5.5
0
12
12
0
12
12
0
12.0
5
5
0
SMD
16.0
5
5
0
CX3225SB20000B0PPTZ1
SMD
20.0
5
5
0
2.7
5.5
FCX-03-8.000MHZ-J21140
SMD
8.0
3
3
0
2.4
5.5
ELETEC 振荡器
FCX-04C-10.000MHZ-J21139
SMD
10.0
4
4
0
公司 注 5
FCX-05-12.000MHZ-J21138
SMD
12.0
6
6
0
FCX-06-16.000MHZ-J21137
SMD
16.0
4
4
0
注
4.915
1.8
12
晶体
SMD
5.5
12
RIVER
CX8045GB04915D0PPTZ1
1.6
HS
HS
1. 通过选项字节 (000C2H)的 CMODE1 位和 CMODE0 位设定闪存运行模式。
2. 此振荡器支持 85°C 为止的产品。有关支持 105°C 的产品,请向谐振器厂商询问。
3. 在使用此振荡器时,有关匹配的详细内容,请向日本电波工业公司 (http://www.ndk.com/en)询问。
4. 在使用此振荡器时,有关匹配的详细内容,请向京瓷晶体元件公司公司 (http://www.kyocera-crystal.jp/eng/
index.html、 http://global.kyocera.com)询问。
5. 在使用此振荡器时,有关匹配的详细内容,请向RIVER ELETEC公司(http://www.river-ele.co.jp/english/index.html)询
问。
备注 1. 工作电压范围、 CPU 工作频率和运行模式的关系如下所示:
HS (高速主)模式: 2.7V ≤ VDD ≤ 5.5V@1MHz ~ 24MHz
2.4V ≤ VDD ≤ 5.5V@1MHz ~ 16MHz
LS (低速主)模式: 1.8V ≤ VDD ≤ 5.5V@1MHz ~ 8MHz
LV (低电压主)模式:1.6V ≤ VDD ≤ 5.5V@1MHz ~ 4MHz
2. 有关最新的已得到验证的谐振器及其振荡电路常数 (参考),请参阅本公司网站 (http://www.renesas.com)对应
产品的页。
R01UH0629CJ0120 Rev.1.20
2019.06.28
120
R7F0C903-908
第 6 章 定时器阵列单元
第6章
定时器阵列单元
定时器阵列单元有 8 个 16 位定时器。
各 16 位定时器称为 “ 通道 ”,既能分别用作独立的定时器,也能组合多个通道用作高级的定时器功能。
ᇐᰬಞ䱫ࡍঋݹ
䙐䚉 0
16փᇐᰬಞ
䙐䚉 1
䙐䚉 2
䙐䚉 3
䙐䚉 4
䙐䚉 7
有关各功能的详细内容,请参照下表。
独立通道运行功能
•
•
•
•
•
•
•
间隔定时器 (→ 参照 6.8.1)
方波输出 (→ 参照 6.8.1)
外部事件计数器 (→ 参照 6.8.2)
分频器 (→ 参照 6.8.3)
输入脉冲间隔的测量 (→ 参照 6.8.4)
输入信号的高低电平宽度的测量 (→ 参照 6.8.5)
延迟计数器 (→ 参照 6.8.6)
多通道联动运行功能
• 单触发脉冲输出 (→ 参照 6.9.1)
• PWM 输出 (→ 参照 6.9.2)
• 多重 PWM 输出 (→ 参照 6.9.3)
能将通道 1 和通道 3 的 16 位定时器用作 2 个 8 位定时器(高位和低位)。通道 1 和通道 3 能用作 8 位定时
器的功能如下:
•
间隔定时器 (高 8 位和低 8 位定时器) / 方波输出 (只限于低 8 位定时器)
•
•
外部事件计数器 (只限于低 8 位定时器)
延迟计数器 (只限于低 8 位定时器)
R01UH0629CJ0120 Rev.1.20
2019.06.28
121
R7F0C903-908
6.1
第 6 章 定时器阵列单元
定时器阵列单元的功能
定时器阵列单元有以下功能:
6.1.1
独立通道运行功能
独立通道运行功能是不受其他通道运行模式的影响而能独立使用任意通道的功能。
(1)
间隔定时器
能用作以固定间隔产生中断 (INTTM0n)的基准定时器。
∊䖹䘆㺂
䘆㺂ᰬ䫕
䙐䚉n
(2)
ѣᯣؗਭ
(INTTM0n)
方波输出
每当产生 INTTM0n 中断时,就进行交替运行并且从定时器的输出引脚 (TO0n)输出 50% 占空比的方波。
∊䖹䘆㺂
䘆㺂ᰬ䫕
ᇐᰬಞⲺ䗉࠰
(TO0n)
䙐䚉n
(3)
外部事件计数器
对定时器输入引脚 (TI0n)的输入信号的有效边沿进行计数,如果达到规定次数,就能用作产生中断的事
件计数器。
䗯⋵Ỷ⎁
(4)
ᇐᰬಞⲺ䗉ޛ
(TI0n)
ѣᯣؗਭ
(INTTM0n)
∊䖹䘆㺂
䙐䚉n
分频器
对定时器输入引脚 (TI00)的输入时钟进行分频,然后从输出引脚 (TO00)输出。
ᇐᰬಞⲺ䗉ޛ
(TI00)
(5)
∊䖹䘆㺂
ᇐᰬಞⲺ䗉࠰
(TO00)
䙐䚉n
输入脉冲间隔的测量
在定时器输入引脚(TI0n)的输入脉冲信号的有效边沿开始计数并且在下一个脉冲的有效边沿捕捉计数值,
从而测量输入脉冲的间隔。
ᇐᰬಞⲺ䗉ޛ
(TI0n)
䗯⋵Ỷ⎁
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᦋ䘆㺂
䙐䚉n
00H
ᔶခ
xxH
ᦋ
122
R7F0C903-908
(6)
第 6 章 定时器阵列单元
输入信号的高低电平宽度的测量
在定时器输入引脚 (TI0n)的输入信号的一个边沿开始计数并且在另一个边沿捕捉计数值,从而测量输入
信号的高低电平宽度。
䗯⋵Ỷ⎁
(7)
ᦋ䘆㺂
ᇐᰬಞⲺ䗉ޛ
(TI0n)
䙐䚉n
00H xxH
ᔶခ ᦋ
延迟计数器
在定时器输入引脚 (TI0n)的输入信号的有效边沿开始计数并且在经过任意延迟期间后产生中断。
䗯⋵Ỷ⎁
∊䖹䘆㺂
ᇐᰬಞⲺ䗉ޛ
(TI0n)
ѣᯣؗਭ
(INTTM0n)
䙐䚉n
ᔶခ
n:通道号 (n=0 ~ 7)
备注
6.1.2
多通道联动运行功能
多通道联动运行功能是将主控通道 (主要控制周期的基准定时器)和从属通道 (遵从主控通道运行的定时
器)组合实现的功能。
多通道联动运行功能可用作以下模式。
(1)
单触发脉冲输出
将 2 个通道成对使用,生成能任意设定输出时序和脉宽的单触发脉冲。
䗯⋵Ỷ⎁
ᇐᰬಞⲺ䗉ޛ
(TI0n)
∊䖹䘆㺂
ѣᯣؗਭ (INTTM0n)
䙐䚉n (ѱ)
㜿ᇳ
䗉࠰ᰬᓅ
∊䖹䘆㺂
ᇐᰬಞⲺ䗉࠰
(TO0p)
䙐䚉p (Ԅኔ)
Ӛᴵ
(ѱ)
Ӛᴵ
(Ԅኔ)
ᔶခ
(ѱ)
(2)
PWM (Pulse Width Modulation)输出
将 2 个通道成对使用,生成能任意设定周期和占空比的脉冲。
䘆㺂ᰬ䫕
∊䖹䘆㺂
ѣᯣؗਭ (INTTM0n)
䙐䚉n(ѱ)
∊䖹䘆㺂
䙐䚉p(Ԅኔ)
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᇐᰬಞⲺ䗉࠰
(TO0p)
খグ∊
ઞᵕ
123
R7F0C903-908
(3)
第 6 章 定时器阵列单元
多重 PWM (Pulse Width Modulation)输出
能通过扩展 PWM 功能并且使用 1 个主控通道和多个从属通道,以固定周期生成最多 3 种任意占空比的 PWM
信号。
∊䖹䘆㺂
䘆㺂ᰬ䫕
ѣᯣؗਭ (INTTM0n)
䙐䚉n(ѱ)
∊䖹䘆㺂
䙐䚉p(Ԅኔ)
∊䖹䘆㺂
䙐䚉q(Ԅኔ)
ᇐᰬಞⲺ䗉࠰
(TO0p)
ᇐᰬಞⲺ䗉࠰
(TO0q)
খグ∊
ઞᵕ
খグ∊
ઞᵕ
注意
有关多通道联动运行功能规则的详细内容,请参照 “6.4.1 多通道联动运行功能的基本规则 ”。
备注
n:通道号 (n=0 ~ 7)
p、 q:从属通道号 (n < p < q ≤ 7)
6.1.3
8 位定时器运行功能 (只限于通道 1 和通道 3)
8 位定时器运行功能是将 16 位定时器通道用作 2 个 8 位定时器通道的功能。只能使用通道 1 和通道 3。
注意
在使用 8 位定时器运行功能时,有几个规则。
详细内容请参照 “6.4.2 8位定时器运行功能的基本规则 (只限于通道 1和通道 3) ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
124
R7F0C903-908
6.2
第 6 章 定时器阵列单元
定时器阵列单元的结构
定时器阵列单元由以下硬件构成。
表 6-1
定时器阵列单元的结构
项目
结构
计数器
定时器计数寄存器 0n (TCR0n)
寄存器
定时器数据寄存器 0n (TDR0n)
定时器的输入
TI00 ~ TI07
定时器的输出
TO00 ~ TO07 引脚、输出控制电路
控制寄存器
<单元设定部的寄存器>
•
•
•
•
•
•
•
•
•
•
外围允许寄存器 0 (PER0)
定时器时钟选择寄存器 0 (TPS0)
定时器通道允许状态寄存器 0 (TE0)
定时器通道开始寄存器 0 (TS0)
定时器通道停止寄存器 0 (TT0)
定时器输入选择寄存器 0 (TIS0)
定时器输出允许寄存器 0 (TOE0)
定时器输出寄存器 0 (TO0)
定时器输出电平寄存器 0 (TOL0)
定时器输出模式寄存器 0 (TOM0)
<每个通道的寄存器>
•
•
•
•
•
•
注
定时器模式寄存器 0n (TMR0n)
定时器状态寄存器 0n (TSR0n)
噪声滤波器允许寄存器 1 (NFEN1)
端口模式控制寄存器 (PMCxx)注
端口模式寄存器 (PMxx)注
端口寄存器 (Pxx)注
设定的端口模式控制寄存器 (PMCxx)、端口模式寄存器 (PMxx)和端口寄存器 (Pxx)因产品而不同。详细内
容请参照 “4.5.3 使用的端口功能和复用功能的寄存器设定例子 ”。
备注
n:通道号 (n=0 ~ 7)
定时器阵列单元的各通道的定时器输入 / 输出复用端口因产品而不同。
表 6-2
本产品具有的定时器输入 / 输出引脚
定时器阵列单元的通道
本产品
通道 0
TI00/TO00
通道 1
TI01/TO01
通道 2
TI02/TO02
通道 3
TI03/TO03
通道 4
(TI04/TO04)
通道 5
(TI05/TO05)
通道 6
(TI06/TO06)
通道 7
(TI07/TO07)
备注 1. 在定时器的输入和定时器的输出被同一个引脚复用时,只能用作定时器的输入或者定时器的输出。
2. ×:没有内置通道。
3. ( ) 是将外围 I/O 重定向寄存器 (PIOR)的 bit0 (PIOR0)置 “1” 时的复用端口。
R01UH0629CJ0120 Rev.1.20
2019.06.28
125
R7F0C903-908
第 6 章 定时器阵列单元
图 6-1
定时器阵列单元的整体框图
ᇐᰬಞᰬ䫕䘿ᇺᆎಞ0(TPS0)
PRS031 PRS030 PRS021 PRS020 PRS013 PRS012 PRS011 PRS010 PRS003 PRS002 PRS001 PRS000
2
2
4
4
人࠼仇ಞ
fCLK
fCLK/21ȽfCLK/22Ƚ
fCLK/28ȽfCLK/210ȽfCLK/24ȽfCLK/26
fCLK/212ȽfCLK/214
䘿ಞ
ཌപݷ䇮ᇺᆎಞ0
TAU0EN
(PER0)
fCLK/20ЊfCLK/215
䘿ಞ
䘿ಞ
䘿ಞ
CK03
CK02
CK01
CK00
TO00
TI00
䙐䚉 0
INTTM00
(ᇐᰬಞѣᯣ)
TO01
TI01
䙐䚉 1
INTTM01
INTTM01H
TO02
TI02
䙐䚉 2
INTTM02
䙐䚉 3
INTTM03
INTTM03H
ᇐᰬಞ䗉ޛ䘿
ᇺᆎಞ0(TIS0)
TO03
TI03
TIS2 TIS1 TIS0
(TO04)
(TI04)
䙐䚉 4
fIL
(TI05)
INTTM04
(TO05)
䘿
ಞ
䙐䚉 5
INTTM05
(TO06)
(TI06)
䙐䚉 6
INTTM06
(TO07)
(TI07)
备注
䙐䚉 7
INTTM07
能通过设定外围 I/O 重定向寄存器 (PIOR),分配上图 ( ) 内的功能。
R01UH0629CJ0120 Rev.1.20
2019.06.28
126
R7F0C903-908
第 6 章 定时器阵列单元
图 6-2
(a)
定时器阵列单元 0 的通道内部框图
通道 0、 2、 4、 6
ᶛ㠠ѱ䙐䚉Ⲻѣᯣؗਭ⌞1
CK00
CK01
䘆
㺂
ᰬ
䫕
䘿
䇗
ᮦ
ᰬ
䫕
䘿
fMCK
fTCLK
ᇐᰬಞ
⭫䐥
䗉࠰⭫䐥
TO0n
䗉࠰䬷ᆎಞ
(Pxx)
⁗ᕅ䘿
ѣᯣ⭫䐥
䗯⋵
Ỷ⎁
TI0n
䀜
ਇ
䘿
PMxx
INTTM0n
(ᇐᰬಞѣᯣ)
ᇐᰬಞ䇗ᮦᇺᆎಞ0n(TCR0n)
ᇐᰬಞ⣬ᘷᇺᆎಞ0n
(TSR0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n(TDR0n)
Ԅኔѱ
⭫䐥
рⓘ
OVF
0n
⌞2
CKS0n CCS0n MAS STS0n2 STS0n1 STS0n0 CIS0n1 CIS0n0 MD0n3 MD0n2 MD0n1 MD0n0
TER0n
䙐䚉 n
注
ᇐᰬಞ⁗ᕅᇺᆎಞ0n(TMR0n)
1. 只限于通道 2、 4、 6。
2. n=2、 4、 6
备注 1. n=0、 2、 4、 6
2. 能通过设定外围 I/O 重定向寄存器 (PIOR),分配上图 ( ) 内的功能。
R01UH0629CJ0120 Rev.1.20
2019.06.28
127
R7F0C903-908
(b)
第 6 章 定时器阵列单元
通道 1
ѱ䙐䚉Ⲻѣᯣؗਭ
CK00
CK01
CK02
CK03
䘆
㺂
ᰬ
䫕
䘿
䇗
ᮦ
ᰬ
䫕
䘿
fMCK
fTCLK
ᇐᰬಞ
⭫䐥
䗉࠰⭫䐥
TO01
䗉࠰䬷ᆎಞ
(P16)
⁗ᕅ䘿
PM16
ѣᯣ⭫䐥
䗯⋵
Ỷ⎁
TI01
INTTM01
(ᇐᰬಞѣᯣ)
䀜
ਇ
䘿
ᇐᰬಞ䇗ᮦᇺᆎಞ01(TCR01)
ᇐᰬಞ⣬ᘷᇺᆎಞ01
(TSR01)
ᇐᰬಞᮦᦤᇺᆎಞ01(TDR01)
8փᇐᰬಞ
⭫䐥
рⓘ
OVF
01
ѣᯣ⭫䐥
INTTM01H
(ᇐᰬಞѣᯣ)
⁗ᕅ䘿
CKS11 CKS01 CCS01 SPLIT01STS012 STS011 STS010 CIS011 CIS010 MD013 MD012 MD011 MD010
ᇐᰬಞ⁗ᕅᇺᆎಞ01(TMR01)
䙐䚉 1
(c)
通道 3
ѱ䙐䚉Ⲻѣᯣؗਭ
CK00
CK01
CK02
CK03
䘆
㺂
ᰬ
䫕
䘿
fMCK
䇗
ᮦ
ᰬ
䫕
䘿
fTCLK
ᇐᰬಞ
⭫䐥
䗉࠰⭫䐥
TO03
䗉࠰䬷ᆎಞ
(Pxx)
⁗ᕅ䘿
PMxx
ѣᯣ⭫䐥
䗯⋵
Ỷ⎁
TI03
䀜
ਇ
䘿
INTTM03
(ᇐᰬಞѣᯣ)
ᇐᰬಞ䇗ᮦᇺᆎಞ03(TCR03)
ᇐᰬಞ⣬ᘷᇺᆎಞ03
(TSR03)
ᇐᰬಞᮦᦤᇺᆎಞ03(TDR03)
8փᇐᰬಞ
⭫䐥
рⓘ
OVF
03
ѣᯣ⭫䐥
⁗ᕅ䘿
INTTM03H
(ᇐᰬಞѣᯣ)
CKS13 CKS03 CCS03 SPLIT03STS032 STS031 STS030 CIS031 CIS030 MD033 MD032 MD031 MD030
䙐䚉 3
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᇐᰬಞ⁗ᕅᇺᆎಞ03(TMR03)
128
R7F0C903-908
(d)
第 6 章 定时器阵列单元
通道 5
ᶛ㠠ѱ䙐䚉Ⲻѣᯣؗਭ
CK00
䘆
㺂
ᰬ
䫕
䘿
CK01
䇗
ᮦ
ᰬ
䫕
䘿
fMCK
ᇐᰬಞ䗉ޛ䘿
ᇺᆎಞ0(TIS0)
ᇐᰬಞ
⭫䐥
䗉࠰⭫䐥
(TO05)
䗉࠰䬷ᆎಞ
(P12)
⁗ᕅ䘿
ѣᯣ⭫䐥
䗯⋵
Ỷ⎁
TIS2 TIS1 TIS0
䀜
ਇ
䘿
䘿ಞ
fIL
fTCLK
PM12
INTTM05
(ᇐᰬಞѣᯣ)
ᇐᰬಞ䇗ᮦᇺᆎಞ05(TCR05)
ᇐᰬಞ⣬ᘷᇺᆎಞ05
(TSR05)
(TI05)
ᇐᰬಞᮦᦤᇺᆎಞ05(TDR05)
рⓘ
OVF
05
CKS05 CCS05 STS052 STS051 STS050 CIS051 CIS050 MD053 MD052 MD051 MD050
䙐䚉 5
(e)
ᇐᰬಞ⁗ᕅᇺᆎಞ05(TMR05)
通道 7
ᶛ㠠ѱ䙐䚉Ⲻѣᯣؗਭ
CK00
CK01
䘆
㺂
ᰬ
䫕
䘿
fMCK
䇗
ᮦ
ᰬ
䫕
䘿
fTCLK
ᇐᰬಞ
⭫䐥
䗉࠰⭫䐥
(TO07)
䗉࠰䬷ᆎಞ
(P10)
⁗ᕅ䘿
ѣᯣ⭫䐥
(TI07)
䗯⋵
Ỷ⎁
䀜
ਇ
䘿
PM10
INTTM07
(ᇐᰬಞѣᯣ)
ᇐᰬಞ䇗ᮦᇺᆎಞ07(TCR07)
ᇐᰬಞ⣬ᘷᇺᆎಞ07
(TSR07)
ᇐᰬಞᮦᦤᇺᆎಞ07(TDR07)
рⓘ
OVF
07
CKS07 CCS07 STS072 STS071 STS070 CIS071 CIS070 MD073 MD072 MD071 MD070
䙐䚉 7
ᇐᰬಞ⁗ᕅᇺᆎಞ07(TMR07)
能通过设定外围 I/O 重定向寄存器 (PIOR),分配上图 ( ) 内的功能。
备注
6.2.1
定时器计数寄存器 0n (TCR0n)
TCR0n 寄存器是对计数时钟进行计数的 16 位只读寄存器。
与计数时钟的上升沿同步进行递增或者递减计数。
通过定时器模式寄存器 0n (TMR0n)的 MD0n3 ~ MD0n0 位来选择运行模式,进行递增和递减计数的切
换 (参照 “6.3.3 定时器模式寄存器 0n (TMR0n) ”)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
129
R7F0C903-908
第 6 章 定时器阵列单元
图 6-3
定时器计数寄存器 0n (TCR0n)的格式
地址:F0180H、 F0181H (TCR00)~ F018EH、 F018FH (TCR07)
F0181H (TCR00 的情况)
15
14
13
12
11
10
R
复位后:FFFFH
F0180H (TCR00 的情况)
9
8
7
6
5
4
3
2
1
0
TCR0n
n:通道号 (n=0 ~ 7)
备注
能通过读定时器计数寄存器 0n (TCR0n)来读计数值。
在以下情况下,计数值变为 “FFFFH”。
•
当产生复位信号时
•
当清除外围允许寄存器 0 (PER0)的 TAU0EN 位时
•
•
在 PWM输出模式中从属通道的计数结束时
在延迟计数模式中从属通道的计数结束时
•
在单触发脉冲输出模式中主控 / 从属通道的计数结束时
•
在多重 PWM 输出模式中从属通道的计数结束时
在以下情况下,计数值变为 “0000H”。
•
在捕捉模式中输入开始触发时
•
在捕捉模式中捕捉结束时
即使读 TCR0n 寄存器,也不将计数值捕捉到定时器数据寄存器 0n (TDR0n)。
注意
如下所示, TCR0n 寄存器的读取值因运行模式和运行状态而不同。
表 6-3
各运行模式中的定时器计数寄存器 0n (TCR0n)的读取值
定时器计数寄存器 0n (TCR0n)的读取值注
运行模式
计数方式
解除复位后更改运
计数暂停
行模式时的值
(TT0n=1)时的值
计数暂停
(TT0n=1)后更改
运行模式时的值
单次计数后等待
开始触发时的值
间隔定时器模式
递减计数
FFFFH
停止时的值
不定值
—
捕捉模式
递增计数
0000H
停止时的值
不定值
—
事件计数器模式
递减计数
FFFFH
停止时的值
不定值
—
单次计数模式
递减计数
FFFFH
停止时的值
不定值
FFFFH
捕捉 & 单次计数
递增计数
0000H
停止时的值
不定值
TDR0n 寄存器的
捕捉值 +1
模式
注
表示通道 n 处于定时器运行停止状态 (TE0n=0)和计数允许状态 (TS0n=1)时的 TCR0n 寄存器的读取值。将此
值保持在 TCR0n 寄存器,直到开始计数为止。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
130
R7F0C903-908
6.2.2
第 6 章 定时器阵列单元
定时器数据寄存器 0n (TDR0n)
这是能进行捕捉功能和比较功能切换使用的 16 位寄存器。通过定时器模式寄存器 0n (TMR0n)的 MD0n3 ~
MD0n0 位来选择运行模式,进行捕捉功能和比较功能的切换。
能随时改写 TDR0n 寄存器。
能以 16 位为单位读写此寄存器。
在 8 位定时器模式中(定时器模式寄存器 01、03(TMR01、TMR03)的 SPLIT01 位和 SPLIT03 位为 “1”),
能以 8 位为单位读写 TDR01 寄存器和 TDR03 寄存器,其中 TDR01H 和 TDR03H 用作高 8 位, TDR01L 和
TDR03L 用作低 8 位。
在产生复位信号后, TDR0n 寄存器的值变为 “0000H”。
图 6-4
定时器数据寄存器 0n (TDR0n)(n=0、 2、 4 ~ 7)的格式
地址:FFF18H、 FFF19H (TDR00)、 FFF64H、 FFF65H (TDR02)
R/W
复位后:0000H
FFF68H、 FFF69H (TDR04)~ FFF6EH、 FFF6FH (TDR07)
FFF19H (TDR00 的情况)
15
14
13
12
11
10
FFF18H (TDR00 的情况)
9
8
7
6
5
4
3
2
1
0
1
0
TDR0n
图 6-5
定时器数据寄存器 01、 03 (TDR01、 TDR03)的格式
地址:FFF1AH、 FFF1BH (TDR01)、 FFF66H、 FFF67H (TDR03)
FFF1BH (TDR01 的情况)
15
14
13
12
11
10
R/W
复位后:0000H
FFF1AH (TDR01 的情况)
9
8
7
6
5
4
3
2
TDR0n
(i)
定时器数据寄存器 0n (TDR0n)用作比较寄存器的情况
从 TDR0n 寄存器的设定值开始递减计数,当计数值变为 “0000H” 时,产生中断信号 (INTTM0n)。保
持 TDR0n寄存器的值,直到被改写为止。
注意
即使输入捕捉触发信号,设定为比较功能的 TDR0n 寄存器也不进行捕捉运行。
(ii) 定时器数据寄存器 0n (TDR0n)用作捕捉寄存器的情况
通过输入捕捉触发,将定时器计数寄存器 0n (TCR0n)的计数值捕捉到 TDR0n寄存器。
能选择 TI0n 引脚的有效边沿作为捕捉触发信号。通过定时器模式寄存器0n(TMR0n)来设定捕捉触发
的选择。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
131
R7F0C903-908
6.3
第 6 章 定时器阵列单元
控制定时器阵列单元的寄存器
控制定时器阵列单元的寄存器如下所示:
•
外围允许寄存器 0 (PER0)
•
定时器时钟选择寄存器 0 (TPS0)
•
定时器模式寄存器 0n (TMR0n)
•
定时器状态寄存器 0n (TSR0n)
•
定时器通道允许状态寄存器 0 (TE0)
•
•
定时器通道开始寄存器 0 (TS0)
定时器通道停止寄存器 0 (TT0)
•
定时器输入选择寄存器 0 (TIS0)
•
定时器输出允许寄存器 0 (TOE0)
•
定时器输出寄存器 0 (TO0)
•
定时器输出电平寄存器 0 (TOL0)
•
定时器输出模式寄存器 0 (TOM0)
•
噪声滤波器允许寄存器 1 (NFEN1)
•
端口模式控制寄存器 (PMCxx)
•
端口模式寄存器 (PMxx)
•
端口寄存器 (Pxx)
备注
n:通道号 (n=0 ~ 7)
注意
分配的寄存器和位因产品而不同。必须给未分配的位设定初始值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
132
R7F0C903-908
6.3.1
第 6 章 定时器阵列单元
外围允许寄存器 0 (PER0)
PER0 寄存器是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过停止给不使用的硬件提供时钟,以
降低功耗和噪声。
要使用定时器阵列单元时,必须将 bit0 (TAU0EN)置 “1”。
通过 1 位或者 8 位存储器操作指令设定 PER0 寄存器。
在产生复位信号后, PER0 寄存器的值变为 “00H”。
图 6-6
地址:F00F0H
外围允许寄存器 0 (PER0)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
TAU0EN
0
定时器阵列单元的输入时钟的控制
停止提供输入时钟。
• 不能写定时器阵列单元使用的 SFR。
• 定时器阵列单元处于复位状态。
1
提供输入时钟。
• 能读写定时器阵列单元使用的 SFR。
注意 1. 要设定定时器阵列单元时,必须先在 TAU0EN 位为 “1” 的状态下设定以下的寄存器。当 TAU0EN 位为 “0” 时,定时
器阵列单元的控制寄存器的值为初始值,忽视写操作 (定时器输入选择寄存器 0 (TIS0)、噪声滤波器允许寄存器
1(NFEN1)、端口模式寄存器 0、 1、3、 4(PM0、PM1、PM3、PM4)、端口寄存器 0、1、3、 4(P0、P1、
P3、 P4)和端口模式控制寄存器 0、 1、 4 (PMC0、 PMC1、 PMC4)除外)。
• 定时器时钟选择寄存器 0 (TPS0)
• 定时器模式寄存器 0n (TMR0n)
• 定时器状态寄存器 0n (TSR0n)
• 定时器通道允许状态寄存器 0 (TE0)
• 定时器通道开始寄存器 0 (TS0)
• 定时器通道停止寄存器 0 (TT0)
• 定时器输出允许寄存器 0 (TOE0)
• 定时器输出寄存器 0 (TO0)
• 定时器输出电平寄存器 0 (TOL0)
• 定时器输出模式寄存器 0 (TOM0)
2. 必须将 bit6 和 bit1 置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
133
R7F0C903-908
6.3.2
第 6 章 定时器阵列单元
定时器时钟选择寄存器 0 (TPS0)
TPS0 寄存器是 16 位寄存器,选择提供给各通道的 2 种或者 4 种公共运行时钟 (CK00 ~ CK03)。通过
TPS0 寄存器的 bit3 ~ 0 选择 CK00,通过 TPS0 寄存器的 bit7 ~ 4 选择 CK01。另外,只有通道 1 和通道 3 才能
选择 CK02 和 CK03。能通过 TPS0 寄存器的 bit9 和 bit8 选择 CK02,通过 TPS0 寄存器的 bit13 和 bit12 选择 CK03。
只有在以下情况下才能改写定时器运行中的 TPS0 寄存器。
能改写 PRS000 ~ PRS003 位的情况 (n=0 ~ 7):
选择 CK00 作为运行时钟 (CKS0n1、 CKS0n0=0、 0)的通道全部处于停止状态 (TE0n=0)。
能改写 PRS010 ~ PRS013 位的情况 (n=0 ~ 7):
选择 CK01 作为运行时钟 (CKS0n1、 CKS0n0=0、 1)的通道全部处于停止状态 (TE0n=0)。
能改写 PRS020 位和 PRS021 位的情况 (n=1、 3):
选择 CK02 作为运行时钟 (CKS0n1、 CKS0n0=1、 0)的通道全部处于停止状态 (TE0n=0)。
能改写 PRS030 位和 PRS031 位的情况 (n=1、 3):
选择 CK03 作为运行时钟 (CKS0n1、 CKS0n0=1、 1)的通道全部处于停止状态 (TE0n=0)。
通过 16 位存储器操作指令设定 TPS0 寄存器。
在产生复位信号后, TPS0 寄存器的值变为 “0000H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
134
R7F0C903-908
第 6 章 定时器阵列单元
图 6-7
地址:F01B6H、 F01B7H
定时器时钟选择寄存器 0 (TPS0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TPS0
0
0
PRS
PRS
0
0
PRS
PRS
PRS
PRS
PRS
PRS
PRS
PRS
PRS
PRS
031
030
021
020
013
012
011
010
003
002
001
000
PRS
0k3
PRS
0k2
PRS
0k1
PRS
0k0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
PRS
021
PRS
020
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
fCLK=
2MHz
fCLK=
4MHz
fCLK=
8MHz
fCLK=
16MHz
fCLK=
20MHz
fCLK=
24MHz
fCLK
2MHz
4MHz
8MHz
16MHz
20MHz
24MHz
1
fCLK/2
1MHz
2MHz
4MHz
8MHz
10MHz
12MHz
0
fCLK/22
500kHz
1MHz
2MHz
4MHz
5MHz
6MHz
1
fCLK/23
250kHz
500kHz
1MHz
2MHz
2.5MHz
3MHz
0
fCLK/24
125kHz
250kHz
500kHz
1MHz
1.25MHz
1.5MHz
1
fCLK/25
62.5kHz
125kHz
250kHz
500kHz
625kHz
750kHz
0
fCLK/26
31.3kHz
62.5kHz
125kHz
250kHz
313kHz
375kHz
1
fCLK/27
15.6kHz
31.3kHz
62.5kHz
125kHz
156kHz
188kHz
0
fCLK/28
7.81kHz
15.6kHz
31.3kHz
62.5kHz
78.1kHz
93.8kHz
1
fCLK/29
3.91kHz
7.81kHz
15.6kHz
31.3kHz
39.1kHz
46.9kHz
0
fCLK/210
1.95kHz
3.91kHz
7.81kHz
15.6kHz
19.5kHz
23.4kHz
1
fCLK
/211
977Hz
1.95kHz
3.91kHz
7.81kHz
9.77kHz
11.7kHz
0
fCLK/212
488Hz
997Hz
1.95kHz
3.91kHz
4.88kHz
5.86kHz
1
fCLK/213
244Hz
488Hz
997Hz
1.95kHz
2.44kHz
2.93kHz
0
fCLK/214
122Hz
244Hz
488Hz
997Hz
1.22kHz
1.46kHz
1
fCLK/215
61Hz
122Hz
244Hz
488Hz
610Hz
732Hz
运行时钟 (CK02)的选择注
fCLK=
2MHz
fCLK=
4MHz
fCLK=
8MHz
fCLK=
16MHz
fCLK=
20MHz
fCLK=
24MHz
fCLK/2
1MHz
2MHz
4MHz
8MHz
10MHz
12MHz
1
fCLK/22
500kHz
1MHz
2MHz
4MHz
5MHz
6MHz
1
0
fCLK/24
125kHz
250kHz
500kHz
1MHz
1.25MHz
1.5MHz
1
1
fCLK/26
31.3kHz
62.5kHz
125kHz
250kHz
313kHz
375kHz
PRS
031
PRS
030
0
0
1
0
1
1
注
0
运行时钟 (CK0k)的选择注 (k=0、 1)
0
1
运行时钟 (CK03)的选择注
fCLK=
2MHz
fCLK=
4MHz
fCLK=
8MHz
fCLK=
16MHz
fCLK=
20MHz
fCLK=
24MHz
fCLK/28
7.81kHz
15.6kHz
31.3kHz
62.5kHz
78.1kHz
93.8kHz
fCLK
/210
1.95kHz
3.91kHz
7.81kHz
15.6kHz
19.5kHz
23.4kHz
fCLK
/212
488Hz
977Hz
1.95kHz
3.91kHz
4.88kHz
5.86kHz
fCLK
/214
122Hz
244Hz
488Hz
977Hz
1.22kHz
1.46kHz
在更改选择为fCLK的时钟(更改系统时钟控制寄存器(CKC)的值)的情况下,必须停止定时器阵列单元(TT0=00FFH)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
135
R7F0C903-908
第 6 章 定时器阵列单元
注意 1. 必须将 bit15、 14、 11、 10 置 “0”。
2. 如果选择 fCLK (无分频)作为运行时钟 (CKmk)并且将 TDRnm 置 “0000H” (n=0、 1, m=0 ~ 7),就不能使
用定时器阵列单元的中断请求。
备注 1. fCLK:CPU/ 外围硬件的时钟频率
2. 上述的选择时钟从上升沿开始只有1个fCLK 周期为高电平(m=2~15)。详细内容请参照“6.5.1 计数时钟(fTCLK)”。
如果在 8 位定时器模式中使用通道 1 和通道 3 并且将 CK02 和 CK03 作为运行时钟,就能通过间隔定时器
功能实现表 6-4 所示的间隔时间。
表 6-4
运行时钟 CKS02 和 CKS03 能设定的间隔时间
间隔时间 (fCLK=20MHz)注
时钟
CK02
CK03
10μs
100μs
1ms
10ms
fCLK/2
○
—
—
—
fCLK/22
○
—
—
—
fCLK/24
○
○
—
—
fCLK/26
—
○
○
—
fCLK/28
—
○
○
—
fCLK/210
—
—
○
—
fCLK/212
—
—
—
○
fCLK/214
—
—
—
—
注
○包含 4% 以内的误差。
备注
有关 TPS0 寄存器所选 fCLK/2n 波形的详细内容,请参照 “6.5.1 计数时钟 (fTCLK) ”。
6.3.3
定时器模式寄存器 0n (TMR0n)
TMR0n 寄存器是设定通道 n 运行模式的寄存器,进行运行时钟 (fMCK)的选择、计数时钟的选择、主控 /
从属的选择、 16 位 /8 位定时器的选择 (只限于通道 1 和通道 3)、开始触发和捕捉触发的设定、定时器输入有
效边沿的选择以及运行模式 (间隔、捕捉、事件计数器、单次计数、捕捉 & 单次计数)的设定。
禁止在运行中 (TE0n=1)改写 TMR0n 寄存器。但是,能在一部分的功能运行中 (TE0n=1)改写 bit7 和
bit6 (CIS0n1、 CIS0n0)(详细内容请参照 “6.8 定时器阵列单元的独立通道运行功能 ” 和 “6.9 定时器阵列单
元的多通道联动运行功能 ”)。
通过 16 位存储器操作指令设定 TMR0n 寄存器。
在产生复位信号后, TMR0n 寄存器的值变为 “0000H”。
注意
TMR0n 寄存器的 bit11 因通道而不同。
TMR02、 TMR04、 TMR06:MASTER0n位 (n=2、 4、 6)
TMR01、 TMR03:SPLIT0n 位 (n=1、 3)
TMR00、 TMR05、 TMR07:固定为“0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
136
R7F0C903-908
第 6 章 定时器阵列单元
图 6-8
定时器模式寄存器 0n (TMR0n)的格式 (1/4)
地址:F0190H、 F0191H (TMR00)~ F019EH、 F019FH (TMR07)
符号
15
14
13
TMR0n
CKS
CKS
0
(n=2、4、6) 0n1
0n0
符号
15
14
13
TMR0n
CKS
CKS
0
(n=1、 3) 0n1
0n0
符号
15
14
TMR0n
CKS
CKS
(n=0、5、7) 0n1
0n0
12
11
10
CCS MAST STS
9
8
7
6
5
4
0
0
STS
STS
CIS
CIS
0n
ER0n
0n2
0n1
0n0
0n1
0n0
12
11
10
9
8
7
6
5
4
0
0
CCS SPLIT STS
STS
STS
CIS
CIS
0n
0n
0n2
0n1
0n0
0n1
0n0
13
12
11
10
9
8
7
6
5
4
0
CCS
0注
STS
STS
STS
CIS
CIS
0
0
0n2
0n1
0n0
0n1
0n0
0n
CKS0n1 CKS0n0
R/W
复位后:0000H
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
通道 n 运行时钟 (fMCK)的选择
0
0
定时器时钟选择寄存器 0 (TPS0)设定的运行时钟 CK00
0
1
定时器时钟选择寄存器 0 (TPS0)设定的运行时钟 CK02
1
0
定时器时钟选择寄存器 0 (TPS0)设定的运行时钟 CK01
1
1
定时器时钟选择寄存器 0 (TPS0)设定的运行时钟 CK03
运行时钟 (fMCK)用于边沿检测电路。通过设定 CCS0n 位来产生采样时钟和计数时钟 (fTCLK)。
只有通道 1 和通道 3 才能选择运行时钟 CK02 和 CK03。
CCS0n
通道 n 计数时钟 (fTCLK)的选择
0
CKS0n0 位和 CKS0n1 位指定的运行时钟 (fMCK)
1
TI0n 引脚输入信号的有效边沿
在通道 5 的情况下,为 TIS0 选择的输入信号的有效边沿。
计数时钟 (fTCLK)用于计数器、输出控制电路和中断控制电路。
注
bit11 是只读位,固定为 “0”,忽视写操作。
注意 1. 必须将 bit13、 5、 4 置 “0”。
2. 要更改选择为 fCLK 的时钟 (更改系统时钟控制寄存器 (CKC)的值)时,即使选择了 CKS0n0 位和 CKS0n1 位
指定的运行时钟 (fMCK)或者 TI0n 引脚输入信号的有效边沿作为计数时钟 (fTCLK),也必须停止定时器阵列单元
(TT0=00FFH)。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
137
R7F0C903-908
第 6 章 定时器阵列单元
图 6-8
定时器模式寄存器 0n (TMR0n)的格式 (2/4)
地址:F0190H、 F0191H (TMR00)~ F019EH、 F019FH (TMR07)
符号
15
14
13
TMR0n
CKS
CKS
0
(n=2、4、6) 0n1
0n0
符号
15
14
13
TMR0n
CKS
CKS
0
(n=1、3) 0n1
0n0
符号
15
14
TMR0n
CKS
CKS
(n=0、5、7) 0n1
0n0
12
11
10
CCS MAST STS
9
8
7
6
5
4
0
0
STS
STS
CIS
CIS
0n
ER0n
0n2
0n1
0n0
0n1
0n0
12
11
10
9
8
7
6
5
4
0
0
CCS SPLIT STS
STS
STS
CIS
CIS
0n
0n
0n2
0n1
0n0
0n1
0n0
13
12
11
10
9
8
7
6
5
4
0
CCS
0注
STS
STS
STS
CIS
CIS
0
0
0n2
0n1
0n0
0n1
0n0
0n
R/W
复位后:0000H
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
(TMR0n (n=2、 4、 6)的 bit11)
MASTER0n
通道 n 的独立通道运行 / 多通道联动运行 (从属或者主控)的选择
0
用作独立通道运行功能或者多通道联动运行功能的从属通道。
1
用作多通道联动运行功能的主控通道。
只能将通道 2、 4、 6 设定为主控通道 (MASTER0n=1)。
通道 0、 5、 7 固定为 “0” (因为通道 0 为最高位通道,所以与此位的设定无关,用作主控通道)。
对于用作独立通道运行功能的通道,将 MASTER0n 位置 “0”。
(TMR0n (n=1、 3)的 bit11)
SPLIT0n
0
通道 1 和通道 3 的 8 位定时器 /16 位定时器的运行选择
用作 16 位定时器。
(用作独立通道运行功能或者多通道联动运行功能的从属通道)
1
用作 8 位定时器。
STS0n2
STS0n1
STS0n0
0
0
0
只有软件触发开始有效 (不选择其他触发源)。
0
0
1
将 TI0n 引脚输入的有效边沿用于开始触发和捕捉触发。
0
1
0
将 TI0n 引脚输入的双边沿分别用于开始触发和捕捉触发。
1
0
0
使用主控通道的中断信号 (多通道联动运行功能的从属通道的情况)。
上述以外
通道 n 的开始触发和捕捉触发的设定
禁止设定。
注
bit11 是只读位,固定为 “0”,忽视写操作。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
138
R7F0C903-908
第 6 章 定时器阵列单元
图 6-8
定时器模式寄存器 0n (TMR0n)的格式 (3/4)
地址:F0190H、 F0191H (TMR00)~ F019EH、 F019FH (TMR07)
符号
15
14
13
TMR0n
CKS
CKS
0
(n=2、4、6) 0n1
0n0
符号
15
14
13
TMR0n
CKS
CKS
0
(n=1、3) 0n1
0n0
符号
15
14
TMR0n
CKS
CKS
(n=0、5、7) 0n1
0n0
12
11
10
CCS MAST STS
9
8
7
6
5
4
0
0
STS
STS
CIS
CIS
0n
ER0n
0n2
0n1
0n0
0n1
0n0
12
11
10
9
8
7
6
5
4
0
0
CCS SPLIT STS
STS
STS
CIS
CIS
0n
0n
0n2
0n1
0n0
0n1
0n0
13
12
11
10
9
8
7
6
5
4
0
CCS
0注
STS
STS
STS
CIS
CIS
0
0
0n2
0n1
0n0
0n1
0n0
0n
CIS0n1
CIS0n0
0
0
下降沿
0
1
上升沿
1
0
双边沿 (测量低电平宽度时)
1
1
R/W
复位后:0000H
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
TI0n 引脚的有效边沿选择
开始触发:下降沿,捕捉触发:上升沿
双边沿 (测量高电平宽度时)
开始触发:上升沿,捕捉触发:下降沿
当 STS0n2 ~ STS0n0 位不为 “010B” 并且使用双边沿指定时,必须将 CIS0n1 ~ CIS0n0 位置 “10B”。
注
bit11 是只读位,固定为 “0”,忽视写操作。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
139
R7F0C903-908
第 6 章 定时器阵列单元
图 6-8
定时器模式寄存器 0n (TMR0n)的格式 (4/4)
地址:F0190H、 F0191H (TMR00)~ F019EH、 F019FH (TMR07)
符号
15
14
13
TMR0n
CKS
CKS
0
(n=2、4、6) 0n1
0n0
符号
15
14
13
TMR0n
CKS
CKS
0
(n=1、3) 0n1
0n0
符号
15
14
TMR0n
CKS
CKS
(n=0、5、7) 0n1
0n0
12
11
10
CCS MAST STS
9
8
7
6
5
4
0
0
STS
STS
CIS
CIS
0n
ER0n
0n2
0n1
0n0
0n1
0n0
12
11
10
9
8
7
6
5
STS
STS
CIS
CIS
0
CCS SPLIT STS
3
2
MD
MD
MD
0n2
0n1
0n0
4
3
2
1
0
0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
3
2
1
0
0n2
0n1
0n0
0n1
0n0
13
12
11
10
9
8
7
6
5
4
0
CCS
0注 1
STS
STS
STS
CIS
CIS
0
0
0n2
0n1
0n0
0n1
0n0
MD
MD
MD
MD
0n3
0n2
0n1
0n0
MD
MD
MD
0n3
0n2
0n1
0
0
0
间隔定时器模式
间隔定时器 / 方波输出 / 分频器功 递减计数
能 /PWM 输出 (主控)
0
1
0
捕捉模式
输入脉冲间隔的测量
递增计数
0
1
1
事件计数器模式
外部事件计数器
递减计数
1
0
0
单次计数模式
延迟计数器/单触发脉冲输出/PWM 递减计数
输出 (从属)
1
1
0
捕捉 & 单次计数模式
输入信号的高低电平宽度的测量
上述以外
0
MD
0n
通道 n 运行模式的设定
1
0n3
0n
0n
R/W
复位后:0000H
TCR 的计数运行
对应功能
递增计数
禁止设定。
各模式的运行因 MD0n0 位而变 (参照下表)。
MD
0n0
开始计数和中断的设定
• 间隔定时器模式 (0、 0、 0)
• 捕捉模式 (0、 1、 0)
0
在开始计数时不产生定时器中断 (定时器的输出也不发生变化)。
1
在开始计数时产生定时器中断 (定时器的输出也发生变化)。
• 事件计数器模式 (0、 1、 1)
0
在开始计数时不产生定时器中断 (定时器的输出也不发生变化)。
0
计数运行中的开始触发无效。此时不产生中断。
1
计数运行中的开始触发有效注 3。此时不产生中断。
0
在开始计数时不产生定时器中断 (定时器的输出也不发生变化)。
计数运行中的开始触发无效。
此时不产生中断。
运行模式 (MD0n3 ~ MD0n1 位
的设定 (参照上表))
•
单次计数模式注 2
(1、 0、 0)
• 捕捉 & 单次计数模式 (1、 1、 0)
上述以外
注
禁止设定。
1. bit11 是只读位,固定为 “0”,忽视写操作。
2. 在单次计数模式中,不控制开始计数时的中断输出 (INTTM0n)和 TO0n 输出。
3. 如果在运行中产生开始触发 (TS0n=1),就对计数器进行初始化并且重新开始计数 (不产生中断请求)。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
140
R7F0C903-908
6.3.4
第 6 章 定时器阵列单元
定时器状态寄存器 0n (TSR0n)
TSR0n 寄存器是表示通道 n 计数器的上溢状态的寄存器。
TSR0n 寄存器只在捕捉模式(MD0n3 ~ MD0n1=010B)和捕捉 & 单次计数模式(MD0n3 ~ MD0n1=110B)
中有效,在其他模式中不被置位。有关各运行模式中的 OVF 位的变化和置位 / 清除条件,请参照表 6-5。
通过 16 位存储器操作指令读 TSR0n 寄存器。
能用 TSR0nL 并且通过 8 位存储器操作指令读 TSR0n 寄存器的低 8 位。
在产生复位信号后, TSR0n 寄存器的值变为 “0000H”。
图 6-9
定时器状态寄存器 0n (TSR0n)的格式
地址:F01A0H、 F01A1H (TSR00)~ F01AEH、 F01AFH (TSR07)
R
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TSR0n
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
OVF
OVF
通道 n 的计数器上溢状态
0
没有发生上溢。
1
发生上溢。
如果 OVF 位为 “1”,就在下一次计数不发生上溢并且捕捉到计数值时清除此标志 (OVF=0)。
备注
n:通道号 (n=0 ~ 7)
表 6-5
定时器运行模式
各运行模式中的 OVF 位的变化和置位 / 清除条件
OVF 位
置位 / 清除条件
• 捕捉模式
• 捕捉 & 单次计数模式
清除
在捕捉时没有发生上溢的情况
置位
在捕捉时发生上溢的情况
• 间隔定时器模式
• 事件计数器模式
• 单次计数模式
清除
—
置位
(不能使用)
备注
即使计数器发生上溢, OVF 位也不立即发生变化,而在此后的捕捉时发生变化。
R01UH0629CJ0120 Rev.1.20
2019.06.28
141
R7F0C903-908
6.3.5
第 6 章 定时器阵列单元
定时器通道允许状态寄存器 0 (TE0)
TE0 寄存器是表示各通道定时器运行的允许或者停止状态的寄存器。
TE0 寄存器的各位对应定时器通道开始寄存器 0 (TS0)和定时器通道停止寄存器 0 (TT0)的各位。如果
将 TS0 寄存器的各位置 “1”,就将其对应位置 “1”。如果将 TT0 寄存器的各位置 “1”,就将其对应位清 “0”。
通过 16 位存储器操作指令读 TE0 寄存器。
能用 TE0L 并且通过 1 位或者 8 位存储器操作指令读 TE0 寄存器的低 8 位。
在产生复位信号后, TE0 寄存器的值变为 “0000H”。
图 6-10
地址:F01B0H、 F01B1H
定时器通道允许状态寄存器 0 (TE0)的格式
复位后:0000H
R
符号
15
14
13
12
11
10
9
8
TE0
0
0
0
0
TEH03
0
TEH01
0
TEH03
7
6
5
4
3
2
1
0
TE07 TE06 TE05 TE04 TE03 TE02 TE01 TE00
通道 3 为 8 位定时器模式时的高 8 位定时器的运行允许或者停止状态的表示
0
运行停止状态
1
运行允许状态
TEH01
通道 1 为 8 位定时器模式时的高 8 位定时器的运行允许或者停止状态的表示
0
运行停止状态
1
运行允许状态
TE0n
通道 n 的运行允许或者停止状态的表示
0
运行停止状态
1
运行允许状态
在通道 1 和通道 3 为 8 位定时器模式时, TE01 和 TE03 表示低 8 位定时器的运行允许或者停止状态。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
142
R7F0C903-908
6.3.6
第 6 章 定时器阵列单元
定时器通道开始寄存器 0 (TS0)
TS0 寄存器是对定时器计数寄存器 0n (TCR0n)进行初始化并且设定各通道计数运行开始的触发寄存器。
如果将各位置 “1”,定时器通道允许状态寄存器 0 (TE0)的对应位就被置 “1”。因为 TS0n 位、 TSH01 位
和 TSH03 位是触发位,所以如果变为运行允许状态(TE0n、TEH01、TEH03=1),就立即清除 TS0n 位、TSH01
位和 TSH03 位。
通过 16 位存储器操作指令设定 TS0 寄存器。
能用 TS0L 并且通过 1 位或者 8 位存储器操作指令设定 TS0 寄存器的低 8 位。
在产生复位信号后, TS0 寄存器的值变为 “0000H”。
图 6-11
地址:F01B2H、 F01B3H
定时器通道开始寄存器 0 (TS0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
TS0
0
0
0
0
TSH03
0
TSH01
0
TSH03
0
1
7
6
5
4
3
2
1
0
TS07 TS06 TS05 TS04 TS03 TS02 TS01 TS00
通道 3 为 8 位定时器模式时的高 8 位定时器的运行允许 (开始)触发
没有触发。
将 TEH03 位置 “1”,进入计数允许状态。
如果在计数允许状态下开始 TCR03 寄存器的计数,就进入间隔定时器模式 (参照表 6-6)。
TSH01
0
1
通道 1 为 8 位定时器模式时的高 8 位定时器的运行允许 (开始)触发
没有触发。
将 TEH01 位置 “1”,进入计数允许状态。
如果在计数允许状态下开始 TCR01 寄存器的计数,就进入间隔定时器模式 (参照表 6-6)。
TS0n
0
1
通道 n 的运行允许 (开始)触发
没有触发。
将 TE0n 位置 “1”,进入计数允许状态。
计数允许状态下的 TCR0n 寄存器的计数开始因各运行模式而不同 (参照表 6-6)。
在通道 1 和通道 3 为 8 位定时器模式时, TS01 和 TS03 为低 8 位定时器的运行允许 (开始)触发。
注意 1. 必须将未定义的位置 “0”。
2. 在从不使用 TI0n 引脚输入的功能切换到使用 TI0n 引脚输入的功能时,从设定定时器模式寄存器 0n (TMR0n)到
将 TS0n (TSH01、 TSH03)位置 “1” 为止,需要以下期间的等待:
TI0n 引脚噪声滤波器有效时 (TNFEN0n=1):4 个运行时钟 (fMCK)
TI0n 引脚噪声滤波器无效时 (TNFEN0n=0):2 个运行时钟 (fMCK)
备注 1. TS0 寄存器的读取值总是 “0”。
2. n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
143
R7F0C903-908
6.3.7
第 6 章 定时器阵列单元
定时器通道停止寄存器 0 (TT0)
TT0 寄存器是设定各通道计数停止的触发寄存器。
如果将各位置 “1”,定时器通道允许状态寄存器 0 (TE0)的对应位就被清 “0”。因为 TT0n 位、 TTH01 位
和 TTH03 位是触发位,所以如果变为运行停止状态(TE0n、TEH01、TEH03=0),就立即清除 TT0n 位、TTH01
位和 TTH03 位。
通过 16 位存储器操作指令设定 TT0 寄存器。
能用 TT0L 并且通过 1 位或者 8 位存储器操作指令设定 TT0 寄存器的低 8 位。
在产生复位信号后, TT0 寄存器的值变为 “0000H”。
图 6-12
地址:F01B4H、 F01B5H
定时器通道停止寄存器 0 (TT0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
TT0
0
0
0
0
TTH03
0
TTH01
0
TTH03
没有触发。
1
将 TEH03 位清 “0”,进入计数停止状态。
TTH01
5
4
3
2
1
0
TT07 TT06 TT05 TT04 TT03 TT02 TT01 TT00
通道 1 为 8 位定时器模式时的高 8 位定时器的运行停止触发
0
没有触发。
1
将 TEH01 位清 “0”,进入计数停止状态。
TT0n
1
6
通道 3 为 8 位定时器模式时的高 8 位定时器的运行停止触发
0
0
7
通道 n 的运行停止触发
没有触发。
将 TE0n 位清 “0”,进入计数停止状态。
在通道 1 和通道 3 为 8 位定时器模式时, TT01 和 TT03 为低 8 位定时器的运行停止触发。
注意
必须将未定义的位置 “0”。
备注 1. TT0 寄存器的读取值总是 “0”。
2. n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
144
R7F0C903-908
6.3.8
第 6 章 定时器阵列单元
定时器输入选择寄存器 0 (TIS0)
通过 8 位存储器操作指令设定 TIS0 寄存器。
在产生复位信号后, TIS0 寄存器的值变为 “00H”。
图 6-13
地址:F0074H
定时器输入选择寄存器 0 (TIS0)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
TIS0
0
0
0
0
0
TIS02
TIS01
TIS00
TIS02
TIS01
TIS00
0
×
×
定时器输入引脚 (TI05)的输入信号
1
0
0
低速内部振荡器时钟 (fIL)
上述以外
通道 5 使用的定时器输入的选择
禁止设定。
×:忽略
6.3.9
定时器输出允许寄存器 0 (TOE0)
TOE0 寄存器是设定允许或者禁止各通道定时器输出的寄存器。
对于允许定时器输出的通道 n,无法通过软件改写后述的定时器输出寄存器 0 (TO0)的 TO0n 位的值,并
且由计数运行的定时器输出功能反映的值从定时器的输出引脚 (TO0n)输出。
通过 16 位存储器操作指令设定 TOE0 寄存器。
能用 TOE0L 并且通过 1 位或者 8 位存储器操作指令设定 TOE0 寄存器的低 8 位。
在产生复位信号后, TOE0 寄存器的值变为 “0000H”。
图 6-14
地址:F01BAH、 F01BBH
定时器输出允许寄存器 0 (TOE0)的格式
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TOE0
0
0
0
0
0
0
0
0
TOE
TOE
TOE
TOE
TOE
TOE
TOE
TOE
07
06
05
04
03
02
01
00
TOE0n
0
通道 n 的定时器输出的允许 / 禁止
禁止定时器输出。
定时器的运行不反映到 TO0n 位,固定输出。
能写 TO0n 位,并且从 TO0n 引脚输出 TO0n 位设定的电平。
1
允许定时器输出。
定时器的运行反映到 TO0n 位,产生输出波形。
忽视 TO0n 位的写操作。
注意
必须将未定义的位置 “0”。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
145
R7F0C903-908
6.3.10
第 6 章 定时器阵列单元
定时器输出寄存器 0 (TO0)
TO0 寄存器是各通道定时器输出的缓冲寄存器。
此寄存器各位的值从各通道定时器的输出引脚 (TO0n)输出。
只有在禁止定时器输出 (TOE0n=0)时才能通过软件改写此寄存器的 TO0n 位。当允许定时器输出时
(TOE0n=1),忽视通过软件的改写操作,而只通过定时器的运行更改其值。
要将 TO00、TO01、TO02、TO03、(TO04)、(TO05)、(TO06)、(TO07) 引脚用作端口功能时,必须将相应的
TO0n 位置 “0”。
通过 16 位存储器操作指令设定 TO0 寄存器。
能用 TO0L 并且通过 8 位存储器操作指令设定 TO0 寄存器的低 8 位。
在产生复位信号后, TO0 寄存器的值变为 “0000H”。
图 6-15
地址:F01B8H、 F01B9H
定时器输出寄存器 0 (TO0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
TO0
0
0
0
0
0
0
0
0
TO0n
7
6
5
4
3
2
1
0
TO07 TO06 TO05 TO04 TO03 TO02 TO01 TO00
通道 n 的定时器输出
0
定时器的输出值为 “0”。
1
定时器的输出值为 “1”。
注意
必须将未定义的位置 “0”。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
146
R7F0C903-908
6.3.11
第 6 章 定时器阵列单元
定时器输出电平寄存器 0 (TOL0)
TOL0 寄存器是控制各通道定时器输出电平的寄存器。
当允许定时器输出 (TOE0n=1)并且使用多通道联动运行功能 (TOM0n=1)时,在定时器输出信号的置
位和复位时序,反映此寄存器进行的各通道 n 的反相设定。在主控通道输出模式 (TOM0n=0)中,此寄存器的
设定无效。
通过 16 位存储器操作指令设定 TOL0 寄存器。
能用 TOL0L 并且通过 8 位存储器操作指令设定 TOL0 寄存器的低 8 位。
在产生复位信号后, TOL0 寄存器的值变为 “0000H”。
图 6-16
地址:F01BCH、 F01BDH
定时器输出电平寄存器 0 (TOL0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TOL0
0
0
0
0
0
0
0
0
TOL
TOL
TOL
TOL
TOL
TOL
TOL
0
07
06
05
04
03
02
01
TOL0n
注意
通道 n 的定时器输出电平的控制
0
正逻辑输出 (高电平有效)
1
负逻辑输出 (低电平有效)
必须将未定义的位置 “0”。
备注 1. 如果在定时器运行中改写此寄存器的值,就在下一次定时器输出信号发生变化时定时器反相输出,而不是在改写后
立即反相。
2. n:通道号 (n=1 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
147
R7F0C903-908
6.3.12
第 6 章 定时器阵列单元
定时器输出模式寄存器 0 (TOM0)
TOM0 寄存器是控制各通道定时器输出模式的寄存器。
当用作独立通道运行功能时,将所用通道的对应位置 “0”。
当用作多通道联动运行功能 (PWM 输出、单触发脉冲输出和多重 PWM 输出)时,将主控通道的对应位
置 “0” 并且将从属通道的对应位置 “1”。
当允许定时器输出 (TOE0n=1)时,在定时器输出信号的置位和复位时序,反映此寄存器进行的各通道 n
的设定。
通过 16 位存储器操作指令设定 TOM0 寄存器。
能用 TOM0L 并且通过 8 位存储器操作指令设定 TOM0 寄存器的低 8 位。
在产生复位信号后, TOM0 寄存器的值变为 “0000H”。
图 6-17
地址:F01BEH、 F01BFH
定时器输出模式寄存器 0 (TOM0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
TOM0
0
0
0
0
0
0
0
0
7
5
4
3
2
1
TOM TOM TOM TOM TOM TOM TOM
07
TOM0n
6
06
05
04
03
02
0
0
01
通道 n 的定时器输出模式的控制
0
主控通道输出模式 (通过定时器中断请求信号 (INTTM0n)进行交替输出)
1
从属通道输出模式 (通过主控通道的定时器中断请求信号 (INTTM0n)将输出置位,并且通过从
属通道的定时器中断请求信号 (INTTM0p)对输出进行复位)
注意
必须将未定义的位置 “0”。
备注
n:通道号
n=1~ 7 (主控通道:n=0、 2、 4、 6)
p:从属通道号
n<p≤ 7
(有关主控通道和从属通道关系的详细内容,请参照 “6.4.1 多通道联动运行功能的基本规则 ”)
R01UH0629CJ0120 Rev.1.20
2019.06.28
148
R7F0C903-908
6.3.13
第 6 章 定时器阵列单元
噪声滤波器允许寄存器 1 (NFEN1)
NFEN1 寄存器设定噪声滤波器是否用于各通道定时器输入引脚的输入信号。
对于需要消除噪声的引脚,必须将对应位置 “1”,使噪声滤波器有效。
当噪声滤波器有效时,在通过对象通道的运行时钟 (fMCK)进行同步后检测 2 个时钟是否一致;当噪声滤
波器无效时,只通过对象通道的运行时钟 (fMCK)进行同步注。
通过 1 位或者 8 位存储器操作指令设定 NFEN1 寄存器。
在产生复位信号后, NFEN1 寄存器的值变为 “00H”。
详细内容请参照 “6.5.1 (2) 选择 TI0n 引脚输入信号的有效边沿的情况 (CCS0n=1) ”、 “6.5.2 计数器的开始时序 ”
注
和 “6.7 定时器输入 (TI0n)的控制 ”。
图 6-18
地址:F0071H
噪声滤波器允许寄存器 1 (NFEN1)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
NFEN1
TNFEN07
TNFEN06
TNFEN05
TNFEN04
TNFEN03
TNFEN02
TNFEN01
TNFEN00
TNFEN0n
备注
TI0n 引脚的输入信号噪声滤波器的使用与否
0
噪声滤波器 OFF
1
噪声滤波器 ON
通道 0 ~ 7 的定时器输入 / 输出引脚的有无因产品而不同。详细内容请参照 “ 表 6-2 本产品具有的定时器输入 / 输
出引脚 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
149
R7F0C903-908
6.3.14
第 6 章 定时器阵列单元
控制定时器输入 / 输出引脚端口功能的寄存器
在使用定时器阵列单元时,必须设定与对象通道复用的端口功能的控制寄存器(端口模式寄存器(PMxx)、
端口寄存器(Pxx)和端口模式控制寄存器(PMCxx))。详细内容请参照 “4.3.1 端口模式寄存器(PMxx)”、“4.3.2
端口寄存器 (Pxx) ” 和 “4.3.6 端口模式控制寄存器 (PMCxx) ”。
设定的端口模式寄存器 (PMxx)、端口寄存器 (Pxx)和端口模式控制寄存器 (PMCxx)因产品而不同。
详细内容请参照 “4.5.3 使用的端口功能和复用功能的寄存器设定例子 ”。
在将定时器输出引脚的复用端口 (P01/TO00 等)用作定时器的输出时,必须将各端口对应的端口模式控
制寄存器 (PMCxx)的位、端口模式寄存器 (PMxx)的位和端口寄存器 (Pxx)的位置 “0”。
例)将 P01/TO00 用作定时器输出的情况
将端口模式控制寄存器 0 的 PMC01 位置 “0”。
将端口模式寄存器 0 的 PM01 位置 “0”。
将端口寄存器 0 的 P01 位置 “0”。
在将定时器输入引脚的复用端口 (P00/TI00 等)用作定时器的输入时,必须将各端口对应的端口模式寄存
器 (PMxx)的位置 “1”,并且将各端口对应的端口控制模式寄存器 (PMCxx)的位置 “0”。此时,端口寄存器
(Pxx)的位可以是 “0” 或者 “1”。
例)将 P00/TI00 用作定时器输入的情况
将端口模式控制寄存器 0 的 PMC00 位置 “0”。
将端口模式寄存器 0 的 PM00 位置 “1”。
将端口寄存器 0 的 P00 位置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
150
R7F0C903-908
6.4
第 6 章 定时器阵列单元
定时器阵列单元的基本规则
6.4.1
多通道联动运行功能的基本规则
多通道联动运行功能是将主控通道 (主要对周期进行计数的基准定时器)和从属通道 (遵从主控通道运行
的定时器)组合实现的功能,使用时需要遵守几个规则。
多通道联动运行功能的基本规则如下所示。
(1) 只能将偶数通道 (通道 0、通道2、通道4、通道6)设定为主控通道。
(2) 能将通道 0 以外的全部通道设定为从属通道。
(3) 只能将主控通道的低位通道设定为从属通道。
例 在将通道 2 设定为主控通道时,能将通道 3 开始的通道 (通道3 ~ 7 通道)设定为从属通道。
(4) 能对 1 个主控通道设定多个从属通道。
(5) 当使用多个主控通道时,不能设定跨越主控通道的从属通道。
例 在将通道 0 和通道 4 设定为主控通道时,能将通道 1 ~通道 3 设定为主控通道 0 的从属通道,而不能
将通道 5 ~通道7 设定为主控通道 0 的从属通道。
(6) 和主控通道联动的从属通道需要设定相同的运行时钟。和主控通道联动的从属通道的CKS0n0位和CKS0n1
位 (定时器模式寄存器 0n (TMR0n)的 bit15和 bit14)的值需要是相同的设定值。
(7) 主控通道能将 INTTM0n (中断)、开始软件触发和计数时钟传给低位通道。
(8) 从属通道能将主控通道的 INTTM0n (中断)、开始软件触发和计数时钟用作源时钟,但是不能将自己
的 INTTM0n (中断)、开始软件触发和计数时钟传给低位通道。
(9) 主控通道不能将其他高位主控通道的 INTTM0n (中断)、开始软件触发和计数时钟用作源时钟。
(10) 为了同时启动要联动的通道,需要同时设定联动通道的通道开始触发位 (TS0n)。
(11) 只有联动的全部通道或者主控通道才能使用计数运行中的 TS0n 位的设定。不能只使用从属通道的 TS0n
位的设定。
(12) 为了同时停止要联动的通道,需要同时设定联动通道的通道停止触发位 (TT0n)。
(13) 在联动运行时,因为主控通道和从属通道需要相同的运行时钟,所以不能选择 CK02/CK03。
(14) 定时器模式寄存器 0n(TMR0n)没有主控位而固定为 “0”。但是,因为通道 0 是最高位的通道,所以在
联动运行时能将通道 0 用作主控通道。
多通道联动运行功能的基本规则是适用于通道群 (形成 1 个多通道联动运行功能的主控通道和从属通道的
集合)的规则。
如果设定 2 个或者更多的相互不联动的通道群,就在通道群之间不适用上述的基本规则。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
151
R7F0C903-908
第 6 章 定时器阵列单元
例
TAU0
CK00
䙐䚉0φѱ
䙐䚉㓺1
(ཐ䙐䚉㚊ࣞ䘆㺂ࣕ㜳)
䙐䚉1φԄኔ
䙐䚉2φԄኔ
䙐䚉㓺2
(ཐ䙐䚉㚊ࣞ䘆㺂ࣕ㜳)
䙐䚉3φ⤢䙐䚉䘆㺂ࣕ㜳
CK01
䙐䚉4φѱ
CK00
䙐䚉5φ⤢䙐䚉䘆㺂ࣕ㜳
ď䙐䚉㓺1ૂ䙐䚉㓺2ਥԛᱥуੂⲺ䘆㺂ᰬ䫕Ⱦ
ď൞䙐䚉㓺1ૂ䙐䚉㓺2ҁ䰪θਥԛᆎ൞֒Ѱ
⤢䙐䚉䘆㺂ࣕ㜳Ⲻ䙐䚉Ⱦ
䙐䚉6φԄኔ
䙐䚉7φ⤢䙐䚉䘆㺂ࣕ㜳
R01UH0629CJ0120 Rev.1.20
2019.06.28
ď൞䙐䚉㓺2Ⲻѱ䙐䚉ૂԄኔ䙐䚉ҁ䰪θਥ
ԛᆎ൞֒Ѱ⤢䙐䚉䘆㺂ࣕ㜳Ⲻ䙐䚉θᒬ
ъ㜳ঋ⤢䇴ᇐ䘆㺂ᰬ䫕Ⱦ
152
R7F0C903-908
6.4.2
第 6 章 定时器阵列单元
8 位定时器运行功能的基本规则 (只限于通道 1 和通道 3)
8 位定时器运行功能是将 16 位定时器的通道用作 2 个 8 位定时器的通道的功能。
只有通道 1 和通道 3 才能使用 8 位定时器运行功能,使用时需要遵守几个规则。
8 位定时器运行功能的基本规则如下所示。
(1) 8 位定时器运行功能只适用于通道 1 和通道 3。
(2) 当用作 8 位定时器时,将定时器模式寄存器 0n (TMR0n)的 SPLIT0n 位置 “1”。
(3) 高 8 位定时器能用作间隔定时器功能。
(4) 在开始运行时,高 8 位定时器输出 INTTM01H/INTTM03H (中断)(和MD0n0 位为 “1” 的运行相同)。
(5) 高 8 位定时器的运行时钟的选择取决于低位 TMR0n寄存器的 CKS0n1 位和 CKS0n0位的设定。
(6) 对于高 8 位定时器,通过操作 TSH01/TSH03位来开始通道的运行,并且通过操作 TTH01/TTH03 位来停
止通道的运行。能通过 TEH01/TEH03 位确认通道的状态。
(7) 低 8 位定时器的运行取决于 TMR0n 寄存器的设定,有以下 3 种支持低 8 位定时器运行的功能:
•
间隔定时器功能 / 方波输出功能
•
外部事件计数器功能
•
延迟计数功能
(8) 对于低 8 位定时器,通过操作 TS01/TS03 位来开始通道的运行,并且通过操作 TT01/TT03 位来停止通道
的运行。能通过 TE01/TE03位确认通道的状态。
(9) 在 16 位定时器运行时, TSH01/TSH03/TTH01/TTH03 位的操作无效。通过操作 TS01/TS03 位和 TT01/
TT03 位使通道 1 和通道 3 运行。 TEH03 位和 TEH01位不变。
(10) 8 位定时器功能不能使用联动运行功能 (单触发脉冲、 PWM 和多重PWM)。
备注
n:通道号 (n=1、 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
153
R7F0C903-908
6.5
第 6 章 定时器阵列单元
计数器的运行
6.5.1
计数时钟 (fTCLK)
定时器阵列单元的计数时钟 (fTCLK)能通过定时器模式寄存器 0n (TMR0n)的 CCS0n 位选择以下任意
一个时钟:
•
CKS0n0 位和 CKS0n1位指定的运行时钟 (fMCK)
•
TI0n 引脚输入信号的有效边沿
定时器阵列单元被设计为与 fCLK 同步运行,因此计数时钟 (fTCLK)的时序如下。
(1)
选择 CKS0n0 位和 CKS0n1 位指定的运行时钟 (fMCK)的情况 (CCS0n=0)
根据定时器时钟选择寄存器 0(TPS0)的设定,计数时钟(fTCLK)为 fCLK ~ fCLK/215。但是,当选择 fCLK
的分频时,TPS0 寄存器选择的时钟是从上升沿开始只有 1 个 fCLK 周期为高电平的信号。当选择 fCLK 时,固定
为高电平。
为了取得与 fCLK 的同步,定时器计数寄存器 0n (TCR0n)从计数时钟的上升沿开始延迟 1 个 fCLK 时钟后
进行计数,出于方便而将其称为 “ 在计数时钟的上升沿进行计数 ”。
图 6-19
fCLK 和计数时钟 (fTCLK)的时序 (CCS0n=0 的情况)
fCLK
fCLK/2
fCLK/4
fTCLK
( = fMCK
= CK0n)
fCLK/8
fCLK/16
备注 1. △:计数时钟的上升沿
▲:同步、计数器的递增 / 递减
2. fCLK:CPU/ 外围硬件时钟
R01UH0629CJ0120 Rev.1.20
2019.06.28
154
R7F0C903-908
(2)
第 6 章 定时器阵列单元
选择 TI0n 引脚输入信号的有效边沿的情况 (CCS0n=1)
计数时钟 (fTCLK)是检测 TI0n 引脚输入信号的有效边沿并且与下一个 fMCK 上升沿同步的信号。实际上,
这是比 TI0n 引脚的输入信号延迟了 1 ~ 2 个 fMCK 时钟的信号(在使用噪声滤波器时,延迟 3 ~ 4 个 fMCK 时钟)。
为了取得与 fCLK 的同步,定时器计数寄存器 0n (TCR0n)从计数时钟的上升沿开始延迟 1 个 fCLK 时钟后
进行计数,出于方便而将其称为 “ 在 TI0n 引脚输入信号的有效边沿进行计数 ”。
图 6-20
计数时钟 (fTCLK)的时序 (CCS0n=1,未使用噪声滤波器的情况)
fCLK
fMCK
TS0n()ݭ
TE0n
TI0n䕧ܹ
䞛ḋ⊶ᔶ
䖍⊓Ẕ⌟
䖍⊓Ẕ⌟
Ϟछ⊓Ẕ⌟
ֵো(fTCLK)
① 通过将 TS0n 位置位来开始定时器的运行,并且等待 TI0n输入的有效边沿。
② 通过 fMCK 对 TI0n 输入的上升沿进行采样。
③ 在采样信号的上升沿检测边沿,并且输出检测信号 (计数时钟)。
备注 1. △:计数时钟的上升沿
▲:同步、计数器的递增 / 递减
2. fCLK:CPU/ 外围硬件时钟
fMCK:通道 n 的运行时钟
3. 输入脉冲间隔的测量、输入信号高低电平的测量、延迟计数器和单触发脉冲输出功能的 TI0n 输入也是同样的波形。
R01UH0629CJ0120 Rev.1.20
2019.06.28
155
R7F0C903-908
6.5.2
第 6 章 定时器阵列单元
计数器的开始时序
通过将定时器通道开始寄存器 0(TS0)的 TS0n 位置位,定时器计数寄存器 0n(TCR0n)进入运行允许状态。
从计数允许状态到定时器计数寄存器 0n (TCR0n)开始计数为止的运行如表 6-6 所示。
表 6-6
从计数允许状态到定时器计数寄存器 0n (TCR0n)开始计数为止的运行
将 TS0n 位置 “1” 后的运行
定时器的运行模式
• 间隔定时器模式
从检测到开始触发 (TS0n=1)到产生计数时钟为止,不执行任何操作。
通过第 1 个计数时钟将 TDR0n 寄存器的值装入 TCR0n 寄存器,并且通过后续的计数
时钟进行递减计数 (参照 “6.5.3 (1) 间隔定时器模式的运行 ”)。
• 事件计数器模式
通过给 TS0n 位写 “1”,将 TDR0n 寄存器的值装入 TCR0n 寄存器。
如果检测到 TI0n 的输入边沿,通过后续的计数时钟进行递减计数 (参照 “6.5.3 (2) 事
件计数器模式的运行 ”)。
• 捕捉模式
从检测到开始触发 (TS0n=1)到产生计数时钟为止,不执行任何操作。
通过第 1 个计数时钟将 “0000H” 装入 TCR0n 寄存器,并且通过后续的计数时钟进行
递增计数 (参照 “6.5.3 (3) 捕捉模式的运行 (输入脉冲的间隔测量) ”)。
• 单次计数模式
通过在定时器停止运行 (TE0n=0)的状态下给 TS0n 位写 “1”,进入开始触发的等待
状态。
从检测到开始触发 (TS0n=1)到产生计数时钟为止,不执行任何操作。
通过第 1 个计数时钟将 TDR0n 寄存器的值装入 TCR0n 寄存器,并且通过后续的计数
时钟进行递减计数 (参照 “6.5.3 (4) 单次计数模式的运行 ”)。
• 捕捉 & 单次计数模式
通过在定时器停止运行 (TE0n=0)的状态下给 TS0n 位写 “1”,进入开始触发的等待
状态。
从检测到开始触发 (TS0n=1)到产生计数时钟为止,不执行任何操作。
通过第 1 个计数时钟将 “0000H” 装入 TCR0n 寄存器,并且通过后续的计数时钟进行
递增计数 (参照 “6.5.3 (5) 捕捉 & 单次计数模式的运行 (高电平宽度的测量) ”)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
156
R7F0C903-908
6.5.3
第 6 章 定时器阵列单元
计数器的运行
以下说明各模式的计数器运行。
(1)
间隔定时器模式的运行
① 通过给 TS0n 位写 “1”,进入运行允许状态 (TE0n=1)。定时器计数寄存器 0n (TCR0n)保持初始值,
直到产生计数时钟为止。
② 通过允许运行后的第 1 个计数时钟 (fMCK)产生开始触发信号。
③ 当 MD0n0 位为 “1”时,通过开始触发信号产生 INTTM0n。
④ 通过允许运行后的第 1 个计数时钟将定时器数据寄存器 0n (TDR0n)的值装入 TCR0n 寄存器,并且以
间隔定时器模式开始计数。
⑤ 如果 TCR0n 寄存器递减计数到 “0000H”,就通过下一个计数时钟 (fMCK)产生 INTTM0n,并且在将定
时器数据寄存器 0n (TDR0n)的值装入 TCR0n 寄存器后继续计数。
图 6-21
运行时序 (间隔定时器模式)
fMCK
(fTCLK)
TS0n()ݭ
TE0n
ᓔྟ㾺থ
Ẕ⌟ֵো
TCR0n
߱ྟؐ
m
TDR0n
0001
m−1
0000
m
m
INTTM0n
MD0n0=1ᯊ
注意
因为第 1 个计数时钟周期的运行在写 TS0n 位后并且在产生计数时钟前延迟计数的开始,所以产生最大为 1 个时钟
周期的误差。另外,如果需要开始计数时序的信息,就将 MD0n0 位置 “1”,以便能在开始计数时产生中断。
备注
fMCK、开始触发检测信号和 INTTM0n 与 fCLK 同步并且在 1 个时钟内有效。
R01UH0629CJ0120 Rev.1.20
2019.06.28
157
R7F0C903-908
(2)
第 6 章 定时器阵列单元
事件计数器模式的运行
① 在运行停止状态 (TE0n=0)的期间,定时器计数寄存器 0n (TCR0n)保持初始值。
② 通过给 TS0n 位写 “1”,进入运行允许状态 (TE0n=1)。
③ 在 TS0n 位和 TE0n 位都变为 “1” 的同时将定时器数据寄存器 0n (TDR0n)的值装入 TCR0n 寄存器,并
且开始计数。
④ 此后,在 TI0n输入的有效边沿,通过计数时钟对 TCR0n寄存器的值进行递减计数。
图 6-22
运行时序 (事件计数器模式)
fMCK
TS0n()ݭ
TE0n
TI0n䕧ܹ
䖍⊓Ẕ⌟
䖍⊓Ẕ⌟
䅵᭄ᯊ䩳
ᓔྟ㾺থ
Ẕ⌟ֵো
TCR0n
߱ྟؐ
TDR0n
备注
m
m−1
m−2
m
这是不使用噪声滤波器时的时序。如果使用噪声滤波器,边沿检测就从 TI0n 输入开始再延迟 2 个 fMCK 周期 (合计 3 ~
4 个周期)。 1 个周期的误差是因为 TI0n 输入和计数时钟 (fMCK)不同步。
R01UH0629CJ0120 Rev.1.20
2019.06.28
158
R7F0C903-908
(3)
第 6 章 定时器阵列单元
捕捉模式的运行 (输入脉冲的间隔测量)
① 通过给 TS0n 位写 “1”,进入运行允许状态 (TE0n=1)。
② 定时器计数寄存器 0n (TCR0n)保持初始值,直到产生计数时钟为止。
③ 通过允许运行后的第 1 个计数时钟 (fMCK)产生开始触发信号。然后,将 “0000H” 装入 TCR0n 寄存器
并且以捕捉模式开始计数 (当 MD0n0 位为 “1” 时,通过开始触发信号产生 INTTM0n)。
④ 如果检测到 TI0n 输入的有效边沿,就将 TCR0n 寄存器的值捕捉到 TDR0n 寄存器,并且产生 INTTM0n 中
断。此时的捕捉值没有意义。 TCR0n寄存器从 “0000H” 开始继续计数。
⑤ 如果检测到下一个 TI0n 输入的有效边沿,就将 TCR0n 寄存器的值捕捉到 TDR0n 寄存器,并且产生
INTTM0n 中断。
图 6-23
运行时序 (捕捉模式:输入脉冲的间隔测量)
fMCK
(fTCLK)
TS0n()ݭ
TE0n
⊼
TI0n䕧ܹ
䖍⊓Ẕ⌟
䖍⊓Ẕ⌟
Ϟछ⊓
ᓔྟ㾺থ
Ẕ⌟ֵো
TCR0n
߱ྟؐ
0000
TDR0n
0001
0000
m−1
0001
m
0000
m
INTTM0n
MD0n0=1ᯊ
注
在开始前将时钟输入到 TI0n (有触发)时,即使没有检测到边沿也通过触发检测来开始计数,因此第 1 次捕捉时
(④)的捕捉值不是脉冲间隔 (在此例子中, 0001:2 个时钟间隔),必须忽视。
注意
因为第 1 个计数时钟周期的运行在写 TS0n 位后并且在产生计数时钟前延迟计数的开始,所以产生最大为 1 个时钟
周期的误差。另外,如果需要开始计数时序的信息,就将 MD0n0 位置 “1”,以便能在开始计数时产生中断。
备注
这是不使用噪声滤波器时的时序。如果使用噪声滤波器,边沿检测就从 TI0n 输入开始再延迟 2 个 fMCK 周期 (合计 3 ~
4 个周期)。 1 个周期的误差是因为 TI0n 输入和计数时钟 (fMCK)不同步。
R01UH0629CJ0120 Rev.1.20
2019.06.28
159
R7F0C903-908
(4)
第 6 章 定时器阵列单元
单次计数模式的运行
① 通过给 TS0n 位写 “1”,进入运行允许状态 (TE0n=1)。
② 定时器计数寄存器 0n (TCR0n)保持初始值,直到产生开始触发信号为止。
③ 检测 TI0n 输入的上升沿。
④ 在产生开始触发信号后将 TDR0n 寄存器的值 (m)装入 TCR0n寄存器,并且开始计数。
⑤ 当 TCR0n 寄存器递减计数到 “0000H” 时,产生 INTTM0n 中断,并且 TCR0n 寄存器的值变为 “FFFFH”,
停止计数。
.
图 6-24
运行时序 (单次计数模式)
fMCK
(fTCLK)
TS0n()ݭ
TE0n
TI0n䕧ܹ
䖍⊓Ẕ⌟
Ϟछ⊓
ᓔྟ㾺থ
Ẕ⌟ֵো
TCR0n
߱ྟؐ
m
1
0
FFFF
INTTM0n
ᓔྟ㾺থ䕧ܹⱘㄝᕙ⢊ᗕ
备注
这是不使用噪声滤波器时的时序。如果使用噪声滤波器,边沿检测就从 TI0n 输入开始再延迟 2 个 fMCK 周期 (合计 3 ~
4 个周期)。 1 个周期的误差是因为 TI0n 输入与计数时钟 (fMCK)不同步。
R01UH0629CJ0120 Rev.1.20
2019.06.28
160
R7F0C903-908
(5)
第 6 章 定时器阵列单元
捕捉 & 单次计数模式的运行 (高电平宽度的测量)
① 通过给定时器通道开始寄存器 0 (TS0)的 TS0n 位写 “1”,进入运行允许状态 (TE0n=1)。
② 定时器计数寄存器 0n (TCR0n)保持初始值,直到产生开始触发信号为止。
③ 检测 TI0n 输入的上升沿。
④ 在产生开始触发信号后将 “0000H” 装入 TCR0n 寄存器,并且开始计数。
⑤ 如果检测到 TI0n 输入的下降沿,就将 TCR0n 寄存器的值捕捉到 TDR0n 寄存器,并且产生 INTTM0n 中
断。
图 6-25
运行时序 (捕捉 & 单次计数模式:高电平宽度的测量)
fMCK
(fTCLK)
TS0n()ݭ
TE0n
TI0n䕧ܹ
䖍⊓Ẕ⌟
䖍⊓Ẕ⌟
Ϟछ⊓
ϟ䰡⊓
ᓔྟ㾺থ
Ẕ⌟ֵো
TCR0n
TDR0n
߱ྟؐ
0000
m−1
0000
m
m+1
m
INTTM0n
备注
这是不使用噪声滤波器时的时序。如果使用噪声滤波器,边沿检测就从 TI0n 输入开始再延迟 2 个 fMCK 周期 (合计 3 ~
4 个周期)。 1 个周期的误差是因为 TI0n 输入与计数时钟 (fMCK)不同步。
R01UH0629CJ0120 Rev.1.20
2019.06.28
161
R7F0C903-908
6.6
第 6 章 定时器阵列单元
通道输出 (TO0n 引脚)的控制
6.6.1
TO0n 引脚输出电路的结构
图 6-26
输出电路的结构
Ş
TO0nᇺᆎಞ
ѱ䙐䚉Ⲻѣᯣؗਭ
(INTTM0n)
⭫
䐥
Ԅኔ䙐䚉Ⲻѣᯣؗਭ
(INTTM0p)
Ś
ś
㖤փ
TO0nᕋ㝐
གྷփӚᴵ
Ŝ
ŝ
TOL0n
TOM0n
䜞ᙱ㓵
TOE0n
TO0nߏؗਭ
以下说明 TO0n 引脚的输出电路。
① 当 TOM0n位为 “0” (主控通道输出模式)时,忽视定时器输出电平寄存器 0 (TOL0)的设定值,只将
INTTM0p (从属通道定时器中断)传给定时器输出寄存器 0 (TO0)。
② 当 TOM0n 位为 “1” (从属通道输出模式)时,将 INTTM0n (主控通道定时器中断)和 INTTM0p (从
属通道定时器中断)传给 TO0 寄存器。
此时, TOL0 寄存器有效并且进行以下信号的控制:
TOL0n=0时:正逻辑输出 (INTTM0n→ 置位、 INTTM0p→ 复位)
TOL0n=1时:负逻辑输出 (INTTM0n→ 复位、 INTTM0p→ 置位)
当同时产生 INTTM0n 和 INTTM0p 时 (PWM 输出的0% 输出),优先 INTTM0p (复位信号)而屏蔽
INTTM0n (置位信号)。
③ 在允许定时器输出 (TOE0n=1)的状态下,将 INTTM0n (主控通道定时器中断)和 INTTM0p (从属
通道定时器中断)传给 TO0 寄存器。 TO0 寄存器的写操作 (TO0n 写信号)无效。
当 TOE0n 位为 “1”时,除了中断信号以外,不改变 TO0n引脚的输出。
要对 TO0n 引脚的输出电平进行初始化时,需要在设定为禁止定时器输出 (TOE0n=0)后给 TO0 寄存
器写值。
④ 在禁止定时器输出 (TOE0n=0)的状态下,对象通道的 TO0n 位的写操作 (TO0n 写信号)有效。当定
时器输出为禁止状态 (TOE0n=0)时,不将 INTTM0n (主控通道定时器中断)和 INTTM0p (从属通
道定时器中断)传给 TO0 寄存器。
⑤ 能随时读 TO0 寄存器,并且能确认TO0n 引脚的输出电平。
备注
n:通道号
n=0~ 7 (主控通道:n=0、 2、 4、 6)
p:从属通道号
n<p≤ 7
R01UH0629CJ0120 Rev.1.20
2019.06.28
162
R7F0C903-908
6.6.2
第 6 章 定时器阵列单元
TO0n 引脚的输出设定
从 TO0n 输出引脚的初始设定到定时器开始运行的步骤和状态变化如下所示。
图 6-27
从设定定时器的输出到开始运行的状态变化
TCR0n
уᇐ(ٲགྷփѰ“FFFFH” )
(䇗ᮦಞ)
Hi-Z
ᇐᰬಞགྷ⭞ᕋ㝐
ᇐᰬಞ䗉࠰ؗਭ
TO0n
TOE0n
TO0nߏᬃ֒ݷ䇮ᵕ䰪
Ś 䇴ᇐTOM0nȾ ś 䇴ᇐTO0nȾ
䇴ᇐTOL0nȾ
TO0nߏᬃ֒⾷↘ᵕ䰪
Ŝ 䇴ᇐTOE0nȾ ŝ ሼㄥਙ䇴ᇐ
Ş ᇐᰬಞᔶခ䘆㺂Ⱦ
Ѱ䗉࠰⁗ᕅȾ
① 设定定时器输出的运行模式。
•
TOM0n 位 (0:主控通道输出模式、 1:从属通道输出模式)
•
TOL0n 位 (0:正逻辑输出、 1:负逻辑输出)
② 通过设定定时器输出寄存器 0 (TO0),将定时器输出信号设定为初始状态。
③ 给 TOE0n 位写 “1”,允许定时器输出 (禁止写 TO0 寄存器)。
④ 通过端口模式控制寄存器 (PMCxx)将端口设定为数字输入 / 输出 (参照 “6.3.14 控制定时器输入 / 输
出引脚端口功能的寄存器 ”)。
⑤ 将端口的输入 / 输出设定为输出 (参照 “6.3.14 控制定时器输入 / 输出引脚端口功能的寄存器 ”)。
⑥ 允许定时器运行 (TS0n=1)。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
163
R7F0C903-908
6.6.3
(1)
第 6 章 定时器阵列单元
通道输出运行的注意事项
有关定时器运行中的 TO0、 TOE0、 TOL0 寄存器的设定值变更
定时器的运行 (定时器计数寄存器 0n (TCR0n)和定时器数据寄存器 0n (TDR0n)的运行)和 TO0n 输
出电路相互独立。因此,定时器输出寄存器 0 (TO0)、定时器输出允许寄存器 0 (TOE0)和定时器输出电平
寄存器 0 (TOL0)的设定值的变更不会影响定时器的运行,能在定时器运行中更改设定值。但是,为了在各定
时器的运行中从 TO0n 引脚输出期待的波形,必须设定为各运行的寄存器设定内容例子的值。
如果在产生各通道的定时器中断 (INTTM0n)信号前后更改除了 TO0 寄存器以外的 TOE0 寄存器和 TOL0
寄存器的设定值,就根据是在产生定时器中断 (INTTM0n)信号前更改还是在产生后更改, TO0n 引脚输出的
波形可能不同。
备注
(2)
n:通道号 (n=0 ~ 7)
有关 TO0n 引脚的初始电平和定时器开始运行后的输出电平
在允许端口输出前并且在禁止定时器输出 (TOE0n=0)的状态下写定时器输出寄存器 0 (TO0),在更改
初始电平后设定为定时器输出允许状态 (TOE0n=1)时的 TO0n 引脚输出电平的变化如下所示。
(a)
在主控通道输出模式 (TOM0n=0)中开始运行的情况
在主控通道输出模式 (TOM0n=0)中,定时器输出电平寄存器 0 (TOL0)的设定无效。如果在设定初始
电平后开始定时器的运行,就通过产生交替信号反相 TO0n 引脚的输出电平。
图 6-28
交替输出时 (TOM0n=0)的 TO0n 引脚输出状态
TOE0n
Hi-Z
ࡓခ
⣬ᘷ
TO0n=0
(ࡓခ⣬ᘷφք⭫ᒩ)
TO0n=1
(ࡓခ⣬ᘷφ儎⭫ᒩ)
TOL0n=0
(ᴿ᭾儎⭫ᒩ)
TO0n
TO0n=0
(ࡓခ⣬ᘷφք⭫ᒩ)
(䗉࠰)
TO0n=1
(ࡓခ⣬ᘷφ儎⭫ᒩ)
TOL0n=1
(ᴿ᭾ք⭫ᒩ)
ݷ䇮ㄥਙ䗉࠰Ⱦ
㋍㓵φᴿ᭾⭫ᒩ
Ӛᴵ
Ӛᴵ
Ӛᴵ
Ӛᴵ
Ӛᴵ
备注 1. 交替:反相 TO0n 引脚的输出状态。
2. n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
164
R7F0C903-908
(b)
第 6 章 定时器阵列单元
在从属通道输出模式 (TOM0p=1)中开始运行的情况 (PWM 输出)
在从属通道输出模式 (TOM0p=1)中,有效电平取决于定时器输出电平寄存器 0 (TOL0)的设定。
图 6-29
PWM 输出时 (TOM0p=1)的 TO0p 引脚输出状态
TOE0p
Hi -Z
ᴿ᭾⭫ᒩ
ࡓခ
⣬ᘷ
ᴿ᭾⭫ᒩ
ᴿ᭾⭫ᒩ
TO0p=0
(ࡓခ⣬ᘷφք⭫ᒩ)
TO0p=1
(ࡓခ⣬ᘷφ儎⭫ᒩ)
TO0p
(䗉࠰)
TOL0p=0
(ᴿ᭾儎⭫ᒩ)
TO0p=0
(ࡓခ⣬ᘷφք⭫ᒩ)
TO0p=1
(ࡓခ⣬ᘷφ儎⭫ᒩ)
TOL0p=1
(ᴿ᭾ք⭫ᒩ)
ݷ䇮ㄥਙ䗉࠰Ⱦ
གྷփ
㖤փ
གྷփ
㖤փ
㖤փ
备注 1. 置位:TO0p 引脚的输出信号从无效电平变为有效电平。
复位:TO0p 引脚的输出信号从有效电平变为无效电平。
2. p:通道号 (n < p ≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
165
R7F0C903-908
第 6 章 定时器阵列单元
(3)
有关从属通道输出模式 (TOM0n=1)的 TO0n 引脚变化
(a)
在定时器运行中更改定时器输出电平寄存器 0 (TOL0)的设定的情况
如果在定时器运行中更改 TOL0 寄存器的设定,就在产生 TO0n 引脚变化条件时设定有效。无法通过改写
TOL0 寄存器来改变 TO0n 引脚的输出电平。
当 TOM0n 位为 “1” 时,在定时器运行中 (TE0n=1)更改 TOL0 寄存器的值时的运行如下所示。
图 6-30
在定时器运行中更改 TOL0 寄存器内容时的运行
TOL0
ᴿ᭾⭫ᒩ
ᴿ᭾⭫ᒩ
ᴿ᭾⭫ᒩ
ᴿ᭾⭫ᒩ
TO0n
(䗉࠰)
གྷփ
㖤փ
གྷփ
㖤փ
གྷփ
㖤փ
གྷփ
㖤փ
备注 1. 置位:TO0n 引脚的输出信号从无效电平变为有效电平。
复位:TO0n 引脚的输出信号从有效电平变为无效电平。
2. n:通道号 (n=0 ~ 7)
(b)
置位 / 复位时序
为了在 PWM 输出时实现 0% 和 100% 的输出,通过从属通道将产生主控通道定时器中断 (INTTM0n)时
的 TO0n 引脚 /TO0n 位的置位时序延迟 1 个计数时钟。
当置位条件和复位条件同时产生时,优先复位条件。
按照以下方法设定主控 / 从属通道时的置位 / 复位运行状态如图 6-31 所示。
主控通道:TOE0n=1、 TOM0n=0、 TOL0n=0
从属通道:TOE0p=1、 TOM0p=1、 TOL0p=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
166
R7F0C903-908
第 6 章 定时器阵列单元
图 6-31
(1)
置位 / 复位时序运行状态
基本运行时序
fTCLK
INTTM0n
ѱ䙐䚉
䜞གྷփؗਭ
TO0nᕋ㝐
TO0n
Ӛᴵ
Ӛᴵ
䜞གྷփؗਭ
ᔬ䘕1Ѡᰬ䫕Ⱦ
INTTM0p
Ԅኔ䙐䚉
䜞གྷփؗਭ
TO0pᕋ㝐
TO0p
㖤փ
(2)
㖤փ
གྷփ
0% 占空比的运行时序
fTCLK
INTTM0n
ѱ䙐䚉
䜞གྷփؗਭ
TO0nᕋ㝐
TO0n
Ӛᴵ
Ӛᴵ
䜞གྷփؗਭ
ᔬ䘕1Ѡᰬ䫕Ⱦ
TCR0p
Ԅኔ䙐䚉
0000 0001
0000 0001
INTTM0p
㖤փ
䜞གྷփؗਭ
TO0pᕋ㝐
TO0p
㖤փ
གྷփ
གྷփՎݾ
གྷփ
གྷփՎݾ
备注 1. 内部复位信号:TO0n 引脚的复位 / 交替信号
内部置位信号:TO0n 引脚的置位信号
2. n:通道号
n=0~ 7 (主控通道:n=0、 2、 4、 6)
p:从属通道号
n<p≤ 7
R01UH0629CJ0120 Rev.1.20
2019.06.28
167
R7F0C903-908
6.6.4
第 6 章 定时器阵列单元
TO0n 位的一次性操作
和定时器通道开始寄存器 0 (TS0)相同,定时器输出寄存器 0 (TO0)有全部通道的设定位 (TO0n),因
此能一次性地操作全部通道的 TO0n 位。另外,能给只想作为操作对象的通道输出 (TO0n)的 TO0n 位写数据
(TOE0n=0),因此能操作任意的位。
图 6-32
TO0n 位的一次性操作例子
写前
TO0
0
0
0
0
0
0
0
0
TO07 TO06 TO05 TO04 TO03 TO02 TO01 TO00
0
TOE0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
TOE07 TOE06 TOE05 TOE04 TOE03 TOE02 TOE01 TOE00
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
要写的数据
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
写后
TO0
TO07 TO06 TO05 TO04 TO03 TO02 TO01 TO00
0
1
1
0
0
0
0
0
只能写 TOE0n 位为 “0” 的 TO0n 位,忽视 TOE0n 位为 “1” 的 TO0n 位的写操作。
TOE0n 位为 “1” 的 TO0n(通道输出)不受写操作的影响,即使写 TO0n 位也被忽视,由定时器运行引起的
输出变化正常进行。
图 6-33
一次性操作 TO0n 位时的 TO0n 引脚状态
ཐѠTO0n䗉࠰㜳ੂᰬਇ⭕
ौȾ
TO07
ᖉ⋗ٲ㻡ᴪ᭯ᰬθ䗉࠰
ҕуਇ⭕ौȾ
TO06
TO05
TO04
TO03
ᖉTOE0nփѰ“1”ᰬθᘳ
㿼TO0nփⲺߏᬃ֒Ⱦ
TO02
TO01
TO00
ߏࢃ
注意
ߏTO0nփȾ
在允许定时器输出 (TOE0n=1)的状态下,即使各通道的定时器中断 (INTTM0n)引起的输出和 TO0n 位的写操
作发生竞争, TO0n 引脚也能正常输出。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
168
R7F0C903-908
6.6.5
第 6 章 定时器阵列单元
有关开始计数时的定时器中断和 TO0n 引脚输出
在间隔定时器模式或者捕捉模式中,定时器模式寄存器 0n (TMR0n)的 MD0n0 位是设定是否在开始计数
时产生定时器中断的位。
当 MD0n0 位为 “1” 时,能通过产生定时器中断 (INTTM0n)得知计数的开始时序。
在其他模式中,不控制开始计数时的定时器中断和 TO0n 输出。
设定为间隔定时器模式 (TOE0n=1、 TOM0n=0)时的运行例子如下所示。
图 6-34
(a)
开始计数时的定时器中断和 TO0n 输出的运行例子
MD0n0 位为 “1” 的情况
TCR0n
TE0n
INTTM0n
TO0n
ᔶခ䇗ᮦ
(b)
MD0n0 位为 “0” 的情况
TCR0n
TE0n
INTTM0n
TO0n
ᔶခ䇗ᮦ
当 MD0n0 位为 “1” 时,在开始计数时输出定时器中断 (INTTM0n)并且 TO0n 进行交替输出。
当 MD0n0 位为 “0” 时,在开始计数时不输出定时器中断 (INTTM0n)并且 TO0n 也不发生变化,而在对 1
个周期进行计数后输出 INTTM0n 并且 TO0n 进行交替输出。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
169
R7F0C903-908
6.7
第 6 章 定时器阵列单元
定时器输入 (TI0n)的控制
6.7.1
TI0n 引脚输入电路的结构
定时器输入引脚的信号通过噪声滤波器和边沿检测电路输入到定时器控制电路。
对于需要消除噪声的引脚,必须将对应的引脚噪声滤波器置为有效。输入电路的结构如下所示。
图 6-35
输入电路的结构
CCS0n
fMCK
TNFEN0n
6.7.2
fTCLK
ᅮᯊ఼
ࠊ⬉䏃
䖍⊓Ẕ⌟
CIS0n1ǃ
CIS0n0
㾺থ䗝ᢽ
ాໄ
Ⓒ⊶఼
TI0nᓩ㛮
䅵᭄ᯊ䩳䗝ᢽ
Џ䗮䘧ⱘЁᮁֵো
STS0n2̚
STS0n0
噪声滤波器
当噪声滤波器无效时,只通过通道 n 的运行时钟 (fMCK)进行同步;当噪声滤波器有效时,在通过通道 n
的运行时钟(fMCK)进行同步后检测 2 个时钟是否一致。Tl0n 输入引脚在噪声滤波器 ON 或者 OFF 的情况下,
经过噪声滤波器电路后的波形如下所示。
图 6-36
TI0n 输入引脚在噪声滤波器 ON 或者 OFF 情况下的采样波形
TI0nᓩ㛮
ాໄⒸ⊶఼OFF
ాໄⒸ⊶఼ON
䖤㸠ᯊ䩳 (fMCK)
R01UH0629CJ0120 Rev.1.20
2019.06.28
170
R7F0C903-908
6.7.3
第 6 章 定时器阵列单元
操作通道输入时的注意事项
在设定为不使用定时器输入引脚时,不给噪声滤波器电路提供运行时钟。因此,从设定为使用定时器输入
引脚到设定定时器输入引脚对应的通道运行允许触发,需要以下的等待时间。
(1)
噪声滤波器为 OFF 的情况
如果在定时器模式寄存器 0n (TMR0n)的 bit12 (CCS0n)、 bit9 (STS0n1)和 bit8 (STS0n0)都为 “0”
的状态下将任意一位置位,就必须至少在经过 2 个运行时钟 (fMCK)周期后将定时器通道开始寄存器 (TS0)
的运行允许触发置位。
(2)
噪声滤波器为 ON 的情况
如果在定时器模式寄存器 0n (TMR0n)的 bit12 (CCS0n)、 bit9 (STS0n1)和 bit8 (STS0n0)都为 “0”
的状态下将任意一位置位,就必须至少在经过 4 个运行时钟 (fMCK)周期后将定时器通道开始寄存器 (TS0)
的运行允许触发置位。
R01UH0629CJ0120 Rev.1.20
2019.06.28
171
R7F0C903-908
6.8
第 6 章 定时器阵列单元
定时器阵列单元的独立通道运行功能
6.8.1
(1)
作为间隔定时器 / 方波输出的运行
间隔定时器
能用作以固定间隔产生 INTTM0n (定时器中断)的基准定时器。
中断产生周期能用以下计算式进行计算:
INTTM0n (定时器中断)的产生周期 = 计数时钟周期 × (TDR0n 的设定值 +1)
(2)
作为方波输出的运行
TO0n 在产生 INTTM0n 的同时进行交替输出,输出占空比为 50% 的方波。
TO0n 输出方波的周期和频率能用以下计算式进行计算:
•
TO0n 输出的方波周期 = 计数时钟周期 × (TDR0n 的设定值 +1) × 2
•
TO0n 输出的方波频率 = 计数时钟频率 / {(TDR0n 的设定值 +1) × 2}
在间隔定时器模式中,定时器计数寄存器 0n (TCR0n)用作递减计数器。
在将定时器通道开始寄存器 0(TS0)的通道开始触发位(TS0n、TSH01、TSH03)置 “1” 后,通过第 1 个
计数时钟将定时器数据寄存器 0n(TDR0n)的值装入 TCR0n 寄存器。此时,如果定时器模式寄存器 0n(TMR0n)
的 MD0n0 位为 “0”,就不输出 INTTM0n 并且 TO0n 也不进行交替输出。如果 TMR0n 寄存器的 MD0n0 位为
“1”,就输出 INTTM0n 并且 TO0n 进行交替输出。
然后, TCR0n 寄存器通过计数时钟进行递减计数。
如果 TCR0n 变为 “0000H”,就通过下一个计数时钟输出 INTTM0n 并且 TO0n 进行交替输出。同时,再次
将 TDR0n 寄存器的值装入 TCR0n 寄存器。此后,继续同样的运行。
能随时改写 TDR0n 寄存器,改写的 TDR0n 寄存器的值从下一个周期开始有效。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
172
R7F0C903-908
第 6 章 定时器阵列单元
图 6-37
ᰬ䫕䘿
䘆㺂ᰬ䫕 ⌞
CK01
CK00
䀜ਇ䘿
TS0n
注
作为间隔定时器 / 方波输出运行的框图
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
䗉࠰
⭫䐥
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
ѣᯣ
⭫䐥
TO0nᕋ㝐
ѣᯣؗਭ
(INTTM0n )
在通道 1 和通道 3 时,能从 CK00 ~ CK03 中选择时钟。
图 6-38
作为间隔定时器 / 方波输出运行的基本时序例子 (MD0n0=1)
TS0n
TE0n
TCR0n
0000H
TDR0n
a
b
TO0n
INTTM0n
a+1
a+1
a+1
b+1
b+1
b+1
备注 1. n:通道号 (n=0 ~ 7)
2. TS0n:
TE0n:
定时器通道开始寄存器 0 (TS0)的 bit n
定时器通道允许状态寄存器 0 (TE0)的 bit n
TCR0n: 定时器计数寄存器 0n (TCR0n)
TDR0n: 定时器数据寄存器 0n (TDR0n)
TO0n:
TO0n 引脚输出信号
R01UH0629CJ0120 Rev.1.20
2019.06.28
173
R7F0C903-908
第 6 章 定时器阵列单元
图 6-39 间隔定时器 / 方波输出时的寄存器设定内容例子
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
11
TMR0n CKS0n1 CKS0n0
CCS0n
M/S 注
1/0
1/0
0
0
0/1
10
9
8
7
6
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
5
0
0
0
0
0
0
4
0
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
0
0
0
1/0
通道 n 的运行模式
000B:间隔定时器
开始计数时的运行设定
0:在开始计数时,不产生 INTTM0n
并且不反相定时器的输出。
1:在开始计数时,产生 INTTM0n 并
且反相定时器的输出。
TI0n 引脚输入边沿的选择
00B:因不使用而置 “00B”。
开始触发的选择
000B:只选择软件开始触发。
MASTER0n 位的设定 (通道 2、 4、 6)
0:独立通道运行功能
SPLIT0n 位的设定 (通道 1、 3)
0:16 位定时器
1:8 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
01B:选择 CK02 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
11B:选择 CK03 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0
TO0n
0:由 TO0n 输出 “0”。
1/0
1:由 TO0n 输出 “1”。
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
1/0
1:允许由计数运行进行的 TO0n 输出。
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
TMR02、 TMR04、 TMR06:
TMR01、 TMR03:
TMR00、 TMR05、 TMR07:
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
MASTER0n 位
SPLIT0n位
固定为“0”。
174
R7F0C903-908
第 6 章 定时器阵列单元
图 6-40
间隔定时器 / 方波输出功能时的操作步骤
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01(在 8 位定时器模式中为 CK02
和 CK03)的时钟频率。
通道初 设定定时器模式寄存器 0n(TMR0n)(确定通道的 通道处于运行停止状态。
始设定 运行模式)。
(提供时钟,消耗一部分电力)
给定时器数据寄存器 0n (TDR0n)设定间隔 (周
期)值。
使用 TO0n 输出的情况:
TO0n 引脚处于 Hi-Z 输出状态。
将定时器输出模式寄存器 0 (TOM0)的 TOM0n
位置 “0” (主控通道输出模式)。
将 TOL0n 位置 “0”。
设定 TO0n 位,确定 TO0n 输出的初始电平。
当端口模式寄存器为输出模式并且端口寄存器为 “0”
时,输出 TO0n 初始设定的电平。
将 TOE0n 位置 “1”,允许 TO0n 输出。
将端口寄存器和端口模式寄存器置 “0”。
开始
(只在使用 TO0n 输出并且重新开始时,将 TOE0n
运行
位置 “1”)
将 TS0n (TSH01、 TSH03)位置 “1”。
因为通道处于运行停止状态,所以 TO0n 不变。
TO0n 引脚输出 TO0n 设定的电平。
TE0n(TEH01、TEH03)位变为 “1” 并且开始计数。
因为 TS0n(TSH01、TSH03)位是触发位,所以
通过输入计数时钟,将 TDR0n 寄存器的值装入定
自动返回到 “0”。
时器计数寄存器 0n (TCR0n)。当 TMR0n 寄存
重
器的 MD0n0 位为 “1” 时,产生 INTTM0n 并且 TO0n
新
进行交替输出。
开
运行中 能任意更改 TDR0n 寄存器的设定值。
计数器 (TCR0n)进行递减计数。如果计数到
始
能随时读 TCR0n 寄存器。
“0000H”,就再次将 TDR0n 寄存器的值装入 TCR0n
运
不使用 TSR0n 寄存器。
寄存器并且继续计数。当检测到 TCR0n 为 “0000H”
行
禁止更改 TMR0n 寄存器、 TOM0n 位和 TOL0n 位 时,产生 INTTM0n 并且 TO0n 进行交替输出。
停止
运行
的设定值。
此后,重复此运行。
将 TT0n (TTH01、 TTH03)位置 “1”。
TE0n(TEH01、TEH03)位变为 “0” 并且停止计数。
因为 TT0n (TTH01、 TTH03)位是触发位,所以
TCR0n 寄存器保持计数值而停止计数。
自动返回到 “0”。
TO0n 输出不被初始化而保持状态。
将 TOE0n 位置 “0” 并且给 TO0n 位设定值。
TAU
停止
TO0n 引脚输出 TO0n 位设定的电平。
要保持 TO0n 引脚输出电平的情况:
在给端口寄存器设定要保持的值后将 TO0n 位置
“0”。
通过端口功能保持 TO0n 引脚的输出电平。
不需要保持 TO0n 引脚输出电平的情况:
不需要设定。
将 PER0 寄存器的 TAU0EN 位置 “0”。
断电状态
对全部电路和各通道的 SFR 进行初始化。
(TO0n 位变为 “0” 并且 TO0n 引脚变为端口功能)
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
175
R7F0C903-908
6.8.2
第 6 章 定时器阵列单元
作为外部事件计数器的运行
能用作事件计数器,对检测到的 TI0n 引脚输入的有效边沿 (外部事件)进行计数,如果达到规定的计数
值,就产生中断。规定的计数值能用以下计算式进行计算:
规定的计数值 = TDR0n 的设定值 +1
在事件计数器模式中,定时器计数寄存器 0n (TCR0n)用作递减计数器。
通过将定时器通道开始寄存器 0 (TS0)的任意通道开始触发位 (TS0n)置 “1”,将定时器数据寄存器 0n
(TDR0n)的值装入 TCR0n 寄存器。
TCR0n 寄存器在检测到 TI0n 引脚输入的有效边沿的同时进行递减计数。如果 TCR0n 变为 “0000H”,就再
次装入 TDR0n 寄存器的值并且输出 INTTM0n。
此后,继续同样的运行。
因为 TO0n 引脚根据外部事件输出不规则的波形,所以必须将定时器输出允许寄存器 0 (TOE0)的 TOE0n
位置 “0”,停止输出。
能随时改写 TDR0n 寄存器,改写的 TDR0n 寄存器的值在下一个计数期间有效。
图 6-41
作为外部事件计数器运行的框图
TNFEN0n
ಠ༦
┚⌘ಞ
备注
䀜ਇ䘿
TS0n
䗯⋵
Ỷ⎁
ᰬ䫕䘿
TI0nᕋ㝐
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
176
R7F0C903-908
第 6 章 定时器阵列单元
图 6-42
作为外部事件计数器运行的基本时序例子
TS0n
TE0n
TI0n
3
TCR0n
0000H
TDR0n
2
3
1
2
0
0003H
1
2
0
1
2
0
1
0002H
INTTM0n
ѠӁԬ
ѠӁԬ
ѠӁԬ
备注 1. n:通道号 (n=0 ~ 7)
2. TS0n: 定时器通道开始寄存器 0 (TS0)的 bit n
TE0n: 定时器通道允许状态寄存器 0 (TE0)的 bit n
TI0n:
TI0n 引脚输入信号
TCR0n:定时器计数寄存器 0n (TCR0n)
TDR0n:定时器数据寄存器 0n (TDR0n)
R01UH0629CJ0120 Rev.1.20
2019.06.28
177
R7F0C903-908
第 6 章 定时器阵列单元
图 6-43
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
11
TMR0n CKS0n1 CKS0n0
CCS0n
M/S 注
1/0
1/0
0
1
0/1
外部事件计数器模式时的寄存器设定内容例子
10
9
8
7
6
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
5
0
0
0
1/0
1/0
0
4
0
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
0
1
1
0
通道 n 的运行模式
011B:事件计数器模式
开始计数时的运行设定
0:在开始计数时,不产生 INTTM0n
并且不反相定时器的输出。
TI0n 引脚输入边沿的选择
00B:检测下降沿。
01B:检测上升沿。
10B:检测双边沿。
11B:禁止设定。
开始触发的选择
000B:只选择软件开始触发。
MASTER0n 位的设定 (通道 2、 4、 6)
0:独立通道运行功能
SPLIT0n 位的设定 (通道 1、 3)
0:16 位定时器
1:8 位定时器
计数时钟的选择
1:选择 TI0n 引脚输入的有效边沿。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
01B:选择 CK02 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
11B:选择 CK03 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0n
TO0
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
TMR02、 TMR04、 TMR06:
TMR01、 TMR03:
TMR00、 TMR05、 TMR07:
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
MASTER0n 位
SPLIT0n位
固定为“0”。
178
R7F0C903-908
第 6 章 定时器阵列单元
图 6-44
外部事件计数器功能时的操作步骤
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01(在 8 位定时器模式中为 CK02
和 CK03)的时钟频率。
通道初 将噪声滤波器允许寄存器 1 (NFEN1)的对应位置 通道处于运行停止状态。
始设定 “0” (OFF)或者 “1” (ON)。
(提供时钟,消耗一部分电力)
设定定时器模式寄存器 0n(TMR0n)(确定通道的
运行模式)。
给定时器数据寄存器 0n (TDR0n)设定计数值。
设定噪声滤波器允许寄存器 1 (NFEN1)。
将定时器输出允许寄存器 0 (TOE0)的 TOE0n 位
置 “0”。
开始
运行
将 TS0n 位置 “1”。
因为 TS0n 位是触发位,所以自动返回到 “0”。
TE0n 位变为 “1” 并且开始计数。
将 TDR0n 寄存器的值装入定时器计数寄存器 0n
(TCR0n),进入 TI0n 引脚输入边沿的检测等待状
态。
重
新
运行中 能任意更改 TDR0n 寄存器的设定值。
每当检测到 TI0n 引脚的输入边沿时,计数器
开
能随时读 TCR0n 寄存器。
(TCR0n)就进行递减计数。如果计数到 “0000H”,
始
不使用 TSR0n 寄存器。
就再次将 TDR0n 寄存器的值装入 TCR0n 寄存器并
运
禁止更改 TMR0n 寄存器、TOM0n 位、TOL0n 位、 且继续计数。当检测到 TCR0n 为 “0000H” 时,产生
行
TO0n 位和 TOE0n 位的设定值。
INTTM0n。
此后,重复此运行。
停止
运行
TAU
将 TT0n 位置 “1”。
因为 TT0n 位是触发位,所以自动返回到 “0”。
将 PER0 寄存器的 TAU0EN 位置 “0”。
停止
备注
TE0n 位变为 “0” 并且停止计数。
TCR0n 寄存器保持计数值而停止计数。
断电状态
对全部电路和各通道的 SFR 进行初始化。
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
179
R7F0C903-908
6.8.3
第 6 章 定时器阵列单元
作为分频器的运行
能对 TI00 引脚输入的时钟进行分频并且用作 TO00 引脚输出的分频器。
TO00 输出的分频时钟频率能用以下计算式进行计算:
•
选择上升沿或者下降沿的情况:
分频时钟频率 = 输入时钟频率 / {(TDR00 的设定值 +1) × 2}
•
选择双边沿的情况:
分频时钟频率≈输入时钟频率 / (TDR00 的设定值 +1)
在间隔定时器模式中,定时器计数寄存器 00 (TCR00)用作递增计数器。
在将定时器通道开始寄存器 0 (TS0)的通道开始触发位 (TS00)置 “1” 后,通过检测到 TI00 的有效边沿
将定时器数据寄存器 00 (TDR00)的值装入 TCR00 寄存器。此时,如果定时器模式寄存器 00 (TMR00)的
MD000 位为 “0”,就不输出 INTTM00 并且 TO00 不进行交替输出;如果 TMR00 寄存器的 MD000 位为 “1”,就
输出 INTTM00 并且 TO00 进行交替输出。
然后,TCR00 寄存器通过 TI00 引脚输入的有效边沿进行递减计数。如果 TCR00 变为 “0000H”,TO00 就进
行交替输出。同时,将 TDR00 寄存器的值装入 TCR00 寄存器并且继续计数。
如果选择 TI00 引脚输入的双边沿检测,输入时钟的占空比误差就会影响 TO00 输出的分频时钟周期。
TO00 输出的时钟周期包含 1 个运行时钟周期的采样误差。
TO00 输出的时钟周期 = 理想的 TO00 输出时钟周期 ± 运行时钟周期 (误差)
能随时改写 TDR00 寄存器,改写的 TDR00 寄存器的值在下一个计数期间有效。
图 6-45
作为分频器运行的框图
ಠ༦
┚⌘ಞ
TS00
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗯⋵
Ỷ⎁
䀜ਇ䘿
TI00ᕋ㝐
ᰬ䫕䘿
TNFEN00
ᇐᰬಞ䇗ᮦᇺᆎಞ00
(TCR00)
䗉࠰
⭫䐥
TO00ᕋ㝐
ᇐᰬಞᮦᦤᇺᆎಞ00
(TDR00)
180
R7F0C903-908
第 6 章 定时器阵列单元
图 6-46
作为分频器运行的基本时序例子 (MD000=1)
TS00
TE00
TI00
2
2
1
TCR00
0
0000H
TDR00
2
1
1
0
0002H
1
0
1
0
1
0
1
0
0
0001H
TO00
INTTM00
6࠼仇
备注
TS00:
4࠼仇
定时器通道开始寄存器 0 (TS0)的 bit0
TE00:
定时器通道允许状态寄存器 0 (TE0)的bit0
TI00:
TI00 引脚输入信号
TCR00: 定时器计数寄存器 00 (TCR00)
TDR00: 定时器数据寄存器 00 (TDR00)
TO00: TO00 引脚输出信号
R01UH0629CJ0120 Rev.1.20
2019.06.28
181
R7F0C903-908
第 6 章 定时器阵列单元
图 6-47
(a) 定时器模式寄存器 00 (TMR00)
15
14
13
12
TMR00 CKS001 CKS000
CCS00
1/0
0
0
1
11
0
作为分频器运行时的寄存器设定内容例子
10
9
8
7
6
STS002
STS001
STS000
CIS001
CIS000
5
0
0
0
1/0
1/0
0
4
3
2
1
0
MD003
MD002
MD001
MD000
0
0
0
1/0
0
通道 0 的运行模式
000B:间隔定时器
开始计数时的运行设定
0:在开始计数时,不产生 INTTM00
并且不反相定时器的输出。
1:在开始计数时,产生 INTTM00
并且反相定时器的输出。
TI00 引脚输入边沿的选择
00B:检测下降沿。
01B:检测上升沿。
10B:检测双边沿。
11B:禁止设定。
开始触发的选择
000B:只选择软件开始触发。
计数时钟的选择
1:选择 TI00 引脚输入的有效边沿。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 0 的运行时钟。
10B:选择 CK01 作为通道 0 的运行时钟。
(b) 定时器输出寄存器 0 (TO0)
bit0
TO00
TO0
0:由 TO00 输出 “0”。
1/0
1:由 TO00 输出 “1”。
(c) 定时器输出允许寄存器 0 (TOE0)
bit0
TOE0 TOE00
0:停止由计数运行进行的 TO00 输出。
1/0
1:允许由计数运行进行的 TO00 输出。
(d) 定时器输出电平寄存器 0 (TOL0)
bit0
TOL0 TOL00
0:在主控通道输出模式 (TOM00=0)中置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit0
TOM0 TOM00
0:设定主控通道输出模式。
0
R01UH0629CJ0120 Rev.1.20
2019.06.28
182
R7F0C903-908
第 6 章 定时器阵列单元
图 6-48
分频器功能时的操作步骤
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01 的时钟频率。
通道初 将噪声滤波器允许寄存器 1 (NFEN1)的对应位置 通道处于运行停止状态。
始设定 “0” (OFF)或者 “1” (ON)。
(提供时钟,消耗一部分电力)
设定定时器模式寄存器 00(TMR00)(确定通道的
运行模式,选择检测边沿)。
给定时器数据寄存器 00 (TDR00)设定间隔 (周
期)值。
将定时器输出模式寄存器 0 (TOM0)的 TOM00 位 TO00 引脚处于 Hi-Z 输出状态。
置 “0” (主控通道输出模式)。
将 TOL00 位置 “0”。
设定 TO00 位并且确定 TO00 输出的初始电平。
当端口模式寄存器为输出模式并且端口寄存器为“0”
时,输出 TO00 初始设定的电平。
将 TOE00 位置 “1”,允许 TO00 输出。
因为通道处于运行停止状态,所以 TO00 不变。
将端口寄存器和端口模式寄存器置 “0”。
TO00 引脚输出 TO00 设定的电平。
开始
将 TOE00 位置 “1” (只限于重新开始运行)。
TE00 位变为 “1” 并且开始计数。
运行
将 TS00 位置 “1”。
因为 TS00 位是触发位,所以自动返回到 “0”。
重
新
将 TDR00 寄存器的值装入定时器计数寄存器 00
(TCR00)。当 TMR00 寄存器的 MD000 位为 “1”
时,产生 INTTM00 并且 TO00 进行交替输出。
运行中 能任意更改 TDR00 寄存器的设定值。
开
始
运
计数器 (TCR00)进行递减计数。如果计数到
能随时读 TCR00 寄存器。
“0000H”,就再次将 TDR00 寄存器的值装入 TCR00
不使用 TSR00 寄存器。
寄存器并且继续计数。当检测到 TCR00 为 “0000H”
能更改 TO0 寄存器和 TOE0 寄存器的设定值。
时,产生 INTTM00 并且 TO00 进行交替输出。
禁止更改 TMR00 寄存器、 TOM00 位和 TOL00 位 此后,重复此运行。
行
的设定值。
停止
运行
将 TT00 位置 “1”。
因为 TT00 位是触发位,所以自动返回到 “0”。
TE00 位变为 “0” 并且停止计数。
TCR00 寄存器保持计数值而停止计数。
TO00 输出不被初始化而保持状态。
将 TOE00 位置 “0” 并且给 TO00 位设定值。
TAU
停止
TO00 引脚输出 TO00 设定的电平。
要保持 TO00 引脚输出电平的情况:
在给端口寄存器设定要保持的值后将 TO00 位置
“0”。
通过端口功能保持 TO00 引脚的输出电平。
不需要保持 TO00 引脚输出电平的情况:
不需要设定。
将 PER0 寄存器的 TAU0EN 位置 “0”。
断电状态
对全部电路和各通道的 SFR 进行初始化。
(TO00 位变为 “0” 并且 TO00 引脚变为端口功能)
R01UH0629CJ0120 Rev.1.20
2019.06.28
183
R7F0C903-908
6.8.4
第 6 章 定时器阵列单元
作为输入脉冲间隔测量的运行
能在 TI0n 有效边沿捕捉计数值,测量 TI0n 输入脉冲的间隔。在 TE0n 位为 “1” 的期间,也能将软件操作
(TS0n=1)设定为捕捉触发,捕捉计数值。
脉冲间隔能用以下计算式进行计算:
TI0n 输入脉冲间隔 = 计数时钟的周期 × ((10000H × TSR0n:OVF) + (TDR0n 的捕捉值 +1))
注意
因为通过定时器模式寄存器 0n (TMR0n)的 CKS0n 位选择的运行时钟对 TI0n 引脚输入进行采样,所以产生 1 个
运行时钟的误差。
在捕捉模式中,定时器计数寄存器 0n (TCR0n)用作递增计数器。
如果将定时器通道开始寄存器 0 (TS0)的通道开始触发位 (TS0n)置 “1”, TCR0n 寄存器就通过计数时
钟从 “0000H” 开始递增计数。
如果检测到 TI0n 引脚输入的有效边沿,就将 TCR0n 寄存器的计数值传送 (捕捉)到定时器数据寄存器 0n
(TDR0n),同时将 TCR0n 寄存器清为 “0000H”,然后输出 INTTM0n。此时,如果计数器发生上溢,就将定时
器状态寄存器 0n(TSR0n)的 OVF 位置 “1”。如果计数器没有发生上溢,就清除 OVF 位。此后,继续同样的运行。
在将计数值捕捉到 TDR0n 寄存器的同时,根据在测量期间是否发生上溢,更新 TSR0n 寄存器的 OVF 位,
并且能确认捕捉值的上溢状态。
即使计数器进行了 2 个周期或者 2 个周期以上的完整计数,也认为发生上溢而将 TSR0n 寄存器的 OVF 位
置 “1”。但是,在发生 2 次或者 2 次以上的上溢时,无法通过 OVF 位正常测量间隔值。
将 TMR0n 寄存器的 STS0n2 ~ STS0n0 位置 “001B”,并且将 TI0n 的有效边沿用于开始触发和捕捉触发。
图 6-49
ᰬ䫕䘿
CK01
䘆㺂ᰬ䫕 ⌞
作为输入脉冲间隔测量运行的框图
CK00
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
TNFEN0n
ಠ༦
┚⌘ಞ
䗯⋵
Ỷ⎁
䀜ਇ䘿
TI0nᕋ㝐
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
TS0n
注
在通道 1 和通道 3 时,能从 CK00、 CK01、 CK02 和 CK03 中选择时钟。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
184
R7F0C903-908
第 6 章 定时器阵列单元
图 6-50
作为输入脉冲间隔测量的运行基本时序例子 (MD0n0=0)
TS0n
TE0n
TI0n
FFFFH
b
a
TCR0n
d
c
0000H
TDR0n
0000H
a
b
c
d
INTTM0n
OVF
备注 1. n:通道号 (n=0 ~ 7)
2. TS0n: 定时器通道开始寄存器 0 (TS0)的 bit n
TE0n: 定时器通道允许状态寄存器 0 (TE0)的 bit n
TI0n:
TI0n 引脚输入信号
TCR0n:定时器计数寄存器 0n (TCR0n)
TDR0n:定时器数据寄存器 0n (TDR0n)
OVF:
定时器状态寄存器 0n (TSR0n)的 bit0
R01UH0629CJ0120 Rev.1.20
2019.06.28
185
R7F0C903-908
第 6 章 定时器阵列单元
图 6-51
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
TMR0n CKS0n1 CKS0n0
CCS0n
1/0
0
0
0
测量输入脉冲间隔时的寄存器设定内容例子
11
10
9
8
7
6
M/S 注
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
5
0
0
0
1
1/0
1/0
0
4
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
0
1
0
1/0
0
通道 n 的运行模式
010B:捕捉模式
开始计数时的运行设定
0:在开始计数时,不产生
INTTM0n。
1:在开始计数时,产生
INTTM0n。
TI0n 引脚输入边沿的选择
00B:检测下降沿。
01B:检测上升沿。
10B:检测双边沿。
11B:禁止设定。
捕捉触发的选择
001B:选择 TI0n 引脚输入的有效边沿。
MASTER0n 位的设定 (通道 2、 4、 6)
0:独立通道运行功能
SPLIT0n 位的设定 (通道 1、 3)
0:16 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
01B:选择 CK02 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
11B:选择 CK03 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0
TO0n
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
TMR02、 TMR04、 TMR06:
TMR01、 TMR03:
TMR00、 TMR05、 TMR07:
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
MASTER0n 位
SPLIT0n位
固定为“0”。
186
R7F0C903-908
第 6 章 定时器阵列单元
图 6-52
输入脉冲间隔测量功能时的操作步骤
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 ~ CK03 的时钟频率。
通道初 将噪声滤波器允许寄存器 1 (NFEN1)的对应位置 通道处于运行停止状态。
始设定 “0” (OFF)或者 “1” (ON)。
(提供时钟,消耗一部分电力)
设定定时器模式寄存器 0n(TMR0n)(确定通道的
运行模式)。
设定噪声滤波器允许寄存器 1 (NFEN1)。
开始
运行
将 TS0n 位置 “1”。
因为 TS0n 位是触发位,所以自动返回到 “0”。
TE0n 位变为 “1” 并且开始计数。
通过输入计数时钟将定时器计数寄存器 0n
(TCR0n)清为 “0000H”。当 TMR0n 寄存器的
MD0n0 位为 “1” 时,产生 INTTM0n。
重
运行中 只能更改 TMR0n 寄存器的 CIS0n1 位和 CIS0n0 位 计数器 (TCR0n)从 “0000H” 开始递增计数,如果
新
开
始
运
行
的设定值。
检测到 TI0n 引脚输入的有效边沿,就将计数值传送
能随时读 TDR0n 寄存器。
(捕捉)到定时器数据寄存器 0n (TDR0n),同时
能随时读 TCR0n 寄存器。
将 TCR0n 寄存器清为 “0000H” 并且产生 INTTM0n。
能随时读 TSR0n 寄存器。
此时,如果发生上溢,就将定时器状态寄存器 0n
禁止更改 TOM0n 位、 TOL0n 位、 TO0n 位和
(TSR0n)的 OVF 位置位。如果没有发生上溢,就
TOE0n 位的设定值。
清除 OVF 位。
此后,重复此运行。
停止
运行
将 TT0n 位置 “1”。
因为 TT0n 位是触发位,所以自动返回到 “0”。
TE0n 位变为 “0” 并且停止计数。
TCR0n 寄存器保持计数值而停止计数。
保持 TSR0n 寄存器的 OVF 位。
TAU
将 PER0 寄存器的 TAU0EN 位置 “0”。
停止
备注
断电状态
对全部电路和各通道的 SFR 进行初始化。
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
187
R7F0C903-908
6.8.5
第 6 章 定时器阵列单元
作为输入信号高低电平宽度测量的运行
能通过在 TI0n 引脚输入的一个边沿开始计数并且在另一个边沿捕捉计数值,测量 TI0n 的信号宽度 (高低
电平宽度)。 TI0n 的信号宽度能用以下计算式进行计算。
TI0n 输入的信号宽度 = 计数时钟的周期 × ((10000H × TSR0n:OVF) + (TDR0n 的捕捉值 + 1))
注意
因为通过定时器模式寄存器 0n (TMR0n)的 CKS0n 位选择的运行时钟对 TI0n 引脚输入进行采样,所以产生 1 个
运行时钟的误差。
在捕捉 & 单次计数模式中,定时器计数寄存器 0n (TCR0n)用作递增计数器。
如果将定时器通道开始寄存器 0 (TS0)的通道开始触发位 (TS0n)置 “1”, TE0n 位就变为 “1”,并且进
入 TI0n 引脚的开始边沿检测等待状态。
如果检测到 TI0n 引脚输入的开始边沿 (在测量高电平宽度时为 TI0n 引脚输入的上升沿),就与计数时钟
同步,从 “0000H” 开始递增计数。然后,如果检测到有效捕捉边沿 (在测量高电平宽度时为 TI0n 引脚输入的
下降沿),就在将计数值传送到定时器数据寄存器 0n (TDR0n)的同时,输出 INTTM0n。此时,如果计数器发
生上溢,就将定时器状态寄存器 0n (TSR0n)的 OVF 位置位。如果计数器没有发生上溢,就清除 OVF 位。
TCR0n 寄存器的值变为 “ 传送到 TDR0n 寄存器的值 +1” 而停止计数,并且进入 TI0n 引脚的开始边沿检测等待
状态。此后,继续同样的运行。
在将计数值捕捉到 TDR0n 寄存器的同时,根据在测量期间是否发生上溢,更新 TSR0n 寄存器的 OVF 位,
并且能确认捕捉值的上溢状态。
即使计数器进行了 2 个周期或者 2 个周期以上的完整计数,也认为发生上溢而将 TSR0n 寄存器的 OVF 位
置 “1”。但是,在发生 2 次或者 2 次以上的上溢时,无法通过 OVF 位正常测量间隔值。
能通过 TMR0n 寄存器的 CIS0n1 位和 CIS0n0 位来设定是测量 TI0n 引脚的高电平宽度还是低电平宽度。
此功能是以测量 TI0n 引脚的输入信号宽度为目的,因此不能在 TE0n 位为 “1” 的期间将 TS0n 位置 “1”。
TMR0n 寄存器的 CIS0n1、 CIS0n0=10B:测量低电平宽度。
TMR0n 寄存器的 CIS0n1、 CIS0n0=11B:测量高电平宽度。
R01UH0629CJ0120 Rev.1.20
2019.06.28
188
R7F0C903-908
第 6 章 定时器阵列单元
图 6-53
作为输入信号高低电平宽度测量运行的框图
ᰬ䫕䘿
CK01
䘆㺂ᰬ䫕 ⌞
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
CK00
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
TNFEN0n
注
ಠ༦
┚⌘ಞ
䗯⋵
Ỷ⎁
䀜ਇ䘿
TI0nᕋ㝐
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
在通道 1 和通道 3 时,能从 CK00、 CK01、 CK02 和 CK03 中选择时钟。
图 6-54
作为输入信号高低电平宽度测量的运行基本时序例子
TS0n
TE0n
TI0n
FFFFH
a
b
TCR0n
c
0000H
TDR0n
0000H
a
b
c
INTTM0n
OVF
备注 1. n:通道号 (n=0 ~ 7)
2. TS0n: 定时器通道开始寄存器 0 (TS0)的 bit n
TE0n: 定时器通道允许状态寄存器 0 (TE0)的 bit n
TI0n:
TI0n 引脚输入信号
TCR0n:定时器计数寄存器 0n (TCR0n)
TDR0n:定时器数据寄存器 0n (TDR0n)
OVF:
定时器状态寄存器 0n (TSR0n)的 bit0
R01UH0629CJ0120 Rev.1.20
2019.06.28
189
R7F0C903-908
第 6 章 定时器阵列单元
图 6-55
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
TMR0n CKS0n1 CKS0n0
CCS0n
1/0
0
0
0
测量输入信号的高低电平宽度时的寄存器设定内容例子
11
10
9
8
7
6
M/S 注
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
5
0
0
1
0
1
1/0
0
4
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
1
1
0
0
0
通道 n 的运行模式
110B:捕捉 & 单次计数
开始计数时的运行设定
0:在开始计数时,不产生
INTTM0n。
TI0n 引脚输入边沿的选择
10B:选择双边沿 (测量低电平宽度)。
11B:选择双边沿 (测量高电平宽度)。
开始触发的选择
010B:选择 TI0n 引脚输入的有效边沿。
MASTER0n 位的设定 (通道 2、 4、 6)
0:独立通道运行功能
SPLIT0n 位的设定 (通道 1、 3)
0:16 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
01B:选择 CK02 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
11B:选择 CK03 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0
TO0n
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
备注
TMR02、 TMR04、 TMR06:
MASTER0n 位
TMR01、 TMR03:
SPLIT0n位
TMR00、 TMR05、 TMR07:
固定为“0”。
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
190
R7F0C903-908
第 6 章 定时器阵列单元
图 6-56
输入信号高低电平宽度测量功能时的操作步骤
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 ~ CK03 的时钟频率。
通道初 将噪声滤波器允许寄存器 1 (NFEN1)的对应位置 通道处于运行停止状态。
始设定 “0” (OFF)或者 “1” (ON)。
(提供时钟,消耗一部分电力)
设定定时器模式寄存器 0n(TMR0n)(确定通道的
运行模式)。
设定噪声滤波器允许寄存器 1 (NFEN1)。
将 TOE0n 位置 “0”,并且停止 TO0n 的运行。
开始
运行
将 TS0n 位置 “1”。
因为 TS0n 位是触发位,所以自动返回到 “0”。
检测 TI0n 引脚输入的计数开始边沿。
TE0n 位变为 “1” 并且进入 TI0n 引脚的开始边沿检
测等待状态。
将定时器计数寄存器 0n(TCR0n)清为 “0000H” 并
且开始递增计数。
运行中 能任意更改 TDR0n 寄存器的设定值。
在检测到 TI0n 引脚的开始边沿后,计数器
重
能随时读 TCR0n 寄存器。
(TCR0n)从 “0000H” 开始递增计数。如果检测到
新
不使用 TSR0n 寄存器。
TI0n 引脚的捕捉边沿,就将计数值传送到定时器数
开
禁止更改 TMR0n 寄存器、TOM0n 位、TOL0n 位、 据寄存器 0n (TDR0n),并且产生 INTTM0n。
始
TO0n 位和 TOE0n 位的设定值。
此时,如果发生上溢,就将定时器状态寄存器 0n
运
(TSR0n)的 OVF 位置位。如果没有发生上溢,就
行
清除 OVF 位。TCR0n 寄存器在检测到下一个 TI0n
引脚的开始边沿前停止计数。
此后,重复此运行。
停止
运行
将 TT0n 位置 “1”。
因为 TT0n 位是触发位,所以自动返回到 “0”。
TE0n 位变为 “0” 并且停止计数。
TCR0n 寄存器保持计数值而停止计数。
保持 TSR0n 寄存器的 OVF 位。
TAU
将 PER0 寄存器的 TAU0EN 位置 “0”。
停止
备注
断电状态
对全部电路和各通道的 SFR 进行初始化。
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
191
R7F0C903-908
6.8.6
第 6 章 定时器阵列单元
作为延迟计数器的运行
能通过 TI0n 引脚输入的有效边沿检测 (外部事件)开始递减计数,并且以任意的设定间隔产生 INTTM0n
(定时器中断)。
在TE0n位为“1”的期间,能通过软件将TS0n位置“1”,开始递减计数,并且以任意的设定间隔产生INTTM0n
(定时器中断)。
中断产生周期能用以下计算式进行计算:
INTTM0n (定时器中断)的产生周期 = 计数时钟的周期 × (TDR0n 的设定值 + 1)
在单次计数模式中,定时器计数寄存器 0n (TCR0n)用作递减计数器。
如果将定时器通道开始寄存器 0 (TS0)的通道开始触发位 (TS0n、 TSH01、 TSH03)置 “1”, TE0n 位、
TEH01 位和 TEH03 位就变为 “1”,并且进入 TI0n 引脚的有效边沿检测等待状态。
通过 TI0n 引脚输入的有效边沿检测,开始 TCR0n 寄存器的运行,并且装入定时器数据寄存器 0n(TDR0n)
的值。 TCR0n 寄存器通过计数时钟,从装入的 TDR0n 寄存器的值开始递减计数。如果 TCR0n 变为 “0000H”,
就输出 INTTM0n,并且在检测到下一个 TI0n 引脚输入的有效边沿前停止计数。
能随时改写 TDR0n 寄存器,改写的 TDR0n 寄存器的值从下一个周期开始有效。
图 6-57
ᰬ䫕䘿
䘆㺂ᰬ䫕 ⌞
作为延迟计数器运行的框图
CK01
CK00
TI0nᕋ㝐
ಠ༦
┚⌘ಞ
䗯⋵
Ỷ⎁
䀜ਇ䘿
TS0n
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
TNFEN0n
注
在通道 1 和通道 3 时,能从 CK00、 CK01、 CK02 和 CK03 中选择时钟。
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
192
R7F0C903-908
第 6 章 定时器阵列单元
图 6-58
作为延迟计数器的运行基本时序例子
TS0n
TE0n
TI0n
FFFFH
TCR0n
0000H
TDR0n
a
b
INTTM0n
a+1
b+1
备注 1. n:通道号 (n=0 ~ 7)
2. TS0n: 定时器通道开始寄存器 0 (TS0)的 bit n
TE0n: 定时器通道允许状态寄存器 0 (TE0)的 bit n
TI0n:
TI0n 引脚输入信号
TCR0n:定时器计数寄存器 0n (TCR0n)
TDR0n:定时器数据寄存器 0n (TDR0n)
R01UH0629CJ0120 Rev.1.20
2019.06.28
193
R7F0C903-908
第 6 章 定时器阵列单元
图 6-59
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
11
TMR0n CKS0n1 CKS0n0
CCS0n
M/S 注
1/0
1/0
0
0
0/1
延迟计数器功能时的寄存器设定内容例子
10
9
8
7
6
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
5
0
0
1
1/0
1/0
0
4
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
1
0
0
1/0
0
通道 n 的运行模式
100B:单次计数模式
运行中的开始触发
0:触发输入无效。
1:触发输入有效。
TI0n 引脚输入边沿的选择
00B:检测下降沿。
01B:检测上升沿。
10B:检测双边沿。
11B:禁止设定。
开始触发的选择
001B:选择 TI0n 引脚输入的有效边沿。
MASTER0n 位的设定 (通道 2、 4、 6)
0:独立通道运行功能
SPLIT0n 位的设定 (通道 1、 3)
0:16 位定时器
1:8 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
01B:选择 CK02 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
11B:选择 CK03 作为通道 1、 3 的运行时钟 (只有通道 1、 3 才能选择)。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0n
TO0
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
TMR02、 TMR04、 TMR06:
TMR01、 TMR03:
TMR00、 TMR05、 TMR07:
备注
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
MASTER0n 位
SPLIT0n位
固定为“0”。
194
R7F0C903-908
第 6 章 定时器阵列单元
图 6-60
延迟计数器功能时的操作步骤
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01(在 8 位定时器模式中为 CK02
和 CK03)的时钟频率。
通道初 将噪声滤波器允许寄存器 1 (NFEN1)的对应位置 通道处于运行停止状态。
始设定 “0” (OFF)或者 “1” (ON)。
(提供时钟,消耗一部分电力)
设定定时器模式寄存器 0n (TMR0n)(确定通道 n
的运行模式)。
给定时器数据寄存器 0n(TDR0n)设定输出延迟时
间。
设定噪声滤波器允许寄存器 1 (NFEN1)。
将 TOE0n 位置 “0” 并且停止 TO0n 的运行。
开始
运行
将 TS0n 位置 “1”。
因为 TS0n 位是触发位,所以自动返回到 “0”。
TE0n 位变为 “1” 并且进入开始触发 (检测 TI0n 引
脚输入的有效边沿或者将 TS0n 位置 “1”)的检测等
待状态。
重
通过检测到下一个开始触发,开始递减计数。
新
• 检测 TI0n 引脚输入的有效边沿。
• 通过软件将 TS0n 位置 “1”。
开
始
运行中 能任意更改 TDR0n 寄存器的设定值。
将 TDR0n 寄存器的值装入定时器计数寄存器 0n
(TCR0n)。
计数器 (TCR0n)进行递减计数。如果 TCR0n 计
运
能随时读 TCR0n 寄存器。
数到 “0000H”,就产生 INTTM0n,并且在检测到下
行
不使用 TSR0n 寄存器。
一次开始触发(检测 TI0n 引脚输入的有效边沿或者
将TS0n位置“1”)前TCR0n为“0000H”而停止计数。
停止
运行
TAU
将 TT0n 位置 “1”。
因为 TT0n 位是触发位,所以自动返回到 “0”。
将 PER0 寄存器的 TAU0EN 位置 “0”。
停止
备注
TE0n 位变为 “0” 并且停止计数。
TCR0n 寄存器保持计数值而停止计数。
断电状态
对全部电路和各通道的 SFR 进行初始化。
n:通道号 (n=0 ~ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
195
R7F0C903-908
6.9
第 6 章 定时器阵列单元
定时器阵列单元的多通道联动运行功能
6.9.1
作为单触发脉冲输出功能的运行
将 2 个通道成对使用,能通过 TI0n 引脚的输入生成任意延迟脉宽的单触发脉冲。
延迟和脉宽能用以下计算式进行计算:
延迟 = {TDR0n (主控)的设定值 + 2} × 计数时钟周期
脉宽 = {TDR0p (从属)的设定值 } × 计数时钟周期
在单次计数模式中,主控通道运行并且对延迟进行计数。通过检测开始触发,主控通道的定时器计数寄存
器 0n (TCR0n)开始运行并且装入定时器数据寄存器 0n (TDR0n)的值。 TCR0n 寄存器通过计数时钟,从装
入的 TDR0n 寄存器的值开始递减计数。如果 TCR0n 变为 “0000H”,就输出 INTTM0n,并且在检测到下一个开
始触发前停止计数。
在单次计数模式中,从属通道运行并且对脉宽进行计数。将主控通道的 INTTM0n 作为开始触发,从属通道
的 TCR0p 寄存器开始运行并且装入 TDR0p 寄存器的值。TCR0p 寄存器通过计数时钟,从装入的 TDR0p 寄存器
值开始递减计数。如果计数值变为 “0000H”,就输出 INTTM0p,并且在检测到下一个开始触发 (主控通道的
INTTM0n)前停止计数。在从主控通道产生 INTTM0n 并且经过 1 个计数时钟后,TO0p 的输出电平变为有效电
平,如果 TCR0p 变为 “0000H”,就变为无效电平。
注意
因为主控通道的定时器数据寄存器 0n(TDR0n)和从属通道的 TDR0p 寄存器的装入时序不同,所以如果在运行中
改写 TDR0n 寄存器和 TDR0p 寄存器,就输出不正常的波形。必须在产生 INTTM0n 后改写 TDR0n 寄存器,并且
在产生 INTTM0p 后改写 TDR0p 寄存器。
备注
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n < p≤7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
196
R7F0C903-908
第 6 章 定时器阵列单元
图 6-61
䘆㺂ᰬ䫕
ᰬ䫕䘿
ѱ䙐䚉
(ঋ⅗䇗ᮦ⁗ᕅ)
作为单触发脉冲输出功能运行的框图
CK01
CK00
TS0n
TI0nᕋ㝐
䗯⋵
Ỷ⎁
ಠ༦
┚⌘ಞ
䀜ਇ䘿
TNFEN0n
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
ѣᯣ
⭫䐥
ᇐᰬಞ䇗ᮦᇺᆎಞ0p
(TCR0p)
䗉࠰
⭫䐥
ᇐᰬಞᮦᦤᇺᆎಞ0p
(TDR0p)
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
Ԅኔ䙐䚉
(ঋ⅗䇗ᮦ⁗ᕅ)
CK01
ᰬ䫕䘿
䘆㺂ᰬ䫕
CK00
䀜ਇ䘿
备注
TO0pᕋ㝐
ѣᯣؗਭ
(INTTM0p)
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
197
R7F0C903-908
第 6 章 定时器阵列单元
图 6-62
作为单触发脉冲输出功能的运行基本时序例子
TS0n
TE0n
TI0n
ѱ䙐䚉
FFFFH
TCR0n
0000H
TDR0n
a
TO0n
INTTM0n
TS0p
TE0p
FFFFH
TCR0p
Ԅኔ䙐䚉
0000H
TDR0p
b
TO0p
INTTM0p
a+2
b
a+2
b
备注 1. n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n < p ≤ 7)
2. TS0n、 TS0p:
定时器通道开始寄存器 0 (TS0)的 bit n、 p
TE0n、 TE0p:
定时器通道允许状态寄存器 0 (TE0)的 bit n、 p
TI0n:
TI0n 引脚的输入信号
TCR0n、 TCR0p:
定时器计数寄存器 0n、 0p (TCR0n、 TCR0p)
TDR0n、 TDR0p:
定时器数据寄存器 0n、 0p (TDR0n、 TDR0p)
TO0n、 TO0p:
TO0n 引脚和 TO0p 引脚的输出信号
R01UH0629CJ0120 Rev.1.20
2019.06.28
198
R7F0C903-908
第 6 章 定时器阵列单元
图 6-63 单触发脉冲输出功能时 (主控通道)的寄存器设定内容例子
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
TMR0n CKS0n1 CKS0n0
CCS0n
1/0
0
0
0
11
10
9
8
7
6
MASTE
R0n 注
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
0
0
1
1/0
1/0
1
5
0
4
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
1
0
0
0
0
通道 n 的运行模式
100B:单次计数模式
运行中的开始触发
0:触发输入无效。
TI0n 引脚输入边沿的选择
00B:检测下降沿。
01B:检测上升沿。
10B:检测双边沿。
11B:禁止设定。
开始触发的选择
001B:选择 TI0n 引脚输入的有效边沿。
MASTER0n 位的设定 (通道 2、 4、 6)
1:主控通道
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0
TO0n
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
备注
TMR02、 TMR04、 TMR06:
MASTER0n=1
TMR00:
固定为 “0”。
n:通道号 (n=0、 2、 4、 6)
R01UH0629CJ0120 Rev.1.20
2019.06.28
199
R7F0C903-908
第 6 章 定时器阵列单元
图 6-64 单触发脉冲输出功能时 (从属通道)的寄存器设定内容例子
(a) 定时器模式寄存器 0p (TMR0p)
15
14
13
12
TMR0p CKS0p1 CKS0p0
CCS0p
1/0
0
0
0
11
10
9
8
7
6
M/S 注
STS0p2
STS0p1
STS0p0
CIS0p1
CIS0p0
5
0
1
0
0
0
0
0
4
0
3
2
1
0
MD0p3
MD0p2
MD0p1
MD0p0
1
0
0
0
通道 p 的运行模式
100B:单次计数模式
运行中的开始触发
0:触发输入无效。
TI0p 引脚输入边沿的选择
00B:因不使用而置 “00B”。
开始触发的选择
100B:选择主控通道的 INTTM0n。
MASTER0n 位的设定 (通道 2、 4、 6)
0:从属通道
SPLIT0p 位的设定 (通道 1、 3)
0:16 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 p 的运行时钟。
10B:选择 CK01 作为通道 p 的运行时钟。
※ 和主控通道的设定相同。
(b) 定时器输出寄存器 0 (TO0)
bit p
TO0
TO0p
0:由 TO0p 输出 “0”。
1/0
1:由 TO0p 输出 “1”。
(c) 定时器输出允许寄存器 0 (TOE0)
bit p
TOE0 TOE0p
0:停止由计数运行进行的 TO0p 输出。
1/0
1:允许由计数运行进行的 TO0p 输出。
(d) 定时器输出电平寄存器 0 (TOL0)
bit p
TOL0 TOL0p
0:正逻辑输出 (高电平有效)
1/0
1:负逻辑输出 (低电平有效)
(e) 定时器输出模式寄存器 0 (TOM0)
bit p
TOM0 TOM0p
1:设定从属通道输出模式。
1
注
TMR02、 TMR04、 TMR06:MASTER0n 位
TMR01、 TMR03:
SPLIT0p 位
TMR05、 TMR07:
固定为“0”。
备注
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
200
R7F0C903-908
第 6 章 定时器阵列单元
图 6-65
单触发脉冲输出功能时的操作步骤 (1/2)
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01 的时钟频率。
通道初 将噪声滤波器允许寄存器 1 (NFEN1)的对应位置 通道处于运行停止状态。
始设定 “0” (OFF)或者 “1” (ON)。
(提供时钟,消耗一部分电力)
设定使用的 2 个通道的定时器模式寄存器 0n、 0p
(TMR0n、 TMR0p)(确定通道的运行模式)。
给主控通道的定时器数据寄存器 0n(TDR0n)设定
输出延迟时间,并且给从属通道的 TDR0p 寄存器设
定脉宽。
从属通道的设定
TO0p 引脚处于 Hi-Z 输出状态。
将定时器输出模式寄存器 0(TOM0)的 TOM0p 位
置 “1” (从属通道输出模式)。
设定 TOL0p 位。
设定 TO0p 位并且确定 TO0p 输出的初始电平。
当端口模式寄存器为输出模式并且端口寄存器为“0”
时,输出 TO0p 初始设定的电平。
备注
将 TOE0p 位置 “1”,允许 TO0p 输出。
因为通道处于运行停止状态,所以 TO0p 不变。
将端口寄存器和端口模式寄存器置 “0”。
TO0p 引脚输出 TO0p 设定的电平。
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
201
R7F0C903-908
第 6 章 定时器阵列单元
图 6-65
单触发脉冲输出功能时的操作步骤 (2/2)
软件操作
开始
运行
硬件状态
将TOE0p位(从属)置“1”(只限于重新开始运行)。
将定时器通道开始寄存器 0 (TS0)的 TS0n (主
控)和 TS0p (从属)位同时置 “1”。
TE0n 位和 TE0p 位都变为 “1”,主控通道进入开始
因为 TS0n 位和 TS0p 位是触发位,所以自动返回 触发(检测 TI0n 引脚输入的有效边沿或者将主控通
到 “0”。
道的 TS0n 位置 “1”)的检测等待状态。
计数器还处于停止状态。
通过检测主控通道的开始触发,开始主控通道的计
数。
• 检测 TI0n 引脚输入的有效边沿。
• 通过软件将主控通道的 TS0n 位置 “1” 注。
主控通道开始计数。
注 不能将从属通道的 TS0n 位置 “1”。
重
运行中 只能更改 TMR0n 寄存器的 CIS0n1 位和 CIS0n0 位 主控通道通过检测开始触发(检测 TI0n 引脚输入的
的设定值。
新
有效边沿或者将主控通道的 TS0n 位置 “1”) ,将
开
禁止更改 TMR0p、 TDR0n、 TDR0p 寄存器以及 TDR0n 寄存器的值装入定时器计数寄存器 0n
始
TOM0n 位、 TOM0p 位、 TOL0n 位和 TOL0p 位的 (TCR0n),并且进行递减计数。
运
设定值。
如果 TCR0n 计数到 “0000H”,就产生 INTTM0n,
行
能随时读 TCR0n 寄存器和 TCR0p 寄存器。
并且在下一次开始触发前停止计数。
不使用 TSR0n 寄存器和 TSR0p 寄存器。
从属通道以主控通道的INTTM0n为触发,将TDR0p
能更改从属通道的 TO0 寄存器和 TOE0 寄存器的设 寄存器的值装入TCR0p寄存器并且计数器开始递减
定值。
计数。在从主控通道输出 INTTM0n 并且经过 1 个计
数时钟后,将 TO0p 的输出电平置为有效电平。然
后,如果 TCR0p 计数到 “0000H”,就在将 TO0p 的
输出电平置为无效电平后停止计数。
此后,重复此运行。
停止
运行
将 TT0n 位(主控)和 TT0p 位(从属)同时置 “1”。 TE0n 位和 TE0p 位都变为 “0” 并且停止计数。
因为 TT0n 位和 TT0p 位是触发位,所以自动返回
TCR0n 寄存器和 TCR0p 寄存器保持计数值而停止
到 “0”。
计数。 TO0p 输出不被初始化而保持状态。
将从属通道的 TOE0p 位置 “0” 并且给 TO0p 位设定
值。
TAU
停止
TO0p 引脚输出 TO0p 设定的电平。
要保持 TO0p 引脚输出电平的情况:
在给端口寄存器设定要保持的值后将 TO0p 位置
“0”。
通过端口功能保持 TO0p 引脚的输出电平。
不需要保持 TO0p 引脚输出电平的情况:
不需要设定。
将 PER0 寄存器的 TAU0EN 位置 “0”。
断电状态
对全部电路和各通道的 SFR 进行初始化。
(TO0p 位变为 “0” 并且 TO0p 引脚变为端口功能)
备注
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
202
R7F0C903-908
6.9.2
第 6 章 定时器阵列单元
作为 PWM 功能的运行
将 2 个通道成对使用,能生成任意周期和占空比的脉冲。
输出脉冲的周期和占空比能用以下计算式进行计算:
脉冲周期 = {TDR0n (主控)的设定值 + 1} × 计数时钟周期
占空比 [%] = {TDR0p (从属)的设定值 } / {TDR0n (主控)的设定值 + 1} × 100
0% 输出:
TDR0p (从属)的设定值 = 0000H
100% 输出: TDR0p (从属)的设定值≥ {TDR0n (主控)的设定值 + 1}
当 TDR0p (从属)的设定值> {TDR0n (主控)的设定值 +1} 时,占空比超过 100%,但是为 100% 输出。
备注
主控通道用作间隔定时器模式。如果将定时器通道开始寄存器 0 (TS0)的通道开始触发位 (TS0n)置 “1”,
就输出中断(INTTM0n),然后将定时器数据寄存器0n(TDR0n)的设定值装入定时器计数寄存器0n(TCR0n),
并且通过计数时钟进行递减计数。当计数到 “0000H” 时,在输出 INTTM0n 后再次将 TDR0n 寄存器的值装入
TCR0n 寄存器,并且进行递减计数。此后,在将定时器通道停止寄存器 0 (TT0)的通道停止触发位 (TT0n)
置 “1” 前,重复此运行。
当用作 PWM 功能时,主控通道进行递减计数,在计数到 “0000H” 为止的期间为 PWM 输出(TO0p)周期。
从属通道用作单次计数模式。以主控通道的 INTTM0n 为开始触发,将 TDR0p 寄存器的值装入 TCR0p 寄存
器,并且进行递减计数,计数到 “0000H” 为止。当计数到 “0000H” 时,输出 INTTM0p,并且等待下一个开始触
发 (主控通道的 INTTM0n)。
当用作 PWM 功能时,从属通道进行递减计数,在计数到 “0000H” 为止的期间为 PWM 输出 (TO0p)的占
空比。
在从主控通道产生 INTTM0n 并且经过 1 个时钟后, PWM 输出 (TO0p)变为有效电平,并且在从属通道
的 TCR0p 寄存器的值为 “0000H” 时变为无效电平。
注意
要同时改写主控通道的定时器数据寄存器 0n(TDR0n)和从属通道的 TDR0p 寄存器时,需要 2 次写存取。因为在
主控通道产生 INTTM0n 时将 TDR0n 寄存器和 TDR0p 寄存器的值装入 TCR0n 寄存器和 TCR0p 寄存器,所以如果
分别在主控通道产生 INTTM0n 前后进行改写,TO0p 引脚就不能输出期待的波形。因此,要同时改写主控的 TDR0n
寄存器和从属的 TDR0p 寄存器时,必须在主控通道产生 INTTM0n 后立即改写这 2 个寄存器。
备注
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n < p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
203
R7F0C903-908
第 6 章 定时器阵列单元
图 6-66
䘆㺂ᰬ䫕
CK01
ᰬ䫕䘿
ѱ䙐䚉
(䰪䳊ᇐᰬಞ⁗ᕅ)
CK00
䀜ਇ䘿
TS0n
作为 PWM 功能运行的框图
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
ѣᯣ
⭫䐥
ᇐᰬಞ䇗ᮦᇺᆎಞ0p
(TCR0p)
䗉࠰
⭫䐥
ᇐᰬಞᮦᦤᇺᆎಞ0p
(TDR0p)
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
Ԅኔ䙐䚉
(ঋ⅗䇗ᮦ⁗ᕅ)
CK01
ᰬ䫕䘿
䘆㺂ᰬ䫕
CK00
䀜ਇ䘿
备注
TO0pᕋ㝐
ѣᯣؗਭ
(INTTM0p)
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
204
R7F0C903-908
第 6 章 定时器阵列单元
图 6-67
作为 PWM 功能的运行基本时序例子
TS0n
TE0n
FFFFH
ѱ䙐䚉
TCR0n
0000H
TDR0n
a
b
TO0n
INTTM0n
TS0p
TE0p
FFFFH
TCR0p
Ԅኔ䙐䚉
0000H
TDR0p
c
d
TO0p
INTTM0p
a+1
c
a+1
c
b+1
d
备注 1. n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n < p ≤ 7)
2. TS0n、 TS0p:
定时器通道开始寄存器 0 (TS0)的 bit n、 p
TE0n、 TE0p:
定时器通道允许状态寄存器 0 (TE0)的 bit n、 p
TCR0n、 TCR0p:
定时器计数寄存器 0n、 0p (TCR0n、 TCR0p)
TDR0n、 TDR0p:
定时器数据寄存器 0n、 0p (TDR0n、 TDR0p)
TO0n、 TO0p:
TO0n 引脚和 TO0p 引脚的输出信号
R01UH0629CJ0120 Rev.1.20
2019.06.28
205
R7F0C903-908
第 6 章 定时器阵列单元
图 6-68
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
TMR0n CKS0n1 CKS0n0
CCS0n
1/0
0
0
0
PWM 功能时 (主控通道)的寄存器设定内容例子
11
10
9
8
7
6
MASTE
R0n 注
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
0
0
0
0
0
1
5
0
4
0
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
0
0
0
1
通道 n 的运行模式
000B:间隔定时器
开始计数时的运行设定
1:在开始计数时,产生
INTTM0n。
TI0n 引脚输入边沿的选择
00B:因不使用而置 “00B”。
开始触发的选择
000B:只选择软件开始触发。
MASTER0n 位的设定 (通道 2、 4、 6)
1:主控通道
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0
TO0n
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0 TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0 TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0 TOM0n
0:设定主控通道输出模式。
0
注
备注
TMR02、 TMR04、 TMR06:
MASTER0n=1
TMR00:
固定为 “0”。
n:通道号 (n=0、 2、 4、 6)
R01UH0629CJ0120 Rev.1.20
2019.06.28
206
R7F0C903-908
第 6 章 定时器阵列单元
图 6-69
(a) 定时器模式寄存器 0p (TMR0p)
15
14
13
12
TMR0p CKS0p1 CKS0p0
CCS0p
1/0
0
0
0
PWM 功能时 (从属通道)的寄存器设定内容例子
11
10
9
8
7
6
M/S 注
STS0p2
STS0p1
STS0p0
CIS0p1
CIS0p0
5
0
1
0
0
0
0
0
4
0
3
2
1
0
MD0p3
MD0p2
MD0p1
MD0p0
1
0
0
1
通道 p 的运行模式
100B:单次计数模式
运行中的开始触发
1:触发输入有效。
TI0p 引脚输入边沿的选择
00B:因不使用而置 “00B”。
开始触发的选择
100B:选择主控通道的 INTTM0n。
MASTER0n 位的设定 (通道 2、 4、 6)
0:从属通道
SPLIT0p 位的设定 (通道 1、 3)
0:16 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 p 的运行时钟。
10B:选择 CK01 作为通道 p 的运行时钟。
※ 和主控通道的设定相同。
(b) 定时器输出寄存器 0 (TO0)
bit p
TO0p
TO0
0:由 TO0p 输出 “0”。
1/0
1:由 TO0p 输出 “1”。
(c) 定时器输出允许寄存器 0 (TOE0)
bit p
TOE0 TOE0p
0:停止由计数运行进行的 TO0p 输出。
1/0
1:允许由计数运行进行的 TO0p 输出。
(d) 定时器输出电平寄存器 0 (TOL0)
bit p
TOL0 TOL0p
0:正逻辑输出 (高电平有效)
1/0
1:负逻辑输出 (低电平有效)
(e) 定时器输出模式寄存器 0 (TOM0)
bit p
TOM0 TOM0p
1:设定从属通道输出模式。
1
注
TMR02、 TMR04、 TMR06:MASTER0n 位
TMR01、 TMR03:
SPLIT0p 位
TMR05、 TMR07:
固定为“0”。
备注
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
207
R7F0C903-908
第 6 章 定时器阵列单元
图 6-70
PWM 功能时的操作步骤 (1/2)
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01 的时钟频率。
通道初 设定使用的 2 个通道的定时器模式寄存器 0n、 0p 通道处于运行停止状态。
始设定 (TMR0n、 TMR0p)(确定通道的运行模式)。
(提供时钟,消耗一部分电力)
给主控通道的定时器数据寄存器 0n(TDR0n)设定
间隔 (周期)值,并且给从属通道的 TDR0p 寄存
器设定占空比的值。
从属通道的设定
TO0p 引脚处于 Hi-Z 输出状态。
将定时器输出模式寄存器 0 (TOM0)的 TOM0p
位置 “1” (从属通道输出模式)。
设定 TOL0p 位。
设定 TO0p 位并且确定 TO0p 输出的初始电平。
当端口模式寄存器为输出模式并且端口寄存器为“0”
时,输出 TO0p 初始设定的电平。
备注
将 TOE0p 位置 “1”,允许 TO0p 输出。
因为通道处于运行停止状态,所以 TO0p 不变。
将端口寄存器和端口模式寄存器置 “0”。
TO0p 引脚输出 TO0p 设定的电平。
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
208
R7F0C903-908
第 6 章 定时器阵列单元
图 6-70
PWM 功能时的操作步骤 (2/2)
软件操作
开始
运行
硬件状态
将TOE0p位(从属)置“1”(只限于重新开始运行)。
将定时器通道开始寄存器 0 (TS0)的 TS0n 位
(主控)和 TS0p 位 (从属)同时置 “1”。
TE0n 位和 TE0p 位都变为 “1”。
因为 TS0n 位和 TS0p 位是触发位,所以自动返回
主控通道开始计数并且产生 INTTM0n。以此为触
到 “0”。
发,从属通道也开始计数。
运行中 禁止更改 TMR0n 寄存器和 TMR0p 寄存器以及
主控通道将TDR0n寄存器的值装入定时器计数寄存
TOM0n 位、 TOM0p 位、 TOL0n 位和 TOL0p 位的 器 0n(TCR0n),并且进行递减计数。如果 TCR0n
设定值。
计数到“0000H”,就产生INTTM0n。同时,将TDR0n
能在主控通道产生 INTTM0n 后更改 TDR0n 寄存器 寄存器的值装入 TCR0n 寄存器,并且重新开始递减
重
和 TDR0p 寄存器的设定值。
新
开
始
计数。
能随时读 TCR0n 寄存器和 TCR0p 寄存器。
从属通道以主控通道的 INTTM0n 为触发,将 TDR0p
不使用 TSR0n 寄存器和 TSR0p 寄存器。
寄存器的值装入 TCR0p 寄存器,并且计数器进行递
减计数。在从主控通道输出 INTTM0n 并且经过 1 个
运
计数时钟后,将 TO0p 的输出电平置为有效电平。
行
然后,如果 TCR0p 计数到 “0000H”,就在将 TO0p
的输出电平置为无效电平后停止计数。
此后,重复此运行。
停止
运行
将 TT0n 位(主控)和 TT0p 位(从属)同时置 “1”。 TE0n 位和 TE0p 位都变为 “0” 并且停止计数。
因为 TT0n 位和 TT0p 位是触发位,所以自动返回
TCR0n 寄存器和 TCR0p 寄存器保持计数值而停止
到 “0”。
计数。
TO0p 输出不被初始化而保持状态。
将从属通道的 TOE0p 位置 “0” 并且给 TO0p 位设定
值。
TAU
停止
TO0p 引脚输出 TO0p 设定的电平。
要保持 TO0p 引脚输出电平的情况:
在给端口寄存器设定要保持的值后将 TO0p 位置
“0”。
通过端口功能保持 TO0p 引脚的输出电平。
不需要保持 TO0p 引脚输出电平的情况:
不需要设定。
将 PER0 寄存器的 TAU0EN 位置 “0”。
断电状态
对全部电路和各通道的 SFR 进行初始化。
(TO0p 位变为 “0” 并且 TO0p 引脚变为端口功能)
备注
n:通道号 (n=0、 2、 4、 6)
p:从属通道号 (n <p≤ 7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
209
R7F0C903-908
6.9.3
第 6 章 定时器阵列单元
作为多重 PWM 输出功能的运行
这是通过扩展 PWM 功能并且使用多个从属通道进行不同占空比的多个 PWM 输出的功能。
例如,当 2 个从属通道成对使用时,输出脉冲的周期和占空比能用以下计算式进行计算:
脉冲周期 = {TDR0n (主控)的设定值 + 1} × 计数时钟周期
占空比 1 [%] = {TDR0p (从属 1)的设定值 } / {TDR0n (主控)的设定值 + 1} × 100
占空比 2 [%] = {TDR0q (从属 2)的设定值 } / {TDR0n (主控)的设定值 + 1} × 100
备注
当 TDR0p(从属 1)的设定值> {TDR0n(主控)的设定值 +1} 或者 {TDR0q(从属 2)的设定值 } > {TDR0n(主
控)的设定值 +1} 时,占空比超过 100%,但是为 100% 输出。
在间隔定时器模式中,主控通道的定时器计数寄存器 0n (TCR0n)运行并且对周期进行计数。
在单次计数模式中,从属通道 1 的 TCR0p 寄存器运行并且对占空比进行计数以及从 TO0p 引脚输出 PWM
波形。以主控通道的 INTTM0n 为开始触发,将定时器数据寄存器 0p(TDR0p)的值装入 TCR0p 寄存器并且进
行递减计数。如果 TCR0p 变为 “0000H”,就输出 INTTM0p,并且在输入下一个开始触发(主控通道的 INTTM0n)
前停止计数。在从主控通道产生 INTTM0n 并且经过 1 个计数时钟后, TO0p 的输出电平变为有效电平,如果
TCR0p 变为 “0000H”,就变为无效电平。
和从属通道 1 的 TCR0p 寄存器相同,在单次计数模式中,从属通道 2 的 TCR0q 寄存器运行并且对占空比
进行计数以及从 TO0q 引脚输出 PWM 波形。以主控通道的 INTTM0n 为开始触发,将 TDR0q 寄存器的值装入
TCR0q 寄存器并且进行递减计数。如果 TCR0q 变为 “0000H”,就输出 INTTM0q,并且在输入下一个开始触发
(主控通道的 INTTM0n)前停止计数。在从主控通道产生 INTTM0n 并且经过 1 个计数时钟后,TO0q 的输出电
平变为有效电平,如果 TCR0q 变为 “0000H”,就变为无效电平。
当通过如此的运行将通道 0 用作主控通道时,最多能同时输出 7 种 PWM 信号。
注意
要同时改写主控通道的定时器数据寄存器 0n (TDR0n)和从属通道 1 的 TDR0p 寄存器时,至少需要 2 次写存取。
因为在主控通道产生 INTTM0n 时将 TDR0n 寄存器和 TDR0p 寄存器的值装入 TCR0n 寄存器和 TCR0p 寄存器,所
以如果分别在主控通道产生 INTTM0n 前后进行改写,TO0p 引脚就不能输出期待的波形。因此,要同时改写主控的
TDR0n 寄存器和从属的 TDR0p 寄存器时,必须在主控通道产生 INTTM0n 后立即改写这 2 个寄存器 (同样也适用
于从属通道 2 的 TDR0q 寄存器)。
备注
n:主控通道号 (n=0、 2、 4)
p:从属通道号1 q:从属通道号2
n<p< q≤ 7 (p、 q是大于 n 的整数)
R01UH0629CJ0120 Rev.1.20
2019.06.28
210
R7F0C903-908
第 6 章 定时器阵列单元
图 6-71
作为多重 PWM 输出功能运行的框图 (输出 2 种 PWM 的情况)
䘆㺂ᰬ䫕
CK01
ᰬ䫕䘿
ѱ䙐䚉
(䰪䳊ᇐᰬಞ⁗ᕅ)
CK00
䀜ਇ䘿
TS0n
ᇐᰬಞ䇗ᮦᇺᆎಞ0n
(TCR0n)
ᇐᰬಞᮦᦤᇺᆎಞ0n
(TDR0n)
ѣᯣ
⭫䐥
ᇐᰬಞ䇗ᮦᇺᆎಞ0p
(TCR0p)
䗉࠰
⭫䐥
ᇐᰬಞᮦᦤᇺᆎಞ0p
(TDR0p)
ѣᯣ
⭫䐥
ᇐᰬಞ䇗ᮦᇺᆎಞ0q
(TCR0q)
䗉࠰
⭫䐥
ᇐᰬಞᮦᦤᇺᆎಞ0q
(TDR0q)
ѣᯣ
⭫䐥
ѣᯣؗਭ
(INTTM0n)
Ԅኔ䙐䚉1
(ঋ⅗䇗ᮦ⁗ᕅ)
CK01
ᰬ䫕䘿
䘆㺂ᰬ䫕
CK00
TO0pᕋ㝐
䀜ਇ䘿
ѣᯣؗਭ
(INTTM0p)
Ԅኔ䙐䚉2
(ঋ⅗䇗ᮦ⁗ᕅ)
CK01
ᰬ䫕䘿
䘆㺂ᰬ䫕
CK00
䀜ਇ䘿
备注
TO0qᕋ㝐
ѣᯣؗਭ
(INTTM0q)
n:通道号 (n=0、 2、 4)
p:从属通道号1 q:从属通道号 2
n<p< q≤ 7 (p、 q是大于 n 的整数)
R01UH0629CJ0120 Rev.1.20
2019.06.28
211
R7F0C903-908
第 6 章 定时器阵列单元
图 6-72
作为多重 PWM 输出功能的运行基本时序例子 (输出 2 种 PWM 的情况)
TS0n
TE0n
FFFFH
ѱ䙐䚉
TCR0n
0000H
TDR0n
a
b
TO0n
INTTM0n
TS0p
TE0p
FFFFH
TCR0p
Ԅኔ䙐䚉1
0000H
TDR0p
c
d
TO0p
INTTM0p
a+1
a+1
c
c
b+1
d
d
TS0q
TE0q
FFFFH
TCR0q
Ԅኔ䙐䚉2
0000H
TDR0q
e
f
TO0q
INTTM0q
a+1
e
a+1
e
b+1
f
f
备注 1. n:主控通道号 (n=0、 2、 4)
p:从属通道号 1 q:从属通道号 2
n < p < q ≤ 7 (p、 q 是大于 n 的整数)
2. TS0n、 TS0p、 TS0q:
定时器通道开始寄存器 0 (TS0)的 bit n、 p、 q
TE0n、 TE0p、 TE0q:
定时器通道允许状态寄存器 0 (TE0)的 bit n、 p、 q
TCR0n、 TCR0p、 TCR0q:
定时器计数寄存器 0n、 0p、 0q (TCR0n、 TCR0p、 TCR0q)
TDR0n、 TDR0p、 TDR0q:
定时器数据寄存器 0n、 0p、 0q (TDR0n、 TDR0p、 TDR0q)
TO0n、 TO0p、 TO0q:
TO0n、 TO0p、 TO0q 引脚的输出信号
R01UH0629CJ0120 Rev.1.20
2019.06.28
212
R7F0C903-908
第 6 章 定时器阵列单元
图 6-73
多重 PWM 输出功能时 (主控通道)的寄存器设定内容例子
(a) 定时器模式寄存器 0n (TMR0n)
15
14
13
12
TMR0n CKS0n1 CKS0n0
CCS0n
1/0
0
0
0
11
10
9
8
7
6
MASTE
R0n 注
STS0n2
STS0n1
STS0n0
CIS0n1
CIS0n0
0
0
0
0
0
1
5
0
4
0
3
2
1
0
MD0n3
MD0n2
MD0n1
MD0n0
0
0
0
1
通道 n 的运行模式
000B:间隔定时器
开始计数时的运行设定
1:在开始计数时,产生
INTTM0n。
TI0n 引脚输入边沿的选择
00B:因不使用而置 “00B”。
开始触发的选择
000B:只选择软件开始触发。
MASTER0n 位的设定 (通道 2、 4、 6)
1:主控通道
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 n 的运行时钟。
10B:选择 CK01 作为通道 n 的运行时钟。
(b) 定时器输出寄存器 0 (TO0)
bit n
TO0
TO0n
0:由 TO0n 输出 “0”。
0
(c) 定时器输出允许寄存器 0 (TOE0)
bit n
TOE0
TOE0n
0:停止由计数运行进行的 TO0n 输出。
0
(d) 定时器输出电平寄存器 0 (TOL0)
bit n
TOL0
TOL0n
0:在主控通道输出模式 (TOM0n=0)时置 “0”。
0
(e) 定时器输出模式寄存器 0 (TOM0)
bit n
TOM0
TOM0n
0:设定主控通道输出模式。
0
注
备注
TMR02、 TMR04、 TMR06:
MASTER0n=1
TMR00:
固定为 “0”。
n:通道号 (n=0、 2、 4)
R01UH0629CJ0120 Rev.1.20
2019.06.28
213
R7F0C903-908
第 6 章 定时器阵列单元
图 6-74
多重 PWM 输出功能时 (从属通道)的寄存器设定内容例子 (输出 2 种 PWM 的情况)
(a) 定时器模式寄存器 0p、 0q (TMR0p、 TMR0q)
15
14
13
12
11
10
TMR0p CKS0p1 CKS0p0
CCS0p
M/S 注 STS0p2
1/0
0
0
0
0
1
15
14
13
12
11
10
TMR0q CKS0q1 CKS0q0
CCS0q
M/S 注 STS0q2
1/0
0
0
0
0
1
9
8
7
6
STS0p1
STS0p0
CIS0p1
CIS0p0
5
0
9
0
8
0
7
0
6
STS0q1
STS0q0
CIS0q1
CIS0q0
0
0
0
0
4
0
5
0
4
0
0
3
2
1
0
MD0p3
MD0p2
MD0p1
MD0p0
1
3
0
2
0
1
1
0
MD0q3
MD0q2
MD0q1
MD0q0
1
0
0
1
通道 p、 q 的运行模式
100B:单次计数模式
运行中的开始触发
1:触发输入有效。
TI0p、 TI0q 引脚输入边沿的选择
00B:因不使用而置 “00B”。
开始触发的选择
100B:选择主控通道的 INTTM0n。
MASTER0n 位的设定 (通道 2、 4、 6)
0:从属通道
SPLIT0p 位和 SPLIT0q 位的设定 (通道 1、 3)
0:16 位定时器
计数时钟的选择
0:选择运行时钟 (fMCK)。
运行时钟 (fMCK)的选择
00B:选择 CK00 作为通道 p、 q 的运行时钟。
10B:选择 CK01 作为通道 p、 q 的运行时钟。
※ 和主控通道的设定相同。
(b) 定时器输出寄存器 0 (TO0)
bit q bit p
TO0
TO0q
TO0p
0:由 TO0p 和 TO0q 输出 “0”。
1/0
1/0
1:由 TO0p 和 TO0q 输出 “1”。
(c) 定时器输出允许寄存器 0 (TOE0)
bit q bit p
TOE0 TOE0q TO0p
0:停止由计数运行进行的 TO0p 和 TO0q 输出。
1/0
1/0
1:允许由计数运行进行的 TO0p 和 TO0q 输出。
(d) 定时器输出电平寄存器 0 (TOL0)
bit q bit p
TOL0 TOL0q TOL0p
0:正逻辑输出 (高电平有效)
1/0
1/0
1:负逻辑输出 (低电平有效)
(e) 定时器输出模式寄存器 0 (TOM0)
bit q bit p
TOM0 TOM0q TOM0p
1:设定从属通道输出模式。
1
1
注
TMR02、 TMR04、 TMR06:MASTER0n 位
TMR01、 TMR03:
SPLIT0p 位、 SPLIT0q位
TMR05、 TMR07:
固定为“0”。
备注
n:通道号 (n=0、 2、 4)
p:从属通道号1 q:从属通道号2
n<p< q≤ 7 (p、 q是大于 n 的整数)
R01UH0629CJ0120 Rev.1.20
2019.06.28
214
R7F0C903-908
第 6 章 定时器阵列单元
图 6-75
多重 PWM 输出功能时的操作步骤 (输出 2 种 PWM 的情况) (1/2)
软件操作
硬件状态
TAU
断电状态
初始
(停止提供时钟,不能写各寄存器)
设定
将外围允许寄存器 0(PER0)的 TAU0EN 位置 “1”。 通电状态,各通道处于运行停止状态。
(开始提供时钟,能写各寄存器)
设定定时器时钟选择寄存器 0 (TPS0)。
确定 CK00 和 CK01 的时钟频率。
通道初 设定使用的各通道的定时器模式寄存器 0n、0p、0q 通道处于运行停止状态。
始设定 (TMR0n、TMR0p、TMR0q)(确定通道的运行模 (提供时钟,消耗一部分电力)
式)。
给主控通道的定时器数据寄存器 0n(TDR0n)设定
间隔 (周期)值,并且给从属通道的 TDR0p 寄存
器和 TDR0q 寄存器设定占空比的值。
从属通道的设定
TO0p 引脚和 TO0q 引脚处于 Hi-Z 输出状态。
将定时器输出模式寄存器 0 (TOM0)的 TOM0p
位和 TOM0q 位置 “1” (从属通道输出模式)。
设定 TOL0p 位和 TOL0q 位。
设定 TO0p 位和 TO0q 位,并且确定 TO0p 和 TO0q
输出的初始电平。
当端口模式寄存器为输出模式并且端口寄存器为“0”
将 TOE0p 位和 TOE0q 位置 “1”,允许 TO0p 和
时,输出 TO0p 和 TO0q 初始设定的电平。
TO0q 的输出。
因为通道处于运行停止状态,所以 TO0p 和 TO0q
不变。
将端口寄存器和端口模式寄存器置 “0”。
TO0p 引脚和 TO0q 引脚输出 TO0p 和 TO0q 设定的
电平。
备注
n:主控通道号 (n=0、 2、 4)
p:从属通道号1 q:从属通道号 2
n<p< q≤ 7 (p、 q是大于 n 的整数)
R01UH0629CJ0120 Rev.1.20
2019.06.28
215
R7F0C903-908
第 6 章 定时器阵列单元
图 6-75
多重 PWM 输出功能时的操作步骤 (输出 2 种 PWM 的情况) (2/2)
软件操作
开始
运行
(只在重新开始运行时将 TOE0p 位和 TOE0q 位(从
属)置 “1”)
将定时器通道开始寄存器 0 (TS0)的 TS0n 位 (主
控)、 TS0p 位和 TS0q 位 (从属)同时置 “1”。
TE0n 位、 TE0p 位和 TE0q 位都变为 “1”。
因为 TS0n 位、 TS0p 位和 TS0q 位是触发位,所 主控通道开始计数并且产生 INTTM0n。以此为触
以自动返回到 “0”。
发,从属通道也开始计数。
运行中 禁止更改 TMR0n、 TMR0p、 TMR0q 寄存器以及
TOM0n 位、 TOM0p 位、 TOM0q 位、 TOL0n 位、
TOL0p、 TOL0q 位的设定值。
能在主控通道产生 INTTM0n 后更改 TDR0n、
TDR0p、 TDR0q 寄存器的设定值。
能随时读 TCR0n、 TCR0p、 TCR0q 寄存器。
不使用 TSR0n、 TSR0p、 TSR0q 寄存器。
重
新
开
始
运
行
停止
运行
硬件状态
主控通道将TDR0n寄存器的值装入定时器计数寄存
器 0n(TCR0n),并且进行递减计数。如果 TCR0n
计数到“0000H”,就产生INTTM0n。同时,将TDR0n
寄存器的值装入 TCR0n 寄存器,并且重新开始递减
计数。
从属通道 1 以主控通道的 INTTM0n 信号为触发,将
TDR0p 寄存器的值传送到 TCR0p 寄存器,并且计
数器开始递减计数。在从主控通道输出 INTTM0n 并
且经过 1 个计数时钟后,将 TO0p 的输出电平置为
有效电平。然后,如果计数到 “0000H”,就在将
TO0p 的输出电平置为无效电平后停止计数。
从属通道 2 以主控通道的 INTTM0n 信号为触发,将
TDR0q 寄存器的值传送到 TCR0q 寄存器,并且计
数器开始递减计数。在从主控通道输出 INTTM0n 并
且经过 1 个计数时钟后,将 TO0q 的输出电平置为
有效电平。然后,如果计数到 “0000H”,就 在将
TO0q 的输出电平置为无效电平后停止计数。
此后,重复此运行。
将 TT0n 位 (主控)、 TT0p 位和 TT0q 位 (从属)
TE0n 位、 TE0p 位和 TE0q 位都变为 “0” 并且停止
位同时置 “1”。
因为 TT0n 位、 TT0p 位和 TT0q 位是触发位,所 计数。
以自动返回到 “0”。
TCR0n、TCR0p、TCR0q 寄存器保持计数值而停
止计数。
TO0p 和 TO0q 输出不被初始化而保持状态。
将从属通道的 TOE0p 位和 TOE0q 位置 “0” 并且给 TO0p 引脚和 TO0q 引脚输出 TO0p 和 TO0q 设定的
TO0p 位和 TO0q 位设定值。
电平。
TAU
停止
要保持 TO0p 引脚和 TO0q 引脚的输出电平的情况:
在给端口寄存器设定要保持的值后将 TO0p 位和
TO0q 位置 “0”。
通过端口功能保持 TO0p 引脚和 TO0q 引脚的输出
不需要保持 TO0p 引脚和 TO0q 引脚的输出电平的 电平。
情况:
不需要设定。
将 PER0 寄存器的 TAU0EN 位置 “0”。
备注
断电状态
对全部电路和各通道的 SFR 进行初始化。
(TO0p 位和 TO0q 位变为 “0” 并且 TO0p 引脚和
TO0q 引脚变为端口功能)
n:通道号 (n=0、 2、 4)
p:从属通道号1 q:从属通道号 2
n<p< q≤ 7 (p、 q是大于 n 的整数)
R01UH0629CJ0120 Rev.1.20
2019.06.28
216
R7F0C903-908
6.10
6.10.1
第 6 章 定时器阵列单元
使用定时器阵列单元时的注意事项
使用定时器输出时的注意事项
分配了定时器输出功能的引脚也可能被分配其他复用功能的输出。在这种情况下使用定时器输出时,需要
将其他复用功能的输出置初始值。详细内容请参照 “4.5 使用复用功能时的寄存器设定 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
217
R7F0C903-908
第 7 章 12 位间隔定时器
第7章
7.1
12 位间隔定时器
12 位间隔定时器的功能
以事先设定的任意时间间隔产生中断 (INTIT),能用于从 STOP 模式的唤醒以及 A/D 转换器的 SNOOZE
模式的触发。
7.2
12 位间隔定时器的结构
12 位间隔定时器由以下硬件构成。
表 7-1
12 位间隔定时器的结构
项目
结构
计数器
12 位计数器
控制寄存器
外围允许寄存器 0 (PER0)
副系统时钟提供模式控制寄存器 (OSMC)
12 位间隔定时器的控制寄存器 (ITMC)
图 7-1
12 位间隔定时器的框图
䲚
䇗ᮦᰬ䫕
fIL
䇗ᮦ䘆㺂
⭫䐥
12փ䇗ᮦಞ
ѣᯣ䈭≸ؗਭ(INTIT)
ੂ
WUTMM
CK0
RINTE
ࢥ㌱㔕ᰬ䫕ᨆ⁗בᕅ
ᇺᆎಞ(OSMC)
ITCMP11ЊITCMP0
䰪䳊ᇐᰬಞⲺ
ᇺᆎಞ(ITMC)
䜞ᙱ㓵
R01UH0629CJ0120 Rev.1.20
2019.06.28
218
R7F0C903-908
7.3
第 7 章 12 位间隔定时器
控制 12 位间隔定时器的寄存器
通过以下寄存器控制 12 位间隔定时器。
•
外围允许寄存器 0 (PER0)
•
副系统时钟提供模式控制寄存器 (OSMC)
•
间隔定时器的控制寄存器 (ITMC)
7.3.1
外围允许寄存器 0 (PER0)
PER0 寄存器是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过停止给不使用的硬件提供时钟,以
降低功耗和噪声。
要使用 12 位间隔定时器时,必须首先将 bit7 (TMKAEN)置 “1”。
通过 1 位或者 8 位存储器操作指令设定 PER0 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 7-2
地址:F00F0H
外围允许寄存器 0 (PER0)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
TMKAEN
0
12 位间隔定时器的输入时钟的控制
停止提供输入时钟。
• 不能写 12 位间隔定时器使用的 SFR。
• 12 位间隔定时器处于复位状态。
1
提供输入时钟。
• 能读写 12 位间隔定时器使用的 SFR。
注意 1. 如果要使用 12 位间隔定时器,就必须先在提供低速内部振荡器时钟 (WUTMMCK0=1)后将 TMKAEN 位置 “1”,
然后设定间隔定时器的控制寄存器 (ITMC)。当 TMKAEN 位为 “0” 时,忽视 12 位间隔定时器的控制寄存器的写
操作,而且读取值为初始值 (副系统时钟提供模式控制寄存器 (OSMC)除外)。
2. 必须将 bit6 和 bit1 置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
219
R7F0C903-908
7.3.2
第 7 章 12 位间隔定时器
副系统时钟提供模式控制寄存器 (OSMC)
OSMC 寄存器控制 12 位间隔定时器运行时钟的提供。
要使用 12 位间隔定时器时,必须事先将 WUTMMCK0 位置 “1”,并且不能在定时器停止前将 WUTMMCK0
位置 “0”。
通过 8 位存储器操作指令设定 OSMC 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 7-3
地址:F00F3H
副系统时钟提供模式控制寄存器 (OSMC)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
OSMC
0
0
0
WUTMMCK0
0
0
0
0
WUTMMCK0
12 位间隔定时器运行时钟的提供
0
停止提供时钟。
1
提供低速内部振荡器时钟 (fIL)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
220
R7F0C903-908
7.3.3
第 7 章 12 位间隔定时器
间隔定时器的控制寄存器 (ITMC)
这是设定 12 位间隔定时器的运行开始和停止以及比较值的寄存器。
通过 16 位存储器操作指令设定 ITMC 寄存器。
在产生复位信号后,此寄存器的值变为 “0FFFH”。
图 7-4
地址:FFF90H
复位后:0FFFH
间隔定时器控制寄存器 (ITMC)的格式
R/W
符号
15
14
13
12
11 ~ 0
ITMC
RINTE
0
0
0
ITCMP11 ~ ITCMP0
RINTE
12 位间隔定时器的运行控制
0
停止计数器的运行 (清除计数)。
1
开始计数器的运行。
ITCMP11 ~ ITCMP0
001H
12 位间隔定时器比较值的设定
这些位产生 “ 计数时钟周期 × (ITCMP 设定值 +1) ” 的固定周期中断。
•
•
•
FFFH
000H
禁止设定。
ITCMP11 ~ ITCMP0 为 “001H” 或者 “FFFH” 时的中断周期例子
• ITCMP11 ~ ITCMP0 = 001H,计数时钟:fIL=15kHz
1/15[kHz] × (1+1) ≈ 0.1333[ms] = 133.3[μs]
• ITCMP11 ~ ITCMP0 = FFFH,计数时钟:fIL=15kHz
1/15[kHz] × (4095+1) ≈ 273[ms]
注意 1. 要将 RINTE 位从 “1” 改为 “0” 时,必须在通过中断屏蔽标志寄存器将 INTIT 设定为禁止中断处理后进行改写。要重
新开始运行 (从 “0” 改为 “1”)时,必须在清除 ITIF 标志后设定为允许中断处理。
2. RINTE 位的读取值在设定 RINTE 位后的 1 个计数时钟之后被反映。
3. 在从待机模式返回后,如果要设定 RINTE 位并且再次转移到待机模式,就必须在确认 RINTE 位的写入值被反映后
或者在从待机模式返回后至少经过 1 个计数时钟的时间之后再转移到待机模式。
4. 要更改 ITCMP11 ~ ITCMP0 位的设定时,必须在 RINTE 位为 “0” 的状态下进行。
但是,能在将 RINTE 位从 “0” 改为 “1” 或者从 “1” 改为 “0” 的同时更改 ITCMP11 ~ ITCMP0 位的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
221
R7F0C903-908
7.4
第 7 章 12 位间隔定时器
12 位间隔定时器的运行
7.4.1
12 位间隔定时器的运行时序
以 ITCMP11 ~ ITCMP0 位设定的计数值为间隔,作为重复产生中断请求(INTIT)的 12 位间隔定时器运行。
如果将 RINTE 位置 “1”, 12 位计数器就开始计数。
当 12 位计数值和 ITCMP11 ~ ITCMP0 位的设定值相同时,将 12 位计数值清 “0” 并且继续计数,同时产生
中断请求信号 (INTIT)。
12 位间隔定时器的基本运行如图 7-5 所示。
图 7-5 12 位间隔定时器的运行时序
(ITCMP11 ~ ITCMP0=0FFH,计数时钟:fIL=15kHz)
䇗ᮦᰬ䫕
RINTE
൞ሼRINTEփԄ“0”᭯Ѱ“1”ⲺсжѠ䇗ᮦᰬ䫕Ⲻ
рॽ⋵ᔶခ䇗ᮦȾ
0FFH
12փ䇗ᮦಞ
000H
ྸ᷒ሼRINTEփԄ“1”“0”θቧуф
䇗ᮦᰬ䫕ੂ↛㙂䲚12փ䇗ᮦಞȾ
ITCMP11ЊITCMP0
0FFH
INTIT
ઞᵕ(17.06ms)
R01UH0629CJ0120 Rev.1.20
2019.06.28
222
R7F0C903-908
7.4.2
第 7 章 12 位间隔定时器
从HALT/STOP模式返回后开始计数器的运行并且再次向HALT/STOP模式的转移
在从 HALT 模式或者 STOP 模式返回后,如果要将 RINTE 位置 “ 1” 并且再次转移到 HALT 模式或者 STOP
模式,就必须在将 RINTE 位置 “1” 后确认 RINTE 位的写入值被反映,或者在返回后至少经过 1 个计数时钟的
时间之后再转移到 HALT 模式或者 STOP 模式。
•
在将 RINTE位置 “ 1” 后,通过轮询确认 RINTE 位变为 “1”,然后转移到 HALT 模式或者 STOP 模式 (参
照图 7-6 的例 1)。
•
在将 RINTE 位置 “ 1” 后至少经过 1 个计数时钟的时间之后转移到 HALT 模式或者 STOP 模式(参照图 7-6
的例 2)。
图 7-6
将 RINTE 位置 “ 1” 后的 HALT 模式或者 STOP 模式的转移步骤
ԄHALT⁗ᕅⲺ䘊ഔ
ԄSTOP⁗ᕅⲺ䘊ഔ
ԄHALT⁗ᕅⲺ䘊ഔ
ԄSTOP⁗ᕅⲺ䘊ഔ
RINTE = 1
䇴ᇐѰ䇗ᮦಞᔶခ䘆㺂Ⱦ
RINTE = 1
Ԅ䘊ഔ㠩ቇ䴶㾷
1Ѡ䇗ᮦᰬ䫕Ⱦ
No
RINTE = 1?
⺤䇚䇗ᮦಞᔶခ䘆㺂Ⱦ
㠩ቇㅿᖻ1Ѡ䇗ᮦᰬ䫕
Yes
ᢝ㺂HALTԚ
ᢝ㺂STOPԚ
ׁ1
R01UH0629CJ0120 Rev.1.20
2019.06.28
䖢〱ࡦHALT⁗ᕅ
ᡌ㘻STOP⁗ᕅȾ
ᢝ㺂HALTԚ
ᢝ㺂STOPԚ
䖢〱ࡦHALT⁗ᕅ
ᡌ㘻STOP⁗ᕅȾ
ׁ2
223
R7F0C903-908
第 8 章 时钟输出 / 蜂鸣器输出控制电路
第8章
时钟输出 / 蜂鸣器输出控制电路
时钟输出 / 蜂鸣器输出控制电路的输出引脚数因产品而不同。
输出引脚
本产品
PCLBUZ0
○
PCLBUZ1
○
8.1
时钟输出 / 蜂鸣器输出控制电路的功能
时钟输出是输出提供给外围 IC 时钟的功能,蜂鸣器输出是输出蜂鸣器频率方波的功能。
能用 1 个引脚选择用作时钟输出或者蜂鸣器输出。
PCLBUZn 引脚输出由时钟输出选择寄存器 n (CKSn)选择的时钟。
时钟输出 / 蜂鸣器输出控制电路的框图如图 8-1 所示。
备注
n=0、 1
R01UH0629CJ0120 Rev.1.20
2019.06.28
224
R7F0C903-908
第 8 章 时钟输出 / 蜂鸣器输出控制电路
图 8-1
时钟输出 / 蜂鸣器输出控制电路的框图
䜞ᙱ㓵
ᰬ䫕䗉࠰䘿ᇺᆎಞ1(CKS1)
PCLOE1
0
0
0
CSEL1 CCS12 CCS11 CCS10
人࠼仇ಞ
fMAIN
PCLOE1
3
fMAIN/211ЊfMAIN/213
fMAINЊfMAIN/24
䘿ಞ
5
䗉࠰䬷ᆎಞ
䘿ಞ
fMAIN/211ЊfMAIN/213
fMAINЊfMAIN/24
0
0
0
PM15
PCLBUZ0/P31
ᰬ䫕㴸呙ಞ
⭫䐥
PCLOE0
PCLOE0
PCLBUZ1/P15
ᰬ䫕㴸呙ಞ
⭫䐥
䗉࠰䬷ᆎಞ
PM31
CSEL0 CCS02 CCS01 CCS00
ᰬ䫕䗉࠰䘿ᇺᆎಞ0(CKS0)
䜞ᙱ㓵
注
8.2
有关能从 PCLBUZ0 引脚和 PCLBUZ1 引脚输出的频率,请参照 “27.4 AC 特性 ”。
时钟输出 / 蜂鸣器输出控制电路的结构
时钟输出 / 蜂鸣器输出控制电路由以下硬件构成。
表 8-1
时钟输出 / 蜂鸣器输出控制电路的结构
项目
控制寄存器
结构
时钟输出选择寄存器 n (CKSn)
端口模式寄存器 1、 3 (PM1、 PM3)
端口寄存器 1、 3 (P1、 P3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
225
R7F0C903-908
8.3
第 8 章 时钟输出 / 蜂鸣器输出控制电路
控制时钟输出 / 蜂鸣器输出控制电路的寄存器
通过以下寄存器控制时钟输出 / 蜂鸣器输出控制电路。
•
时钟输出选择寄存器 n (CKSn)
•
端口模式寄存器 1、 3 (PM1、 PM3)
•
端口寄存器 1、 3 (P1、 P3)
8.3.1
时钟输出选择寄存器 n (CKSn)
这是允许或者禁止时钟输出引脚或者蜂鸣器频率输出引脚 (PCLBUZn)的输出以及设定输出时钟的寄存
器。
通过 CKSn 寄存器选择 PCLBUZn 引脚输出的时钟。
通过 1 位或者 8 位存储器操作指令设定 CKSn 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 8-2
时钟输出选择寄存器 n (CKSn)的格式
地址:FFFA5H (CKS0)、 FFFA6H (CKS1)
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
CKSn
PCLOEn
0
0
0
CSELn
CCSn2
CCSn1
CCSn0
PCLOEn
PCLBUZn 引脚输出允许 / 禁止的指定
0
禁止输出 (默认值)。
1
允许输出。
PCLBUZn 引脚输出时钟的选择
CSELn
注
CCSn2
CCSn1
CCSn0
fMAIN=
fMAIN=
fMAIN=
fMAIN=
5MHz
10MHz
20MHz
24MHz
0
0
0
0
fMAIN
5MHz
10MHz 注
禁止设定注
禁止设定注
0
0
0
1
fMAIN/2
2.5MHz
5MHz
10MHz 注
12MHz 注
0
0
1
0
fMAIN/22
1.25MHz
2.5MHz
5MHz
6MHz 注
0
0
1
1
fMAIN/23
625kHz
1.25MHz
2.5MHz
3MHz
0
1
0
0
fMAIN/24
312.5kHz
625kHz
1.25MHz
1.5MHz
0
1
0
1
fMAIN/211
2.44kHz
4.88kHz
9.76kHz
11.7kHz
0
1
1
0
fMAIN/212
1.22kHz
2.44kHz
4.88kHz
5.86kHz
0
1
1
1
fMAIN/213
610Hz
1.22kHz
2.44kHz
2.93kHz
必须在 16MHz 以内的范围内使用输出时钟。详细内容请参照 “27.4 AC 特性 ”。
注意 1. 输出时钟的切换必须在设定为禁止输出 (PCLOEn=0) 后进行。
2. 在选择主系统时钟 (CSELn=0)时,如果要转移到 STOP 模式,就必须在执行 STOP 指令前将 PCLOEn 置 “0”。
备注 1. n=0、 1
2. fMAIN:主系统时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
226
R7F0C903-908
8.3.2
第 8 章 时钟输出 / 蜂鸣器输出控制电路
控制时钟输出 / 蜂鸣器输出引脚端口功能的寄存器
在用作时钟输出 / 蜂鸣器输出功能时,必须设定与对象通道复用的端口功能的控制寄存器 (端口模式寄存
器 (PMxx)和端口寄存器 (Pxx))。详细内容请参照 “4.3.1 端口模式寄存器 (PMxx) ” 和 “4.3.2 端口寄存
器 (Pxx) ”。
在将时钟输出 / 蜂鸣器输出引脚的复用端口用作时钟输出 / 蜂鸣器输出时,必须将各端口对应的端口模式寄
存器 (PMxx)的位和端口寄存器 (Pxx)的位置 “0”。
8.4
时钟输出 / 蜂鸣器输出控制电路的运行
能用 1 个引脚选择用作时钟输出或者蜂鸣器输出。
PCLBUZ0 引脚输出由时钟输出选择寄存器 0 (CKS0)选择的时钟 / 蜂鸣器。
PCLBUZ1 引脚输出由时钟输出选择寄存器 1 (CKS1)选择的时钟 / 蜂鸣器。
8.4.1
输出引脚的运行
PCLBUZn 引脚按照以下步骤进行输出:
① 将用作 PCLBUZ0 引脚的端口对应的端口模式寄存器 (PMxx)和端口寄存器 (Pxx)的位置 “0”。
② 通过 PCLBUZn 引脚的时钟输出选择寄存器 (CKSn)的 bit0 ~ 3 (CCSn0 ~ CCSn2、 CSELn)选择输
出频率 (输出为禁止状态)。
③ 将 CKSn 寄存器的 bit7 (PCLOEn)置 “1”,允许时钟 / 蜂鸣器的输出。
备注 1. 用作时钟输出时的控制电路在允许或者禁止时钟输出(PCLOEn 位)后的 1 个时钟之后,开始或者停止时钟输出。
此时不输出宽度窄的脉冲。通过 PCLOEn 位允许或者停止输出以及时钟输出的时序如图 8-3 所示。
2. n=0、 1
图 8-3
PCLBUZn 引脚的时钟输出时序
PCLOEn
㔅䗽1Ѡᰬ䫕Ⱦ
ᰬ䫕䗉࠰
у䗉࠰ᇳᓜズⲺ㜿ߨȾ
8.5
时钟输出 / 蜂鸣器输出控制电路的注意事项
当选择主系统时钟作为 PCLBUZn 输出 (CSELn=0)时,如果在设定停止输出 (PCLOEn=0)后的 1.5 个
PCLBUZn 引脚的输出时钟内转移到 STOP 模式, PCLBUZn 的输出宽度就变窄。
R01UH0629CJ0120 Rev.1.20
2019.06.28
227
R7F0C903-908
第 9 章 看门狗定时器
第9章
9.1
看门狗定时器
看门狗定时器的功能
看门狗定时器通过选项字节 (000C0H)设定计数运行。
看门狗定时器以低速内部振荡器时钟 (fIL)运行。
看门狗定时器用于检测程序失控。在检测到程序失控时,产生内部复位信号。
下述情况判断为程序失控。
•
当看门狗定时器的计数器发生上溢时
•
当对看门狗定时器的允许寄存器 (WDTE)执行位操作指令时
•
当给 WDTE 寄存器写 “ACH” 以外的数据时
•
在窗口关闭期间给 WDTE 寄存器写数据时
当因看门狗定时器而发生复位时,将复位控制标志寄存器 (RESF)的 bit4 (WDTRF)置 “1”。有关 RESF
寄存器的详细内容,请参照 “ 第 17 章 复位功能 ”。
当达到上溢时间的 75%+1/2fIL 时,能产生间隔中断。
R01UH0629CJ0120 Rev.1.20
2019.06.28
228
R7F0C903-908
9.2
第 9 章 看门狗定时器
看门狗定时器的结构
看门狗定时器由以下硬件构成。
表 9-1
看门狗定时器的结构
项目
结构
计数器
内部计数器 (17 位)
控制寄存器
看门狗定时器的允许寄存器 (WDTE)
通过选项字节控制计数器的运行以及设定上溢时间、窗口打开期间和间隔中断。
表 9-2
选项字节和看门狗定时器的设定内容
看门狗定时器的设定内容
选项字节 (000C0H)
看门狗定时器的间隔中断的设定
bit7 (WDTINT)
窗口打开期间的设定
bit6 和 bit5 (WINDOW1、 WINDOW0)
看门狗定时器的计数器运行控制
bit4 (WDTON)
看门狗定时器的上溢时间的设定
bit3 ~ 1 (WDCS2 ~ WDCS0)
看门狗定时器的计数器运行控制 (HALT/STOP 模式时)
bit0 (WDSTBYON)
备注
有关选项字节,请参照 “ 第 22 章 选项字节 ”。
图 9-1
䘿亯ᆍ㢸(000C0H)Ⲻ
WDTINT
看门狗定时器的框图
䰪䳊ᰬ䰪⭫䐥
(䇗ᮦⲺٲрⓘᰬ䰪×3/4+1/2fIL)
䰪䳊ᰬ䰪
䘿亯ᆍ㢸(000C0H)Ⲻ
WDCS2ЊWDCS0
fIL
䜞
䇗ᮦಞ
(17փ)
ᰬ䫕䗉ޛ
⭫䐥
fIL/26ЊfIL/216
䘿ಞ
གྷփ䗉࠰
⭫䐥
䇗ᮦ䲚ؗਭ
䘿亯ᆍ㢸(000C0H)Ⲻ
WINDOW1ૂWINDOW0
䘿亯ᆍ㢸(000C0H)Ⲻ
WDTON
рⓘؗਭ
䜞གྷփؗਭ
ネਙཝቅ
ߩᇐؗਭ
ネਙཝቅỶḛ
ⵁ䰞⤍ᇐᰬಞⲺ
ݷ䇮ᇺᆎಞ(WDTE)
㔏WDTEߏ“ACH”ԛཌ
ⲺᮦᦤⲺỶ⎁⭫䐥
䜞ᙱ㓵
备注
fIL:低速内部振荡器的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
229
R7F0C903-908
9.3
第 9 章 看门狗定时器
控制看门狗定时器的寄存器
通过看门狗定时器的允许寄存器 (WDTE)控制看门狗定时器。
9.3.1
看门狗定时器的允许寄存器 (WDTE)
通过给 WDTE 寄存器写 “ACH”,清除看门狗定时器的计数器并且重新开始计数。
通过 8 位存储器操作指令设定 WDTE 寄存器。
在产生复位信号后,此寄存器的值变为 “9AH” 或者 “1AH” 注。
图 9-2
复位后:9AH/1AH 注
地址:FFFABH
符号
看门狗定时器的允许寄存器 (WDTE)的格式
7
6
R/W
5
4
3
2
1
0
WDTE
注
WDTE 寄存器的复位值因选项字节 (000C0H)的 WDTON 位的设定值而不同。要使看门狗定时器运行时,必须将
WDTON 位置 “1”。
WDTON 位的设定值
WDTE 寄存器的复位值
0 (禁止看门狗定时器的计数运行)
1AH
1 (允许看门狗定时器的计数运行)
9AH
注意 1. 当给 WDTE 寄存器写 “ACH” 以外的值时,产生内部复位信号。
2. 当对 WDTE 寄存器执行 1 位存储器操作指令时,产生内部复位信号。
3. WDTE 寄存器的读取值为 “9AH/1AH” (和写入值 (“ACH”)不同)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
230
R7F0C903-908
9.4
第 9 章 看门狗定时器
看门狗定时器的运行
9.4.1
1.
看门狗定时器的运行控制
当使用看门狗定时器时,通过选项字节 (000C0H)设定以下内容:
•
必须将选项字节 (000C0H)的 bit4 (WDTON)置 “1”,允许看门狗定时器的计数运行 (在解除
复位后,计数器开始运行)(详细内容请参照第 22 章)。
WDTON
看门狗定时器的计数器
0
禁止计数运行 (解除复位后停止计数)。
1
允许计数运行 (解除复位后开始计数)。
•
必须通过选项字节 (000C0H)的 bit3 ~ 1 (WDCS2 ~ WDCS0)设定上溢时间 (详细内容请参照
9.4.2 和第 22 章)。
•
必须通过选项字节 (000C0H)的 bit6 和 bit5 (WINDOW1、 WINDOW0)设定窗口打开期间 (详
细内容请参照 9.4.3 和第 22 章)。
2.
在解除复位后,看门狗定时器开始计数。
3.
在开始计数后并且在选项字节所设上溢时间前,如果给看门狗定时器的允许寄存器 (WDTE)写
“ACH”,就清除看门狗定时器并且重新开始计数。
4.
此后,解除复位后第 2 次以后的 WDTE 寄存器的写操作必须在窗口打开期间进行。如果在窗口关闭期
间写 WDTE 寄存器,就产生内部复位信号。
5.
如果不给 WDTE寄存器写 “ACH”而超过上溢时间,就产生内部复位信号。
以下情况会产生内部复位信号:
•
当对 WDTE 寄存器执行 1 位操作指令时
•
当给 WDTE 寄存器写 “ACH” 以外的数据时
注意 1. 只在解除复位后第 1 次写看门狗定时器的允许寄存器(WDTE)时,与窗口打开期间无关,只要在上溢时间前的任
意时候写 WDTE,就清除看门狗定时器并且重新开始计数。
2. 从给 WDTE 寄存器写 “ACH” 到清除看门狗定时器的计数器为止,有可能产生最大 2 个 fIL 时钟的误差。
3. 在计数值发生上溢前,都能清除看门狗定时器。
4. 如下所示,看门狗定时器在 HALT 模式、 STOP 模式或者 SNOOZE 模式中的运行因选项字节 (000C0H)的 bit0
(WDSTBYON)的设定值而不同。
WDSTBYON=0
HALT 模式
停止看门狗定时器运行。
WDSTBYON=1
继续看门狗定时器运行。
STOP 模式
SNOOZE 模式
当 WDSTBYON 位为 “0” 时,在解除 HALT 模式或者 STOP 模式后重新开始看门狗定时器的计数。此时,将计数器
清 “0”,开始计数。
当解除 STOP 模式后以 X1 振荡时钟运行时, CPU 在经过振荡稳定时间后开始运行。
如果从解除 STOP 模式到看门狗定时器发生上溢的时间较短,就会在振荡稳定时间内发生看门狗上溢而产生复位。
因此,在通过间隔中断解除 STOP 模式后,如果要以 X1 振荡时钟运行并且清除看门狗定时器,因为在经过振荡稳定
时间后才清除看门狗定时器,所以必须考虑这种情况进行上溢时间的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
231
R7F0C903-908
9.4.2
第 9 章 看门狗定时器
看门狗定时器上溢时间的设定
通过选项字节 (000C0H)的 bit3 ~ 1 (WDCS2 ~ WDCS0)设定看门狗定时器的上溢时间。
在发生上溢时,产生内部复位信号。如果在上溢时间前的窗口打开期间给看门狗定时器的允许寄存器
(WDTE)写 “ACH”,就清除计数并且重新开始计数。
能设定的上溢时间如下所示。
表 9-3
注
看门狗定时器上溢时间的设定
看门狗定时器的上溢时间
WDCS2
WDCS1
WDCS0
0
0
0
26/fIL (3.71ms)
0
0
1
27/fIL (7.42ms)
0
1
0
28/fIL (14.84ms)
0
1
1
29/fIL (29.68ms)
1
0
0
211/fIL (118.72ms)
1
0
1
213/fIL (474.89ms)注
1
1
0
214/fIL (949.79ms)注
1
1
1
216/fIL (3799.18ms)注
(fIL=17.25kHz(MAX.) 的情况)
如果满足以下的各使用条件,就有可能在清除看门狗定时器的计数后,经过 1 个看门狗定时器时钟,发生看门狗定
时器的间隔中断 (INTWDTI)。通过执行步骤①~⑤清除看门狗定时器的计数,能屏蔽此间隔中断。
〈使用条件〉
• 将看门狗定时器的上溢时间设定为 213/fIL、 214/fIL 或者 216/fIL
• 使用看门狗定时器的间隔中断
• 当看门狗定时器的计数值不小于上溢时间的75%时,给 WDTE寄存器 (FFFABH)写“ACH”。
①在清除看门狗定时器的计数前,将中断屏蔽标志寄存器0 (MK0L)的 WDTIMK位置 “1”。
②清除看门狗定时器的计数器
③至少等待 80μs
④将中断请求标志寄存器 0 (IF0L)的WDTIF 位清 “0”
⑤将中断屏蔽标志寄存器 0 (MK0L)的WDTIMK位清 “0”
备注
fIL:低速内部振荡器的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
232
R7F0C903-908
9.4.3
第 9 章 看门狗定时器
看门狗定时器窗口打开期间的设定
通过选项字节 (000C0H)的 bit6 和 bit5 (WINDOW1、 WINDOW0)设定看门狗定时器的窗口打开期间。
窗口概要如下:
•
如果在窗口打开期间给看门狗定时器的允许寄存器 (WDTE)写 “ACH”,就清除看门狗定时器并且重
新开始计数。
•
在窗口关闭期间,即使给 WDTE 寄存器写 “ACH”,也会检测到异常并且产生内部复位信号。
例
窗口打开期间为 50% 的情况
ᔶခ䇗ᮦ
рⓘᰬ䰪
ネਙީ䰣ᵕ䰪(50%)
ネਙᢉᔶᵕ䰪(50%)
ྸ᷒㔏WDT E ᇺᆎಞߏ“ACH”θ
ቧӝ⭕䜞གྷփȾ
注意
ྸ᷒㔏WDT E ᇺᆎಞߏ“ACH”θ
ቧ䠃᯦ᔶခ䇗ᮦȾ
只在解除复位后第 1 次写 WDTE 寄存器时,与窗口打开期间无关,只要在上溢时间前的任意时候写 WDTE,就清
除看门狗定时器并且重新开始计数。
能设定的窗口打开期间如下所示。
看门狗定时器窗口打开期间的设定
WINDOW1
WINDOW0
0
0
禁止设定。
0
1
50%
1
0
75% 注
1
1
100%
看门狗定时器的窗口打开期间
在将窗口打开期间设定为 75% 时,如果进行看门狗定时器的计数器清除 (给 WDTE 写 “ACH”),就必须在下表所
注
示的计数器清除禁止期间外的时序进行看门狗定时器的间隔中断请求标志 (WDTIIF)确认等。
WDCS2
注意
WDCS1
WDCS0
看门狗定时器的上溢时间
将窗口打开期间设定为 75% 时的计
(fIL=17.25kHz(MAX.) 的情况)
数器清除禁止期间
0
0
0
26/f
IL
(3.71ms)
1.85 ~ 2.51ms
0
0
1
27/f
IL
(7.42ms)
3.71 ~ 5.02ms
0
1
0
28/fIL (14.84ms)
7.42 ~ 10.04ms
0
1
1
29/f
14.84 ~ 20.08ms
1
0
0
1
0
1
1
1
0
1
1
1
IL (29.68ms)
11
2 /fIL (118.72ms)
213/fIL (474.89ms)
214/fIL (949.79ms)
216/fIL (3799.18ms)
56.36 ~ 80.32ms
237.44 ~ 321.26ms
474.89 ~ 642.51ms
1899.59 ~ 2570.04ms
当选项字节 (000C0H)的 bit0 (WDSTBYON)为 “0” 时,与 WINDOW1 位和 WINDOW0 位的值无关,窗口打开
期间为 100%。
备注
当将上溢时间设定为 29/fIL 时,窗口关闭时间和打开时间如下所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
233
R7F0C903-908
第 9 章 看门狗定时器
窗口打开期间的设定
50%
75%
100%
窗口关闭时间
0 ~ 20.08ms
0 ~ 10.04ms
无
窗口打开时间
20.08 ~ 29.68ms
10.04 ~ 29.68ms
0 ~ 29.68ms
<当窗口打开期间为 50%时>
• 上溢时间:
29/fIL(MAX.)=29/17.25kHz(MAX.)=29.68ms
• 窗口关闭时间:
0~ 29/fIL(MIN.)×(1–0.5)=0~29/12.75kHz×0.5=0 ~20.08ms
• 窗口打开时间:
29/fIL(MIN.)×(1–0.5) ~ 29/fIL(MAX.)=29/12.75kHz×0.5 ~ 29/17.25kHz=20.08~29.68ms
9.4.4
看门狗定时器间隔中断的设定
能通过设定选项字节(000C0H)的bit7(WDTINT),在达到上溢时间的75%+1/2fIL 时产生间隔中断(INTWDTI)。
表 9-4
WDTINT
注意
看门狗定时器间隔中断的设定
看门狗定时器间隔中断的使用 / 不使用
0
不使用间隔中断。
1
在达到上溢时间的 75%+1/2fIL 时,产生间隔中断。
当解除 STOP 模式后以 X1 振荡时钟运行时, CPU 在经过振荡稳定时间后开始运行。
如果从解除 STOP模式到看门狗定时器发生上溢的时间较短,就会在振荡稳定时间内发生看门狗上溢而产生复位。
因此,在通过间隔中断解除STOP 模式后,如果要以X1 振荡时钟运行并且清除看门狗定时器,因为在经过振荡稳定
时间后才清除看门狗定时器,所以必须考虑这种情况进行上溢时间的设定。
备注
即使在产生 INTWDTI 后也继续计数 (继续到给看门狗定时器的允许寄存器 (WDTE)写 “ACH” 为止)。如果在上
溢时间前不给 WDTE 寄存器写 “ACH”,就产生内部复位信号。
R01UH0629CJ0120 Rev.1.20
2019.06.28
234
R7F0C903-908
第 10 章 A/D 转换器
第 10 章
A/D 转换器
A/D 转换器的模拟输入通道数因产品而不同。
本产品的 A/D 转换器有 8 个模拟输入通道 (ANI0 ~ ANI3、 ANI16 ~ ANI19)。
10.1
A/D 转换器的功能
A/D 转换器是将模拟输入转换为数字值的转换器,最多能控制 8 个通道的 A/D 转换器模拟输入 (ANI0 ~
ANI3、ANI16 ~ ANI19)。能通过 A/D 转换器的模式寄存器 2(ADM2)的 ADTYP 位选择 10 位分辨率和 8 位
分辨率。
A/D 转换器有以下的功能。
•
10 位或者8 位分辨率的 A/D 转换
从 ANI0 ~ ANI3、ANI16 ~ ANI19 中选择 1 个通道的模拟输入,重复进行 10 位或者8 位分辨率的 A/D 转
换。每结束 1 次 A/D转换,就产生中断请求 (INTAD)(选择模式的情况)。
能通过下述的模式组合设定各种 A/D 转换模式。
触发模式
软件触发
通过软件操作来开始转换。
硬件触发无等待模式
通过检测硬件触发来开始转换。
硬件触发等待模式
在切断电源的转换待机状态下,通过检测硬件触发来接通电源,在经过 A/D
电源稳定等待时间后自动开始转换。当使用 SNOOZE 模式功能时,必须选
择硬件触发等待模式。
通道选择模式
选择模式
扫描模式
选择 1 个通道的模拟输入,进行 A/D 转换。
按顺序对 4 个通道的模拟输入进行 A/D 转换。能选择 ANI0 ~ ANI3 中连续
的 4 个通道作为模拟输入。
转换模式
工作电压模式
单次转换模式
对所选通道进行 1 次 A/D 转换。
连续转换模式
对所选通道连续进行 A/D 转换,直到被软件停止为止。
标准 1/ 标准 2 模式
用于在 2.7V ≤ VDD ≤ 5.5V 的工作电压范围内转换的情况。
低电压 1/ 低电压 2 模式 能在 1.6V ≤ VDD ≤ 5.5V 的工作电压范围内进行转换。
用于在低电压时转换的情况。因为在低电压下运行,所以在转换时内部栅极
升压。
采样时间的选择
采样时钟数:7 个 fAD
标准 1/ 低电压 1 模式的采样时间为 7 个转换时钟 (fAD)。用于因模拟输入
源的输出阻抗高而想要延长采样时间的情况。
采样时钟数:5 个 fAD
标准 2/ 低电压 2 模式的采样时间为 5 个转换时钟 (fAD)。用于因模拟输入
源的输出阻抗低而能充分确保采样时间的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
235
R01UH0629CJ0120 Rev.1.20
2019.06.28
6
䘿
ಞ
⁗ᤕ䗉ޛ䙐䚉
ᇐᇺᆎಞ(ADS)
ADISS ADS4 ADS3 ADS2 ADS1 ADS0
䜞ะ⭫ু(1.45V)
ᮦ
ᆍ
ㄥ
ਙ
PMCxx
ᮦ
ᆍ
ㄥ
ਙ
4
A/D䖢ᦘಞⲺ⁗ᕅ
ᇺᆎಞ2(ADM2)
5
䜞ᙱ㓵
A/D䖢ᦘಞⲺ⁗ᕅ
ᇺᆎಞ1(ADM1)
ADTMD1 ADTMD0 ADSCM ADTRS1 ADTRS0
AWC ADTYP
3
VSS
䟽ṭ&ؓᤷ⭫䐥
2
䜞ᙱ㓵
2
䙆⅗䙲䘇ᇺᆎಞ
(SAR)
ADCS ADMD
FR2
FR1
䖢ᦘ㔉᷒∊䖹с䲆ٲ
䇴ᇐᇺᆎಞ(ADLL)
A/D⭫ু∊䖹ಞ
⭫䐥
䖢ᦘ㔉᷒∊䖹р䲆ٲ
䇴ᇐᇺᆎಞ(ADUL)
A/D⎁䈋ᇺᆎಞ
(ADTES)
ADTES1 ADTES0
ADREFP1 ADREFP0 ADREFPM ADRCK
ADPC3 ADPC2 ADPC1 ADPC0
A/Dㄥਙ䞃㖤ᇺᆎಞ
(ADPC)
FR 0
6
LV0
∊䖹⭫ু
⭕ᡆ⭫䐥
A/D䖢ᦘಞⲺ⁗ᕅ
ᇺᆎಞ0(ADM0)
LV1
ADCSփ
䘿
ಞ
A/D䖢ᦘ㔉᷒
р䲆ٲс䲆ٲ
∊䖹⭫䐥
INTAD
ᇐᰬಞ䀜ਇؗਭ(INTIT)
ᇐᰬಞ䀜ਇؗਭ(INTTM01)
A/D䖢ᦘ㔉᷒ᇺᆎಞ
(ADCRȽADCRH)
VSS
AVREFM/ANI1/P21
䜞ะ⭫ু(1.45V)
VDD
AVREFP /ANI0/P20
ADREFMփ
ADCE
䘿
ಞ
ADREFP1փȽADREFP0փ
图 10-1
ANI16/TO00/RxD1/P01
ANI17/TI00/TxD1/P00
ANI18/ P147
ANI19 /P120
ANI0/AVREFP/P20
ANI1/AVREFM/P21
ANI2/P22
ANI3/P23
PMCxx
ㄥਙ⁗ᕅ
ᇺᆎಞ
R7F0C903-908
第 10 章 A/D 转换器
A/D 转换器的框图
236
R7F0C903-908
10.2
第 10 章 A/D 转换器
A/D 转换器的结构
A/D 转换器由以下硬件构成。
(1)
ANI0 ~ ANI3 引脚和 ANI16 ~ ANI19 引脚
这些是 A/D 转换器的 8 个通道的模拟输入引脚,输入要进行 A/D 转换的模拟信号。没有被选择为模拟输入
的引脚能用作输入 / 输出端口。
(2)
采样 & 保持电路
采样 & 保持电路依次对来自输入电路的模拟输入电压进行采样并且送给 A/D 电压比较器。在 A/D 转换过
程中,保持采样到的模拟输入电压。
(3)
A/D 电压比较器
通过 A/D 电压比较器将比较电压生成电路产生的分接头电压和模拟输入电压进行比较。如果比较结果是模
拟输入电压大于基准电压 (1/2AVREF),就将逐次逼近寄存器 (SAR)的最高位 (MSB)置位。如果模拟输入
电压小于基准电压 (1/2AVREF),就对 SAR 寄存器的 MSB 位进行复位。
然后,自动将 SAR 寄存器的 bit8 置位并且进行下一次比较。在此,根据 bit9 被设定的结果值,选择比较电
压生成电路的分接头电压。
bit9=0:(1/4AVREF)
bit9=1:(3/4AVREF)
将比较电压生成电路的分接头电压和模拟输入电压进行比较,根据比较结果操作 SAR 寄存器的 bit8。
模拟输入电压≥比较电压生成电路的分接头电压:bit8=1
模拟输入电压≤比较电压生成电路的分接头电压:bit8=0
将此比较继续进行到 SAR 寄存器的 bit0 为止。
当以 8 位分辨率进行 A/D 转换时,比较继续进行到 SAR 寄存器的 bit2 为止。
AVREF 是 A/D 转换器的正 (+)基准电压。可选择 AVREFP、内部基准电压 (1.45V)或者 VDD。
备注
(4)
比较电压生成电路
比较电压生成电路生成模拟输入电压的比较电压。
(5)
逐次逼近寄存器 (SAR:Successive Approximation Register)
SAR 寄存器从最高位(MSB)按位设定比较电压生成电路的分接头电压值和模拟输入引脚的电压值相同的
数据。
如果设定到 SAR 寄存器的最低位 (LSB)(A/D 转换结束),就将 SAR 寄存器的内容 (转换结果)保持到
A/D 转换结果寄存器 (ADCR)。而且,如果指定的全部 A/D 转换都结束,就产生 A/D 转换结束中断请求信号
(INTAD)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
237
R7F0C903-908
(6)
第 10 章 A/D 转换器
10 位 A/D 转换结果寄存器 (ADCR)
每当 A/D 转换结束时,就将逐次逼近寄存器的转换结果装入 ADCR 寄存器, A/D 转换结果保持在高 10 位
(低 6 位固定为 “0”)。
(7)
8 位 A/D 转换结果寄存器 (ADCRH)
每当 A/D 转换结束时,就将逐次逼近寄存器的转换结果装入 ADCRH 寄存器,保存 A/D 转换结果的高 8 位。
(8)
控制电路
此电路控制要进行 A/D 转换的模拟输入的转换时间、转换的开始或者停止等。当 A/D 转换结束时,通过 A/D
转换结果上限值 / 下限值比较电路产生 INTAD 信号。
(9)
AVREFP 引脚
这是从外部输入基准电压 (AVREFP)的引脚。
要将 AVREFP 用作 A/D 转换器的正 (+)基准电压时,必须将 A/D 转换器的模式寄存器 2 (ADM2)的
ADREFP1 位和 ADREFP0 位分别置 “0” 和 “1”。
根据加载的 AVREFP 和负 (–)基准电压 (AVREFM/VSS)之间的电压,将 ANI2 ~ ANI3、 ANI16 ~ ANI19
输入的模拟信号转换为数字信号。
除了 AVREFP 以外,可选择 VDD 或者内部基准电压 (1.45V)作为 A/D 转换器的正 (+)基准电压。
(10) AVREFM 引脚
这是从外部输入基准电压 (AVREFM)的引脚。要将 AVREFM 用作 A/D 转换器的负 (–)基准电压时,必须
将 ADM2 寄存器的 ADREFM 位置 “1”。
除了 AVREFM 以外,可选择 VSS 作为 A/D 转换器的负 (–)基准电压。
10.3
控制 A/D 转换器的寄存器
控制 A/D 转换器的寄存器如下所示:
•
外围允许寄存器 0 (PER0)
•
A/D 转换器的模式寄存器 0 (ADM0)
•
A/D 转换器的模式寄存器 1 (ADM1)
•
A/D 转换器的模式寄存器 2 (ADM2)
•
•
10 位 A/D转换结果寄存器 (ADCR)
8 位 A/D转换结果寄存器 (ADCRH)
•
模拟输入通道指定寄存器 (ADS)
•
转换结果比较上限值设定寄存器 (ADUL)
•
转换结果比较下限值设定寄存器 (ADLL)
•
A/D 测试寄存器 (ADTES)
•
A/D 端口配置寄存器 (ADPC)
•
端口模式控制寄存器 0、 12、 14 (PMC0、 PMC12、 PMC14)
•
端口模式寄存器 0、 2、 12、 14 (PM0、 PM2、 PM12、 PM14)
R01UH0629CJ0120 Rev.1.20
2019.06.28
238
R7F0C903-908
10.3.1
第 10 章 A/D 转换器
外围允许寄存器 0 (PER0)
PER0 寄存器是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过停止给不使用的硬件提供时钟,以
降低功耗和噪声。
要使用 A/D 转换器时,必须将 bit5 (ADCEN)置 “1”。
通过 1 位或者 8 位存储器操作指令设定 PER0 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-2
R/W
复位后:00H
地址:F00F0H
外围允许寄存器 0 (PER0)的格式
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
ADCEN
0
A/D 转换器的输入时钟的控制
停止提供输入时钟。
• 不能写 A/D 转换器使用的 SFR。
• A/D 转换器处于复位状态。
1
提供输入时钟。
• 能读写 A/D 转换器使用的 SFR。
注意 1. 要设定 A/D 转换器时,必须先在 ADCEN 位为 “1” 的状态下设定以下的寄存器。当 ADCEN 位为 “0” 时, A/D 转换
器的控制寄存器的值为初始值,忽视写操作(端口模式寄存器 0、2、12、14(PM0、PM2、PM12、PM14)、端
口模式控制寄存器 0、 12、 14 (PMC0、 PMC12、 PMC14)以及 A/D 端口配置寄存器 (ADPC)除外)。
• A/D 转换器的模式寄存器 0 (ADM0)
• A/D 转换器的模式寄存器 1 (ADM1)
• A/D 转换器的模式寄存器 2 (ADM2)
• 10 位 A/D 转换结果寄存器 (ADCR)
• 8 位 A/D 转换结果寄存器 (ADCRH)
• 模拟输入通道指定寄存器 (ADS)
• 转换结果比较上限值设定寄存器 (ADUL)
• 转换结果比较下限值设定寄存器 (ADLL)
• A/D 测试寄存器 (ADTES)
2. 必须将 bit6 和 bit1 置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
239
R7F0C903-908
10.3.2
第 10 章 A/D 转换器
A/D 转换器的模式寄存器 0 (ADM0)
这是设定要进行 A/D 转换的模拟输入的转换时间、转换开始或者停止的寄存器。
通过 1 位或者 8 位存储器操作指令设定 ADM0 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-3
地址:FFF30H
A/D 转换器的模式寄存器 0 (ADM0)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
ADM0
ADCS
ADMD
FR2 注 1
FR1 注 1
FR0 注 1
LV1 注 1
LV0 注 1
ADCE
ADCS
0
A/D 转换运行的控制
停止转换运行。
[ 读时 ]
停止转换运行 / 待机状态
1
允许转换运行。
[ 读时 ]
软件触发模式时:转换运行状态
硬件触发等待模式时:A/D 电源等待稳定状态 + 转换运行状态
ADMD
A/D 转换通道选择模式的设定
0
选择模式
1
扫描模式
ADCE
注
A/D 电压比较器的运行控制注 2
0
停止 A/D 电压比较器的运行。
1
允许 A/D 电压比较器的运行。
1. 有关 FR2 ~ FR0 位、 LV1 位、 LV0 位和 A/D 转换的详细内容,请参照 “ 表 10-3 A/D 转换时间的选择 ”。
2. 在软件触发模式或者硬件触发无等待模式中, ADCS 位和 ADCE 位控制 A/D 电压比较器的运行,从开始运行到稳
定为止需要 1μs 时间。因此,在将 ADCE 位置 “1” 后至少经过 1μs 时间,然后将 ADCS 位置 “1”,从而最初的转换
数据开始有效。如果不至少等待 1μs 而将 ADCS 位置 “1”,就必须忽视最初的转换数据。
注意 1. 必须在转换停止状态 (ADCS=0、 ADCE=0)下更改 ADMD 位、 FR2 ~ FR0 位、 LV1 位和 LV0 位。
2. 禁止进行 ADCS=1、 ADCE=0 的设定。
3. 禁止通过 8 位操作指令将 ADCS=0、 ADCE=0 的状态设定为 ADCS=1、 ADCE=1。必须按照 “10.7 A/D 转换器的
设定流程图 ” 的步骤进行设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
240
R7F0C903-908
第 10 章 A/D 转换器
表 10-1
ADCS
ADCE
0
0
转换停止状态
0
1
转换待机状态
1
0
禁止设定。
1
1
转换运行状态
ADCS 位和 ADCE 位的设定
A/D 转换运行
表 10-2
ADCS 位的置位和清除条件
A/D 转换模式
软件触发
选择模式
扫描模式
硬件触发无
选择模式
等待模式
扫描模式
硬件触发等
选择模式
待模式
扫描模式
R01UH0629CJ0120 Rev.1.20
2019.06.28
置位条件
清除条件
连续转换模式
当给 ADCS 位写 当给 ADCS 位写 “0” 时
单次转换模式
“1” 时
• 当给 ADCS 位写 “0” 时
• 在 A/D 转换结束时自动清 “0”。
连续转换模式
当给 ADCS 位写 “0” 时
单次转换模式
• 当给 ADCS 位写 “0” 时
• 当设定的 4 个通道转换结束时,自动清 “0”。
连续转换模式
当给 ADCS 位写 “0” 时
单次转换模式
当给 ADCS 位写 “0” 时
连续转换模式
当给 ADCS 位写 “0” 时
单次转换模式
当给 ADCS 位写 “0” 时
连续转换模式
当输入硬件触发 当给 ADCS 位写 “0” 时
单次转换模式
时
• 当给 ADCS 位写 “0” 时
• 在 A/D 转换结束时自动清 “0”。
连续转换模式
当给 ADCS 位写 “0” 时
单次转换模式
• 当给 ADCS 位写 “0” 时
• 当设定的 4 个通道转换结束时,自动清 “0”。
241
R7F0C903-908
第 10 章 A/D 转换器
图 10-4
使用 A/D 电压比较器时的时序图
A/D⭫ু∊䖹ಞφݷ䇮䘆㺂
ADCE
A/D⭫ু∊䖹ಞ
䖢ᦘࣞᰬ䰪 ⌞2
䖢ᦘ䘆㺂
䖢ᦘᖻᵰ
䖥Ԭ䀜ਇ⁗ᕅ ADCS
䖢ᦘᖻᵰ
↘ڒ䖢ᦘ
⌞1
㔏ADCSփߏ“1”Ⱦ
㔏ADCSփߏ“0”ᡌ㘻
൞A/D䖢ᦘ㔉ᶕᰬ㠠ࣞ䲚Ⱦ
䖢ᦘࣞᰬ䰪 ⌞2
䖢ᦘᖻᵰ
⺢Ԭ䀜ਇᰖㅿᖻ⁗ᕅ ADCS
⌞1
䀜ਇ
ᖻᵰ
䖢ᦘ䘆㺂
䖢ᦘᖻᵰ
↘ڒ䖢ᦘ
Ỷ⎁ࡦ⺢Ԭ䀜ਇȾ
㔏ADCSփߏ“0”Ⱦ
㔏ADCSփߏ“1”Ⱦ
⌞2
䖢ᦘࣞᰬ䰪
A/D⭫Ⓠどᇐㅿᖻᰬ䰪
䖢ᦘ䘆㺂
䖢ᦘᖻᵰ
䖢ᦘᖻᵰ
↘ڒ䖢ᦘ
⺢Ԭ䀜ਇㅿᖻ⁗ᕅ ADCS
Ỷ⎁ࡦ⺢Ԭ䀜ਇȾ
注
㔏ADCSփߏ“0”ᡌ㘻
൞A/D䖢ᦘ㔉ᶕᰬ㠠ࣞ䲚Ⱦ
1. 在软件触发模式或者硬件触发无等待模式中,为了稳定内部电路,从 ADCE 位上升到 ADCS 位上升的时间至少需
要 1μs。
2. 转换的启动最长需要以下的时间:
ADM0
转换启动时间 (fCLK 时钟数)
FR2
FR1
FR0
转换时钟
(fAD)
0
0
0
fCLK/64
软件触发模式 /
硬件触发无等待模式
63
0
0
1
fCLK/32
31
0
1
0
fCLK/16
15
0
1
1
fCLK/8
7
1
0
0
fCLK/6
5
1
0
1
fCLK/5
4
1
1
0
fCLK/4
3
1
1
1
fCLK/2
1
硬件触发等待模式
1
但是,在连续转换模式的第 2 次以后的转换和扫描模式的扫描 1 以后的转换中检测到硬件触发后,不发生转换启动
时间和 A/D 电源稳定等待时间。
注意 1. 要使用硬件触发等待模式时,禁止将 ADCS 位置 “1” (当检测到硬件触发信号时,自动切换为 “1”)。但是,为了设
定为 A/D 转换待机状态,能将 ADCS 位置 “0”。
2. 在硬件触发无等待模式的单次转换模式中, ADCS 标志在 A/D 转换结束时不自动清 “0”,而保持 “1” 的状态。
3. 必须在 ADCS 位为 “0” (停止转换 / 转换待机状态)时改写 ADCE 位。
4. 为了结束 A/D 转换,必须至少将硬件触发间隔设定为以下时间:
硬件触发无等待模式时:2 个 fCLK 时钟 + 转换启动时间 +A/D 转换时间
硬件触发等待模式时:2 个 fCLK 时钟 + 转换启动时间 + A/D 电源稳定等待时间 + A/D 转换时间
备注
fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
242
R7F0C903-908
第 10 章 A/D 转换器
表 10-3
A/D 转换时间的选择 (1/4)
(1) 无 A/D 电源稳定等待时间 标准模式 1、 2 (软件触发模式 / 硬件触发无等待模式)
A/D 转换器的模式寄存器 0
(ADM0)
FR2 FR1 FR0
LV1
LV0
0
0
10 位分辨率时的转换时间
模式
转换时钟
转换
(fAD) 时钟数注
19 个 fAD 1216/fCLK
(采样时
608/fCLK
钟数:
7 个 fAD) 304/fCLK
152/fCLK
fCLK=
1MHz
fCLK=
4MHz
fCLK=
8MHz
fCLK=
16MHz
fCLK=
24MHz
禁止设定
禁止设定
禁止设定
76μs
50.67μs
76μs
38μs
25.33μs
76μs
38μs
19μs
12.67μs
38μs
19μs
9.5μs
6.33μs
0
0
0
0
0
1
fCLK/32
0
1
0
fCLK/16
0
1
1
fCLK/8
1
0
0
fCLK/6
114/fCLK
1
0
1
fCLK/5
95/fCLK
95μs
标准 1
fCLK/64
2.7V ≤ VDD ≤ 5.5V
转换时间
28.5μs
14.25μs
7.125μs
4.75μs
23.75μs
11.875μs
5.938μs
3.96μs
1
1
0
fCLK/4
76/fCLK
76μs
19μs
9.5μs
4.75μs
3.17μs
1
1
1
fCLK/2
38/fCLK
38μs
9.5μs
4.75μs
2.375μs
禁止设定
0
0
0
禁止设定
禁止设定
禁止设定
68μs
45.33μs
0
0
1
fCLK/32
68μs
34μs
22.67μs
0
1
0
fCLK/16
68μs
34μs
17μs
11.33μs
0
1
1
fCLK/8
17 个 fAD 1088/fCLK
(采样时
544/fCLK
钟数:
5 个 fAD) 272/fCLK
136/fCLK
34μs
17μs
8.5μs
5.67μs
1
0
0
fCLK/6
102/fCLK
1
0
1
fCLK/5
85/fCLK
85μs
1
1
0
fCLK/4
68/fCLK
68μs
17μs
1
1
1
fCLK/2
34/fCLK
34μs
8.5μs
注
0
1
标准 2
fCLK/64
25.5μs
12.75μs
6.375μs
4.25μs
21.25μs
10.625μs
5.3125μs
3.54μs
8.5μs
4.25μs
2.83μs
4.25μs
2.125μs
禁止设定
这是 10 位分辨率时的转换时钟数。如果选择 8 位分辨率,就会减少 2 个转换时钟 (fAD)。
注意 1. A/D 转换时间必须在 “27.6.1 A/D 转换器特性 ” 所示的转换时间 (tCONV)范围内。
2. 要将 FR2 ~ FR0 位、 LV1 位和 LV0 位改写为不同数据时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
3. 转换时间不包含转换启动时间,因此在第 1 次转换时必须加上转换启动时间。另外,转换时间不包含时钟频率的误
差,因此在选择转换时间时必须考虑时钟频率的误差。
备注
fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
243
R7F0C903-908
第 10 章 A/D 转换器
表 10-3
A/D 转换时间的选择 (2/4)
(2) 无 A/D 电源稳定等待时间 低电压模式 1、 2 (软件触发模式 / 硬件触发无等待模式)
10 位分辨率时的转换时间
A/D 转换器的模式寄存器 0
(ADM0)
FR2 FR1 FR0
LV1
LV0
1
0
模式
转换时钟
转换
(fAD) 时钟数注 4
19 个 fAD 1216/fCLK
(采样时
608/fCLK
钟数:
7 个 fAD) 304/fCLK
152/fCLK
注1
注2
注3
fCLK=
1MHz
fCLK=
4MHz
fCLK=
8MHz
fCLK=
16MHz
fCLK=
24MHz
禁止设定
禁止设定
禁止设定
76μs
50.67μs
76μs
38μs
25.33μs
76μs
38μs
19μs
12.67μs
38μs
19μs
9.5μs
6.33μs
0
0
0
0
0
1
fCLK/32
0
1
0
fCLK/16
0
1
1
fCLK/8
1
0
0
fCLK/6
114/fCLK
1
0
1
fCLK/5
95/fCLK
95μs
低电压1
fCLK/64
转换时间
1.6V ≤ VDD ≤ 5.5V
28.5μs
14.25μs
7.125μs
4.75μs
23.75μs
11.875μs
5.938μs
3.96μs
1
1
0
fCLK/4
76/fCLK
76μs
19μs
9.5μs
4.75μs
3.17μs
1
1
1
fCLK/2
38/fCLK
38μs
9.5μs
4.75μs
2.375μs
禁止设定
0
0
0
禁止设定
禁止设定
禁止设定
68μs
45.33μs
0
0
1
fCLK/32
68μs
34μs
22.667μs
0
1
0
fCLK/16
68μs
34μs
17μs
11.333μs
0
1
1
fCLK/8
17 个 fAD 1088/fCLK
(采样时
544/fCLK
钟数:
5 个 fAD) 272/fCLK
136/fCLK
34μs
17μs
8.5μs
5.667μs
1
0
0
fCLK/6
102/fCLK
1
0
1
fCLK/5
85/fCLK
85μs
1
1
0
fCLK/4
68/fCLK
68μs
17μs
1
1
1
fCLK/2
34/fCLK
34μs
8.5μs
注
1
1
低电压2
fCLK/64
25.5μs
12.75μs
6.375μs
4.25μs
21.25μs
10.625μs
5.3125μs
3.542μs
8.5μs
4.25μs
2.833μs
4.25μs
2.125μs
禁止设定
1. 1.8V ≤ VDD ≤ 5.5V
2. 2.4V ≤ VDD ≤ 5.5V
3. 2.7V ≤ VDD ≤ 5.5V
4. 这是 10 位分辨率时的转换时钟数。如果选择 8 位分辨率,就会减少 2 个转换时钟 (fAD)。
注意 1. A/D 转换时间必须在 “27.6.1 A/D 转换器特性 ” 所示的转换时间 (tCONV)范围内。
2. 要将 FR2 ~ FR0 位、 LV1 位和 LV0 位改写为不同数据时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
3. 转换时间不包含转换启动时间,因此在第 1 次转换时必须加上转换启动时间。另外,转换时间不包含时钟频率的误
差,因此在选择转换时间时必须考虑时钟频率的误差。
备注
fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
244
R7F0C903-908
第 10 章 A/D 转换器
表 10-3
A/D 转换时间的选择 (3/4)
(3) 有 A/D 电源稳定等待时间 标准模式 1、 2 (硬件触发等待模式注 1)
A/D 转换器的模式寄存器 0
(ADM0)
FR2 FR1 FR0 LV1
0
0
0
0
模式
LV0
A/D 电
源稳定
等待
时钟数
fCLK/64
8 个 fAD
转换
时钟数注 2
A/D 电源
稳定等待
时间 +
转换时间
A/D 电源稳定等待时间 +10 位分辨率时的转换时间
2.7V ≤ VDD ≤ 5.5V
fCLK=
1MHz
fCLK=
4MHz
fCLK=
8MHz
fCLK=
16MHz
fCLK=
24MHz
禁止设定
禁止设定
禁止设定
108μs
72μs
0
0
1
fCLK/32
0
1
0
fCLK/16
0
1
1
fCLK/8
19 个 fAD 1728/fCLK
(采样时
864/fCLK
钟数:
7 个 fAD) 432/fCLK
216/fCLK
1
0
0
fCLK/6
162/fCLK
1
0
1
fCLK/5
135/fCLK
135μs
1
1
0
fCLK/4
108/fCLK
108μs
27μs
1
1
1
fCLK/2
54/fCLK
54μs
13.5μs
0
0
0
禁止设定
禁止设定
0
0
1
fCLK/32
0
1
0
fCLK/16
0
1
1
fCLK/8
17 个 fAD 1600/fCLK
(采样时
800/fCLK
钟数:
5 个 fAD) 400/fCLK
200/fCLK
0
0
转换
时钟
(fAD)
1
标准 1
标准 2
fCLK/64
8 个 fAD
108μs
54μs
36μs
108μs
54μs
27μs
18μs
54μs
27μs
13.5μs
9μs
40.5μs
20.25μs
10.125μs
6.75μs
33.75μs
16.875μs
8.4375μs
5.625μs
13.5μs
6.75μs
4.5μs
6.75μs
3.375μs
禁止设定
禁止设定
100μs
66.67μs
100μs
50μs
33.33μs
100μs
50μs
25μs
16.67μs
50μs
25μs
12.5μs
8.33μs
1
0
0
fCLK/6
150/fCLK
1
0
1
fCLK/5
125/fCLK
125μs
1
1
0
fCLK/4
100/fCLK
100μs
25μs
1
1
1
fCLK/2
50/fCLK
50μs
12.5μs
注
37.5μs
18.75μs
9.375μs
6.25μs
31.25μs
15.625μs
7.8125μs
5.21μs
12.5μs
6.25μs
4.17μs
6.25μs
3.125μs
禁止设定
1. 在连续转换模式的第 2 次以后的转换和扫描模式的扫描 1 以后的转换中检测到硬件触发后,不发生转换启动时间和
A/D 电源稳定等待时间 (参照表 10-3(1/4))。
2. 这是 10 位分辨率时的转换时钟数。如果选择 8 位分辨率,就会减少 2 个转换时钟 (fAD)。
注意 1. A/D 转换时间必须在 “27.6.1 A/D 转换器特性 ” 所示的转换时间 (tCONV)范围内。转换时间 (tCONV)不包含 A/D
电源稳定等待时间。
2. 要将 FR2 ~ FR0 位、 LV1 位和 LV0 位改写为不同数据时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
3. 转换时间不包含转换启动时间,因此在第 1 次转换时必须加上转换启动时间。另外,转换时间不包含时钟频率的误
差,因此在选择转换时间时必须考虑时钟频率的误差。
4. 硬件触发等待模式中的转换时间包含检测到硬件触发后的 A/D 电源稳定等待时间。
备注
fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
245
R7F0C903-908
第 10 章 A/D 转换器
表 10-3
A/D 转换时间的选择 (4/4)
(4) 有 A/D 电源稳定等待时间 低电压模式 1、 2 (硬件触发等待模式注 1)
A/D 转换器的模式寄存器 0
(ADM0)
FR2 FR1 FR0 LV1
0
0
0
1
转换
时钟
(fAD)
A/D 电
源稳定
等待
时钟数
低电压1 fCLK/64
2 个 fAD
模式
LV0
A/D 电源
稳定等待
时间 +
转换时间
A/D 电源稳定等待时间 +10 位分辨率时的转换时间
1.6V ≤ VDD ≤ 5.5V
fCLK=
16MHz
fCLK=
24MHz
禁止设定
禁止设定
禁止设定
84μs
56μs
84μs
42μs
28μs
84μs
42μs
21μs
14μs
42μs
21μs
10.5μs
7μs
0
1
fCLK/32
1
0
fCLK/16
0
1
1
fCLK/8
1
0
0
fCLK/6
126/fCLK
1
0
1
fCLK/5
105/fCLK
105μs
1
1
0
fCLK/4
84/fCLK
1
1
1
fCLK/2
42/fCLK
0
0
0
0
0
1
fCLK/32
0
1
0
fCLK/16
0
1
1
fCLK/8
2 个 fAD
17 个 fAD 1216/fCLK
(采样时
608/fCLK
钟数:
5 个 fAD) 304/fCLK
152/fCLK
注4
fCLK=
8MHz
0
低电压2 fCLK/64
注3
fCLK=
4MHz
0
1
注2
fCLK=
1MHz
19 个 fAD 1344/fCLK
(采样时
672/fCLK
钟数:
7 个 fAD) 336/fCLK
168/fCLK
1
0
转换
时钟数注 5
31.25μs
15.75μs
7.875μs
5.25μs
26.25μs
13.125μs
6.5625μs
4.38μs
84μs
21μs
10.5μs
5.25μs
3.5μs
42μs
10.5μs
5.25μs
2.625μs
禁止设定
禁止设定
禁止设定
禁止设定
76μs
50.67μs
76μs
38μs
25.33μs
76μs
38μs
19μs
12.67μs
38μs
19μs
9.5μs
6.33μs
28.5μs
14.25μs
7.125μs
4.75μs
23.75μs
11.88μs
5.938μs
3.96μs
1
0
0
fCLK/6
114/fCLK
1
0
1
fCLK/5
95/fCLK
96μs
1
1
0
fCLK/4
76/fCLK
76μs
19μs
9.5μs
4.75μs
3.17μs
1
1
1
fCLK/2
38/fCLK
38μs
9.5μs
4.75μs
2.375μs
禁止设定
注
1. 在连续转换模式的第 2 次以后的转换和扫描模式的扫描 1 以后的转换中检测到硬件触发后,不发生转换启动时间和
A/D 电源稳定等待时间 (参照表 10-3(2/4))。
2. 1.8V ≤ VDD ≤ 5.5V
3. 2.4V ≤ VDD ≤ 5.5V
4. 2.7V ≤ VDD ≤ 5.5V
5. 这是 10 位分辨率时的转换时钟数。如果选择 8 位分辨率,就会减少 2 个转换时钟 (fAD)。
注意 1. A/D 转换时间必须在 “27.6.1 A/D 转换器特性 ” 所示的转换时间 (tCONV)范围内。转换时间 (tCONV)不包含 A/D
电源稳定等待时间。
2. 要将 FR2 ~ FR0 位、 LV1 位和 LV0 位改写为不同数据时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
3. 转换时间不包含转换启动时间,因此在第 1 次转换时必须加上转换启动时间。另外,转换时间不包含时钟频率的误
差,因此在选择转换时间时必须考虑时钟频率的误差。
4. 硬件触发等待模式中的转换时间包含检测到硬件触发后的 A/D 电源稳定等待时间。
备注
fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
246
R7F0C903-908
第 10 章 A/D 转换器
图 10-5
A/D 转换器的采样和 A/D 转换时序 (以软件触发模式为例的情况)
ADCS←1ᡌ㘻᭯ߏADSȾ
ADCS
䟽ṭᰬᓅ
INTAD
ࣞ
䖢ᦘ
䖢ᦘ
ࣞ
ᰬ䰪
R01UH0629CJ0120 Rev.1.20
2019.06.28
䟽ṭ
䙆⅗䙲䘇
䖢ᦘᰬ䰪
䟽ṭ
䙆⅗䙲䘇
䖢ᦘᰬ䰪
247
R7F0C903-908
10.3.3
第 10 章 A/D 转换器
A/D 转换器的模式寄存器 1 (ADM1)
这是设定 A/D 转换触发、转换模式和硬件触发信号的寄存器。
通过 1 位或者 8 位存储器操作指令设定 ADM1 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-6
地址:FFF32H
A/D 转换器的模式寄存器 1 (ADM1)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
ADM1
ADTMD1
ADTMD0
ADSCM
0
0
0
ADTRS1
ADTRS0
ADTMD1
ADTMD0
0
×
软件触发模式
1
0
硬件触发无等待模式
1
1
硬件触发等待模式
A/D 转换触发模式的选择
ADSCM
A/D 转换模式的设定
0
连续转换模式
1
单次转换模式
ADTRS1
ADTRS0
0
0
定时器通道 1 的计数结束或者捕捉结束中断信号 (INTTM01)
0
1
禁止设定。
1
0
禁止设定。
1
1
12 位间隔定时器中断信号 (INTIT)
硬件触发信号的选择
注意 1. 要改写 ADM1 寄存器时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
2. 为了结束 A/D 转换,必须至少将硬件触发间隔设定为以下时间:
硬件触发无等待模式时:2 个 fCLK 时钟 + 转换启动时间 + A/D 转换时间
硬件触发等待模式时:2 个 fCLK 时钟 + 转换启动时间 + A/D 电源稳定等待时间 + A/D 转换时间
3. 在 SNOOZE 功能以外的模式中输入 INTIT 后的最多 4 个 fCLK 时钟周期内,下一个 INTIT 的输入触发无效。
备注 1. ×:忽略
2. fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
248
R7F0C903-908
10.3.4
第 10 章 A/D 转换器
A/D 转换器的模式寄存器 2 (ADM2)
这是选择 A/D 转换器的正 (+)基准电压、负 (–)基准电压和分辨率并且检查 A/D 转换结果的上限值和
下限值以及设定 SNOOZE 模式的寄存器。
通过 1 位或者 8 位存储器操作指令设定 ADM2 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-7
地址:F0010H
A/D 转换器的模式寄存器 2 (ADM2)的格式 (1/2)
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
ADM2
ADREFP1
ADREFP0
ADREFM
0
ADRCK
AWC
0
ADTYP
ADREFP1
ADREFP0
0
0
由 VDD 提供。
0
1
由 P20/AVREFP/ANI0 提供。
1
0
由内部基准电压 (1.45V)提供注。
1
1
禁止设定。
A/D 转换器的正 (+)基准电压源的选择
• 要改写 ADREFP1 位和 ADREFP0 位时,必须按照以下步骤进行设定:
①将 ADCE 位置 “0”。
②更改 ADREFP1 位和 ADREFP0 位的值。
③等待基准电压的稳定等待时间 A。
④将 ADCE 位置 “1”。
⑤等待基准电压的稳定等待时间 B。
当将 ADREFP1 位和 ADREFP0 位改为 “1” 和 “0” 时, A=5μs, B=1μs。
当将 ADREFP1 位和 ADREFP0 位改为 “0” 和 “0” 或者 “0” 和 “1” 时, A 不需等待, B=1μs。
必须在等待⑤的稳定时间后开始 A/D 转换。
ADREFM
注
A/D 转换器的负 (–)基准电压源的选择
0
由 VSS 提供。
1
由 P21/AVREFM/ANI1 提供。
只有在 HS (高速主)模式中才能设定。
注意 1. 要改写 ADM2 寄存器时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
2. 要转移到 STOP 模式时,不能将 ADREFP1 位置 “1”。如果选择内部基准电压 (ADREFP1、 ADREFP0=1、 0),
就加上 “27.3.2 电源电流特性 ” 所示的 A/D 转换器基准电压电流 (IADREF)的电流值。
3. 当使用 AVREFP 和 AVREFM 时,必须将 ANI0 和 ANI1 设定为模拟输入,并且通过端口模式寄存器设定为输入模式。
R01UH0629CJ0120 Rev.1.20
2019.06.28
249
R7F0C903-908
第 10 章 A/D 转换器
图 10-7
地址:F0010H
A/D 转换器的模式寄存器 2 (ADM2)的格式 (2/2)
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
ADM2
ADREFP1
ADREFP0
ADREFM
0
ADRCK
AWC
0
ADTYP
ADRCK
转换结果上限值和下限值的检查
0
当 ADLL 寄存器≤ ADCR 寄存器≤ ADUL 寄存器 (AREA1)时,产生中断信号 (INTAD)。
1
当 ADCR 寄存器< ADLL 寄存器 (AREA2)或者 ADUL 寄存器< ADCR 寄存器 (AREA3)
时,产生中断信号 (INTAD)。
AREA1 ~ AREA3 的中断信号 (INTAD)的产生范围如图 10-8 所示。
AWC
SNOOZE 模式的设定
0
不使用 SNOOZE 模式功能。
1
使用 SNOOZE 模式功能。
通过 STOP 模式中的硬件触发信号来解除 STOP 模式,并且在 CPU 不运行的状态下进行 A/D 转换(SNOOZE
模式)。
• 只有在选择高速内部振荡器时钟作为 CPU/ 外围硬件时钟(fCLK)的情况下才能设定 SNOOZE 模式功能,
而在选择其他时钟的情况下禁止设定。
• 在软件触发模式或者硬件触发无等待模式中,禁止使用 SNOOZE 模式功能。
• 在连续转换模式中,禁止使用 SNOOZE 模式功能。
• 在使用 SNOOZE 模式功能时,必须至少将硬件触发间隔设定为 “SNOOZE 模式的转移时间注 + 转换启动
时间 + A/D 电源稳定等待时间 + A/D 转换时间 + 2 个 fCLK 时钟 ”。
• 即使使用 SNOOZE 模式功能,也必须在通常运行时将 AWC 位置 “0”,并且在即将要转移到 STOP 模式前
将 AWC 位改为 “1”。
另外,必须在从 STOP 模式返回到通常运行后将 AWC 位改为 “0”。
如果 AWC 位保持 “1” 的状态,就无法正常开始 A/D 转换,而与其后的 SNOOZE 模式和通常运行模式无关。
ADTYP
A/D 转换分辨率的选择
0
10 位分辨率
1
8 位分辨率
注
请参照 “16.3.3 SNOOZE 模式 ” 的 “STOP 模式 →SNOOZE 模式的转移时间 ”。
注意
要改写 ADM2 寄存器时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
图 10-8
ADRCK 位的中断信号产生范围
ADCRᇺᆎಞⲺٲ
(A/D䖢ᦘ㔉᷒)
1111111111
AREA 3
(ADULψADCR)
ᖉADRCK=1ᰬθ
ӝ⭕INTADȾ
ADULᇺᆎಞⲺ䇴ᇐٲ
AREA 1
(ADLLŏADCRŏADUL)
ᖉADRCK=0ᰬθ
ӝ⭕INTADȾ
ADLLᇺᆎಞⲺ䇴ᇐٲ
0000000000
备注
AREA 2
(ADCRψADLL)
ᖉADRCK=1ᰬθ
ӝ⭕INTADȾ
当不发生 INTAD 时, A/D 转换结果不保存到 ADCR 寄存器和 ADCRH 寄存器。
R01UH0629CJ0120 Rev.1.20
2019.06.28
250
R7F0C903-908
10.3.5
第 10 章 A/D 转换器
10 位 A/D 转换结果寄存器 (ADCR)
这是保存 A/D 转换结果的 16 位寄存器,低 6 位固定为 “0”。每当 A/D 转换结束时,就从逐次逼近寄存器
(SAR)装入转换结果。转换结果的高 8 位保存到 FFF1FH,低 2 位保存到 FFF1EH 的高 2 位注。
通过 16 位存储器操作指令读 ADCR 寄存器。
在产生复位信号后,此寄存器的值变为 “0000H”。
如果 A/D 转换结果的值不在 A/D 转换结果比较功能(通过 ADRCK 位和 ADUL/ADLL 寄存器进行设定(参照图 10-
注
8))的设定值范围内,就不保存 A/D 转换结果。
图 10-9
地址:FFF1FH、 FFF1EH
10 位 A/D 转换结果寄存器 (ADCR)的格式
复位后:0000H
R
FFF1FH
符号
15
14
13
12
FFF1EH
11
10
9
8
7
6
ADCR
5
4
3
2
1
0
0
0
0
0
0
0
注意 1. 如果在选择 8 位分辨率 A/D 转换 (A/D 转换器的模式寄存器 2 (ADM2)的 ADTYP=1)时读 ADCR 寄存器,低 2
位 (ADCR 寄存器的 bit7 和 bit6)的读取值就为 “0”。
2. 当对 ADCR 寄存器进行 16 位存取时,能从 ADCR 寄存器的 bit15 依次读转换结果的高 10 位。
10.3.6
8 位 A/D 转换结果寄存器 (ADCRH)
这是保存 A/D 转换结果的 8 位寄存器,保存 10 位分辨率的高 8 位注。
通过 8 位存储器操作指令读 ADCRH 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
如果 A/D 转换结果的值不在 A/D 转换结果比较功能(通过 ADRCK 位和 ADUL/ADLL 寄存器进行设定(参照图 10-
注
8))的设定值范围内,就不保存 A/D 转换结果。
图 10-10
地址:FFF1FH
符号
8 位 A/D 转换结果寄存器 (ADCRH)的格式
复位后:00H
7
6
R
5
4
3
2
1
0
ADCRH
注意
当写 A/D 转换器的模式寄存器 0 (ADM0)、模拟输入通道指定寄存器 (ADS)和 A/D 端口配置寄存器 (ADPC)
时, ADCRH 寄存器的内容可能不定。必须在转换结束后并且在写 ADM0、 ADS、 ADPC 寄存器前读转换结果。否
则,就可能读不到正确的转换结果。
R01UH0629CJ0120 Rev.1.20
2019.06.28
251
R7F0C903-908
10.3.7
第 10 章 A/D 转换器
模拟输入通道指定寄存器 (ADS)
这是指定要进行 A/D 转换的模拟电压输入通道的寄存器。
通过 1 位或者 8 位存储器操作指令设定 ADS 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-11
地址:FFF31H
模拟输入通道指定寄存器 (ADS)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
ADS
ADISS
0
0
ADS4
ADS3
ADS2
ADS1
ADS0
○选择模式 (ADMD=0)
ADISS
ADS4
ADS3
ADS2
ADS1
ADS0
0
0
0
0
0
0
模拟输入
通道
ANI0
输入源
P20/ANI0/AVREFP 引脚
0
0
0
0
0
1
ANI1
P21/ANI1/AVREFM 引脚
0
0
0
0
1
0
ANI2
P22/ANI2 引脚
0
0
0
0
1
1
ANI3
P23/ANI3 引脚
0
1
0
0
0
0
ANI16
P01/ANI16 引脚
0
1
0
0
0
1
ANI17
P00/ANI17 引脚
0
1
0
0
1
0
ANI18
P147/ANI18 引脚
0
1
0
0
1
1
ANI19
P120/ANI19 引脚
1
0
0
0
0
1
—
上述以外
内部基准电压 (1.45V)注
禁止设定。
只有在 HS (高速主)模式中才能选择。
注
○扫描模式 (ADMD=1)
模拟输入通道
ADISS
ADS4
ADS3
ADS2
ADS1
ADS0
0
0
0
0
0
0
扫描 0
ANI0
扫描 1
ANI1
扫描 2
ANI2
扫描 3
ANI3
0
0
0
0
0
1
ANI1
ANI2
ANI3
—
0
0
0
0
1
0
ANI2
ANI3
—
—
0
0
0
0
1
1
ANI3
—
—
—
上述以外
禁止设定。
注意 1. 必须将 bit5 和 bit6 置 “0”。
2
对于由 ADPC 寄存器和 PMCxx 寄存器设定为模拟输入的端口,必须通过端口模式寄存器 0、 2、 12、 14 (PM0、
PM2、 PM12、 PM14)将其设定为输入模式。
3. 对于由 A/D 端口配置寄存器 (ADPC)设定为数字输入 / 输出的引脚,不能通过 ADS 寄存器进行设定。
4. 对于由端口模式控制寄存器 0、12、14(PMC0、PMC12、PMC14)设定为数字输入 / 输出的引脚,不能通过 ADS
寄存器进行设定。
5. 要改写 ADISS 位时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
6. 当将 AVREFP 用作 A/D 转换器的正 (+)基准电压时,不能选择 ANI0 作为 A/D 转换通道。
7. 当将 AVREFM 用作 A/D 转换器的负 (–)基准电压时,不能选择 ANI1 作为 A/D 转换通道。
8. 在将 ADISS 位置 “1” 的情况下,不能将内部基准电压(1.45V)用作正(+)基准电压。另外,在将 ADISS 位置 “1”
后,不能使用第 1 次的转换结果。有关详细设定流程,请参照 “10.7.4 选择内部基准电压时的设定 ”。
9. 要转移到 STOP 模式时,不能将 ADISS 位置 “1”。如果将 ADISS 位置 “1”,就加上 “27.3.2 电源电流特性 ” 所示的
A/D 转换器基准电压电流 (IADREF)的电流值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
252
R7F0C903-908
10.3.8
第 10 章 A/D 转换器
转换结果比较上限值设定寄存器 (ADUL)
这是用于检查 A/D 转换结果上限值的设定寄存器。
将 A/D 转换结果和 ADUL 寄存器的值进行比较,并且在 A/D 转换器的模式寄存器 2 (ADM2)的 ADRCK
位的设定范围内 (参照图 10-8)控制中断信号 (INTAD)的产生。
通过 8 位存储器操作指令设定 ADUL 寄存器。
在产生复位信号后,此寄存器的值变为 “FFH”。
图 10-12
地址:F0011H
复位后:FFH
转换结果比较上限值设定寄存器 (ADUL)的格式
R/W
符号
7
6
5
4
3
2
1
0
ADUL
ADUL7
ADUL6
ADUL5
ADUL4
ADUL3
ADUL2
ADUL1
ADUL0
10.3.9
转换结果比较下限值设定寄存器 (ADLL)
这是用于检查 A/D 转换结果下限值的设定寄存器。
将 A/D 转换结果和 ADLL 寄存器的值进行比较,并且在 A/D 转换器的模式寄存器 2 (ADM2)的 ADRCK
位的设定范围内 (参照图 10-8)控制中断信号 (INTAD)的产生。
通过 8 位存储器操作指令设定 ADLL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-13
地址:F0012H
复位后:00H
转换结果比较下限值设定寄存器 (ADLL)的格式
R/W
符号
7
6
5
4
3
2
1
0
ADLL
ADLL7
ADLL6
ADLL5
ADLL4
ADLL3
ADLL2
ADLL1
ADLL0
注意 1. 当选择 10 位分辨率 A/D 转换时,将 10 位 A/D 转换结果寄存器 (ADCR)的高 8 位和 ADUL 寄存器以及 ADLL 寄
存器进行比较。
2. 要改写 ADUL 寄存器和 ADLL 寄存器时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
3. 在设定 ADUL 寄存器和 ADLL 寄存器时,必须使 ADUL > ADLL。
R01UH0629CJ0120 Rev.1.20
2019.06.28
253
R7F0C903-908
10.3.10
第 10 章 A/D 转换器
A/D 测试寄存器 (ADTES)
此寄存器选择 A/D 转换器的正 (+)基准电压、负 (–)基准电压、模拟输入通道 (ANIxx)和内部基准
电压 (1.45V)作为 A/D 转换对象。
当用作 A/D 测试功能时,进行以下的设定:
•
在测量零刻度时,选择负 (–)基准电压作为 A/D转换对象。
•
在测量满刻度时,选择正 (+)基准电压作为 A/D 转换对象。
通过 8 位存储器操作指令设定 ADTES 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 10-14
地址:F0013H
复位后:00H
A/D 测试寄存器 (ADTES)的格式
R/W
符号
7
6
5
4
3
2
1
0
ADTES
0
0
0
0
0
0
ADTES1
ADTES0
ADTES1
ADTES0
0
0
内部基准电压
(1.45V)注
1
0
负 (–)基准电压 (通过 ADM2 寄存器的 ADREFM 位进行选择)
1
1
正(+)基准电压(通过 ADM2 寄存器的 ADREFP1 位和 ADREFP0 位进行选择)
A/D 转换对象
(由模拟输入通道指定寄存器 (ADS)进行设定)
上述以外
注
禁止设定。
只有在 HS (高速主)模式中才能选择内部基准电压 (1.45V)。
10.3.11
控制模拟输入引脚端口功能的寄存器
必须设定与 A/D 转换器模拟输入复用的端口功能的控制寄存器 (端口模式寄存器 (PMxx)、端口模式控
制 寄 存 器 (PMCxx)和 A/D 端 口 配 置 寄 存 器 (ADPC) ) 。详 细 内 容 请 参 照 “4.3.1
端口模式寄存器
(PMxx) ”、 “4.3.6 端口模式控制寄存器 (PMCxx) ” 和 “4.3.7 A/D 端口配置寄存器 (ADPC) ”。
在将 ANI0 ~ ANI3 引脚用作 A/D 转换器的模拟输入时,必须将各端口对应的端口模式寄存器 (PMxx)的
位置 “1”,并且通过 A/D 端口配置寄存器 (ADPC)设定为模拟输入。
在将 ANI16 ~ ANI19 引脚用作 A/D 转换器的模拟输入时,必须将各端口对应的端口模式寄存器 (PMxx)
和端口模式控制寄存器 (PMCxx)的位置 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
254
R7F0C903-908
10.4
第 10 章 A/D 转换器
A/D 转换器的转换运行
A/D 转换器的转换运行如下所示。
① 通过采样 & 保持电路对所选模拟输入通道的输入电压进行采样。
② 在进行规定时间的采样后,采样& 保持电路为保持状态,并且将采样电压保持到 A/D转换结束为止。
③ 将逐次逼近寄存器 (SAR)的bit9置位,并且通过分接头选择器将串联电阻串的分接头电压设定为
(1/2)AVREF。
④ 通过A/D电压比较器将串联电阻串的分接头电压和采样电压的电压差进行比较。如果模拟输入大于
(1/2)AVREF, SAR 寄存器的 MSB 位就保持被置位的状态。如果模拟输入小于(1/2)AVREF,就对 MSB位
进行复位。
⑤ 然后,自动将 SAR 寄存器的 bit8 置位并且进行下一次比较。在此,根据 bit9 被设定的结果值,选择比较
电压生成电路的分接头电压。
•
bit9=1:(3/4)AVREF
•
bit9=0:(1/4)AVREF
将此分接头电压和采样电压进行比较,根据比较结果对 SAR 寄存器的 bit8 进行以下操作:
•
采样电压≥分接头电压:bit8=1
•
采样电压<分接头电压:bit8=0
⑥ 将此比较继续进行到 SAR 寄存器的 bit0 为止。
⑦ 当10位比较结束时,SAR寄存器保存了有效的数字结果,并且将其值传送到A/D转换结果寄存器(ADCR、
ADCRH),而且被锁存注 1。
同时,能产生 A/D 转换结束中断请求 (INTAD)注 1。
⑧ 重复①~⑦的运行,直到 ADCS 位变为 “0” 为止注 2。
要停止 A/D 转换器时,必须将 ADCS 位置“0”。
注
1. 如果 A/D 转换结果的值不在 A/D 转换结果比较功能(通过 ADRCK 位和 ADUL/ADLL 寄存器进行设定(参照图 108))的设定值范围内,就不产生 A/D 转换结束中断请求信号 (INTAD),并且 ADCR 寄存器和 ADCRH 寄存器不
保存 A/D 转换结果。
2. 在连续转换模式中, ADCS 标志不自动清 “0”。即使在硬件触发无等待模式的单次转换模式中, ADCS 标志也不自
动清 “0” 而保持 “1” 的状态。
备注 1. 有 2 种 A/D 转换结果寄存器。
• ADCR 寄存器 (16 位): 保存 10 位的 A/D 转换值。
• ADCRH 寄存器 (8 位): 保存 8 位的 A/D 转换值。
2. AVREF 是 A/D 转换器的正 (+)基准电压,可选择 AVREFP、内部基准电压 (1.45V)或者 VDD。
R01UH0629CJ0120 Rev.1.20
2019.06.28
255
R7F0C903-908
第 10 章 A/D 转换器
图 10-15
A/D 转换器的转换运行 (软件触发模式的情况)
㔏ADCSփߏ“1”Ⱦ
ADCS
䖢ᦘᰬ䰪
䖢ᦘࣞᰬ䰪 䟽ṭᰬ䰪
A/D䖢ᦘಞⲺ䘆㺂
SAR
䖢ᦘ
ᖻᵰ
ࣞ䖢ᦘ
䟽ṭ
A/D䖢ᦘ
уᇐ
ADCR
䖢ᦘᖻᵰ
䖢ᦘ
㔉᷒
䖢ᦘ
㔉᷒
INTAD
如果在单次转换模式中进行 A/D 转换, ADCS 位就在 A/D 转换结束后自动清 “0”。
在连续转换模式中,A/D 转换连续进行到通过软件将 A/D 转换器的模式寄存器 0(ADM0)的 bit7(ADCS)
清 “0” 为止。
如果在 A/D 转换过程中改写或者重写模拟输入通道指定寄存器 (ADS),就中止当前的 A/D 转换而对由
ADS 寄存器重新指定的模拟输入进行 A/D 转换。取消转换途中的数据。
在产生复位信号后, A/D 转换结果寄存器 (ADCR、 ADCRH)的值变为 “0000H” 和 “00H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
256
R7F0C903-908
10.5
第 10 章 A/D 转换器
输入电压和转换结果
模拟输入引脚 (ANI0 ~ ANI3、 ANI16 ~ ANI19)的模拟输入电压和理论上的 A/D 转换结果 (10 位 A/D
转换结果寄存器 (ADCR))有以下表达式的关系。
VAIN
SAR = INT( AVREF × 1024 + 0.5)
ADCR = SAR × 64
或者
(
AVREF
AVREF
ADCR
– 0.5) × 1024 ŏ VAIN ψ ( ADCR + 0.5) × 1024
64
64
INT( ): 将括号中的数值的整数部分返回的函数
VAIN:
模拟输入电压
AVREF: AVREF 引脚电压
ADCR: A/D 转换结果寄存器 (ADCR)的值
SAR:
逐次逼近寄存器
模拟输入电压和 A/D 转换结果的关系如图 10-16 所示。
图 10-16
模拟输入电压和 A/D 转换结果的关系
SAR
ADCR
1023
FFC0H
1022
FF80H
1021
FF40H
A/D䖢ᦘ㔉᷒
3
00C0H
2
0080H
1
0040H
0
0000H
1
1
3
2
5
3
2048 1024 2048 1024 2048 1024
2043 1022 2045 1023 2047 1
2048 1024 2048 1024 2048
䗉ু⭫ޛAVREF
备注
AVREF 是 A/D 转换器的正 (+)基准电压,可选择 AVREFP、内部基准电压 (1.45V)或者 VDD。
R01UH0629CJ0120 Rev.1.20
2019.06.28
257
R7F0C903-908
10.6
第 10 章 A/D 转换器
A/D 转换器的运行模式
A/D 转换器的各模式的运行如下所示。有关各模式的设定步骤,请参照 “10.7 A/D 转换器的设定流程图 ”。
10.6.1
软件触发模式 (选择模式、连续转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,对由模拟输入通
道指定寄存器 (ADS)指定的模拟输入进行A/D 转换。
③ 如果 A/D 转换结束,就将转换结果保存到 A/D 转换结果寄存器 (ADCR、 ADCRH),并且产生 A/D 转
换结束中断请求信号 (INTAD)。在 A/D 转换结束后立即开始下一次 A/D转换。
④ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑤ 如果在转换过程中改写或者重写 ADS 寄存器,就中止当前的 A/D 转换而对由 ADS 寄存器重新指定的模
拟输入进行 A/D 转换。取消转换途中的数据。
⑥ 即使在转换过程中输入硬件触发也不开始 A/D 转换。
⑦ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D转换而进入 A/D 转换待机状态。
⑧ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D 转换器就进入停止状态。当 ADCE位为 “0”时,即使
将 ADCS 位置 “1” 也被忽视,不开始 A/D转换。
图 10-17
软件触发模式 (选择模式、连续转换模式)的运行时序例子
ŚሼADCEփ㖤“1”Ⱦ
ADCE
ADCS
у
䀜ਇȾ
ŝ൞A/D䖢ᦘ䗽ぁѣθ
㔏ADCSփ䠃ߏ“1”Ⱦ
ś൞䖢ᦘᖻᵰ⣬ᘷс
ሼADCSփ㖤“1”Ⱦ
൞A/D䖢ᦘ䗽ぁѣθŠ
ሼADCSփ㖤“0”Ⱦ
şӝ⭕⺢Ԭ䀜ਇ
(㻡ᘳ㿼)Ⱦ
у
䀜ਇȾ
Ş൞A/D䖢ᦘ䗽ぁѣθ᭯ߏ
ADS(ԄANI0ࡦANI1)Ⱦ
ᮦᦤ0
(ANI0)
A/D䖢ᦘ㔉ᶕθ
Ŝ
Ŝ
ᔶခсж⅗䖢ᦘȾ
ADS
A/D䖢ᦘ⣬ᘷ
ሼADCEփ㖤“0”Ⱦš
↘ڒ
⣬ᘷ
䖢ᦘ
ᖻᵰ
ᮦᦤ0
(ANI0)
ADCRȽ
ADCRH
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ1
(ANI1)
Ŝ
Ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ1
(ANI1)
ᮦᦤ0
(ANI0)
Ŝ
ᮦᦤ1
(ANI1)
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘȾ
ᮦᦤ1
(ANI1)
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ1
(ANI1)
INTAD
R01UH0629CJ0120 Rev.1.20
2019.06.28
258
R7F0C903-908
10.6.2
第 10 章 A/D 转换器
软件触发模式 (选择模式、单次转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,对由模拟输入通
道指定寄存器 (ADS)指定的模拟输入进行A/D 转换。
③ 如果 A/D 转换结束,就将转换结果保存到 A/D 转换结果寄存器 (ADCR、 ADCRH),并且产生 A/D 转
换结束中断请求信号 (INTAD)。
④ 在 A/D转换结束后, ADCS 位自动清 “0”,进入 A/D 转换待机状态。
⑤ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑥ 如果在转换过程中改写或者重写 ADS 寄存器,就中止当前的 A/D 转换而对由 ADS 寄存器重新指定的模
拟输入进行 A/D 转换。取消转换途中的数据。
⑦ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D转换而进入 A/D 转换待机状态。
⑧ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D 转换器就进入停止状态。当 ADCE位为 “0”时,即使
将 ADCS位置“1”也被忽视,不开始 A/D转换。即使在A/D转换待机的状态下输入硬件触发也不开始 A/D
转换。
图 10-18
软件触发模式 (选择模式、单次转换模式)的运行时序例子
Ś ሼADCEփ㖤“1”Ⱦ
ADCE
у
䀜ਇȾ
ś൞䖢ᦘᖻᵰ⣬ᘷс
ሼADCSփ㖤“1”Ⱦ
ሼADCEփ㖤“0”Ⱦš
Ş ൞A/D䖢ᦘ䗽ぁѣθ ŝ
㔏ADCSփ䠃ߏ“1”Ⱦ
ŝ൞䖢ᦘ㔉ᶕθ ś
ADCSփ㠠ࣞ
“0”Ⱦ
ś
Š൞A/D䖢ᦘ䗽ぁѣθ
ሼADCSփ㖤“0”Ⱦ
у
䀜ਇȾ
ś
ş ൞A/D䖢ᦘ䗽ぁѣθ᭯ߏ
ADS(ԄANI0ࡦANI1)Ⱦ
ADCS
ᮦᦤ0
(ANI0)
ADS
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘθ
Ŝ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ A/D䖢ᦘ㔉ᶕȾ
A/D䖢ᦘ⣬ᘷ
ŝ
↘ڒ
⣬ᘷ
䖢ᦘ
ᖻᵰ
ᮦᦤ0
(ANI0)
ADCRȽ
ADCRH
䖢ᦘ
ᖻᵰ
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
Ŝ
䖢ᦘ
ᖻᵰ
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ1
(ANI1)
䖢ᦘᖻᵰ
ѣ↘䖢ᦘȾ
ᮦᦤ1
(ANI1)
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ1
(ANI1)
INTAD
R01UH0629CJ0120 Rev.1.20
2019.06.28
259
R7F0C903-908
10.6.3
第 10 章 A/D 转换器
软件触发模式 (扫描模式、连续转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,对由模拟输入通
道指定寄存器(ADS)指定的扫描 0 ~扫描 3 的 4 个模拟输入通道进行 A/D转换。依次从扫描 0 指定的模
拟输入通道进行 A/D转换。
③ 连续进行 4 个模拟输入通道的 A/D转换。每当 A/D 转换结束时,就将转换结果保存到 A/D 转换结果寄存
器 (ADCR、 ADCRH),并且产生 A/D 转换结束中断请求信号 (INTAD)。在 4 个通道的 A/D 转换结
束后立即从所设通道自动开始下一次 A/D转换 (4 个通道)。
④ 如果在转换过程中给 ADCS 位重写 “1”,就中止当前的 A/D转换而从最初的通道重新开始转换。取消转
换途中的数据。
⑤ 如果在转换过程中改写或者重写ADS 寄存器,就中止当前的 A/D 转换而从由 ADS 寄存器重新指定的最
初通道进行 A/D 转换。取消转换途中的数据。
⑥ 即使在转换过程中输入硬件触发也不开始 A/D 转换。
⑦ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D转换而进入 A/D 转换待机状态。
⑧ 如果在 A/D 转换待机状态下将 ADCE 位置 “0”,A/D 转换器就进入停止状态。当 ADCE位为 “0”时,即使
将 ADCS 位置 “1” 也被忽视,不开始 A/D转换。
图 10-19
软件触发模式 (扫描模式、连续转换模式)的运行时序例子
ሼADCEփ㖤“0”Ⱦš
Ś ሼADCEփ㖤“1”Ⱦ
ADCE
ADCS
у
䀜ਇȾ
ś൞䖢ᦘᖻᵰ⣬ᘷс
ሼADCSփ㖤“1”Ⱦ
ӝ⭕⺢Ԭ䀜ਇş
(㻡ᘳ㿼)Ⱦ
ŝ ൞A/D䖢ᦘ䗽ぁѣθ
㔏ADCSփ䠃ߏ“1”Ⱦ
൞A/D䖢ᦘ䗽ぁѣθŠ
ሼADCSփ㖤“0”Ⱦ
у
䀜ਇȾ
Ş ൞A/D䖢ᦘ䗽ぁѣθ
᭯ߏADSȾ
ANI0ЊANI3
ADS
ANI1ЊANI3
A/D䖢ᦘ㔉ᶕθŜ
ᔶခсж⅗䖢ᦘȾ
A/D䖢ᦘ⣬ᘷ
ADCRȽ
ADCRH
↘ڒ
⣬ᘷ
䖢ᦘ ᮦᦤ0
ᖻᵰ (ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
Ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ѣ↘䖢ᦘȾ
ᮦᦤ1
(ANI1)
ᮦᦤ2
ᮦᦤ3 ᮦᦤ0 ᮦᦤ1 ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ0 ᮦᦤ1 ᮦᦤ1 ᮦᦤ2
(ANI2) (PGAOUT) (ANI0) (ANI1) (ANI0) (ANI1) (ANI2) (PGAOUT) (ANI0) (ANI1) (ANI1) (ANI2)
ᮦᦤ3
(ANI3)
ᮦᦤ1 ᮦᦤ2
уᇐ( ٲANI1) (ANI2)
ᮦᦤ0
(ANI0)
ᮦᦤ1
(ANI1)
ᮦᦤ2
(ANI2)
ᮦᦤ3
(ANI3)
ᮦᦤ2 ᮦᦤ3
(ANI2) (PGAOUT)
ᮦᦤ0(ANI0)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (PGAOUT)
ᮦᦤ0
(ANI0)
ᮦᦤ1
(ANI1)
уᇐٲ
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ1
(ANI1)
INTAD
䗉࠰4⅗ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
260
R7F0C903-908
10.6.4
第 10 章 A/D 转换器
软件触发模式 (扫描模式、单次转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,对由模拟输入通
道指定寄存器(ADS)指定的扫描 0 ~扫描 3 的 4 个模拟输入通道进行 A/D转换。依次从扫描 0 指定的模
拟输入通道进行 A/D转换。
③ 连续进行 4 个模拟输入通道的 A/D转换。每当 A/D 转换结束时,就将转换结果保存到 A/D 转换结果寄存
器 (ADCR、 ADCRH),并且产生 A/D 转换结束中断请求信号 (INTAD)。
④ 在 4 个通道的 A/D 转换结束后, ADCS 位自动清 “0”,进入A/D 转换待机状态。
⑤ 如果在转换过程中给 ADCS 位重写 “1”,就中止当前的 A/D转换而从最初的通道重新开始转换。取消转
换途中的数据。
⑥ 如果在转换过程中改写或者重写ADS 寄存器,就中止当前的 A/D 转换而从由 ADS 寄存器重新指定的最
初通道进行 A/D 转换。取消转换途中的数据。
⑦ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D转换而进入 A/D 转换待机状态。
⑧ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D 转换器就进入停止状态。当 ADCE位为 “0”时,即使
将 ADCS位置“1”也被忽视,不开始 A/D转换。即使在A/D转换待机的状态下输入硬件触发也不开始 A/D
转换。
图 10-20
软件触发模式 (扫描模式、单次转换模式)的运行时序例子
Ś ሼADCEփ㖤“1”Ⱦ
ADCE
ADCS
у
䀜ਇȾ
ሼADCEփ㖤“0”Ⱦš
ŝ൞䖢ᦘ㔉ᶕ ś
θADCS
փ㠠ࣞ“0”Ⱦ
ś൞䖢ᦘᖻᵰ⣬ᘷс
ሼADCSփ㖤“1”Ⱦ
Ş ൞A/D䖢ᦘ䗽ぁѣθ
㔏ADCSփ䠃ߏ“1”Ⱦ
ŝ
ś
൞A/D䖢ᦘ䗽ぁѣθŠ
ሼADCSփ㖤“0”Ⱦ
у
䀜ਇȾ
ş ൞A/D䖢ᦘ䗽ぁѣθ
᭯ߏADSȾ
ANI0ЊANI3
ADS
ANI1ЊANI3
ŜA/D䖢ᦘ
㔉ᶕȾ
A/D䖢ᦘ⣬ᘷ
ADCRȽ
ADCRH
↘ڒ
⣬ᘷ
䖢ᦘ ᮦᦤ0 ᮦᦤ1
ᖻᵰ (ANI0) (ANI1)
ᮦᦤ2 ᮦᦤ3
(ANI2) (PGAOUT)
ᮦᦤ0 ᮦᦤ1
(ANI0) (ANI1)
ᮦᦤ2
(ANI2)
䖢ᦘ
ᖻᵰ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI0) (ANI1) (ANI2) (PGAOUT)
ᮦᦤ3
(PGAOUT)
ᮦᦤ0(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
ᮦᦤ1 ᮦᦤ2
(ANI1) (ANI2)
䖢ᦘ
ᖻᵰ
ᮦᦤ0 ᮦᦤ1
(ANI0) (ANI1)
ᮦᦤ3
(PGAOUT)
ᮦᦤ1
(ANI1)
ᮦᦤ0
(ANI0)
ѣ↘䖢ᦘȾ
ᮦᦤ2
(ANI2)
ᮦᦤ3
(ANI3)
ᮦᦤ1
(ANI1)
ᮦᦤ2
(ANI2)
䖢ᦘ
уᇐ ٲᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ3
(ANI3)
INTAD
䗉࠰4⅗ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗉࠰4⅗ѣᯣȾ
261
R7F0C903-908
10.6.5
第 10 章 A/D 转换器
硬件触发无等待模式 (选择模式、连续转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,进入硬件触发待
机状态 (此阶段不开始转换)。在硬件触发待机状态时,即使将 ADCS 位置 “1”也不开始 A/D 转换。
③ 如果在 ADCS 位为 “1” 的状态下输入硬件触发,就对由模拟输入通道指定寄存器(ADS)指定的模拟输
入进行 A/D 转换。
④ 如果 A/D 转换结束,就将转换结果保存到 A/D 转换结果寄存器 (ADCR、 ADCRH),并且产生 A/D 转
换结束中断请求信号 (INTAD)。在 A/D 转换结束后立即开始下一次 A/D转换。
⑤ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而重新开始转换。取消转换途中的数据。
⑥ 如果在转换过程中改写或者重写 ADS 寄存器,就中止当前的 A/D 转换而对由 ADS 寄存器重新指定的模
拟输入进行 A/D 转换。取消转换途中的数据。
⑦ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑧ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入 A/D 转换待机状态。但是,在此状
态下 A/D 转换器不进入停止状态。
⑨ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D转换器就进入停止状态。当 ADCS 位为 “0” 时,即使
输入硬件触发也被忽视,不开始 A/D 转换。
图 10-21
硬件触发无等待模式 (选择模式、连续转换模式)的运行时序例子
ሼADCEփ㖤“0”ȾŢ
ŚሼADCEփ㖤“1”Ⱦ
ADCE
śሼADCSփ㖤“1”Ⱦ
Ş ൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
Ŝӝ⭕⺢Ԭ䀜ਇȾ
у䀜ਇȾ
⺢Ԭ䀜ਇ
䀜ਇᖻ
у䀜ਇȾ ᵰ⣬ᘷ
൞A/D䖢ᦘ䗽ぁѣθŠ
㔏ADCSփ䠃ߏ“1”Ⱦ
ş ൞A/D䖢ᦘ䗽ぁѣθ᭯ߏ
ADS(ԄANI0ࡦANI1)Ⱦ
ADCS
ᮦᦤ0
(ANI0)
ŝ A/D䖢ᦘ㔉ᶕ
ᔶခсж⅗䖢ᦘȾ
ŝ
ADS
A/D䖢ᦘ⣬ᘷ
൞A/D䖢ᦘ䗽ぁѣθš
ሼADCSփ㖤“0”Ⱦ
↘ڒ
⣬ᘷ
䖢ᦘ
ᖻᵰ
ᮦᦤ0
(ANI0)
ADCRǃ
ADCRH
ᮦᦤ 0
(ANI0)
ᮦᦤ 0
(ANI0)
ᮦᦤ 0
(ANI0)
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ᮦᦤ 0
(ANI0)
ᮦᦤ 0
(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ᮦᦤ 0
(ANI0)
ᮦᦤ 1
(ANI1)
ᮦᦤ 0
(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ᮦᦤ 1
(ANI1)
ᮦᦤ 1
(ANI1)
ᮦᦤ 1
(ANI1)
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘȾ
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ 1
(ANI1)
INTAD
R01UH0629CJ0120 Rev.1.20
2019.06.28
262
R7F0C903-908
10.6.6
第 10 章 A/D 转换器
硬件触发无等待模式 (选择模式、单次转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,进入硬件触发待
机状态 (此阶段不开始转换)。在硬件触发待机状态时,即使将 ADCS 位置 “1”也不开始 A/D 转换。
③ 如果在 ADCS 位为 “1” 的状态下输入硬件触发,就对由模拟输入通道指定寄存器(ADS)指定的模拟输
入进行 A/D 转换。
④ 如果 A/D 转换结束,就将转换结果保存到 A/D 转换结果寄存器 (ADCR、 ADCRH),并且产生 A/D 转
换结束中断请求信号 (INTAD)。
⑤ 在 A/D转换结束后, ADCS 位保持“1” 的状态,进入 A/D 转换待机状态。
⑥ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而重新开始转换。取消转换途中的数据。
⑦ 如果在转换过程中改写或者重写 ADS 寄存器,就中止当前的 A/D 转换而对由 ADS 寄存器重新指定的模
拟输入进行 A/D 转换。取消转换途中的数据。
⑧ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑨ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入 A/D 转换待机状态。但是,在此状
态下 A/D 转换器不进入停止状态。
⑩ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D转换器就进入停止状态。当 ADCS 位为 “0” 时,即使
输入硬件触发也被忽视,不开始 A/D 转换。
图 10-22
硬件触发无等待模式 (选择模式、单次转换模式)的运行时序例子
ሼADCEփ㖤“0”Ⱦţ
ŚሼADCEփ㖤“1”Ⱦ
śሼADCSփ㖤“1”Ⱦ
ADCE
Ŝӝ⭕⺢Ԭ䀜ਇȾ
ş ൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
Ŝ
Ŝ
Ŝ
Ŝ
у䀜ਇȾ
⺢Ԭ䀜ਇ
у䀜ਇȾ
䀜ਇᖻ
ᵰ⣬ᘷ
ADCSփؓᤷ
Ş
“1”Ⲻ⣬ᘷȾ
൞A/D䖢ᦘ䗽ぁѣθš
Ş 㔏ADCSփ䠃ߏ“1”Ⱦ
Ş
ADCS
Š ൞A/D䖢ᦘ䗽ぁѣθ᭯ߏ
ADS(ԄANI0ࡦANI1)Ⱦ
ᮦᦤ0
(ANI0)
ADS
↘ڒ
⣬ᘷ
䖢ᦘ
ᖻᵰ
Ţ ൞A/D䖢ᦘ䗽ぁ
ѣθሼADCSփ
㖤“0”Ⱦ
ᮦᦤ1
(ANI1)
ŝ A/D䖢ᦘ㔉ᶕȾ
A/D䖢ᦘ⣬ᘷ
Ş
ᮦᦤ0
(ANI0)
ADCRȽ
ADCRH
䖢ᦘ
ᖻᵰ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ ŝ
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ 0
(ANI0)
䖢ᦘ
ᖻᵰ
ᮦᦤ 0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘθ䠃
᯦ᔶခ䖢ᦘȾ ŝ
䖢ᦘ
ᖻᵰ
ᮦᦤ1
(ANI1)
ᮦᦤ1
(ANI1)
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘȾ
䖢ᦘ ᮦᦤ1
ᖻᵰ (ANI1)
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ1
(ANI1)
INTAD
R01UH0629CJ0120 Rev.1.20
2019.06.28
263
R7F0C903-908
10.6.7
第 10 章 A/D 转换器
硬件触发无等待模式 (扫描模式、连续转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,进入硬件触发待
机状态 (此阶段不开始转换)。在硬件触发待机状态时,即使将 ADCS 位置 “1”也不开始 A/D 转换。
③ 如果在ADCS位为“1”的状态下输入硬件触发,就对由模拟输入通道指定寄存器 (ADS)指定的扫描0~
扫描 3 的 4 个模拟输入通道进行 A/D 转换。依次从扫描 0 指定的模拟输入通道进行 A/D转换。
④ 连续进行 4 个模拟输入通道的 A/D转换。每当 A/D 转换结束时,就将转换结果保存到 A/D 转换结果寄存
器 (ADCR、 ADCRH),并且产生 A/D 转换结束中断请求信号 (INTAD)。在 4 个通道的 A/D 转换结
束后立即从所设通道自动开始下一次 A/D转换。
⑤ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而从最初的通道重新开始转换。取消转换途
中的数据。
⑥ 如果在转换过程中改写或者重写ADS 寄存器,就中止当前的 A/D 转换而从由 ADS 寄存器重新指定的最
初通道进行 A/D 转换。取消转换途中的数据。
⑦ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑧ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入 A/D 转换待机状态。但是,在此状
态下 A/D 转换器不进入停止状态。
⑨ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D 转换器就进入停止状态。当 ADCE 位为 “0”时,即使
将 ADCS 位置 “1” 也被忽视,不开始 A/D转换。
图 10-23
硬件触发无等待模式 (扫描模式、连续转换模式)的运行时序例子
Ś ሼADCEփ㖤“1”Ⱦ
ADCE
ሼADCEփ㖤“0”ȾŢ
śሼADCSփ㖤“1”Ⱦ
Ŝӝ⭕⺢Ԭ䀜ਇȾ
Ş൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
у䀜ਇȾ
⺢Ԭ䀜ਇ
䀜ਇᖻ
у䀜ਇȾ ᵰ⣬ᘷ
൞A/D䖢ᦘ䗽ぁѣθŠ
㔏ADCSփ䠃ߏ“1”Ⱦ
൞A/D䖢ᦘ䗽ぁѣθš
ሼADCSփ㖤“0”Ⱦ
ADCS
ş൞A/D䖢ᦘ䗽ぁѣθ
᭯ߏADSȾ
ANI0ЊANI3
ADS
ANI1ЊANI3
A/D䖢ᦘ㔉ᶕθŝ
ᔶခсж⅗䖢ᦘȾ
A/D䖢ᦘ⣬ᘷ
ADCRȽ
ADCRH
↘ڒ
⣬ᘷ
䖢ᦘ
ᖻᵰ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ0 ᮦᦤ1 ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ0 ᮦᦤ1 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
ᮦᦤ1
(ANI0) (ANI1) (ANI2) (ANI3) (ANI0) (ANI1) (ANI0) (ANI1) (ANI2) (ANI3) (ANI0) (ANI1) (ANI1) (ANI2) (ANI3) уᇐ( ٲANI1) (ANI2) (ANI3) (ANI1) (ANI2) (ANI3) уᇐ( ٲANI1)
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI2) (ANI3)
ᮦᦤ0(ANI0)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI3)
ᮦᦤ0
(ANI0)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 уᇐ ٲᮦᦤ1
(ANI1) (ANI2) (ANI3)
(ANI1)
ᮦᦤ2
(ANI2)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI3)
ѣ↘
䖢ᦘȾ
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
уᇐٲ
INTAD
䗉࠰4⅗ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
264
R7F0C903-908
10.6.8
第 10 章 A/D 转换器
硬件触发无等待模式 (扫描模式、单次转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入 A/D 转换待机状态。
② 在通过软件对稳定等待时间 (1μs)进行计数后,将 ADM0 寄存器的 ADCS 位置 “1”,进入硬件触发待
机状态 (此阶段不开始转换)。在硬件触发待机状态时,即使将 ADCS 位置 “1”也不开始 A/D 转换。
③ 如果在ADCS位为“1”的状态下输入硬件触发,就对由模拟输入通道指定寄存器 (ADS)指定的扫描0~
扫描 3 的 4 个模拟输入通道进行 A/D 转换。依次从扫描 0 指定的模拟输入通道进行 A/D转换。
④ 连续进行 4 个模拟输入通道的 A/D转换。每当 A/D 转换结束时,就将转换结果保存到 A/D 转换结果寄存
器 (ADCR、 ADCRH),并且产生 A/D 转换结束中断请求信号 (INTAD)。
⑤ 在 4 个通道的 A/D 转换结束后, ADCS 位保持 “1”的状态,进入A/D 转换待机状态。
⑥ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而从最初的通道重新开始转换。取消转换途
中的数据。
⑦ 如果在转换过程中改写或者重写ADS 寄存器,就中止当前的 A/D 转换而从由 ADS 寄存器重新指定的最
初通道进行 A/D 转换。取消转换途中的数据。
⑧ 如果在转换过程中给 ADCS 位重写 “1”,就中止当前的 A/D转换而从最初的通道重新开始转换。取消转
换途中的数据。
⑨ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入 A/D 转换待机状态。但是,在此状
态下 A/D 转换器不进入停止状态。
⑩ 如果在 A/D 转换待机状态下将 ADCE位置 “0”,A/D转换器就进入停止状态。当 ADCS 位为 “0” 时,即使
输入硬件触发也被忽视,不开始 A/D 转换。
图 10-24
硬件触发无等待模式 (扫描模式、单次转换模式)的运行时序例子
Ś ሼADCEփ㖤“1”Ⱦ
ሼADCEփ㖤“0”Ⱦţ
śሼADCSփ㖤“1”Ⱦ
Ŝӝ⭕⺢Ԭ䀜ਇȾ
ADCE
Ŝ
ş൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
Ŝ
Ŝ
у䀜ਇȾ
⺢Ԭ䀜ਇ
䀜ਇᖻ
у䀜ਇȾ ᵰ⣬ᘷ
ADCSփؓᤷŞ
“1”Ⲻ⣬ᘷȾ
Ş
ADCS
Š൞A/D䖢ᦘ䗽ぁѣθ
᭯ߏADSȾ
ANI0ЊANI3
ADS
ANI1ЊANI3
ŝA/D䖢ᦘ
㔉ᶕȾ
A/D䖢ᦘ⣬ᘷ
ADCRȽ
ADCRH
š൞A/D䖢ᦘ䗽ぁѣθŢ൞A/D䖢ᦘ䗽ぁѣθ
㔏ADCSփ䠃ߏ“1”ȾሼADCSփ㖤“0”Ⱦ
Ş
↘ڒ
⣬ᘷ
䖢ᦘ
ᖻᵰ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 䖢ᦘ ᮦᦤ0 ᮦᦤ1 ᮦᦤ1 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI2) (ANI3) ᖻᵰ (ANI0) (ANI1) (ANI0) (ANI1) (ANI2)(ANI3)
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2
(ANI0) (ANI1) (ANI2)
ᮦᦤ3
(ANI3)
ᮦᦤ0(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ᮦᦤ1 ᮦᦤ2
(ANI1) (ANI2)
䖢ᦘ
ᖻᵰ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI1) (ANI2) (ANI3) уᇐٲ
ᮦᦤ3
(ANI3)
ᮦᦤ0
(ANI0)
ѣ↘䖢ᦘθ
ѣ↘䖢ᦘȾ
䠃᯦ᔶခ䖢ᦘȾ
ŝ
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI3)
䖢ᦘ
ᖻᵰ
ᮦᦤ1 ᮦᦤ2 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI1) (ANI2) (ANI3)
уᇐٲ
ᮦᦤ1(ANI1)
䖢ᦘ
ᖻᵰ
↘ڒ
⣬ᘷ
ᮦᦤ2
(ANI2)
INTAD
䗉࠰4⅗ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
265
R7F0C903-908
10.6.9
第 10 章 A/D 转换器
硬件触发等待模式 (选择模式、连续转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入硬件触发待机状态。
② 如果在硬件触发待机状态下输入硬件触发,就对由模拟输入通道指定寄存器 (ADS)指定的模拟输入
进行 A/D 转换。在输入硬件触发的同时自动将ADM0 寄存器的 ADCS 位置 “1”。
③ 如果 A/D 转换结束,就将转换结果保存到 A/D 转换结果寄存器 (ADCR、 ADCRH),并且产生 A/D 转
换结束中断请求信号 (INTAD)。在 A/D 转换结束后立即开始下一次 A/D 转换 (此时,不需要硬件触
发)。
④ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而重新开始转换。取消转换途中的数据。
⑤ 如果在转换过程中改写或者重写 ADS 寄存器,就中止当前的 A/D 转换而对由 ADS 寄存器重新指定的模
拟输入进行 A/D 转换。取消转换途中的数据。
⑥ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑦ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入硬件触发待机状态,并且 A/D 转换
器进入停止状态。当 ADCE 位为 “0” 时,即使输入硬件触发也被忽视,不开始 A/D转换。
图 10-25
硬件触发等待模式 (选择模式、连续转换模式)的运行时序例子
ŚሼADCEփ㖤“1”Ⱦ
ADCE
ŝ ൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
śӝ⭕⺢Ԭ䀜ਇȾ
䀜ਇᖻ
ᵰ⣬ᘷ у䀜ਇȾ
⺢Ԭ䀜ਇ
у䀜ਇȾ
൞A/D䖢ᦘ䗽ぁѣθş
㔏ADCSփ䠃ߏ“1”Ⱦ
䀜ਇᖻ
ᵰ⣬ᘷ
Ş ൞A/D䖢ᦘ䗽ぁѣθ᭯ߏ
ADS(ԄANI0ࡦANI1)Ⱦ
ADCS
ᮦᦤ0
(ANI0)
ADS
ᮦᦤ 1
(ANI1)
Ŝ A/D䖢ᦘ㔉ᶕ
ᔶခсж⅗䖢ᦘȾ
Ŝ
A/D䖢ᦘ⣬ᘷ
Š
൞A/D䖢ᦘ䗽ぁѣθ
ሼADCSփ㖤“0”Ⱦ
↘ڒ⣬ᘷ
ᮦᦤ 0
(ANI0)
ADCRȽ
ADCRH
ᮦᦤ 0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ
Ŝ
䖢ᦘȾ
ᮦᦤ0
(ANI0)
ᮦᦤ 0
(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ
Ŝ
䖢ᦘȾ
ᮦᦤ 0
(ANI0)
ᮦᦤ 1
(ANI1)
ᮦᦤ0
(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ
䖢ᦘȾ Ŝ
ᮦᦤ 1
(ANI1)
ᮦᦤ1
(ANI1)
ᮦᦤ 1
(ANI1)
ѣ↘䖢ᦘȾ
ᮦᦤ 1
(ANI1)
↘ڒ⣬ᘷ
ᮦᦤ 1
(ANI1)
INTAD
R01UH0629CJ0120 Rev.1.20
2019.06.28
266
R7F0C903-908
10.6.10
第 10 章 A/D 转换器
硬件触发等待模式 (选择模式、单次转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入硬件触发待机状态。
② 如果在硬件触发待机状态下输入硬件触发,就对由模拟输入通道指定寄存器 (ADS)指定的模拟输入
进行 A/D 转换。在输入硬件触发的同时自动将ADM0 寄存器的 ADCS 位置 “1”。
③ 如果 A/D 转换结束,就将转换结果保存到 A/D 转换结果寄存器 (ADCR、 ADCRH),并且产生 A/D 转
换结束中断请求信号 (INTAD)。
④ 在 A/D转换结束后, ADCS 位自动清 “0”, A/D转换器进入停止状态。
⑤ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而重新开始转换。取消转换途中的数据。
⑥ 如果在转换过程中改写或者重写 ADS 寄存器,就中止当前的 A/D 转换而对由 ADS 寄存器重新指定的模
拟输入进行 A/D 转换。取消转换途中的数据。
⑦ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑧ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入硬件触发待机状态,并且 A/D 转换
器进入停止状态。当 ADCE 位为 “0” 时,即使输入硬件触发也被忽视,不开始 A/D转换。
图 10-26
硬件触发等待模式 (选择模式、单次转换模式)的运行时序例子
ŚሼADCEփ㖤“1”Ⱦ
ADCE
śӝ⭕⺢Ԭ䀜ਇȾ
Ş ൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
ś
ś
ś
ś
䀜ਇᖻ у
ᵰ⣬ᘷ 䀜ਇȾ
⺢Ԭ䀜ਇ
䀜ਇᖻ
у䀜ਇȾ ᵰ⣬ᘷ
൞䖢ᦘ㔉ᶕθ ŝ
ADCSփ㠠ࣞ“0”Ⱦ
ŝ
ADCS
š ൞A/D䖢ᦘ䗽ぁѣθ
ሼADCSփ㖤“0”Ⱦ
ş ൞A/D䖢ᦘ䗽ぁѣθ᭯ߏ
ADS(ԄANI0ࡦANI1)Ⱦ
ᮦᦤ1
(ANI1)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ Ŝ
ᮦᦤ0
(ANI0)
ADS
Ŝ A/D䖢ᦘ㔉ᶕȾ
A/D䖢ᦘ⣬ᘷ
Š ൞A/D䖢ᦘ䗽ぁѣθ ŝ
㔏ADCSփ䠃ߏ“1”Ⱦ
ŝ
↘ڒ⣬ᘷ
ᮦᦤ 0
(ANI0)
ADCRǃ
ADCRH
↘ڒ
⣬ᘷ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ 0
(ANI0)
Ŝ
↘ڒ
⣬ᘷ
ᮦᦤ0
(ANI0)
ᮦᦤ0
(ANI0)
ᮦᦤ 1
(ANI1)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ Ŝ
↘ڒ
⣬ᘷ
ᮦᦤ1
(ANI1)
ᮦᦤ1
(ANI1)
ᮦᦤ 1
(ANI1)
ѣ↘䖢ᦘȾ
↘ڒ
⣬ᘷ
ᮦᦤ1
(ANI1)
↘ڒ⣬ᘷ
ᮦᦤ1
(ANI1)
INTAD
R01UH0629CJ0120 Rev.1.20
2019.06.28
267
R7F0C903-908
10.6.11
第 10 章 A/D 转换器
硬件触发等待模式 (扫描模式、连续转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入硬件触发待机状态。
② 如果在硬件触发待机状态下输入硬件触发,就对由模拟输入通道指定寄存器 (ADS)指定的扫描 0 ~
扫描 3 的 4 个模拟输入通道进行 A/D 转换。在输入硬件触发的同时自动将 ADM0 寄存器的 ADCS 位置
“1”。依次从扫描 0 指定的模拟输入通道进行 A/D 转换。
③ 连续进行 4 个模拟输入通道的 A/D转换。每当 A/D 转换结束时,就将转换结果保存到 A/D 转换结果寄存
器 (ADCR、 ADCRH),并且产生 A/D 转换结束中断请求信号 (INTAD)。在 4 个通道的 A/D 转换结
束后立即从所设通道自动开始下一次 A/D转换。
④ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而从最初的通道重新开始转换。取消转换途
中的数据。
⑤ 如果在转换过程中改写或者重写ADS 寄存器,就中止当前的 A/D 转换而从由 ADS 寄存器重新指定的最
初通道进行 A/D 转换。取消转换途中的数据。
⑥ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑦ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入硬件触发待机状态,并且 A/D 转
换器进入停止状态。当 ADCE 位为 “0” 时,即使输入硬件触发也被忽视,不开始 A/D 转换。
图 10-27
硬件触发等待模式 (扫描模式、连续转换模式)的运行时序例子
Ś ሼADCEփ㖤“1”Ⱦ
ADCE
śӝ⭕⺢Ԭ䀜ਇȾ
ŝ൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
䀜ਇᖻ у
ᵰ⣬ᘷ 䀜ਇȾ
⺢Ԭ䀜ਇ
䀜ਇᖻ
у䀜ਇȾ ᵰ⣬ᘷ
൞A/D䖢ᦘ䗽ぁѣθş
㔏ADCSփ䠃ߏ“1”Ⱦ
൞A/D䖢ᦘ䗽ぁѣθŠ
ሼADCSփ㖤“0”Ⱦ
ADCS
Ş൞A/D䖢ᦘ䗽ぁѣθ
᭯ߏADSȾ
ADS
ANI0ЊANI3
ANI1ЊANI3
A/D䖢ᦘ㔉ᶕθŜ
ᔶခсж⅗䖢ᦘȾ
A/D䖢ᦘ⣬ᘷ
ADCRȽ
ADCRH
↘ڒ⣬ᘷ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ0 ᮦᦤ1 ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ0 ᮦᦤ1 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
ᮦᦤ1
(ANI0) (ANI1) (ANI2) (PGAOUT) (ANI0) (ANI1) (ANI0) (ANI1) (ANI2) (PGAOUT) (ANI0) (ANI1) (ANI1) (ANI2) (ANI3) уᇐ( ٲANI1) (ANI2) (ANI3) (ANI1) (ANI2) (ANI3) уᇐ( ٲANI1)
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI2) (PGAOUT)
ᮦᦤ0(ANI0)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (PGAOUT)
ᮦᦤ0
(ANI0)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
ᮦᦤ1
(ANI1) (ANI2) (ANI3) уᇐ( ٲANI1)
ᮦᦤ2
(ANI2)
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI3)
ѣ↘
䖢ᦘȾ
↘ڒ⣬ᘷ
уᇐٲ
INTAD
䗉࠰4⅗ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
268
R7F0C903-908
10.6.12
第 10 章 A/D 转换器
硬件触发等待模式 (扫描模式、单次转换模式)
① 在停止状态下,将 A/D 转换器的模式寄存器 0 (ADM0)的 ADCE 位置 “1”,进入硬件触发待机状态。
② 如果在硬件触发待机状态下输入硬件触发,就对由模拟输入通道指定寄存器 (ADS)指定的扫描 0 ~
扫描 3 的 4 个模拟输入通道进行 A/D 转换。在输入硬件触发的同时自动将 ADM0 寄存器的 ADCS 位置
“1”。依次从扫描 0 指定的模拟输入通道进行 A/D 转换。
③ 连续进行 4 个模拟输入通道的 A/D转换。每当 A/D 转换结束时,就将转换结果保存到 A/D 转换结果寄存
器 (ADCR、 ADCRH),并且产生 A/D 转换结束中断请求信号 (INTAD)。
④ 在 A/D转换结束后, ADCS 位自动清 “0”, A/D转换器进入停止状态。
⑤ 如果在转换过程中输入硬件触发,就中止当前的 A/D 转换而从最初的通道重新开始转换。取消转换途
中的数据。
⑥ 如果在转换过程中改写或者重写ADS 寄存器,就中止当前的 A/D 转换而从由 ADS 寄存器重新指定的最
初通道进行 A/D 转换。取消转换途中的数据。
⑦ 如果在转换过程中给ADCS位重写“1”,就中止当前的A/D转换而重新开始转换。取消转换途中的数据。
⑧ 如果在转换过程中将 ADCS 位置 “0”,就中止当前的 A/D 转换而进入硬件触发待机状态,并且 A/D 转
换器进入停止状态。当 ADCE 位为 “0” 时,即使输入硬件触发也被忽视,不开始 A/D 转换。
图 10-28
硬件触发等待模式 (扫描模式、单次转换模式)的运行时序例子
Ś ሼADCEփ㖤“1”Ⱦ
ADCE
śӝ⭕⺢Ԭ䀜ਇȾ
ś
Ş൞A/D䖢ᦘ䗽ぁѣθ
ӝ⭕⺢Ԭ䀜ਇȾ
ś
ś
䀜ਇᖻ
ᵰ⣬ᘷ
⺢Ԭ䀜ਇ
൞䖢ᦘ㔉ᶕθŝ
ADCSփ㠠ࣞ“0”Ⱦ
у䀜ਇȾ 䀜ਇᖻ
ᵰ⣬ᘷ
ADCS
ADS
ŝ
ANI0ЊANI3
ADCRȽ
ADCRH
↘ڒ⣬ᘷ
Š൞A/D䖢ᦘ䗽ぁѣθš൞A/D䖢ᦘ䗽ぁѣθ
㔏ADCSփ䠃ߏ“1”ȾሼADCSփ㖤“0”Ⱦ
ŝ
ş൞A/D䖢ᦘ䗽ぁѣθ
᭯ߏADSȾ
ANI1ЊANI3
ŜA/D
䖢ᦘ
㔉ᶕȾ
A/D䖢ᦘ⣬ᘷ
у
䀜ਇȾ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI2) (ANI3)
ᮦᦤ0 ᮦᦤ1 ᮦᦤ2
(ANI0) (ANI1) (ANI2)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
↘ڒᮦᦤ0 ᮦᦤ1 ᮦᦤ0 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
⣬ᘷ (ANI0) (ANI1) (ANI0) (ANI1) (ANI2)(ANI3)
ᮦᦤ3
(ANI3)
ᮦᦤ0(ANI0)
ѣ↘䖢ᦘθ
䠃᯦ᔶခ䖢ᦘȾ
ᮦᦤ1 ᮦᦤ2
(ANI1) (ANI2)
↘ڒ
⣬ᘷ
ᮦᦤ0 ᮦᦤ1 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI0) (ANI1) (ANI1) (ANI2) (ANI3) уᇐٲ
ᮦᦤ3
(ANI3)
ᮦᦤ0
(ANI0)
ѣ↘䖢ᦘθ
ѣ↘䖢ᦘȾ
䠃᯦ᔶခ䖢ᦘȾ
Ŝ
ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI3)
↘ڒ
⣬ᘷ
ᮦᦤ1 ᮦᦤ2 ᮦᦤ1 ᮦᦤ2 ᮦᦤ3
(ANI1) (ANI2) (ANI1) (ANI2) (ANI3)
уᇐٲ
ᮦᦤ1(ANI1)
↘ڒ⣬ᘷ
ᮦᦤ2
(ANI2)
INTAD
䗉࠰4⅗ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗉࠰4⅗ѣᯣȾ
䗉࠰4⅗ѣᯣȾ
269
R7F0C903-908
10.7
第 10 章 A/D 转换器
A/D 转换器的设定流程图
各运行模式的 A/D 转换器的设定流程图如下所示。
10.7.1
软件触发模式的设定
图 10-29
软件触发模式的设定
䇴ᇐᔶခ
䇴ᇐPER0ᇺᆎಞ
ሼPER0ᇺᆎಞⲺADCENփ㖤“1”θᔶခᨆבᰬ䫕Ⱦ
䇴ᇐADPCᇺᆎಞ
ૂPMCxxᇺᆎಞ
ሼㄥਙ䇴ᇐѰ⁗ᤕ䗉ޛȾ
ANI0ЊANI3ᕋ㝐φ䙐䗽ADPCᇺᆎಞ䘑㺂䇴ᇐȾ
ANI16ЊANI19ᕋ㝐φ䙐䗽PMCxxᇺᆎಞ䘑㺂䇴ᇐȾ
䇴ᇐPMᇺᆎಞ
ሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅȾ
• 䇴ᇐADM0ᇺᆎಞ
• 䇴ᇐADM1ᇺᆎಞ
• 䇴ᇐADM2ᇺᆎಞ
• 䇴ᇐADUL/ADLLᇺᆎಞ
• 䇴ᇐADSᇺᆎಞ
(䇴ᇐⲺ亰ᓅу࠼ࢃ)
• ADM0ᇺᆎಞ
FR2ЊFR0փȽLV1փȽLV0փφ䇴ᇐA/D䖢ᦘᰬ䰪Ⱦ
ADMDփφ䘿⁗ᕅᢡᨅ⁗ᕅ
• ADM1ᇺᆎಞ
ADTMD1փȽADTMD0փφ䇴ᇐѰ䖥Ԭ䀜ਇ⁗ᕅȾ
ADSCMփφ䘔㔣䖢ᦘ⁗ᕅঋ⅗䖢ᦘ⁗ᕅ
• ADM2ᇺᆎಞ
ADREFP1փȽADREFP0փȽADREFMփφ䘿ะ⭫ুȾ
ADRCKփφԄAREA1ȽAREA3ᡌ㘻AREA2ѣ䘿ӝ⭕ѣᯣؗਭⲺA/D
䖢ᦘ㔉᷒∊䖹Ⲻٲ㤹പȾ
ADTYPփφ8փ10փ࠼䗞⦽
• ADUL/ADLLᇺᆎಞ
䇴ᇐA/D䖢ᦘ㔉᷒∊䖹Ⲻٲр䲆ૂٲс䲆ٲȾ
• ADSᇺᆎಞ
ADS4ЊADS0փφ䘿⁗ᤕ䗉ޛ䙐䚉Ⱦ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
൞ᴪ᭯ADREFP1փૂADREFP0փⲺٲᰬθ䴶㾷䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
Ⲻ䇗ᮦȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“1”Ƚ“0”ᰬθA=5μsȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“0”Ƚ“0”ᡌ㘻“0”Ƚ“1”ᰬθу䴶㾷ㅿᖻȾ
䇴ᇐADCEփ
ሼADM0ᇺᆎಞⲺADCEփ㖤“1”θ䘑ޛA/D䖢ᦘᖻᵰ⣬ᘷȾ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB
䙐䗽䖥Ԭ䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB(1μs)Ⲻ䇗ᮦȾ
䇴ᇐADCSփ
൞㔉ᶕะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦBⲺ䇗ᮦθሼADM0ᇺᆎಞⲺADCSփ㖤“1”θ
ᔶခA/D䖢ᦘȾ
ᔶခA/D䖢ᦘ
A/D䖢ᦘ䗽ぁѣ
A/D䖢ᦘ㔉ᶕ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCR
ᇺᆎಞૂADCRHᇺᆎಞ
注
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)⌞Ⱦ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCRᇺᆎಞૂADCRHᇺᆎಞȾ
根据 ADRCK 位和 ADUL/ADLL 寄存器的设定,有可能不产生中断信号。此时,不将结果保存到 ADCR 寄存器和
ADCRH 寄存器。
R01UH0629CJ0120 Rev.1.20
2019.06.28
270
R7F0C903-908
10.7.2
第 10 章 A/D 转换器
硬件触发无等待模式的设定
图 10-30
硬件触发无等待模式的设定
䇴ᇐᔶခ
䇴ᇐPER0ᇺᆎಞ
ሼPER0ᇺᆎಞⲺADCENփ㖤“1”θᔶခᨆבᰬ䫕Ⱦ
䇴ᇐADPCᇺᆎಞ
ૂPMCxxᇺᆎಞ
ሼㄥਙ䇴ᇐѰ⁗ᤕ䗉ޛȾ
ANI0ЊANI3ᕋ㝐φ䙐䗽ADPCᇺᆎಞ䘑㺂䇴ᇐȾ
ANI16ЊANI19ᕋ㝐φ䙐䗽PMCxxᇺᆎಞ䘑㺂䇴ᇐȾ
䇴ᇐPMᇺᆎಞ
ሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅȾ
• 䇴ᇐADM0ᇺᆎಞ
• 䇴ᇐADM1ᇺᆎಞ
• 䇴ᇐADM2ᇺᆎಞ
• 䇴ᇐADUL/ADLLᇺᆎಞ
• 䇴ᇐADSᇺᆎಞ
(䇴ᇐⲺ亰ᓅу࠼ࢃ)
• ADM0ᇺᆎಞ
FR2ЊFR0փȽLV1փȽLV0փφ䇴ᇐA/D䖢ᦘᰬ䰪Ⱦ
ADMDփφ䘿⁗ᕅᢡᨅ⁗ᕅ
• ADM1ᇺᆎಞ
ADTMD1փȽADTMD0փφ䇴ᇐѰ⺢Ԭ䀜ਇᰖㅿᖻ⁗ᕅȾ
ADSCMփφ䘔㔣䖢ᦘ⁗ᕅঋ⅗䖢ᦘ⁗ᕅ
• ADM2ᇺᆎಞ
ADREFP1փȽADREFP0փȽADREFMփφ䘿ะ⭫ুȾ
ADRCKփφԄAREA1ȽAREA3ᡌ㘻AREA2ѣ䘿ӝ⭕ѣᯣؗਭⲺA/D
䖢ᦘ㔉᷒∊䖹Ⲻٲ㤹പȾ
ADTYPփφ8փ10փ࠼䗞⦽
• ADUL/ADLLᇺᆎಞ
䇴ᇐA/D䖢ᦘ㔉᷒∊䖹Ⲻٲр䲆ૂٲс䲆ٲȾ
• ADSᇺᆎಞ
ADS4ЊADS0փφ䘿⁗ᤕ䗉ޛ䙐䚉Ⱦ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
൞ᴪ᭯ADREFP1փૂADREFP0փⲺٲᰬθ䴶㾷䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
Ⲻ䇗ᮦȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“1”Ƚ“0”ᰬθA=5μsȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“0”Ƚ“0”ᡌ㘻“0”Ƚ“1”ᰬθу䴶㾷ㅿᖻȾ
䇴ᇐADCEփ
ሼADM0ᇺᆎಞⲺADCEփ㖤“1”θ䘑ޛA/D䖢ᦘᖻᵰ⣬ᘷȾ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB
䙐䗽䖥Ԭ䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB(1μs)Ⲻ䇗ᮦȾ
䇴ᇐADCSփ
൞㔉ᶕะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦBⲺ䇗ᮦθሼADM0ᇺᆎಞⲺADCSփ㖤“1”θ
䘑⺢ޛԬ䀜ਇᖻᵰ⣬ᘷȾ
⺢Ԭ䀜ਇᖻᵰ⣬ᘷ
䙐䗽ӝ⭕⺢Ԭ䀜ਇ
ᔶခA/D䖢ᦘ
A/D䖢ᦘ䗽ぁѣ
A/D䖢ᦘ㔉ᶕ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCR
ᇺᆎಞૂADCRHᇺᆎಞ
注
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)⌞Ⱦ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCRᇺᆎಞૂADCRHᇺᆎಞȾ
根据 ADRCK 位和 ADUL/ADLL 寄存器的设定,有可能不产生中断信号。此时,不将结果保存到 ADCR 寄存器和
ADCRH 寄存器。
R01UH0629CJ0120 Rev.1.20
2019.06.28
271
R7F0C903-908
10.7.3
第 10 章 A/D 转换器
硬件触发等待模式的设定
图 10-31
硬件触发等待模式的设定
䇴ᇐᔶခ
䇴ᇐPER0ᇺᆎಞ
ሼPER0ᇺᆎಞⲺADCENփ㖤“1”θᔶခᨆבᰬ䫕Ⱦ
䇴ᇐADPCᇺᆎಞ
ૂPMCxxᇺᆎಞ
ሼㄥਙ䇴ᇐѰ⁗ᤕ䗉ޛȾ
ANI0ЊANI3ᕋ㝐φ䙐䗽ADPCᇺᆎಞ䘑㺂䇴ᇐȾ
ANI16ЊANI19ᕋ㝐φ䙐䗽PMCxxᇺᆎಞ䘑㺂䇴ᇐȾ
䇴ᇐPMᇺᆎಞ
• 䇴ᇐADM0ᇺᆎಞ
• 䇴ᇐADM1ᇺᆎಞ
• 䇴ᇐADM2ᇺᆎಞ
• 䇴ᇐADUL/ADLLᇺᆎಞ
• 䇴ᇐADSᇺᆎಞ
(䇴ᇐⲺ亰ᓅу࠼ࢃ)
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
䇴ᇐADCEփ
ሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅȾ
• ADM0ᇺᆎಞ
FR2ЊFR0փȽLV1փȽLV0փφ䇴ᇐA/D䖢ᦘᰬ䰪Ⱦ
ADMDփφ䘿⁗ᕅᢡᨅ⁗ᕅ
• ADM1ᇺᆎಞ
ADTMD1փȽADTMD0փφ䇴ᇐѰ⺢Ԭ䀜ਇㅿᖻ⁗ᕅȾ
ADSCMփφ䘔㔣䖢ᦘ⁗ᕅঋ⅗䖢ᦘ⁗ᕅ
ADTRS1փȽADTRS0փφ䘿⺢Ԭ䀜ਇؗਭȾ
• ADM2ᇺᆎಞ
ADREFP1փȽADREFP0փȽADREFMփφ䘿ะ⭫ুȾ
ADRCKփφԄAREA1ȽAREA3ᡌ㘻AREA2ѣ䘿ӝ⭕ѣᯣؗਭⲺA/D
䖢ᦘ㔉᷒∊䖹Ⲻٲ㤹പȾ
ADTYPփφ8փ10փ࠼䗞⦽
• ADUL/ADLLᇺᆎಞ
䇴ᇐA/D䖢ᦘ㔉᷒∊䖹Ⲻٲр䲆ૂٲс䲆ٲȾ
• ADSᇺᆎಞ
ADS4ЊADS0փφ䘿⁗ᤕ䗉ޛ䙐䚉Ⱦ
൞ᴪ᭯ADREFP1փૂADREFP0փⲺٲᰬθ䴶㾷䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
Ⲻ䇗ᮦȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“1”Ƚ“0”ᰬθA=5μsȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“0”Ƚ“0”ᡌ㘻“0”Ƚ“1”ᰬθу䴶㾷ㅿᖻȾ
ሼADM0ᇺᆎಞⲺADCEփ㖤“1”θ䘑ޛA/D䖢ᦘᖻᵰ⣬ᘷȾ
ӝ⭕⺢Ԭ䀜ਇ
A/D⭫Ⓠどᇐㅿᖻᰬ䰪
ᔶခA/D䖢ᦘ
㠠ࣞ䘑㺂A/D⭫Ⓠどᇐㅿᖻᰬ䰪Ⲻ䇗ᮦȾ
൞㔉ᶕA/D⭫Ⓠどᇐㅿᖻᰬ䰪Ⲻ䇗ᮦθᔶခA/D䖢ᦘȾ
A/D䖢ᦘ䗽ぁѣ
A/D䖢ᦘ㔉ᶕ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCR
ᇺᆎಞૂADCRHᇺᆎಞ
注
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)⌞Ⱦ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCRᇺᆎಞૂADCRHᇺᆎಞȾ
根据 ADRCK 位和 ADUL/ADLL 寄存器的设定,有可能不产生中断信号。此时,不将结果保存到 ADCR 寄存器和
ADCRH 寄存器。
R01UH0629CJ0120 Rev.1.20
2019.06.28
272
R7F0C903-908
10.7.4
第 10 章 A/D 转换器
选择内部基准电压时的设定 (以软件触发模式、单次转换模式为例)
图 10-32
选择内部基准电压时的设定
䇴ᇐᔶခ
䇴ᇐPER0ᇺᆎಞ
• 䇴ᇐADM0ᇺᆎಞ
• 䇴ᇐADM1ᇺᆎಞ
• 䇴ᇐADM2ᇺᆎಞ
• 䇴ᇐADUL/ADLLᇺᆎಞ
• 䇴ᇐADSᇺᆎಞ
(䇴ᇐⲺ亰ᓅу࠼ࢃ)
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
ㅢ2⅗
A/D䖢ᦘ
• ADM0ᇺᆎಞ
FR2ЊFR0փȽLV1փȽLV0փφ䇴ᇐA/D䖢ᦘᰬ䰪Ⱦ
ADMDփφ䇴ᇐѰ䘿⁗ᕅȾ
• ADM1ᇺᆎಞ
ADTMD1փȽADTMD0փφ䇴ᇐѰ䖥Ԭ䀜ਇ⁗ᕅȾ
ADSCMփφ䘔㔣䖢ᦘ⁗ᕅঋ⅗䖢ᦘ⁗ᕅ
• ADM2ᇺᆎಞ
ADREFP1փȽADREFP0փȽADREFMփφ䘿ะ⭫ুȾ
ADRCKփφԄAREA1ȽAREA3ᡌ㘻AREA2ѣ䘿ӝ⭕ѣᯣؗਭⲺA/D
䖢ᦘ㔉᷒∊䖹Ⲻٲ㤹പȾ
ADTYPփφ8փ10փ࠼䗞⦽
• ADUL/ADLLᇺᆎಞ
䇴ᇐA/D䖢ᦘ㔉᷒∊䖹Ⲻٲр䲆ૂٲс䲆ٲȾ
• ADSᇺᆎಞ
ADISSփȽADS4ЊADS0փφ䘿䜞ะ⭫ুȾ
൞ᴪ᭯ADREFP1փૂADREFP0փⲺٲᰬθ䴶㾷䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
Ⲻ䇗ᮦȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“0”Ƚ“0”ᡌ㘻“0”Ƚ“1”ᰬθу䴶㾷ㅿᖻȾ
⾷↘ሼADREFP1փȽADREFP0փ᭯Ѱ“1”Ƚ“0”Ⱦ
䇴ᇐADCEփ
ሼADM0ᇺᆎಞⲺADCEփ㖤“1”θ䘑ޛA/D䖢ᦘᖻᵰ⣬ᘷȾ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB
䙐䗽䖥Ԭ䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB(1μs)Ⲻ䇗ᮦȾ
䇴ᇐADCSփ
ㅢ1⅗
A/D䖢ᦘ
ሼPER0ᇺᆎಞⲺADCENփ㖤“1”θᔶခᨆבᰬ䫕Ⱦ
൞㔉ᶕะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦBⲺ䇗ᮦθሼADM0ᇺᆎಞⲺADCSփ㖤“1”θ
ᔶခA/D䖢ᦘȾ
ᔶခA/D䖢ᦘ
A/D䖢ᦘ㔉ᶕ
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)Ⱦ
у㜳ֵ⭞ሼADISSփ㖤“1”Ⲻㅢ1⅗A/D䖢ᦘ㔉᷒Ⱦ
䇴ᇐADCSփ
ሼADM0ᇺᆎಞⲺADCSփ㖤“1”θᔶခA/D䖢ᦘȾ
ᔶခA/D䖢ᦘ
A/D䖢ᦘ㔉ᶕ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCR
ᇺᆎಞૂADCRHᇺᆎಞ
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)⌞Ⱦ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCRᇺᆎಞૂADCRHᇺᆎಞȾ
注
根据 ADRCK 位和 ADUL/ADLL 寄存器的设定,有可能不产生中断信号。此时,不将结果保存到 ADCR 寄存器和
ADCRH 寄存器。
注意
只有在 HS (高速主)模式中才能选择。
R01UH0629CJ0120 Rev.1.20
2019.06.28
273
R7F0C903-908
10.7.5
第 10 章 A/D 转换器
测试模式的设定
图 10-33
测试模式的设定
䇴ᇐᔶခ
䇴ᇐPER0ᇺᆎಞ
ሼPER0ᇺᆎಞⲺADCENփ㖤“1”θᔶခᨆבᰬ䫕Ⱦ
• 䇴ᇐADM0ᇺᆎಞ
• 䇴ᇐADM1ᇺᆎಞ
• 䇴ᇐADM2ᇺᆎಞ
• 䇴ᇐADUL/ADLLᇺᆎಞ
• 䇴ᇐADSᇺᆎಞ
• 䇴ᇐADTESᇺᆎಞ
(䇴ᇐⲺ亰ᓅу࠼ࢃ)
• ADM0ᇺᆎಞ
FR2ЊFR0փȽLV1փȽLV0փφ䇴ᇐA/D䖢ᦘᰬ䰪Ⱦ
ADMDփφ䇴ᇐѰ䘿⁗ᕅȾ
• ADM1ᇺᆎಞ
ADTMD1փȽADTMD0փφ䇴ᇐѰ䖥Ԭ䀜ਇ⁗ᕅȾ
ADSCMփφ䇴ᇐѰঋ⅗䖢ᦘ⁗ᕅȾ
• ADM2ᇺᆎಞ
ADREFP1փȽADREFP0փȽADREFMփφ䘿ะ⭫ুȾ
ADRCKփφሼӝ⭕ѣᯣؗਭⲺA/D䖢ᦘ㔉᷒∊䖹Ⲻٲ㤹പ䇴ᇐѰAREA2Ⱦ
ADTYPփφ䇴ᇐѰ10փ࠼䗞⦽Ⱦ
• ADUL/ADLLᇺᆎಞ
䇴ᇐѰADUL=FFHȽADLL=00H(ࡓခ)ٲȾ
• ADSᇺᆎಞ
ADS4ЊADS0փφ䇴ᇐѰANI0Ⱦ
• ADTESᇺᆎಞ
ADTES1փȽADTES0փφAVREFM/AVREFP
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
൞ᴪ᭯ADREFP1փૂADREFP0փⲺٲᰬθ䴶㾷䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
Ⲻ䇗ᮦȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“1”Ƚ“0”ᰬθA=5μsȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“0”Ƚ“0”ᡌ㘻“0”Ƚ“1”ᰬθу䴶㾷ㅿᖻȾ
䇴ᇐADCEփ
ሼADM0ᇺᆎಞⲺADCEփ㖤“1”θ䘑ޛA/D䖢ᦘᖻᵰ⣬ᘷȾ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB
䙐䗽䖥Ԭ䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦB(1μs)Ⲻ䇗ᮦȾ
䇴ᇐADCSփ
൞㔉ᶕะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦBⲺ䇗ᮦθሼADM0ᇺᆎಞⲺADCSփ㖤“1”θ
ᔶခA/D䖢ᦘȾ
ᔶခA/D䖢ᦘ
A/D䖢ᦘ䗽ぁѣ
A/D䖢ᦘ㔉ᶕ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCR
ᇺᆎಞૂADCRHᇺᆎಞ
注
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)⌞Ⱦ
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCRᇺᆎಞૂADCRHᇺᆎಞȾ
根据 ADRCK 位和 ADUL/ADLL 寄存器的设定,有可能不产生中断信号。此时,不将结果保存到 ADCR 寄存器和
ADCRH 寄存器。
注意
有关 A/D 转换器的测试方法,请参照 “20.3.8 A/D 测试功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
274
R7F0C903-908
10.8
第 10 章 A/D 转换器
SNOOZE 模式功能
这是在 STOP 模式中通过输入硬件触发进行 A/D 转换的模式。通常,在 STOP 模式中停止 A/D 转换,但是
如果使用 SNOOZE 模式功能,就能在 CPU 不运行的状态下进行 A/D 转换,减小工作电流。
在 SNOOZE 模式中,如果通过 ADUL 寄存器和 ADLL 寄存器指定转换结果的范围,就能每隔一段时间判
断 A/D 转换结果。从而能判断电源电压监视或者通过 A/D 输入进行的键输入。
在 SNOOZE 模式中,只能使用以下 2 种转换模式:
注意
•
硬件触发等待模式 (选择模式和单次转换模式)
•
硬件触发等待模式 (扫描模式和单次转换模式)
只有在选择高速内部振荡器时钟作为 fCLK 时才能设定 SNOOZE 模式。
图 10-34
12փ䰪䳊ᇐᰬಞ
使用 SNOOZE 模式功能时的框图
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
⺢Ԭ䀜ਇⲺ䗉ޛ
ᰬ䫕ਇ⭕⭫䐥
A/D䖢ᦘಞ
A/D䖢ᦘ㔉ᶕѣᯣ
䈭≸ؗਭ⌞1(INTAD)
儎䙕䜞ᥥ㦗ಞᰬ䫕
当使用 SNOOZE 模式功能时,在转移到 STOP 模式前进行各寄存器的初始设定(参照 “10.7.3 硬件触发等
待模式的设定 ” 注 2)。在要转移到 STOP 模式前,将 A/D 转换器的模式寄存器 2 (ADM2)的 bit2 (AWC)置
“1”。在初始设定结束后,将 A/D 转换器的模式寄存器 0 (ADM0)的 bit0 (ADCE)置 “1”。
如果在转移到 STOP 模式后输入硬件触发,就给 A/D 转换器提供高速内部振荡器时钟。在提供高速内部振
荡器时钟后,自动对 A/D 电源的稳定等待时间进行计数,开始 A/D 转换。
A/D 转换结束后的 SNOOZE 模式的运行因是否产生中断信号而不同注 1。
注
1. 根据 A/D 转换结果比较功能的设定 (ADRCK 位、 ADUL/ADLL 寄存器),有可能不产生中断请求信号。
2. 必须将 ADM1 寄存器置 “E2H” 或者 “E3H”。
备注
硬件触发为 INTIT。
必须通过 A/D转换器的模式寄存器1 (ADM1)设定硬件触发。
R01UH0629CJ0120 Rev.1.20
2019.06.28
275
R7F0C903-908
(1)
第 10 章 A/D 转换器
在 A/D 转换结束后发生中断的情况
如果 A/D 转换结果的值在 A/D 转换结果比较功能 (通过 ADRCK 位和 ADUL/ADLL 寄存器进行设定)的
设定值范围内,就产生 A/D 转换结束中断请求信号 (INTAD)。
•
选择模式
如果在 A/D 转换结束后产生 A/D 转换结束中断请求信号 (INTAD), A/D 转换器就从 SNOOZE 模式转
移到通常运行模式。在此,必须清除 A/D 转换器的模式寄存器 2 (ADM2)的 bit2 (AWC=0:解除
SNOOZE 模式)。如果 AWC 位保持 “1” 的状态,就无法正常开始 A/D 转换,而与其后的 SNOOZE 模式
和通常运行模式无关。
•
扫描模式
在 4 个通道的 A/D 转换过程中只要产生 1 次 A/D 转换结束中断请求信号 (INTAD), A/D 转换器就从
SNOOZE模式转移到通常运行模式。在此,必须清除A/D转换器模式寄存器2(ADM2)的bit2(AWC=0:
解除 SNOOZE 模式)。如果 AWC 位保持 “1” 的状态,就无法正常开始 A/D 转换,而与其后的 SNOOZE
模式和通常运行模式无关。
图 10-35
在 A/D 转换结束后发生中断时的运行例子 (扫描模式)
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
ᰬ䫕䈭≸ؗਭ
ؓᤷ儎⭫ᒩȾ
ADCS
䖢ᦘ䙐䚉
䙐䚉1
䙐䚉2
䙐䚉3
䙐䚉4
ѣᯣؗਭ
(INTAD)
൞ԱᝅжѠ䙐䚉䖢ᦘ
㔉ᶕᰬθ䜳ӝ⭕ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
276
R7F0C903-908
(2)
第 10 章 A/D 转换器
在 A/D 转换结束后不发生中断的情况
如果 A/D 转换结果的值不在 A/D 转换结果比较功能 (通过 ADRCK 位和 ADUL/ADLL 寄存器进行设定)
的设定值范围内,就不产生 A/D 转换结束中断请求信号 (INTAD)。
•
选择模式
如果不产生 A/D 转换结束中断请求信号 (INTAD),时钟请求信号 (内部信号)就在 A/D 转换结束后
自动变为低电平,并且停止提供高速内部振荡器时钟。此后,如果输入硬件触发,就再次在 SNOOZE
模式中进行 A/D 转换。
•
扫描模式
如果在 4 个通道的 A/D 转换过程中 1 次也不产生 A/D转换结束中断请求信号 (INTAD),时钟请求信号
(内部信号)就在4 个通道的 A/D转换结束后自动变为低电平,并且停止提供高速内部振荡器时钟。此
后,如果输入硬件触发,就再次在 SNOOZE 模式中进行 A/D转换。
图 10-36
在 A/D 转换结束后不发生中断时的运行例子 (扫描模式)
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
ᰬ䫕䈭≸ؗਭ
Ѱք⭫ᒩȾ
ADCS
䖢ᦘ䙐䚉
䙐䚉1
䙐䚉2
䙐䚉3
䙐䚉4
ѣᯣؗਭ
(INTAD)
൞ԱᝅжѠ䙐䚉䖢ᦘ㔉ᶕ
ᰬθ䜳уӝ⭕ѣᯣȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
277
R7F0C903-908
第 10 章 A/D 转换器
图 10-37
SNOOZE 模式的设定流程
䇴ᇐᔶခ
䇴ᇐPER0ᇺᆎಞ
ሼPER0ᇺᆎಞⲺADCENփ㖤“1”θᔶခᨆבᰬ䫕Ⱦ
䇴ᇐADPCᇺᆎಞૂPMCxxᇺᆎಞ
ሼㄥਙ䇴ᇐѰ⁗ᤕ䗉ޛȾ
ANI0ЊANI3ᕋ㝐φ䙐䗽ADPCᇺᆎಞ䘑㺂䇴ᇐȾ
ANI16ЊANI19ᕋ㝐φ䙐䗽PMCxxᇺᆎಞ䘑㺂䇴ᇐȾ
䇴ᇐPMxᇺᆎಞ
ሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅȾ
• ADM0ᇺᆎಞ
FR2ЊFR0փȽLV1փȽLV0փφ䇴ᇐA/D䖢ᦘᰬ䰪Ⱦ
ADMDփφ䘿⁗ᕅᢡᨅ⁗ᕅ
• 䇴ᇐADM0ᇺᆎಞ
• 䇴ᇐADM1ᇺᆎಞ
• 䇴ᇐADM2ᇺᆎಞ
• 䇴ᇐADUL/ADLLᇺᆎಞ
• 䇴ᇐADSᇺᆎಞ
• ADM1ᇺᆎಞ
ADTMD1փȽADTMD0փφ䇴ᇐѰ⺢Ԭ䀜ਇㅿᖻ⁗ᕅȾ
ADSCMփφঋ⅗䖢ᦘ⁗ᕅ
ADTRS1փȽADTRS0փφ䘿⺢Ԭ䀜ਇؗਭȾ
(䇴ᇐⲺ亰ᓅу࠼ࢃ)
䙐ᑮ䘆㺂
• ADM2ᇺᆎಞ
ADREFP1փȽADREFP0փȽADREFMփφ䘿ะ⭫ুȾ
ADRCKփφԄAREA1ȽAREA3ᡌ㘻AREA2ѣ䘿ӝ⭕ѣᯣؗਭⲺA/D
䖢ᦘ㔉᷒∊䖹Ⲻٲ㤹പȾ
ADTYPփφ8փ10փ࠼䗞⦽
• ADUL/ADLLᇺᆎಞ
䇴ᇐA/D䖢ᦘ㔉᷒∊䖹Ⲻٲр䲆ૂٲс䲆ٲȾ
• ADSᇺᆎಞ
ADS4ЊADS0փφ䘿⁗ᤕ䗉ޛ䙐䚉Ⱦ
ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
൞ᴪ᭯ADREFP1փૂADREFP0փⲺٲᰬθ䴶㾷䘑㺂ะ⭫ুどᇐㅿᖻᰬ䰪䇗ᮦA
Ⲻ䇗ᮦȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“1”Ƚ“0”ᰬθA=5μsȾ
ᖉሼADREFP1փȽADREFP0փ᭯Ѱ“0”Ƚ“0”ᡌ㘻“0”Ƚ“1”ᰬθу䴶㾷ㅿᖻȾ
൞ሼ㾷䖢〱ࡦSTOP⁗ᕅࢃθሼADM2ᇺᆎಞⲺAWCփ㖤“1”ᒬъ䇴ᇐݷ䇮
SNOOZE⁗ᕅȾ
AWC = 1
䇴ᇐADCEփ
ሼADM0ᇺᆎಞⲺADCEփ㖤“1”θ䘑ޛA/D䖢ᦘᖻᵰ⣬ᘷȾ
䖢〱ࡦSTOP⁗ᕅ
STOP
⁗ᕅ
ӝ⭕⺢Ԭ䀜ਇ
൞ӝ⭕⺢Ԭ䀜ਇ㠠ࣞ䘑㺂A/D⭫Ⓠどᇐㅿᖻᰬ䰪Ⲻ䇗ᮦθ
❬䙐䗽SNOOZE⁗ᕅᔶခA/D䖢ᦘȾ
A/D䖢ᦘ䗽ぁѣ
A/D䖢ᦘ㔉ᶕ
SNOOZE
⁗ᕅ
SNOOZE⁗ᕅѣⲺᰬ䫕
䈭≸ؗਭ(䜞ؗਭ)
㠠ࣞѰք⭫ᒩ
ӝ⭕A/D䖢ᦘ㔉ᶕѣᯣ(INTAD)⌞1Ⱦ
No
ӝ⭕INTAD?
Yes
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCR
ᇺᆎಞૂADCRHᇺᆎಞ
䙐ᑮ䘆㺂
AWC = 0
ሼ䖢ᦘ㔉᷒ؓᆎࡦADCRᇺᆎಞૂADCRHᇺᆎಞȾ
ሼADM2ᇺᆎಞⲺAWCփ“0”θ䀙䲚SNOOZE⁗ᕅ⌞2Ⱦ
䙐ᑮ䘆㺂
注
1. 如果根据 ADRCK 位和 ADUL/ADLL 寄存器的设定不产生 A/D 转换结束中断请求信号(INTAD),就不将结果保存
到 ADCR 寄存器和 ADCRH 寄存器,再次转移到 STOP 模式。此后,如果输入硬件触发,就再次在 SNOOZE 模
式中进行 A/D 转换。
2. 如果 AWC 位保持 “1” 的状态,就无法正常开始 A/D 转换,而与其后的 SNOOZE 模式和通常运行模式无关。必须
将 AWC 位置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
278
R7F0C903-908
10.9
第 10 章 A/D 转换器
A/D 转换器特性表的阅读方法
以下说明 A/D 转换器特有的专业术语。
(1)
分辨率
分辨率是能分辨的最小模拟输入电压。也就是说,数字输出的每 1 位与模拟输入电压的比率称为 1 LSB(Least
Significant Bit)。将对 1 LSB 满刻度的比率表示为 %FSR (Full Scale Range)。
当分辨率为 10 位时,
1 LSB=1/210=1/1024
=0.098%FSR
精度与分辨率无关而取决于综合误差。
(2)
综合误差
综合误差是指实际测量值和理论值的最大差值,是将零刻度误差、满刻度误差、积分线性误差、微分线性
误差以及这些组合所产生的误差综合起来的误差。
特性表中的综合误差不包含量化误差。
(3)
量化误差
在将模拟值转换为数字值时,必然会出现 ±1/2LSB 的误差。A/D 转换器将 ±1/2 LSB 范围内的模拟输入电压
转换为相同的数字码,因此不能避免量化误差。
特性表中的综合误差、零刻度误差、满刻度误差、积分线性误差和微分线性误差不包含量化误差。
图 10-38
图 10-39
综合误差
1······1
量化误差
1······1
㔲ਾ䈥ᐤ
ᮦᆍ䗉࠰
ᮦᆍ䗉࠰
⨼ᜩ㓵
䠅ौ䈥ᐤ
1/2LSB
1/2LSB
0······0
AVREF
0
⁗ᤕ䗉ޛ
(4)
0······0
0
⁗ᤕ䗉ޛ
AVREF
零刻度误差
零刻度误差是指数字输出从 0……000 变为 0……001 时的模拟输入电压的实际测量值和理论值 (1/2 LSB)
的差。如果实际测量值大于理论值,零刻度误差就是指数字输出从 0……001 变为 0……010 时的模拟输入电压
的实际测量值和理论值 (3/2 LSB)的差。
R01UH0629CJ0120 Rev.1.20
2019.06.28
279
R7F0C903-908
(5)
第 10 章 A/D 转换器
满刻度误差
满刻度误差是指数字输出从 1……110 变为 1……111 时的模拟输入电压的实际测量值和理论值 (满刻度 –3/2
LSB)的差。
(6)
积分线性误差
积分线性误差是指转换特性从理想线性关系偏离的程度,是零刻度误差和满刻度误差为 0 时的实际测量值
和理想直线的差的最大值。
(7)
微分线性误差
微分线性误差是指在输出代码的理想宽度为 1LSB 时某个代码输出宽度的实际测量值和理想值的差值。
图 10-40
图 10-41
零刻度误差
满刻度误差
111
┗ࡱᓜ䈥ᐤ
011
ᮦᆍ䗉࠰(ք3փ)
ᮦᆍ䗉࠰(ք3փ)
⨼ᜩ㓵
010
001
000
1 AVREF 2 AVREF 3 AVREF
1024
1024
1024
110
101
䴬ࡱᓜ䈥ᐤ
0
111
AVREF
⨼ᜩ㓵
000
0
1021AVREF 1022AVREF 1023AVREF
1024
1024
1024
⁗ᤕ䗉(ޛV)
图 10-42
AVREF
⁗ᤕ䗉(ޛV)
图 10-43
积分线性误差
微分线性误差
1······1
1······1
⨼ᜩᇳᓜ1LS B
ᮦᆍ䗉࠰
ᮦᆍ䗉࠰
⨼ᜩ㓵
ᗤ࠼㓵ᙝ䈥ᐤ
〥࠼㓵ᙝ䈥ᐤ
0······0
0
⁗ᤕ䗉ޛ
R01UH0629CJ0120 Rev.1.20
2019.06.28
AVREF
0······0
0
⁗ᤕ䗉ޛ
AVREF
280
R7F0C903-908
(8)
第 10 章 A/D 转换器
转换时间
转换时间是指从开始采样到取得数字输出的时间。
特性表中的转换时间包含采样时间。
(9)
采样时间
采样时间是指为了将模拟电压取入采样 & 保持电路而使模拟开关 ON 的时间。
䟽ṭᰬ䰪
䖢ᦘᰬ䰪
10.10 A/D 转换器的注意事项
(1)
有关 STOP 模式中的工作电流
要转移到 STOP 模式时,必须在停止 A/D 转换器(将 A/D 转换器的模式寄存器 0(ADM0)的 bit7(ADCS)
置 “0”)后进行。此时,还能通过将 ADM0 寄存器的 bit0 (ADCE)置 “0” 来减小工作电流。
要从待机状态重新运行时,必须在将中断请求标志寄存器 1H(IF1H)的 bit0(ADIF)清 “0” 后开始运行。
(2)
有关 ANI0 ~ ANI3 引脚和 ANI16 ~ ANI19 引脚的输入范围
ANI0 ~ ANI3 引脚和 ANI16 ~ ANI19 引脚的输入电压必须满足规格范围。如果输入大于 VDD 和 AVREFP
或者小于 VSS 和 AVREFM (即使在绝对最大额定范围内)的电压,该通道的转换值就为不定值,并且还可能影
响其他通道的转换值。
当选择内部基准电压 (1.45V)作为 A/D 转换器的正 (+)基准电压源时,不能给 ADS 寄存器选择的引脚输
入大于内部基准电压 (1.45V)的电压。但是,能给 ADS 寄存器没有选择的引脚输入大于内部基准电压的电压
(1.45V)。
注意
(3)
只有在 HS (高速主)模式中才能选择内部基准电压 (1.45V)。
有关竞争
① 转换结束时的 A/D 转换结果寄存器 (ADCR、 ADCRH)的写操作与ADCR 寄存器和 ADCRH 寄存器的
指令读操作的竞争
优先读ADCR寄存器和ADCRH寄存器。在读后,将新的转换结果写到ADCR寄存器和ADCRH寄存器。
② 转换结束时的 ADCR 寄存器和 ADCRH 寄存器的写操作与 A/D 转换器的模式寄存器 0 (ADM0)、模拟
输入通道指定寄存器 (ADS)或者 A/D端口配置寄存器 (ADPC)的写操作的竞争
优先写 ADM0、ADS、ADPC 寄存器。不写 ADCR 寄存器和 ADCRH 寄存器,也不产生转换结束中断信
号 (INTAD)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
281
R7F0C903-908
(4)
第 10 章 A/D 转换器
有关噪声对策
为了保持 10 位分辨率,需要注意输入到 AVREFP、 VDD、 ANI0 ~ ANI3、 ANI16 ~ ANI19 引脚的噪声。
① 必须以最短的距离并且用较粗的布线连接电容器,连接电源的电容器 (0.01μF 左右)必须使用等效电
阻小并且频率响应好的电容器。
② 模拟输入源的输出阻抗越高影响就越大,因此为了降低噪声,建议按照图 10-44 的方法外接电容器。
③ 不能在转换过程中切换其他引脚。
④ 如果在转换开始后立即设定为 HALT 模式,就会提高精度。
图 10-44
模拟输入引脚的处理
ᖉᴿਥ㜳䗉ޛཝӄAVREFPૂVDDᡌ㘻
ቅӄAVREFMૂVSSⲺಠ༦ᰬθᗻ亱⭞
VFٲቅⲺ(уཝӄ0.3V)ӂᶷ㇗䘑㺂䫩
փȾ
ะ⭫ু䗉ޛ
AVREFPᡌ㘻VDD
ANI0ЊANI3ȽANI16ЊANI19
C= 10pFЊ0.1μF
(5)
模拟输入 (ANIn)引脚
① 模拟输入 (ANI0 ~ ANI3)引脚和输入端口 (P20 ~ P23)引脚复用。
要选择 ANI0 ~ ANI3 引脚中的任意引脚进行 A/D 转换时,不能在转换过程中更改 P20 ~ P23 的输出值。
否则,可能降低转换精度。
② 如果将正在进行 A/D转换的引脚的相邻引脚用作数字输入 / 输出端口,就可能因耦合噪声而取得与期待
值不同的 A/D 转换值。因此,在 A/D 转换过程中,不能输入或者输出类似数字信号的有急剧变化的脉
冲。
(6)
有关模拟输入 (ANIn)引脚的输入阻抗
此 A/D 转换器在采样时间内给内部的采样电容充电并且进行采样。
因此,在不采样时只有漏电流流过,而在采样时还有电容充电的电流流过。所以输入阻抗根据是否采样而
发生变化。
但是,为了充分地进行采样,必须将模拟输入源的输出阻抗保持在 1kΩ 以下。建议在无法将输出阻抗保持在
1kΩ 以下时延长采样时间或者给 ANI0 ~ ANI3 引脚和 ANI16 ~ ANI19 引脚连接 0.1μF 左右的电容器 (参照图
10-44)。另外,如果在转换过程中将 ADCS 位置 “0” 或者重新开始转换,采样电容器的充电电压就不稳定。因
此,当将 ADCS 位置 “0” 时,下一次转换就从不稳定状态开始充电;当重新转换时,该转换就从不稳定状态开
始充电。为了充分地进行充电,与模拟信号变化的大小无关,必须降低模拟输入源的输出阻抗或者确保充分的
采样时间。
R01UH0629CJ0120 Rev.1.20
2019.06.28
282
R7F0C903-908
(7)
第 10 章 A/D 转换器
有关中断请求标志 (ADIF)
即使更改模拟输入通道指定寄存器 (ADS),也不将中断请求标志 (ADIF)清 “0”。
因此,如果在 A/D 转换过程中更改模拟输入引脚,就可能在即将改写 ADS 寄存器前,更改前的模拟输入的
A/D 转换结果和 ADIF 标志被设定。必须注意:如果在改写 ADS 寄存器后立即读 ADIF 标志,尽管转换后的模
拟输入的 A/D 转换还未结束,也会将 ADIF 标志置位。
另外,在暂停后重新开始 A/D 转换时,必须在重新开始前将 ADIF 标志清 “0”。
图 10-45
A/D 转换结束中断请求的产生时序
᭯ߏADSȾ
(ᔶခANIn䖢ᦘ)
A/D䖢ᦘ
ANIn
᭯ߏADSȾ
(ᔶခANIm䖢ᦘ)
ANIn
ADCR
ANIn
ᐨሼADIF㖤փθռᱥ
ANIm䖢ᦘ䘎ᵠ㔉ᶕȾ
ANIm
ANIn
ANIm
ANIm
ANIm
ADIF
(8)
有关 A/D 转换开始后的初次转换结果
在软件触发模式或者硬件触发无等待模式中,如果在将 ADCE 位置 “1” 后的 1μs 内将 ADCS 位置 “1”,开
始 A/D 转换后的初次 A/D 转换值就可能不满足额定值。必须采取轮询 A/D 转换结束中断请求 (INTAD)并且
取消初次的转换结果等对策。
(9)
有关 A/D 转换结果寄存器 (ADCR、 ADCRH)的读操作
当写 A/D 转换器的模式寄存器 0 (ADM0)、模拟输入通道指定寄存器 (ADS)、 A/D 端口配置寄存器
(ADPC)和端口模式控制寄存器 (PMCxx)时, ADCR 寄存器和 ADCRH 寄存器的内容可能不定。必须在转
换结束后并且在写 ADM0、ADS、ADPC、PMCxx 寄存器前读转换结果。否则,就可能读不到正确的转换结果。
R01UH0629CJ0120 Rev.1.20
2019.06.28
283
R7F0C903-908
第 10 章 A/D 转换器
(10) 有关内部等效电路
模拟输入部的等效电路如下所示。
图 10-46
ANIn 引脚的内部等效电路
R1
ANIn
C1
表 10-4
等效电路的各电阻和电容值 (参考值)
AVREFP、 VDD
ANIn 引脚
R1[kΩ]
C1[pF]
C2[pF]
3.6V ≤ VDD ≤ 5.5V
ANI0 ~ ANI3
14
8
2.5
ANI16 ~ ANI19
18
8
7.0
ANI0 ~ ANI3
39
8
2.5
ANI16 ~ ANI19
53
8
7.0
ANI0 ~ ANI3
231
8
2.5
2.7V ≤ VDD < 3.6V
1.8V ≤ VDD < 2.7V
1.6V ≤ VDD < 1.8V
备注
C2
ANI16 ~ ANI19
321
8
7.0
ANI0 ~ ANI3
632
8
2.5
ANI16 ~ ANI19
902
8
7.0
表 10-4 的各电阻和电容值不是保证值。
(11) 有关 A/D 转换器的运行开始
必须在 AVREFP 和 VDD 的电压稳定后开始 A/D 转换器的运行。
R01UH0629CJ0120 Rev.1.20
2019.06.28
284
R7F0C903-908
第 11 章 串行阵列单元
第 11 章
串行阵列单元
串行阵列单元的1个单元最多有4个串行通道,各通道能实现3线串行(CSI)、UART和简易I2C的通信功能。
本产品支持的各通道的功能分配如下:
单元
通道
用作 CSI
用作 UART
用作简易 I2C
0
0
CSI00
UART0
IIC00
1
—
2
—
3
CSI11
0
CSI20
1
—
1
—
UART1
—
IIC11
UART2
IIC20
—
在单元 0 的通道 0 和通道 1 使用 UART0 时,不能使用 CSI00,但是能使用 UART1。
R01UH0629CJ0120 Rev.1.20
2019.06.28
285
R7F0C903-908
11.1
第 11 章 串行阵列单元
串行阵列单元的功能
本产品支持的各串行接口的特征如下所示。
11.1.1
3 线串行 I/O (CSI00、 CSI11、 CSI20)
与主控设备输出的串行时钟 (SCK)同步进行数据的发送和接收。
这是使用 1 条串行时钟 (SCK)、 1 条发送串行数据 (SO)和 1 条接收串行数据 (SI)共 3 条通信线进行
通信的时钟同步通信功能。
有关具体的设定例子,请参照 “11.5 3 线串行 I/O (CSI00、 CSI11、 CSI20)通信的运行 ”。
[ 数据的发送和接收 ]
•
7 位或者 8 位的数据长度
•
发送和接收数据的相位控制
•
MSB/LSB 优先的选择
[ 时钟控制 ]
•
主控或者从属的选择
•
输入 / 输出时钟的相位控制
•
设定由预分频器和通道内部计数器产生的传送周期。
•
最大传送速率注
主控通信:Max. fCLK/2 (只限于 CSI00)
Max. fCLK/4
从属通信:Max. fMCK/6
[ 中断功能 ]
•
传送结束中断、缓冲器空中断
[ 错误检测标志 ]
•
溢出错误
以下通道的 CSI 支持 SNOOZE 模式。 SNOOZE 模式功能是指:如果在 STOP 模式的状态下检测到 SCK 的
输入,就不需要 CPU 运行而接收数据。只有支持异步接收的以下 CSI 才能设定 SNOOZE 模式。
•
注
本产品:CSI00
必须在满足 SCK 周期时间(tKCY)特性的范围内使用。详细内容请参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
286
R7F0C903-908
11.1.2
第 11 章 串行阵列单元
UART (UART0 ~ UART2)
这是通过串行数据发送 (TxD)和串行数据接收 (RxD)共 2 条线进行异步通信的功能。使用这 2 条通信
线,按数据帧 (由起始位、数据、奇偶校验位和停止位构成)与其他通信方进行异步 (使用内部波特率)的数
据发送和接收。能通过使用发送专用(偶数通道)和接收专用(奇数通道)共 2 个通道来实现全双工 UART 通信。
有关具体的设定例子,请参照 “11.6 UART (UART0 ~ UART2)通信的运行 ”。
[ 数据的发送和接收 ]
•
7 位、 8 位或者 9 位的数据长度注
•
MSB/LSB 优先的选择
•
发送和接收数据的电平设定、反相的选择
•
奇偶校验位的附加、奇偶校验功能
•
停止位的附加
[ 中断功能 ]
•
传送结束中断、缓冲器空中断
•
帧错误、奇偶校验错误或者溢出错误引起的错误中断
[ 错误检测标志 ]
•
帧错误、奇偶校验错误、溢出错误
以下通道的 UART 接收支持 SNOOZE 模式。 SNOOZE 模式功能是指:如果在 STOP 模式的状态下检测到
RxD的输入,就不需要CPU运行而接收数据。只有在接收时支持波特率调整功能的以下UART才能设定SNOOZE
模式。
•
注
本产品:UART0
只有以下的 UART 支持 9 位数据长度。
• 本产品:UART0
R01UH0629CJ0120 Rev.1.20
2019.06.28
287
R7F0C903-908
第 11 章 串行阵列单元
11.1.3 简易 I2C (IIC00、 IIC11、 IIC20)
这是通过串行时钟 (SCL)和串行数据 (SDA)共 2 条线与多个设备进行时钟同步通信的功能。因为此简
易
I2C
是为了与 EEPROM、闪存、 A/D 转换器等设备进行单通信而设计的,所以只用作主控设备。
对于开始条件和停止条件,必须遵守 AC 规格,在操作控制寄存器的同时通过软件进行处理。
有关具体的设定例子,请参照 “11.7 简易 I2C (IIC00、 IIC11、 IIC20)通信的运行 ”。
[ 数据的发送和接收 ]
•
主控发送、主控接收 (只限于单主控的主控功能)
•
ACK 输出功能注、 ACK 检测功能
•
8 位数据长度 (在发送地址时,用高 7 位指定地址,用最低位进行R/W 控制)
•
开始条件和停止条件的手动产生
[ 中断功能 ]
•
传送结束中断
[ 错误检测标志 ]
•
ACK 错误、溢出错误
※ [ 简易 I2C 不支持的功能 ]
注
•
•
从属发送、从属接收
仲裁失败检测功能
•
等待检测功能
在接收最后的数据时,如果给 SOEmn 位(串行输出允许寄存器 m(SOEm))写 “0” 来停止串行通信数据的输出,
就不输出 ACK。详细内容请参照 “11.7.3(2) 处理流程 ”。
备注 1. 在使用全功能的 I2C 总线时,请参照 “ 第 12 章 串行接口 IICA”。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
288
R7F0C903-908
11.2
第 11 章 串行阵列单元
串行阵列单元的结构
串行阵列单元由以下硬件构成。
表 11-1
串行阵列单元的结构
项目
结构
位注 1
移位寄存器
8 位或者 9
缓冲寄存器
串行数据寄存器 mn (SDRmn)的低 8 位或者 9 位注 1、 2
串行时钟输入 / 输出
SCK00、SCK11、SCK20引脚(用于3线串行I/O)、SCL00、SCL11、SCL20引脚(用于简易I2C)
串行数据输入
SI00、SI11、SI20 引脚(用于 3 线串行 I/O)、RxD0、RxD1 引脚(用于 UART)、RxD2 引脚
串行数据输出
SO00、SO11、SO20 引脚(用于 3 线串行 I/O)、TxD0、TxD1 引脚(用于 UART)、TxD2 引脚
串行数据输入 / 输出
SDA00、 SDA11、 SDA20 引脚 (用于简易 I2C)
控制寄存器
<单元设定部的寄存器>
•
•
•
•
•
•
•
•
•
•
外围允许寄存器 0 (PER0)
串行时钟选择寄存器 m (SPSm)
串行通道允许状态寄存器 m (SEm)
串行通道开始寄存器 m (SSm)
串行通道停止寄存器 m (STm)
串行输出允许寄存器 m (SOEm)
串行输出寄存器 m (SOm)
串行输出电平寄存器 m (SOLm)
串行待机控制寄存器 0 (SSC0)
噪声滤波器允许寄存器 0 (NFEN0)
<各通道部的寄存器>
注
•
•
•
•
•
串行数据寄存器 mn (SDRmn)
串行模式寄存器 mn (SMRmn)
串行通信运行设定寄存器 mn (SCRmn)
串行状态寄存器 mn (SSRmn)
串行标志清除触发寄存器 mn (SIRmn)
•
•
•
•
•
端口输入模式寄存器 0、 1 (PIM0、 PIM1)
端口输出模式寄存器 0、 1、 5 (POM0、 POM1、 POM5)
端口模式控制寄存器 0 (PMC0)
端口模式寄存器 0、 1、 3、 5 (PM0、 PM1、 PM3、 PM5)
端口寄存器 0、 1、 3、 5 (P0、 P1、 P3、 P5)
1. 用作移位寄存器和缓冲寄存器的位数因单元和通道而不同。
• 本产品并且 mn=00、 01:低 9 位
• 上述以外:低 8 位
2. 根据通信模式,能用以下 SFR 名称读写串行数据寄存器 mn (SDRmn)的低 8 位。
• CSIp 通信 ……SIOp (CSIp 数据寄存器)
• UARTq 接收 ……RXDq (UARTq 接收数据寄存器)
• UARTq 发送 ……TXDq (UARTq 发送数据寄存器)
• IICr 通信 ……SIOr (IICr 数据寄存器)
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20)
q:UART号 (q=0~ 2) r:IIC 号 (r=00、 11、 20)
R01UH0629CJ0120 Rev.1.20
2019.06.28
289
R7F0C903-908
第 11 章 串行阵列单元
串行阵列单元 0 的框图如图 11-1 所示。
图 11-1
串行阵列单元 0 的框图
ಠ༦┚⌘ಞݷ䇮
ᇺᆎಞ0(NFEN0)
Ѩ㺂䗉࠰ᇺᆎಞ0(SO0)
0
ཌപݷ䇮ᇺᆎಞ0
(PER0)
CKO03 CKO02 CKO01 CKO00
0
0
0
0
0
Ѩ㺂ᰬ䫕䘿ᇺᆎಞ0(SPS0)
PRS
013
SAU0EN
0
0
PRS
011
PRS
012
PRS
010
PRS
003
SE03
PRS
002
4
PRS
001
PRS
000
SS03
4
ST03
SE02
SS02
ST02
fCLK/20ЊfCLK/215
fCLK/20ЊfCLK/215
0
SE01
SS01
ST01
SOL02
0
SNFEN SNFEN
10
00
SO00
0
SE00
Ѩ㺂䙐䚉ݷ䇮
⣬ᘷᇺᆎಞ0
(SE0)
Ѩ㺂ᖻᵰ
ᇺᆎಞ0(SSC0)
SS00
Ѩ㺂䙐䚉ᔶခ
ᇺᆎಞ0(SS0)
SSEC0 SWC0
ST00
Ѩ㺂䙐䚉↘ڒ
ᇺᆎಞ0(ST0)
SOE03 SOE02 SOE01 SOE00
人࠼仇ಞ
fCLK
SO03 SO02
Ѩ㺂䗉࠰ݷ䇮
ᇺᆎಞ0(SOE0)
Ѩ㺂䗉࠰⭫ᒩ
SOL00 ᇺᆎಞ0(SOL0)
䘿ಞ
䘿ಞ
Ѩ㺂ᮦᦤᇺᆎಞ00(SDR00)
ᰬ䫕⭫䐥
fMCK
fSCK
䗯⋵
Ỷ⎁
ੂ↛
⭫䐥
(㕉ߨᇺᆎಞ䜞)
(ᰬ䫕࠼仇䇴ᇐ䜞)
䘿ಞ
Ѩ㺂ᰬ䫕䗉ޛ䗉࠰ᕋ㝐
(CSI00ᰬφSCK00)
(IIC00ᰬφSCL00)
CK00
CK01
䘿ಞ
䙐䚉0
䗉࠰䬷ᆎಞ
(P11 or P12)
fTCLK
ѣᯣ⭫䐥
⁗ᕅ䘿
CSI00 orIIC00
or UART0
(⭞ӄਇ䘷)
䗉࠰䬷ᆎಞ
(P10)
Ѩ㺂ᮦᦤ䗉ޛᕋ㝐
(CSI00ᰬφSI00)
(IIC00ᰬφSDA00)
(UART0ᰬφRxD0)
ੂ↛
⭫䐥
䗯⋵⭫ᒩ
Ỷ⎁
ಠ༦⎾䲚
ਥੜ
SNFEN00
Ѩ㺂ḽᘍ䲚䀜ਇ
ᇺᆎಞ00(SIR00)
䲚
䭏䈥⭫䐥
Ѩ㺂⁗ᕅᇺᆎಞ00(SMR00)
TXE
00
RXE
00
DAP
00
CKP
00
EOC
00
PTC
001
PTC
000
DIR
00
SLC
001
SLC
000
Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞ00(SCR00)
Ѩ㺂Ֆ䘷㔉ᶕѣᯣ
(CSI00ᰬφINTCSI00)
(IIC00ᰬφINTIIC00)
(UART0ᰬφINTST0)
PECT OVCT
00
00
䙐
ؗ
⣬
ᘷ
CKS00 CCS00 STS00 SIS00 MD002 MD001 MD000
UART0ᰬ
Ѩ㺂ᮦᦤ䗉࠰ᕋ㝐
(CSI00ᰬφSO00)
(IIC00ᰬφSDA00)
(UART0ᰬφTXD0)
䗉࠰⭫䐥
䙐⭫ؗ䐥
PM10
PM11 or PM12
〱փᇺᆎಞ
䭏䈥ؗᚥ
DLS
001
DLS
000
TSF
00
BFF
00
PEF
00
OVF
00
Ѩ㺂⣬ᘷᇺᆎಞ00(SSR00)
CK00
CK01
䙐䚉1
䙐⭫ؗ䐥
Ѩ㺂Ֆ䘷㔉ᶕѣᯣ
(UART0ᰬφINTSR0)
䗯⋵⭫ᒩ
Ỷ⎁
CK01
UART0
(⭞ӄ᭬)
䭏䈥
⭫䐥
CK00
䙐䚉2
Ѩ㺂ᮦᦤ䗉࠰ᕋ㝐
(UART1ᰬφTxD1)
䙐⭫ؗ䐥
UART1
(⭞ӄਇ䘷)
Ѩ㺂ᮦᦤ䗉ޛᕋ㝐
(UART1ᰬφRxD1)
ੂ↛
⭫䐥
Ѩ㺂Ֆ䘷㔉ᶕѣᯣ
(UART1ᰬφINTST1)
䗯⋵⭫ᒩ
Ỷ⎁
ಠ༦⎾䲚
ਥੜ
Ѩ㺂Ֆ䘷䭏䈥ѣᯣ
(INTSRE0)
SNFEN10
CK01
UART1ᰬ
Ѩ㺂ᰬ䫕䗉ޛ䗉࠰ᕋ㝐
(CSI11ᰬφSCK11)
(IIC11ᰬφSCL11)
Ѩ㺂ᮦᦤ䗉ޛᕋ㝐
(CSI11ᰬφSI11)
(IIC11ᰬφSDA11)
CK00
䙐䚉3
ੂ↛
⭫䐥
Ѩ㺂ᮦᦤ䗉࠰ᕋ㝐
(CSI11ᰬφSO11)
(IIC11ᰬφSDA11)
䙐⭫ؗ䐥
䘿ಞ
R01UH0629CJ0120 Rev.1.20
2019.06.28
䗯⋵⭫ᒩ
Ỷ⎁
⁗ᕅ䘿
CSI11 or IIC11
or UART1
(⭞ӄ᭬)
䭏䈥
⭫䐥
Ѩ㺂Ֆ䘷㔉ᶕѣᯣ
(CSI11ᰬφINTCSI11)
(IIC11ᰬφINTIIC11)
(UART1ᰬφINTSR1)
Ѩ㺂Ֆ䘷䭏䈥ѣᯣ
(INTSRE1)
290
R7F0C903-908
第 11 章 串行阵列单元
串行阵列单元 1 的框图如图 11-2 所示。
图 11-2
串行阵列单元 1 的框图
ಠ༦┚⌘ಞݷ䇮
ᇺᆎಞ0(NFEN0)
Ѩ㺂䗉࠰ᇺᆎಞ1(SO1)
0
ཌപݷ䇮ᇺᆎಞ0
(PER0)
0
0
0
CKO11 CKO10
0
0
0
0
Ѩ㺂ᰬ䫕䘿ᇺᆎಞ1(SPS1)
PRS
113
SAU1EN
0
0
PRS
112
PRS
111
PRS
110
PRS
103
PRS
102
4
PRS
101
PRS
100
4
人࠼仇ಞ
fCLK
0
fCLK/2 ЊfCLK/2
15
0
fCLK/2 ЊfCLK/2
15
SO13 SO12
SNFEN
20
0
SO11
0
0
SE11
SE10
Ѩ㺂䙐䚉ݷ䇮
⣬ᘷᇺᆎಞ1
(SE1)
0
0
SS11
SS10
Ѩ㺂䙐䚉ᔶခ
ᇺᆎಞ1(SS1)
0
0
ST11
ST10
Ѩ㺂䙐䚉↘ڒ
ᇺᆎಞ1(ST1)
0
0
0
SOE11 SOE10
0
0
Ѩ㺂䗉࠰ݷ䇮
ᇺᆎಞ1(SOE1)
Ѩ㺂䗉࠰⭫ᒩ
SOL10 ᇺᆎಞ1(SOL1)
䘿ಞ
䘿ಞ
Ѩ㺂ᮦᦤᇺᆎಞ10(SDR10)
ᰬ䫕⭫䐥
fMCK
fSCK
䗯⋵
Ỷ⎁
ੂ↛
⭫䐥
(㕉ߨᇺᆎಞ䜞)
(ᰬ䫕࠼仇䇴ᇐ䜞)
䘿ಞ
Ѩ㺂ᰬ䫕䗉ޛ䗉࠰ᕋ㝐
(CSI20ᰬφSCK20)
(IIC20ᰬφSCL20)
CK10
CK11
䘿ಞ
䙐䚉0
䗉࠰䬷ᆎಞ
(P14 or P13)
fTCLK
〱փᇺᆎಞ
ѣᯣ⭫䐥
⁗ᕅ䘿
CSI20 orIIC20
or UART2
(⭞ӄਇ䘷)
䗉࠰䬷ᆎಞ
(P20)
Ѩ㺂ᮦᦤ䗉ޛᕋ㝐
(CSI20ᰬφSI20)
(IIC20ᰬφSDA20)
(UART2ᰬφRxD2)
ੂ↛
⭫䐥
䗯⋵⭫ᒩ
Ỷ⎁
ಠ༦⎾䲚
ਥੜ
SNFEN20
Ѩ㺂ḽᘍ䲚䀜ਇ
ᇺᆎಞ10(SIR10)
䲚
䭏䈥⭫䐥
Ѩ㺂⁗ᕅᇺᆎಞ10(SMR10)
TXE
10
RXE
10
DAP
10
CKP
10
EOC
10
PTC
101
PTC
100
DIR
10
SLC
101
SLC
100
Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞ10(SCR10)
CK11
䭏䈥ؗᚥ
DLS
101
DLS
100
TSF
10
BFF
10
PEF
10
OVF
10
Ѩ㺂⣬ᘷᇺᆎಞ10(SSR10)
CK10
䙐䚉1
䙐⭫ؗ䐥
䗯⋵⭫ᒩ
Ỷ⎁
R01UH0629CJ0120 Rev.1.20
2019.06.28
Ѩ㺂Ֆ䘷㔉ᶕѣᯣ
(CSI20ᰬφINTCSI20)
(IIC20ᰬφINTIIC20)
(UART2ᰬφINTST2)
PECT OVCT
10
10
䙐
ؗ
⣬
ᘷ
CKS10 CCS10 STS10 SIS10 MD102 MD101 MD100
UART2ᰬ
Ѩ㺂ᮦᦤ䗉࠰ᕋ㝐
(CSI20ᰬφSO20)
(IIC20ᰬφSDA20)
(UART2ᰬφTXD2)
䗉࠰⭫䐥
䙐⭫ؗ䐥
PM20
PM14 or PM13
⁗ᕅ䘿
UART2
(⭞ӄ᭬)
Ѩ㺂Ֆ䘷㔉ᶕѣᯣ
(UART2ᰬφINTSR2)
䭏䈥
⭫䐥
Ѩ㺂Ֆ䘷䭏䈥ѣᯣ
(INTSRE2)
291
R7F0C903-908
11.2.1
第 11 章 串行阵列单元
移位寄存器
这是进行并行和串行相互转换的 9 位寄存器。
在以 9 位数据长度进行 UART 通信时,使用 9 位 (bit0 ~ 8)注 1。
在接收数据时,将串行输入引脚的输入数据转换为并行数据;在发送数据时,将被传送到此寄存器的值作
为串行数据从串行输出引脚输出。
不能通过程序直接操作移位寄存器。
要读写移位寄存器的数据时,使用串行数据寄存器 mn (SDRmn)的低 8 位或者低 9 位。
8
7
6
5
4
3
2
1
0
移位寄存器
11.2.2
串行数据寄存器 mn (SDRmn)的低 8 位或者低 9 位
SDRmn 寄存器是通道 n 的发送和接收数据寄存器 (16 位)。
bit8 ~ 0 (低 9 位)注 1 或者 bit7 ~ 0 (低 8 位)用作发送和接收缓冲寄存器, bit15 ~ 9 用作运行时钟
(fMCK)的分频设定寄存器。
在接收数据时,将由移位寄存器转换的并行数据保存到低 8 位或者低 9 位;在发送数据时,将被传送到移
位寄存器的发送数据设定到低 8 位或者低 9 位。
与数据的输出顺序无关,根据串行通信运行设定寄存器 mn(SCRmn)的 bit0 和 bit1(DLSmn0、DLSmn1)
的设定,保存到低 8 位或者低 9 位的数据如下所示:
•
7 位数据长度 (保存在 SDRmn寄存器的 bit0~ 6)
•
8 位数据长度 (保存在 SDRmn寄存器的 bit0~ 7)
•
9 位数据长度 (保存在 SDRmn寄存器的 bit0~ 8)注 1
能以 16 位为单位读写 SDRmn 寄存器。
根据通信模式,能用以下 SFR 名称,以 8 位为单位读写 SDRmn 寄存器的低 8 位或者低 9 位注 2。
•
•
CSIp 通信 ……SIOp (CSIp 数据寄存器)
UARTq 接收 ……RXDq (UARTq 接收数据寄存器)
•
UARTq 发送 ……TXDq (UARTq发送数据寄存器)
•
IICr 通信……SIOr (IICr 数据寄存器)
在产生复位信号后, SDRmn 寄存器的值变为 “0000H”。
注
1. 只有以下的 UART 支持 9 位数据长度。
• 本产品:UART0
2. 在运行停止(SEmn=0)时,禁止通过 8 位存储器操作指令改写 SDRmn[7:0](否则,SDRmn[15:9] 全部被清 “0”)。
备注 1. 在接收结束后, bit0 ~ 8 中超过数据长度的部分的位为 “0”。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20)
q:UART 号 (q=0 ~ 2) r:IIC 号 (r=00、 11、 20)
R01UH0629CJ0120 Rev.1.20
2019.06.28
292
R7F0C903-908
第 11 章 串行阵列单元
图 11-3
串行数据寄存器 mn (SDRmn)(mn=00、 01)的格式
地址:FFF10H、 FFF11H (SDR00)、 FFF12H、 FFF13H (SDR01)
FFF11H (SDR00 的情况)
15
14
13
12
11
10
R/W
复位后:0000H
FFF10H (SDR00 的情况)
9
8
7
6
5
4
3
2
1
0
8
7
6
5
4
3
2
1
0
SDRmn
移位寄存器
备注
有关 SDRmn 寄存器的高 7 位的功能,请参照 “11.3 控制串行阵列单元的寄存器 ”。
图 11-4
串行数据寄存器 mn (SDRmn)(mn=02、 03、 10、 11)的格式
地址:FFF44H、 FFF45H (SDR02)、 FFF46H、 FFF47H (SDR03)
R/W
复位后:0000H
FFF48H、 FFF49H (SDR10)、 FFF4AH、 FFF4BH (SDR11)
FFF45H (SDR02 的情况)
15
14
13
12
11
10
SDRmn
FFF44H (SDR02 的情况)
9
8
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
0
8
移位寄存器
注意
必须将 bit8 置 “0”。
备注
有关 SDRmn 寄存器的高 7 位的功能,请参照 “11.3 控制串行阵列单元的寄存器 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
293
R7F0C903-908
11.3
第 11 章 串行阵列单元
控制串行阵列单元的寄存器
控制串行阵列单元的寄存器如下所示:
•
备注
外围允许寄存器 0 (PER0)
•
串行时钟选择寄存器 m (SPSm)
•
串行模式寄存器 mn (SMRmn)
•
串行通信运行设定寄存器 mn (SCRmn)
•
串行数据寄存器 mn (SDRmn)
•
•
串行标志清除触发寄存器 mn (SIRmn)
串行状态寄存器 mn (SSRmn)
•
串行通道开始寄存器 m (SSm)
•
串行通道停止寄存器 m (STm)
•
串行通道允许状态寄存器 m (SEm)
•
串行输出允许寄存器 m (SOEm)
•
串行输出电平寄存器 m (SOLm)
•
串行输出寄存器 m (SOm)
•
串行待机控制寄存器 0 (SSC0)
•
噪声滤波器允许寄存器 0 (NFEN0)
•
端口输入模式寄存器 0、 1 (PIM0、 PIM1)
•
端口输出模式寄存器 0、 1、 5 (POM0、 POM1、 POM5)
•
•
端口模式控制寄存器 0 (PMC0)
端口模式寄存器 0、 1、 3、 5 (PM0、 PM1、 PM3、 PM5)
•
端口寄存器 0、 1、 3、 5 (P0、 P1、 P3、 P5)
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
294
R7F0C903-908
11.3.1
第 11 章 串行阵列单元
外围允许寄存器 0 (PER0)
PER0 寄存器是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过停止给不使用的硬件提供时钟,以
降低功耗和噪声。
要使用串行阵列单元 0 时,必须将 bit2 (SAU0EN)置 “1”。
要使用串行阵列单元 1 时,必须将 bit3 (SAU1EN)置 “1”。
通过 1 位或者 8 位存储器操作指令设定 PER0 寄存器。
在产生复位信号后, PER0 寄存器的值变为 “00H”。
图 11-5
地址:F00F0H
外围允许寄存器 0 (PER0)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
SAUmEN
0
串行阵列单元 m 的输入时钟的控制
停止提供输入时钟。
• 不能写串行阵列单元 m 使用的 SFR。
• 串行阵列单元 m 处于复位状态。
1
提供输入时钟。
• 能读写串行阵列单元 m 使用的 SFR。
注意 1. 要设定串行阵列单元 m 时,必须先在 SAUmEN 位为 “1” 的状态下设定以下的寄存器。当 SAUmEN 位为 “0” 时,串
行阵列单元 m 的控制寄存器的值为初始值,忽视写操作 (噪声滤波器允许寄存器 0 (NFEN0)、端口输入模式寄
存器 0、 1 (PIM0、 PIM1)、端口输出模式寄存器 0、 1、 5 (POM0、 POM1、 POM5)、端口模式控制寄存器 0
(PMC0)、端口模式寄存器 0、 1、 3、 5 (PM0、 PM1、 PM3、 PM5)以及端口寄存器 0、 1、 3、 5 (P0、 P1、
P3、 P5)除外)。
• 串行时钟选择寄存器 m (SPSm)
• 串行模式寄存器 mn (SMRmn)
• 串行通信运行设定寄存器 mn (SCRmn)
• 串行数据寄存器 mn (SDRmn)
• 串行标志清除触发寄存器 mn (SIRmn)
• 串行状态寄存器 mn (SSRmn)
• 串行通道开始寄存器 m (SSm)
• 串行通道停止寄存器 m (STm)
• 串行通道允许状态寄存器 m (SEm)
• 串行输出允许寄存器 m (SOEm)
• 串行输出电平寄存器 m (SOLm)
• 串行输出寄存器 m (SOm)
• 串行待机控制寄存器 0 (SSC0)
2. 必须将 bit6 和 bit1 置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
295
R7F0C903-908
11.3.2
第 11 章 串行阵列单元
串行时钟选择寄存器 m (SPSm)
SPSm 寄存器是 16 位寄存器,选择提供给各通道的 2 种公共运行时钟(CKm0、CKm1)。通过 SPSm 寄存
器的 bit7 ~ 4 选择 CKm1,通过 bit3 ~ 0 选择 CKm0。
禁止在运行过程中 (SEmn=1)改写 SPSm 寄存器。
通过 16 位存储器操作指令设定 SPSm 寄存器。
能用 SPSmL 并且通过 8 位存储器操作指令设定 SPSm 寄存器的低 8 位。
在产生复位信号后, SPSm 寄存器的值变为 “0000H”。
图 11-6
串行时钟选择寄存器 m (SPSm)的格式
地址:F0126H、 F0127H (SPS0)、 F0166H、 F0167H (SPS1)
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SPSm
0
0
0
0
0
0
0
0
PRS
PRS
PRS
PRS
PRS
PRS
PRS
PRS
m13
m12
m11
m10
m03
m02
m01
m00
注
PRS
PRS
PRS
PRS
mk3
mk2
mk1
mk0
0
0
0
0
0
0
0
0
0
0
运行时钟 (CKmk)的选择注
fCLK=2MHz
fCLK=5MHz
fCLK=10MHz fCLK=20MHz fCLK=24MHz
fCLK
2MHz
5MHz
10MHz
20MHz
24MHz
1
fCLK/2
1MHz
2.5MHz
5MHz
10MHz
12MHz
1
0
fCLK/22
500kHz
1.25MHz
2.5MHz
5MHz
6MHz
0
1
1
fCLK/23
250kHz
625kHz
1.25MHz
2.5MHz
3MHz
0
1
0
0
fCLK/24
125kHz
313kHz
625kHz
1.25MHz
1.5MHz
0
1
0
1
fCLK/25
62.5kHz
156kHz
313kHz
625kHz
750kHz
0
1
1
0
fCLK/26
31.3kHz
78.1kHz
156kHz
313kHz
375kHz
0
1
1
1
fCLK/27
15.6kHz
39.1kHz
78.1kHz
156kHz
188kHz
1
0
0
0
fCLK/28
7.81kHz
19.5kHz
39.1kHz
78.1kHz
93.8kHz
1
0
0
1
fCLK/29
3.91kHz
9.77kHz
19.5kHz
39.1kHz
46.9kHz
1
0
1
0
fCLK/210
1.95kHz
4.88kHz
9.77kHz
19.5kHz
23.4kHz
1
0
1
1
fCLK/211
977Hz
2.44kHz
4.88kHz
9.77kHz
11.7kHz
1
1
0
0
fCLK/212
488Hz
1.22kHz
2.44kHz
4.88kHz
5.86kHz
1
1
0
1
fCLK/213
244Hz
610Hz
1.22kHz
2.44kHz
2.93kHz
1
1
1
0
fCLK/214
122Hz
305Hz
610Hz
1.22kHz
1.46kHz
1
1
1
1
fCLK/215
61Hz
153Hz
305Hz
610Hz
732Hz
要在串行阵列单元 (SAU)运行过程中更改被选择为 fCLK 的时钟 (更改系统时钟控制寄存器 (CKC)的值)时,
必须在停止 SAU 的运行 (串行通道停止寄存器 m (STm) =000FH)后进行更改。
注意
必须将 bit15 ~ 8 置 “0”。
备注 1. fCLK:CPU/ 外围硬件的时钟频率
2. m:单元号 (m=0、 1)
3. k=0、 1
R01UH0629CJ0120 Rev.1.20
2019.06.28
296
R7F0C903-908
11.3.3
第 11 章 串行阵列单元
串行模式寄存器 mn (SMRmn)
SMRmn 寄存器是设定通道 n 运行模式的寄存器,进行运行时钟(fMCK)的选择、能否使用串行时钟(fSCK)
输入的指定、开始触发的设定、运行模式 (CSI、 UART、简易 I2C)的设定以及中断源的选择。另外,只在
UART 模式中设定接收数据的反相电平。
禁止在运行过程中 (SEmn=1)改写 SMRmn 寄存器,但是能在运行过程中改写 MDmn0 位。
通过 16 位存储器操作指令设定 SMRmn 寄存器。
在产生复位信号后, SMRmn 寄存器的值变为 “0020H”。
图 11-7
串行模式寄存器 mn (SMRmn)的格式 (1/2)
地址:F0110H、 F0111H (SMR00)~ F0116H、 F0117H (SMR03)
R/W
复位后:0020H
F0150H、 F0151H (SMR10)、 F0152H、 F0153H (SMR11)
符号
15
SMRmn CKS
mn
14
13
12
11
10
9
8
7
6
5
4
3
CCS
0
0
0
0
0
STS
0
SISm
1
0
0
mn
mn 注
CKSmn
n0 注
2
1
0
MD
MD
MD
mn2
mn1
mn0
通道 n 运行时钟 (fMCK)的选择
0
SPSm 寄存器设定的运行时钟 CKm0
1
SPSm 寄存器设定的运行时钟 CKm1
运行时钟(fMCK)用于边沿检测电路。通过设定 CCSmn 位和 SDRmn 寄存器的高 7 位,生成传送时钟(fTCLK)。
CCSmn
通道 n 传送时钟 (fTCLK)的选择
0
CKSmn 位指定的运行时钟 fMCK 的分频时钟
1
来自 SCKp 引脚的输入时钟 fSCK (CSI 模式的从属传送)
传送时钟 fTCLK 用于移位寄存器、通信控制电路、输出控制器、中断控制电路和错误控制电路。当 CCSmn 位为
“0” 时,通过 SDRmn 寄存器的高 7 位进行运行时钟 (fMCK)的分频设定。
STSmn 注
开始触发源的选择
0
只有软件触发有效 (在 CSI、 UART 发送、简易 I2C 时选择)。
1
RxDq 引脚的有效边沿 (在 UART 接收时选择)
在将 SSm 寄存器置 “1” 后满足上述条件时,开始传送。
注
只限于 SMR01、 SMR03、 SMR11 寄存器。
注意
必须将 bit13 ~ 9、7、4、3(SMR00、SMR02、SMR10 寄存器为 bit13 ~ 6、4、3)置 “0”,并且将 bit5 置 “1”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20)
q:UART号 (q=0~ 2) r:IIC 号 (r=00、 11、 20)
R01UH0629CJ0120 Rev.1.20
2019.06.28
297
R7F0C903-908
第 11 章 串行阵列单元
图 11-7
串行模式寄存器 mn (SMRmn)的格式 (2/2)
地址:F0110H、 F0111H (SMR00)~ F0116H、 F0117H (SMR03)
R/W
复位后:0020H
F0150H、 F0151H (SMR10)、 F0152H、 F0153H (SMR11)
15
符号
SMRmn CKS
mn
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
CCS
0
0
0
0
0
STS
0
SISm
1
0
0
MD
MD
MD
mn2
mn1
mn0
mn
mn 注
SISmn0 注
0
n0 注
UART 模式中的通道 n 接收数据的电平反相控制
将下降沿检测为起始位。
不将输入的通信数据进行反相。
1
将上升沿检测为起始位。
将输入的通信数据进行反相。
MDmn2
MDmn1
0
0
CSI 模式
0
1
UART 模式
1
0
简易 I2C 模式
1
1
禁止设定。
通道 n 运行模式的设定
MDmn0
0
1
通道 n 中断源的选择
传送结束中断
缓冲器空中断
(在数据从 SDRmn 寄存器传送到移位寄存器时发生)
在连续发送时,如果 MDmn0 位为 “1” 并且 SDRmn 的数据为空,就写下一个发送数据。
注
只限于 SMR01、 SMR03、 SMR11 寄存器。
注意
必须将 bit13 ~ 9、7、4、3(SMR00、SMR02、SMR10 寄存器为 bit13 ~ 6、4、3)置 “0”,并且将 bit5 置 “1”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20)
q:UART号 (q=0~ 2) r:IIC 号 (r=00、 11、 20)
11.3.4
串行通信运行设定寄存器 mn (SCRmn)
SCRmn 寄存器是通道 n 的通信运行设定寄存器,设定数据发送和接收模式、数据和时钟相位、是否屏蔽错
误信号、奇偶检验位、起始位、停止位和数据长度等。
禁止在运行过程中 (SEmn=1)改写 SCRmn 寄存器。
通过 16 位存储器操作指令设定 SCRmn 寄存器。
在产生复位信号后, SCRmn 寄存器的值变为 “0087H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
298
R7F0C903-908
第 11 章 串行阵列单元
图 11-8
串行通信运行设定寄存器 mn (SCRmn)的格式 (1/2)
地址:F0118H、 F0119H (SCR00)~ F011EH、 F011FH (SCR03)
R/W
复位后:0087H
F0158H、 F0159H (SCR10)、 F015AH、 F015BH (SCR11)
符号
15
14
13
12
11
10
9
8
7
6
SCRmn
TXE
mn
RXE
mn
DAP
mn
CKP
mn
0
EOC
mn
PTC
mn1
PTC
mn0
DIR
mn
0
TXEmn
RXEmn
0
0
禁止通信。
0
1
只进行接收。
1
0
只进行发送。
1
1
进行发送和接收。
DAPmn
CKPmn
0
0
5
4
SLCm SLC
n1 注 1 mn0
3
2
0
1
1
0
DLSm DLS
n1 注 2 mn0
通道 n 运行模式的设定
CSI 模式中的数据和时钟的相位选择
类型
1
SCKp
SOp
D7
D6
D5
D4
D3
D2
D1
D0
SIp䕧ܹᯊᑣ
0
1
2
SCKp
D7
SOp
D6
D5
D4
D3
D2
D1
D0
SIp䕧ܹᯊᑣ
1
0
3
SCKp
SOp
D7
D6
D5
D4
D3
D2
D1
D0
SIp䕧ܹᯊᑣ
1
1
4
SCKp
SOp
D7
D6
D5
D4
D3
D2
D1
D0
SIp䕧ܹᯊᑣ
在 UART 模式和简易 I2C 模式中,必须将 DAPmn 位和 CKPmn 位都置 “0”。
EOCmn
错误中断信号 (INTSREx (x=0 ~ 3))的屏蔽控制
0
禁止产生错误中断 INTSREx (产生 INTSRx)。
1
允许产生错误中断 INTSREx (在发生错误时不产生 INTSRx)。
在 CSI 模式和简易 I2C 模式中或者在 UART 发送时,必须将 EOCmn 位置 “0” 注 3。
注
1. 只限于 SCR00、 SCR02、 SCR10 寄存器。
2. 只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
3. 在 EOCmn 位为 “0” 并且不使用 CSImn 时,有可能产生错误中断 INTSREn。
注意
必须将 bit3、 6、 11 置 “0” (也必须将 SCR01、 SCR03、 SCR11 寄存器的 bit5 置 “0”),并且将 bit2 置 “1”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20)
R01UH0629CJ0120 Rev.1.20
2019.06.28
299
R7F0C903-908
第 11 章 串行阵列单元
图 11-8
串行通信运行设定寄存器 mn (SCRmn)的格式 (2/2)
地址:F0118H、 F0119H (SCR00)~ F011EH、 F011FH (SCR03)
R/W
复位后:0087H
F0158H、 F0159H (SCR10)、 F015AH、 F015BH (SCR11)
符号
15
14
13
12
11
10
9
8
7
6
SCRmn
TXE
mn
RXE
mn
DAP
mn
CKP
mn
0
EOC
mn
PTC
mn1
PTC
mn0
DIR
mn
0
5
4
SLCm SLC
n1 注 1 mn0
3
2
0
1
PTCmn0
0
0
不输出奇偶校验位。
接收时没有奇偶校验。
0
1
输出奇偶校验注 3。
不判断奇偶校验。
1
0
输出偶校验。
判断偶校验。
1
输出奇校验。
判断奇校验。
在 CSI 模式和简易
I2C
0
DLSm DLS
n1 注 2 mn0
UART 模式中的奇偶校验位的设定
PTCmn1
1
1
发送
接收
模式中,必须将 PTCmn1 位和 PTCmn0 位都置 “0”。
DIRmn
CSI 和 UART 模式中的数据传送顺序的选择
0
进行 MSB 优先的输入 / 输出。
1
进行 LSB 优先的输入 / 输出。
在简易 I2C 模式中,必须将 DIRmn 位置 “0”。
SLCmn1 注 1
SLCmn0
0
0
无停止位
0
1
停止位长度 =1 位
1
0
停止位长度 =2 位 (只限于 mn=00、 02、 10)
1
1
禁止设定。
UART 模式中的停止位的设定
如果选择了传送结束中断,就在传送完所有停止位后产生中断。
在 UART 接收时或者在简易 I2C 模式中,必须设定为 1 个停止位 (SLCmn1、 SLCmn0=0、 1)。
在 CSI 模式中,必须设定为无停止位 (SLCmn1、 SLCmn0=0、 0)。
在 UART 发送时,必须设定为 1 位 (SLCmn1、 SLCmn0=0、 1)或者 2 位 (SLCmn1、 SLCmn0=1、 0)。
DLSmn1 注 2
DLSmn0
0
1
9 位数据长度 (保存在 SDRmn 寄存器的 bit0 ~ 8)(只在 UART 模式中可选择)
1
0
7 位数据长度 (保存在 SDRmn 寄存器的 bit0 ~ 6)
1
1
8 位数据长度 (保存在 SDRmn 寄存器的 bit0 ~ 7)
其他
CSI 和 UART 模式中的数据长度的设定
禁止设定。
在简易 I2C 模式中,必须将 DLSmn1 位和 DLSmn0 位都置 “1”。
注
1. 只限于 SCR00、 SCR02、 SCR10 寄存器。
2. 只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
3. 与数据的内容无关,总是附加 “0”。
注意
必须将 bit3、 6、 11 置 “0” (也必须将 SCR01、 SCR03、 SCR11 寄存器的 bit5 置 “0”),并且将 bit2 置 “1”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20)
R01UH0629CJ0120 Rev.1.20
2019.06.28
300
R7F0C903-908
11.3.5
第 11 章 串行阵列单元
串行数据寄存器 mn (SDRmn)
SDRmn 寄存器是通道 n 发送和接收的数据寄存器 (16 位)。
SDR00、SDR01 的 bit8 ~ 0(低 9 位)或者 SDR02、SDR03、SDR10、SDR11 的 bit7 ~ 0 (低 8 位)用作发送
和接收缓冲寄存器, bit15 ~ 9 (高 7 位)用作运行时钟 (fMCK)的分频设定寄存器。
如果将串行模式寄存器 mn (SMRmn)的 CCSmn 位置 “0”,由 SDRmn 寄存器的 bit15 ~ 9 (高 7 位)设
定的运行时钟的分频时钟就用作传送时钟。
如果将 CCSmn 位置 “1”,就必须将 SDR00、 SDR01 的 bit15 ~ 9 (高 7 位)置 “0000000B”。 SCKp 引脚的
输入时钟 fSCK (CSI 模式的从属传送)为传送时钟。
SDRmn 寄存器的低 8 位或者低 9 位用作发送和接收缓冲寄存器。在接收数据时,将移位寄存器转换的并行
数据保存到低 8 位或者低 9 位;在发送数据时,将被传送到移位寄存器的发送数据设定到低 8 位或者低 9 位。
能以 16 位为单位读写 SDRmn 寄存器。但是,只有在运行停止 (SEmn=0)时才能读写高 7 位。在运行中
(SEmn=1)只能写 SDRmn 寄存器的低 8 位或者低 9 位,而且 SDRmn 寄存器的高 7 位的读取值总是 “0”。
在产生复位信号后, SDRmn 寄存器的值变为 “0000H”。
图 11-9
串行数据寄存器 mn (SDRmn)的格式
地址:FFF10H、 FFF11H (SDR00)、 FFF12H、 FFF13H (SDR01)
FFF11H (SDR00 的情况)
15
符号
14
13
12
11
10
R/W
复位后:0000H
FFF10H (SDR00 的情况)
9
8
7
6
5
4
3
2
1
0
1
0
SDRmn
地址:FFF44H、 FFF45H (SDR02)、 FFF46H、 FFF47H (SDR03)
R/W
复位后:0000H
FFF48H、 FFF49H (SDR10)、 FFF4AH、 FFF4BH (SDR11)
FFF44H (SDR02 的情况)
FFF45H (SDR02 的情况)
符号
15
14
13
12
11
10
9
SDRmn
8
7
6
5
4
3
2
0
SDRmn[15:9]
运行时钟分频的传送时钟设定
0
0
0
0
0
0
0
fMCK/2
0
0
0
0
0
0
1
fMCK/4
0
0
0
0
0
1
0
fMCK/6
0
0
0
0
0
1
1
fMCK/8
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
1
1
1
1
1
1
0
fMCK/254
1
1
1
1
1
1
1
fMCK/256
注意 1. 必须将 SDR02、 SDR03、 SDR10、 SDR11 寄存器的 bit8 置 “0”。
2. 在使用 UART 时,禁止将 SDRmn[15:9] 设定为 “0000000B” 和 “0000001B”。
3. 在使用简易 I2C 时,禁止将 SDRmn[15:9] 设定为 “0000000B”,SDRmn[15:9] 的设定值必须大于等于 “0000001B”。
4. 在运行停止(SEmn=0)时,禁止通过 8 位存储器操作指令改写 SDRmn[7:0](否则,SDRmn[15:9] 全部被清 “0”)。
备注 1. 有关 SDRmn 寄存器的低 8 位或者低 9 位的功能,请参照 “11.2 串行阵列单元的结构 ”。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
301
R7F0C903-908
11.3.6
第 11 章 串行阵列单元
串行标志清除触发寄存器 mn (SIRmn)
这是用于清除通道 n 各错误标志的触发寄存器。
如果将各位(FECTmn、PECTmn、OVCTmn)置 “1”,就将串行状态寄存器 mn(SSRmn)的对应位(FEFmn、
PEFmn、 OVFmn)清 “0”。因为 SIRmn 寄存器是触发寄存器,所以如果清除 SSRmn 寄存器的对应位,也会立
即清除 SIRmn 寄存器。
通过 16 位存储器操作指令设定 SIRmn 寄存器。
能用 SIRmnL 并且通过 8 位存储器操作指令设定 SIRmn 寄存器的低 8 位。
在产生复位信号后, SIRmn 寄存器的值变为 “0000H”。
图 11-10
串行标志清除触发寄存器 mn (SIRmn)的格式
地址:F0108H、 F0109H (SIR00)~ F010EH、 F010FH (SIR03)
R/W
复位后:0000H
F0148H、 F0149H (SIR10)、 F014AH、 F014BH (SIR11)
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
SIRmn
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
FECT PEC OVC
mn 注
FECTmn 注
1
Tmn
Tmn
通道 n 帧错误标志的清除触发
0
不清除。
1
将 SSRmn 寄存器的 FEFmn 位清 “0”。
PECTmn
通道 n 奇偶校验错误标志的清除触发
0
不清除。
1
将 SSRmn 寄存器的 PEFmn 位清 “0”。
OVCTmn
通道 n 溢出错误标志的清除触发
0
不清除。
1
将 SSRmn 寄存器的 OVFmn 位清 “0”。
注
只限于 SIR01、 SIR03、 SIR11 寄存器。
注意
必须将 bit15 ~ 3 (SIR00、 SIR02、 SIR10 寄存器为 bit15 ~ 2)置 “0”。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
2. SIRmn 寄存器的读取值总是 “0000H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
302
R7F0C903-908
11.3.7
第 11 章 串行阵列单元
串行状态寄存器 mn (SSRmn)
SSRmn 寄存器表示通道 n 的通信状态和发生错误的情况。表示的错误为帧错误、奇偶校验错误和溢出错误。
通过 16 位存储器操作指令读取 SSRmn 寄存器。
能用 SSRmnL 并且通过 8 位存储器操作指令读取 SSRmn 寄存器的低 8 位。
在产生复位信号后, SSRmn 寄存器的值变为 “0000H”。
图 11-11
串行状态寄存器 mn (SSRmn)的格式 (1/2)
地址:F0100H、 F0101H (SSR00)~ F0106H、 F0107H (SSR03)
R
复位后:0000H
F0140H、 F0141H (SSR10)、 F0142H、 F0143H (SSR11)
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SSRmn
0
0
0
0
0
0
0
0
0
TSF
BFF
0
0
FEF
PEF
OVF
mn
mn
mn 注
mn
mn
TSFmn
通道 n 通信状态的表示标志
0
通信停止状态或者通信待机状态
1
通信运行状态
[ 清除条件 ]
• 当将 STm 寄存器的 STmn 位置 “1”(通信停止状态)或者将 SSm 寄存器的 SSmn 位置 “1”(通信待机状态)时
• 当通信结束时
[ 置位条件 ]
• 当开始通信时
BFFmn
通道 n 缓冲寄存器的状态表示标志
0
SDRmn 寄存器没有保存有效数据。
1
SDRmn 寄存器保存了有效数据。
[ 清除条件 ]
• 在发送过程中传送完从 SDRmn 寄存器到移位寄存器的发送数据时
• 在接收过程中从 SDRmn 寄存器读完接收数据时
• 当将 STm 寄存器的 STmn 位置 “1”(通信停止状态)或者将 SSm 寄存器的 SSmn 位置 “1”(通信允许状态)时
[ 置位条件 ]
• 在 SCRmn 寄存器的 TXEmn 位为 “1”(各通信模式中的发送模式、发送和接收模式)的状态下给 SDRmn 寄存
器写发送数据时
• 在 SCRmn 寄存器的 RXEmn 位为 “1” (各通信模式中的接收模式、发送和接收模式)的状态下将接收数据保
存到 SDRmn 寄存器时
• 当发生接收错误时
注
只限于 SSR01、 SSR03、 SSR11 寄存器。
注意
在 SNOOZE 模式 (SWC0=1)中进行 CSI 接收时, BFFmn 标志不变。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
303
R7F0C903-908
第 11 章 串行阵列单元
图 11-11
串行状态寄存器 mn (SSRmn)的格式 (2/2)
地址:F0100H、 F0101H (SSR00)~ F0106H、 F0107H (SSR03)
R
复位后:0000H
F0140H、 F0141H (SSR10)、 F0142H、 F0143H (SSR11)
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SSRmn
0
0
0
0
0
0
0
0
0
TSF
BFF
0
0
FEF
PEF
OVF
mn
mn
mn 注
mn
mn
FEFmn 注
通道 n 帧错误的检测标志
0
没有发生错误。
1
发生错误 (UART 接收时)。
[ 清除条件 ]
• 当给 SIRmn 寄存器的 FECTmn 位写 “1” 时
[ 置位条件 ]
• 在 UART 接收结束时没有检测到停止位时
PEFmn
通道 n 奇偶校验 /ACK 错误的检测标志
0
没有发生错误。
1
发生错误 (UART 接收时)或者未检测到 ACK (I2C 发送时)。
[ 清除条件 ]
• 当给 SIRmn 寄存器的 PECTmn 位写 “1” 时
[ 置位条件 ]
• 在 UART 接收结束时发送数据的奇偶校验和奇偶校验位不同 (奇偶校验错误)时
• 在 I2C 发送时并且在 ACK 接收时序从属方没有返回 ACK 信号 (未检测到 ACK)时
OVFmn
通道 n 溢出错误的检测标志
0
没有发生错误。
1
发生错误。
[ 清除条件 ]
• 当给 SIRmn 寄存器的 OVCTmn 位写 “1” 时
[ 置位条件 ]
• 在 SCRmn 寄存器的 RXEmn 位为 “1” (各通信模式中的接收模式、发送和接收模式)的状态下,虽然接收数
据被保存在 SDRmn 寄存器,但是没有读接收数据而写发送数据或者写下一个接收数据时
• 在 CSI 模式的从属发送或者从属发送和接收过程中未准备好发送数据时
注
只限于 SSR01、 SSR03、 SSR11 寄存器。
注意 1. 如果在BFFmn位为“1”时写SDRmn寄存器,就会破坏被保存的发送或者接收数据,并且检测到溢出错误(OVEmn=1)。
2. 在 SNOOZE 模式 (SWC0=1)中进行 CSI 接收时, OVFmn 标志不变。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
304
R7F0C903-908
11.3.8
第 11 章 串行阵列单元
串行通道开始寄存器 m (SSm)
SSm 寄存器是设定允许各通道的通信 / 开始计数的触发寄存器。
如果给各位 (SSmn)写 “1”,就将串行通道允许状态寄存器 m (SEm)的对应位 (SEmn)置 “1” (运行
允许状态)。因为 SSmn 位是触发位,所以如果 SEmn 位为 “1” 就立即清除 SSmn 位。
通过 16 位存储器操作指令设定 SSm 寄存器。
能用 SSmL 并且通过 1 位或者 8 位存储器操作指令设定 SSm 寄存器的低 8 位。
在产生复位信号后, SSm 寄存器的值变为 “0000H”。
图 11-12
地址:F0122H、 F0123H (SS0)
串行通道开始寄存器 m (SSm)的格式
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
SS0
0
0
0
0
0
0
0
0
0
0
0
0
地址:F0162H、 F0163H (SS1)
3
2
SS03 SS02 SS01 SS00
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
SS1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
注
0
R/W
复位后:0000H
SSmn
1
1
0
SS11 SS10
通道 n 运行开始的触发
0
没有触发。
1
将 SEmn 位置 “1”,转移到通信待机状态注。
如果在通信过程中将 SSmn 位置 “1”,就停止通信进入待机状态。此时,控制寄存器和移位寄存器的值、SCKmn 引
脚和 SOmn 引脚、 FEFmn 标志、 PEFmn 标志和 OVFmn 标志保持状态。
注意 1. 必须将 SS0 寄存器的 bit15 ~ 4 和 SS1 寄存器的 bit15 ~ 2 置 “0”。
2. 在 UART 接收时,必须在将 SCRmn 寄存器的 RXEmn 位置 “1” 后至少间隔 4 个 fMCK 时钟,然后将 SSmn 置 “1”。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
2. SSm 寄存器的读取值总是 “0000H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
305
R7F0C903-908
11.3.9
第 11 章 串行阵列单元
串行通道停止寄存器 m (STm)
STm 寄存器是设定允许各通道的通信 / 停止计数的触发寄存器。
如果给各位 (STmn)写 “1”,就将串行通道允许状态寄存器 m (SEm)的对应位 (SEmn)清 “0” (运行
停止状态)。因为 STmn 位是触发位,所以如果 SEmn 位为 “0” 就立即清除 STmn 位。
通过 16 位存储器操作指令设定 STm 寄存器。
能用 STmL 并且通过 1 位或者 8 位存储器操作指令设定 STm 寄存器的低 8 位。
在产生复位信号后, STm 寄存器的值变为 “0000H”。
图 11-13
地址:F0124H、 F0125H (ST0)
串行通道停止寄存器 m (STm)的格式
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
ST0
0
0
0
0
0
0
0
0
0
0
0
0
地址:F0164H、 F0165H (ST1)
3
2
0
ST03 ST02 ST01 ST00
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
ST1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
STmn
1
1
0
ST11 ST10
通道 n 运行的停止触发
0
没有触发。
1
将 SEmn 位清 “0”,停止通信运行注。
注
控制寄存器和移位寄存器的值、SCKmn引脚和SOmn引脚以及FEFmn标志、PEFmn标志和OVFmn标志保持状态。
注意
必须将 ST0 寄存器的 bit15 ~ 4 和 ST1 寄存器的 bit15 ~ 2 置 “0”。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
2. STm 寄存器的读取值总是 “0000H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
306
R7F0C903-908
11.3.10
第 11 章 串行阵列单元
串行通道允许状态寄存器 m (SEm)
SEm 寄存器用于确认各通道的串行发送和接收的允许或者停止状态。
如果给串行开始允许寄存器 m (SSm)的各位写 “1”,就将其对应位置 “1”。如果给串行通道停止寄存器 m
(STm)的各位写 “1”,就将其对应位清 “0”。
对于允许运行的通道 n,无法通过软件改写后述的串行输出寄存器 m (SOm)的 CKOmn 位 (通道 n 的串
行时钟输出)的值,而从串行时钟引脚输出由通信运行反映的值。
对于停止运行的通道 n,能通过软件设定 SOm 寄存器的 CKOmn 位的值,并且从串行时钟引脚输出该值。
从而,能通过软件生成开始条件或者停止条件等的任意波形。
通过 16 位存储器操作指令读取 SEm 寄存器。
能用 SEmL 并且通过 1 位或者 8 位存储器操作指令读取 SEm 寄存器的低 8 位。
在产生复位信号后, SEm 寄存器的值变为 “0000H”。
图 11-14
地址:F0120H、 F0121H (SE0)
串行通道允许状态寄存器 m (SEm)的格式
R
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
SE0
0
0
0
0
0
0
0
0
0
0
0
0
地址:F0160H、 F0161H (SE1)
3
2
R
复位后:0000H
15
14
13
12
11
10
9
8
7
6
5
4
3
2
SE1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
备注
0
SE03 SE02 SE01 SE00
符号
SEmn
1
1
0
SE11 SE10
通道 n 运行的允许或者停止状态的表示
0
运行停止状态
1
运行允许状态
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
307
R7F0C903-908
11.3.11
第 11 章 串行阵列单元
串行输出允许寄存器 m (SOEm)
SOEm 寄存器设定允许或者停止各通道的串行通信的输出。
对于允许串行输出的通道 n,无法通过软件改写后述的串行输出寄存器 m (SOm)的 SOmn 位的值,而从
串行数据输出引脚输出由通信运行反映的值。
对于停止串行输出的通道 n,能通过软件设定 SOm 寄存器的 SOmn 位的值,并且从串行数据输出引脚输出
该值。从而,能通过软件生成开始条件或者停止条件等的任意波形。
通过 16 位存储器操作指令设定 SOEm 寄存器。
能用 SOEmL 并且通过 1 位或者 8 位存储器操作指令设定 SOEm 寄存器的低 8 位。
在产生复位信号后, SOEm 寄存器的值变为 “0000H”。
图 11-15
地址:F012AH、 F012BH (SOE0)
串行输出允许寄存器 m (SOEm)的格式
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
SOE0
0
0
0
0
0
0
0
0
0
0
0
0
地址:F016AH、 F016BH (SOE1)
3
2
SOE SOE
1
SOE SOE
03
02
01
00
1
0
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
SOE1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SOE SOE
11
SOE
0
10
通道 n 串行输出的允许或者停止
mn
0
停止串行通信的输出。
1
允许串行通信的输出。
注意
必须将 SOE0 寄存器的 bit15 ~ 4 和 SOE1 寄存器的 bit15 ~ 2 置 “0”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
308
R7F0C903-908
11.3.12
第 11 章 串行阵列单元
串行输出寄存器 m (SOm)
SOm 寄存器是各通道串行输出的缓冲寄存器。
从通道 n 的串行数据输出引脚输出此寄存器的 SOmn 位的值。
从通道 n 的串行时钟输出引脚输出此寄存器的 CKOmn 位的值。
只有在禁止串行输出时(SOEmn=0)才能通过软件改写此寄存器的 SOmn 位。当允许串行输出(SOEmn=1)
时,忽视通过软件的改写而只能通过串行通信更改此寄存器的 SOmn 位的值。
只有在通道停止运行时(SEmn=0)才能通过软件改写此寄存器的 CKOmn 位。当允许通道运行(SEmn=1)
时,忽视通过软件的改写而只能通过串行通信更改此寄存器的 CKOmn 位的值。
要将串行接口的引脚用作端口功能时,必须将相应的 CKOmn 位和 SOmn 位置 “1”。
通过 16 位存储器操作指令设定 SOm 寄存器。
在产生复位信号后, SOm 寄存器的值变为 “0F0FH”。
图 11-16
地址:F0128H、 F0129H (SO0)
符号
15
14
13
12
SO0
0
0
0
0
10
9
8
CKO CKO CKO CKO
02
01
符号
14
13
12
11
10
SO1
0
0
0
0
0
0
9
CKOmn
6
5
4
3
2
1
0
0
0
0
0
SO
SO
SO
SO
03
02
01
00
R/W
8
CKO CKO
11
7
00
复位后:0303H
15
7
6
5
4
3
2
1
0
0
0
0
0
0
0
SO
SO
11
10
10
通道 n 的串行时钟输出
0
串行时钟的输出值为 “0”。
1
串行时钟的输出值为 “1”。
SOmn
注意
R/W
复位后:0F0FH
11
03
地址:F0168H、 F0169H (SO1)
串行输出寄存器 m (SOm)的格式
通道 n 的串行数据输出
0
串行数据的输出值为 “0”。
1
串行数据的输出值为 “1”。
必须将 SO0 寄存器的 bit15 ~ 12 和 bit7 ~ 4 置 “0”。
必须将 SO1寄存器的 bit15~ 10 和 bit7~ 2置“0”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
R01UH0629CJ0120 Rev.1.20
2019.06.28
309
R7F0C903-908
11.3.13
第 11 章 串行阵列单元
串行输出电平寄存器 m (SOLm)
SOLm 寄存器是设定各通道的数据输出电平反相的寄存器。
只有在 UART 模式中才能设定此寄存器。在 CSI 模式和简易 I2C 模式中,必须将对应位置 “0”。
只在允许串行输出时 (SOEmn=1),将此寄存器的各通道 n 反相设定反映到引脚输出。在禁止串行输出时
(SOEmn=0),将 SOmn 位的值直接输出。
禁止在运行过程中 (SEmn=1)改写 SOLm 寄存器。
通过 16 位存储器操作指令设定 SOLm 寄存器。
能用 SOLmL 并且通过 8 位存储器操作指令设定 SOLm 寄存器的低 8 位。
在产生复位信号后, SOLm 寄存器的值变为 “0000H”。
图 11-17
地址:F0134H、 F0135H (SOL0)
串行输出电平寄存器 m (SOLm)的格式
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SOL0
0
0
0
0
0
0
0
0
0
0
0
0
0
SOL
0
SOL
02
地址:F0174H、 F0175H (SOL1)
00
R/W
复位后:0000H
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SOL1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SOL
10
SOLmn
UART 模式中的通道 n 发送数据电平反相的选择
0
将通信数据直接输出。
1
将通信数据反相输出。
注意
必须将 SOL0 寄存器的 bit15 ~ 3、 bit1 和 SOL1 寄存器的 bit15 ~ 1 置 “0”。
备注
m:单元号 (m=0、 1) n:通道号 (n=0、 2)
当进行 UART 发送时,发送数据的电平反相例子如图 11-18 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
310
R7F0C903-908
第 11 章 串行阵列单元
图 11-18
发送数据的电平反相例子
(a) ↙䗉࠰ (SOLmn = 0)
SOLmn = 0Ⲻ䗉࠰
TxDq
ST
ਇ䘷ᮦᦤ
P
S
ST
ਇ䘷ᮦᦤ(ਃ)
P
S
(b) ਃ䗉࠰ (SOLmn = 1)
SOLmn = 1Ⲻ䗉࠰
TxDq
备注
m:单元号 (m=0、 1) n:通道号 (n=0、 2)
R01UH0629CJ0120 Rev.1.20
2019.06.28
311
R7F0C903-908
11.3.14
第 11 章 串行阵列单元
串行待机控制寄存器 0 (SSC0)
SSC0 寄存器是控制在 CSI00 或者 UART0 的串行数据接收时从 STOP 模式启动接收运行 (SNOOZE 模式)
的寄存器。
通过 16 位存储器操作指令设定 SSC0 寄存器。
能用 SSC0L 并且通过 8 位存储器操作指令设定 SSC0 寄存器的低 8 位。
在产生复位信号后, SSC0 寄存器的值变为 “0000H”。
注意
SNOOZE 模式中的最大传送速率如下所示:
• CSI00、 CSI20:~ 1Mbps
• UART0、 UART2:只限于4800bps。
图 11-19
地址:F0138H、 F0139H
串行待机控制寄存器 0 (SSC0)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
7
6
5
4
3
2
SSC0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
SSE SWC
C0
SSEC0
0
0
SNOOZE 模式中的通信错误中断产生的允许或者停止的选择
0
允许产生错误中断 (INTSRE0)。
1
停止产生错误中断 (INTSRE0)。
• 在 SNOOZE 模式中进行 UART 接收的情况下,只有在 SWC0 位和 EOCmn 位为 “1” 时才能将 SSEC0 位置 “1”
或者 “0”,否则必须将 SSEC0 位置 “0”。
• 禁止将 SSEC0 位和 SWC0 位分别置 “1” 和 “0”。
SWC0
SNOOZE 模式的设定
0
不使用 SNOOZE 模式功能。
1
使用 SNOOZE 模式功能。
• 通过 STOP 模式中的硬件触发信号来解除 STOP 模式,并且在 CPU 不运行的状态下进行 CSI/UART 的接收
(SNOOZE 模式)。
• 只有在选择高速内部振荡器时钟作为 CPU/ 外围硬件时钟 (fCLK)的情况下才能设定 SNOOZE 模式功能,而
在选择其他时钟的情况下禁止设定。
• 即使使用 SNOOZE 模式功能,也必须在通常运行模式中将 SWC0 位置 “0”,并且在即将要转移到 STOP 模式
前将 SWC0 位改为 “1”。
另外,必须在从 STOP 模式返回到通常运行模式后将 SWC0 位改为 “0”。
图 11-20
在 SNOOZE 模式中进行 UART 接收时的中断
EOCmn 位
SSEC0 位
正常接收
接收错误
0
0
产生 INTSRx。
产生 INTSRx。
0
1
产生 INTSRx。
产生 INTSRx。
1
0
产生 INTSRx。
产生 INTSREx。
1
1
产生 INTSRx。
不产生中断。
R01UH0629CJ0120 Rev.1.20
2019.06.28
312
R7F0C903-908
11.3.15
第 11 章 串行阵列单元
噪声滤波器允许寄存器 0 (NFEN0)
NFEN0 寄存器设定噪声滤波器是否用于各通道串行数据输入引脚的输入信号。
对于用于 CSI 或者简易 I2C 通信的引脚,必须将对应位置 “0”,使噪声滤波器无效。
对于用于 UART 通信的引脚,必须将对应位置 “1”,使噪声滤波器有效。
当噪声滤波器有效时,在通过对象通道的运行时钟 (fMCK)进行同步后检测 2 个时钟是否一致;当噪声滤
波器无效时,只通过对象通道的运行时钟 (fMCK)进行同步。
通过 1 位或者 8 位存储器操作指令设定 NFEN0 寄存器。
在产生复位信号后, NFEN0 寄存器的值变为 “00H”。
图 11-21
地址:F0070H
噪声滤波器允许寄存器 0 (NFEN0)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
NFEN0
0
0
0
SNFEN20
0
SNFEN10
0
SNFEN00
SNFEN20
RxD2 引脚的噪声滤波器的使用与否
0
噪声滤波器 OFF
1
噪声滤波器 ON
当用作 RxD2 引脚时,必须将 SNFEN20 位置 “1”。
当用作 RxD2 引脚以外的功能时,必须将 SNFEN20 位置 “0”。
SNFEN10
RxD1 引脚的噪声滤波器的使用与否
0
噪声滤波器 OFF
1
噪声滤波器 ON
当用作 RxD1 引脚时,必须将 SNFEN10 位置 “1”。
当用作 RxD1 引脚以外的功能时,必须将 SNFEN10 位置 “0”。
SNFEN00
RxD0 引脚的噪声滤波器的使用与否
0
噪声滤波器 OFF
1
噪声滤波器 ON
当用作 RxD0 引脚时,必须将 SNFEN00 位置 “1”。
当用作 RxD0 引脚以外的功能时,必须将 SNFEN00 位置 “0”。
注意
必须将 bit7 ~ 5、 3、 1 置 “0”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
313
R7F0C903-908
11.3.16
第 11 章 串行阵列单元
控制串行输入 / 输出引脚端口功能的寄存器
在使用串行阵列单元时,必须设定与对象通道复用的端口功能的控制寄存器 (端口模式寄存器 (PMxx)、
端口寄存器 (Pxx)、端口输入模式寄存器 (PIMxx)、端口输出模式寄存器 (POMxx)和端口模式控制寄存
器 (PMCxx))。
详细内容请参照 “4.3.1 端口模式寄存器(PMxx)”、“4.3.2 端口寄存器(Pxx)”、“4.3.4 端口输入模式
寄存器 (PIMxx) ”、 “4.3.5 端口输出模式寄存器 (POMxx) ” 和 “4.3.6 端口模式控制寄存器 (PMCxx) ”。
在将串行数据输出引脚或者串行时钟输出引脚的复用端口 (P00/ANI17/TI00/TxD1 等)用作串行数据输出
或者串行时钟输出时,必须将各端口对应的端口模式控制寄存器(PMCxx)的位和端口模式寄存器 (PMxx)的
位置 “0”,并且将端口寄存器 (Pxx)的位置 “1”。
另外,当用于N沟道漏极开路输出(VDD 耐压)模式时,必须将各端口对应的端口输出模式寄存器(POMxx)
的位置 “1”。在连接不同电位 (1.8V、 2.5V、 3V)工作的外部设备时,请参照 “4.4.4 通过输入 / 输出缓冲器进
行的不同电位 (1.8V、 2.5V、 3V)的对应 ”。
(例) P00/ANI17/TI00/TxD1 用作串行数据输出的情况
将端口模式控制寄存器 0 的 PMC00 位置 “0”。
将端口模式寄存器 0 的 PM00 位置 “0”。
将端口寄存器 0 的 P00 位置 “1”。
在将串行数据输入引脚或者串行时钟输入引脚的复用端口 (P01/ANI16/TO00/RxD1 等)用作串行数据输入
或者串行时钟输入时,必须将各端口对应的端口模式寄存器 (PMxx)的位置 “1”,并且将端口模式控制寄存器
(PMCxx)的位置 “0”。此时,端口寄存器 (Pxx)的位可以是 “0” 或者 “1”。
另外,当用作 TTL 输入缓冲器时,必须将各端口对应的端口输入模式寄存器(PIMxx)的位置 “1”。在连接
不同电位(1.8V、2.5V、3V)工作的外部设备时,请参照 “4.4.4 通过输入 / 输出缓冲器进行的不同电位(1.8V、
2.5V、 3V)的对应 ”。
(例) P01/ANI16/TO00/RxD1 用作串行数据输入的情况
将端口模式控制寄存器 0 的 PMC01 位置 “0”。
将端口模式寄存器 0 的 PM01 位置 “1”。
将端口寄存器 0 的 P01 位置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
314
R7F0C903-908
11.4
第 11 章 串行阵列单元
运行停止模式
串行阵列单元的各串行接口有运行停止模式。
在运行停止模式中不能进行串行通信,因此能降低功耗。
另外,在运行停止模式中能将用于串行接口的引脚用作端口功能。
11.4.1
以单元为单位停止运行的情况
通过外围允许寄存器 0 (PER0)设定以单元为单位的停止运行。
PER0 寄存器是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过给不使用的硬件停止提供时钟,以
降低功耗和噪声。
要停止串行阵列单元 0 时,必须将 bit2(SAU0EN)置 “0” ;要停止串行阵列单元 1 时,必须将 bit3(SAU1EN)
置 “0”。
图 11-22
以单元为单位停止运行时的外围允许寄存器 0 (PER0)的设定
(a) 外围允许寄存器 0 (PER0) …… 只将要停止 SAUm 的对应位置 “0”。
7
PER0
6
TMKAEN
×
5
4
3
2
ADCEN
IICA0EN
SAU1EN
SAU0EN
×
×
0/1
0/1
0
1
0
TAU0EN
0
×
SAUm 输入时钟的控制
0:停止提供输入时钟
1:提供输入时钟
注意 1. 当 SAUmEN 位为 “0” 时,忽视串行阵列单元 m 的控制寄存器的写操作,而且读取值都为初始值。
但是,以下的寄存器除外:
• 噪声滤波器允许寄存器 0 (NFEN0)
• 端口输入模式寄存器 0、 1 (PIM0、 PIM1)
• 端口输出模式寄存器 0、 1、 5 (POM0、 POM1、 POM5)
• 端口模式控制寄存器 0 (PMC0)
• 端口模式寄存器 0、 1、 3、 5 (PM0、 PM1、 PM3、 PM5)
• 端口寄存器 0、 1、 3、 5 (P0、 P1、 P3、 P5)
2. 必须将 bit6 和 bit1 置 “0”。
备注
×: 这是串行阵列单元未使用的位 (取决于其他外围功能的设定)。
0/1:根据用户的用途置“0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
315
R7F0C903-908
11.4.2
第 11 章 串行阵列单元
按通道停止运行的情况
通过以下各寄存器设定按通道停止运行。
图 11-23
按通道停止运行时的各寄存器的设定
(a) 串行通道停止寄存器 m (STm) …… 这是设定允许各通道的通信 / 停止计数的寄存器。
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
STm
3
2
1
0
STm3
STm2
STm1
STm0
0/1
0/1
0/1
0/1
3
2
1
0
SEm3
SEm2
SEm1
SEm0
0/1
0/1
0/1
0/1
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0/1
0/1
0/1
0/1
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1
0/1
0/1
0/1
1:将 SEmn 位清 “0” 并且停止通信运行
※ 因为 STmn 位是触发位,所以如果 SEmn 位为 “0” 就立即清除 STmn 位。
(b) 串行通道允许状态寄存器 m (SEm) …… 此寄存器表示各通道的数据发送和接收的运行或者停止状态。
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
SEm
0:运行停止状态
※SEm 寄存器是只读状态寄存器,通过 STm 寄存器来停止运行。
对于已经停止运行的通道,能通过软件设定 SOm 寄存器的 CKOmn 位的值。
(c) 串行输出允许寄存器 m (SOEm) …… 这是设定允许或者停止各通道串行通信输出的寄存器。
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
SOEm
0:通过串行通信运行来停止输出
※ 对于已经停止串行输出的通道,能通过软件设定 SOm 寄存器的 SOmn 位的值。
(d) 串行输出寄存器 m (SOm) …… 这是各通道串行输出的缓冲寄存器。
15
14
13
12
0
0
0
0
SOm
11
10
9
8
CKOm3
CKOm2
CKOm1
CKOm0
0/1
0/1
0/1
0/1
1:串行时钟的输出值为 “1”
7
6
5
4
0
0
0
0
1:串行数据的输出值为 “1”
※ 当将各通道对应的引脚用作端口功能时,必须将相应的 CKOmn 位和 SOmn 位置 “1”。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
2.
:不能设定 (设定初始值)。 0/1:根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
316
R7F0C903-908
11.5
第 11 章 串行阵列单元
3 线串行 I/O (CSI00、 CSI11、 CSI20)通信的运行
这是通过串行时钟 (SCK)和串行数据 (SI 和 SO)共 3 条线实现的时钟同步通信功能。
[ 数据的发送和接收 ]
•
7 位或者 8 位的数据长度
•
发送和接收数据的相位控制
•
MSB/LSB 优先的选择
[ 时钟控制 ]
•
•
主控或者从属的选择
输入 / 输出时钟的相位控制
•
设定由预分频器和通道内部计数器产生的传送周期。
•
最大传送速率注
主控通信:Max. fCLK/2 (只限于 CSI00)
Max. fCLK/4
从属通信:Max. fMCK/6
[ 中断功能 ]
•
传送结束中断、缓冲器空中断
[ 错误检测标志 ]
•
溢出错误
以下通道的 CSI 支持 SNOOZE 模式。 SNOOZE 模式功能是指:如果在 STOP 模式的状态下检测到 SCK 的
输入,就不需要 CPU 运行而接收数据。只有以下的 CSI 才能设定 SNOOZE 模式。
•
本产品:CSI00
必须在满足 SCK 周期时间(tKCY)特性的范围内使用。详细内容请参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”。
注
SAU0 的通道 0 ~ 3 以及 SAU1 的通道 0 ~ 3 是支持 3 线串行 I/O (CSI00、 CSI11、 CSI20)的通道。
单元
通道
用作 CSI
用作 UART
用作简易 I2C
0
0
CSI00
UART0
IIC00
1
—
2
—
3
CSI11
0
CSI20
1
—
1
—
UART1
—
IIC11
UART2
IIC20
—
3 线串行 I/O (CSI00、 CSI11、 CSI20)有以下 7 种通信运行:
•
主控发送
(参照 11.5.1)
•
主控接收
(参照 11.5.2)
•
主控的发送和接收
(参照 11.5.3)
•
从属发送
(参照 11.5.4)
•
从属接收
(参照11.5.5)
•
从属的发送和接收
(参照11.5.6)
•
SNOOZE 模式功能
(参照 11.5.7)
R01UH0629CJ0120 Rev.1.20
2019.06.28
317
R7F0C903-908
11.5.1
第 11 章 串行阵列单元
主控发送
主控发送是指 RL78 微控制器输出传送时钟并且将数据发送到其他设备的运行。
CSI00
CSI11
CSI20
对象通道
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
使用的引脚
SCK00、 SO00
SCK11、 SO11
SCK20、 SO20
INTCSI00
INTCSI11
INTCSI20
3 线串行 I/O
中断
可选择传送结束中断 (单次传送模式)或者缓冲器空中断 (连续传送模式)。
错误检测标志
无
传送数据长度
7 位或者 8 位
传送速率注
Max. fCLK/2[Hz] (只限于 CSI00), fCLK/4[Hz]
Min. fCLK/(2×215×128)[Hz] fCLK:系统时钟频率
数据相位
能通过 SCRmn 寄存器的 DAPmn 位进行选择。
• DAPmn=0:在串行时钟开始运行时,开始数据输出。
• DAPmn=1:在串行时钟开始运行的半个时钟前,开始数据输出。
时钟相位
能通过 SCRmn 寄存器的 CKPmn 位进行选择。
• CKPmn=0:正相
• CKPmn=1:反相
数据方向
MSB 优先或者 LSB 优先
注
必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
318
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-24
3 线串行 I/O (CSI00、 CSI11、 CSI20)主控发送时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
0
11
10
8
7
STSmn
0
0
0
0
0
6
5
4
3
SISmn0
0
0
0
1
0
2
1
0
MDmn2
MDmn1
MDmn0
0
0
0/1
0
通道 n 的运行时钟 (fMCK)
通道 n 的中断源
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
1:缓冲器空中断
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
9
TXEmn
RXEmn
DAPmn
CKPmn
1
0
0/1
0/1
10
9
8
7
EOCmn PTCmn1 PTCmn0
0
0
0
6
DIRmn
0
0/1
5
4
3
2
SLCmn1 SLCmn0
0
0
1
0
DLSmn1 DLSmn0
0
0
1
1注
0/1
数据传送顺序的选择
数据长度的设定
数据和时钟的相位选择 (详细内容请参照
0:进行 MSB 优先的输入 / 输出
0:7 位数据长度
“11.3 控制串行阵列单元的寄存器 ”)
1:进行 LSB 优先的输入 / 输出
1:8 位数据长度
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOp)
15
14
13
12
11
10
SDRmn
9
8
7
6
5
4
波特率的设定
3
2
1
0
发送数据
0
(运行时钟 (fMCK)的分频设定)
(发送数据的设定)
SIOp
(d) 串行输出寄存器 m (SOm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
SOm
0
0
0
0
8
CKOm3
CKOm2
CKOm1
CKOm0
0/1
0/1
0/1
0/1
7
0
6
0
5
0
4
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1
0/1
0/1
0/1
当时钟相位为 “ 正相 ”(SCRmn 寄存器的 CKPmn=0)时,“1” 为开
始通信;当时钟相位为 “ 反相 ”(CKPmn=1)时,“0” 为开始通信。
(e) 串行输出允许寄存器 m (SOEm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
7
6
5
4
SOEm
0
(f)
0
0
0
0
0
0
0
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0
0
0
0
0/1
0/1
0/1
0/1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
SSm
只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
注
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
2.
:在 CSI 主控发送模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
319
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-25
主控发送的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
䇴ᇐՖ䘷⌘⢯⦽(䇴ᇐ䘆㺂ᰬ䫕(fMCK)
࠼仇ⲺՖ䘷ᰬ䫕)Ⱦ
䇴ᇐSOmᇺᆎಞ
䇴ᇐѨ㺂ᰬ䫕(CKOmn)ૂѨ㺂ᮦᦤ
(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
䇴ᇐSOEmᇺᆎಞ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䇴ᇐㄥਙ
䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎಞ
(ሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰ૂᰬ䫕䗉࠰ᴿ
᭾)Ⱦ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
㔉ᶕࡓခ䇴ᇐȾ
ྸ᷒㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞ
Ⲻbit7Њ0)ߏਇ䘷ᮦᦤθቧᔶခ䙐ؗȾ
图 11-26
主控发送的中止步骤
ѣ↘䇴ᇐⲺᔶခ
No
(䘿)
ྸ᷒ᴿ↙൞Ֆ䘷ⲺᮦᦤθቧㅿᖻՖ䘷㔉ᶕ
(ྸ᷒䴶㾷㍝ᙛ↘ڒθቧуㅿᖻ)Ⱦ
TSFmn = 0?
Yes
(ᗻ㾷)
ߏSTmᇺᆎಞ
(ᗻ㾷)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
(䘿)
䇴ᇐPER0ᇺᆎಞ
ѣ↘䇴ᇐⲺ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ሼሯ䊗䙐䚉ⲺSTmnփ㖤“1”
(SEmn=0φ㖤Ѱ䘆㺂↘ڒ⣬ᘷ)Ⱦ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ䗉࠰Ⱦ
൞㍝ᙛ↘ڒᰬθṯᦤ䴶㾷θᴪ᭯ሯ䊗䙐䚉
ⲺѨ㺂ᰬ䫕(CKOmn)ૂѨ㺂ᮦᦤ(SOmn)
Ⲻ⭫ᒩȾ
↘ڒѨ㺂䱫ࡍঋⲺݹᰬ䫕θ㖤Ѱགྷփ⣬ᘷȾ
㔉ᶕѣ↘䇴ᇐθ䘑ޛсжѠ༺⨼Ⱦ
320
R7F0C903-908
第 11 章 串行阵列单元
图 11-27
重新开始主控发送的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
Ԅኔ䇴༽༽ᇂ∋ϋ
(ᗻ㾷)
No
ㅿࡦ䙐ؗሯ䊗(Ԅኔ䇴༽)↘ڒᡌ㘻䙐
ؗ㔉ᶕȾ
Yes
ㄥਙᬃ֒
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SDRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ֆ䘷⌘⢯⦽Ⲻ䇴ᇐ(䇴ᇐ䘆㺂
ᰬ䫕(fMCK)࠼仇ⲺՖ䘷ᰬ䫕)ᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ
䗉࠰Ⱦ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
䇴ᇐѨ㺂ᰬ䫕(CKOmn)ૂѨ㺂ᮦᦤ
(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
(ᗻ㾷)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
(ᗻ㾷)
ㄥਙᬃ֒
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰ૂᰬ䫕䗉
࠰㖤Ѱᴿ᭾Ⱦ
(ᗻ㾷)
ߏSSmᇺᆎಞ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
备注
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰ૂᰬ䫕䗉
࠰㖤Ѱᰖ᭾Ⱦ
(ᗻ㾷)
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
䇴ᇐ㔉ᶕȾ
ྸ᷒㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺ
bit7Њ0)䇴ᇐਇ䘷ᮦᦤθቧᔶခ䙐ؗȾ
如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象 (从属设备)停止或者通信结束后进行初始
设定而不是进行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
321
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次发送模式)
图 11-28
主控发送 (单次发送模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
SSmn
STmn
SEmn
SDRmn
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
〱փ䘆㺂
〱փ䘆㺂
〱փ䘆㺂
ᮦᦤਇ䘷
ᮦᦤਇ䘷
ᮦᦤਇ䘷
SCKpᕋ㝐
SOpᕋ㝐
〱փᇺᆎಞmn
INTCSIp
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
322
R7F0C903-908
第 11 章 串行阵列单元
图 11-29
主控发送 (单次发送模式)的流程图
CSI䙐Ⲻؗᔶခ
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐਇ䘷ᮦᦤ
ݷ䇮ѣᯣ
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-26
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
䇴ᇐਇ䘷ᮦᦤૂᮦᦤѠᮦθ䲚䙐ؗ㔉ᶕḽᘍ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ䙐ؗᮦᦤѠᮦૂ䙐ؗ㔉ᶕḽᘍ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ߏSIOpθ䗉࠰SOpૂ
SCKpؗਭ(ᔶခ䙐)ؗȾ
ㅿᖻਇ䘷㔉ᶕ
ྸ᷒ਇ⭕Ֆ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
Ֆ䘷㔉ᶕѣᯣ
ѣᯣ༺⨼ぁᓅ
No
ਇ䘷сжѠᮦᦤ?
Yes
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
ሼ䙐ؗ㔉ᶕḽᘍ㖤փ
ྸ᷒ᴿᓊ䈛ਇ䘷ⲺᮦᦤθቧԄؓᆎ॰䈱ਇ
䘷ᮦᦤᒬъߏࡦSIOpθᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
ੜࡏθቧሼ䙐ؗ㔉ᶕḽᘍ㖤փȾ
RETI
No
ਇ䘷㔉ᶕ?
䙐䗽⺤䇚䙐ؗ㔉ᶕḽᘍᶛỶḛਇ䘷㔉ᶕȾ
ѱぁᓅ
Yes
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
323
R7F0C903-908
(4)
第 11 章 串行阵列单元
处理流程 (连续发送模式)
图 11-30
SSmn
主控发送 (连续发送模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
Ś
ş
STmn
SEmn
SDRmn
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ3
ਇ䘷ᮦᦤ2
SCKpᕋ㝐
ਇ䘷ᮦᦤ1
SOpᕋ㝐
〱փᇺᆎಞmn
ਇ䘷ᮦᦤ2
〱փ䘆㺂
ਇ䘷ᮦᦤ3
〱փ䘆㺂
〱փ䘆㺂
INTCSIp
ᮦᦤਇ䘷
ᮦᦤਇ䘷
ᮦᦤਇ䘷
MDmn0
ŝ
TSFmn
BFFmn
śŜ
ś
Ŝ
ś
Ŝ
Ş
⌞
注
如果在串行状态寄存器 mn (SSRmn)的 BFFmn 位为 “1” 期间 (有效数据保存在串行数据寄存器 mn (SDRmn)
时)给 SDRmn 寄存器写发送数据,就重写发送数据。
注意
即使在运行中也能改写串行模式寄存器 mn(SMRmn)的 MDmn0 位。但是,为了能赶上最后发送数据的传送结束
中断,必须在开始传送最后一位之前进行改写。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
324
R7F0C903-908
第 11 章 串行阵列单元
图 11-31
主控发送 (连续发送模式)的流程图
CSI䙐Ⲻؗᔶခ
Ś
SAUⲺࡓခ䇴ᇐ
䇴ᇐਇ䘷ᮦᦤ
ѱぁᓅ
ݷ䇮ѣᯣ
ś
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-26
(䘿㕉ߨಞグѣᯣ)Ⱦ
䇴ᇐਇ䘷ᮦᦤૂᮦᦤѠᮦθ䲚䙐ؗ㔉ᶕḽᘍ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ䙐ؗᮦᦤѠᮦૂ䙐ؗ㔉ᶕḽᘍ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ߏSIOpθ䗉࠰SOpૂ
SCKpؗਭ(ᔶခ䙐)ؗȾ
ㅿᖻਇ䘷㔉ᶕ
ྸ᷒ਇ⭕㕉ߨಞグՖ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
ŜŞ
㕉ߨಞグՖ䘷㔉ᶕѣᯣ
ྸ᷒ᴿਇ䘷ᮦᦤθቧԄؓᆎ॰䈱ਇ䘷ᮦᦤᒬъ
ߏࡦSIOpθᴪ᯦ਇ䘷ᮦᦤ䪾ૂਇ䘷ᮦᦤѠᮦȾ
ྸ᷒⋗ᴿਇ䘷ᮦᦤθቧ൞MDmnփѰ“1”ᰬ䲚
MDmnփȾੜࡏθቧ㔉ᶕ䙐ؗȾ
No
ѣᯣ༺⨼ぁᓅ
䙐ؗᮦᦤѠᮦ > 0?
Yes
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
Yes
䙐ؗᮦᦤѠᮦ–1
No
MDmn = 1?
㔏MDmn0փߏ“0”
ŝ
ሼ䙐ؗ㔉ᶕḽᘍ㖤փ
RETI
No
ਇ䘷㔉ᶕ?
䙐䗽⺤䇚䙐ؗ㔉ᶕḽᘍᶛỶḛਇ䘷㔉ᶕȾ
Yes
㔏MDmn0փߏ“1”
Yes
ѱぁᓅ
㔝㔣䙐?ؗ
No
⾷↘ѣᯣ(ኅ㭳)
ş
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
备注
图中的①~⑥对应 “ 图 11-30 主控发送(连续发送模式)的时序图(类型 1:DAPmn=0、CKPmn=0)” 中的①~⑥。
R01UH0629CJ0120 Rev.1.20
2019.06.28
325
R7F0C903-908
11.5.2
第 11 章 串行阵列单元
主控接收
主控接收是指 RL78 微控制器输出传送时钟并且从其他设备接收数据的运行。
CSI00
CSI11
CSI20
对象通道
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
使用的引脚
SCK00、 SI00
SCK11、 SI11
SCK20、 SI20
INTCSI00
INTCSI11
INTCSI20
3 线串行 I/O
中断
可选择传送结束中断 (单次传送模式)或者缓冲器空中断 (连续传送模式)。
错误检测标志
只有溢出错误检测标志 (OVFmn)。
传送数据长度
7 位或者 8 位
传送速率注
Max. fCLK/2[Hz] (只限于 CSI00), fCLK/4[Hz]
Min. fCLK/(2×215×128)[Hz] fCLK:系统时钟频率
数据相位
能通过 SCRmn 寄存器的 DAPmn 位进行选择。
• DAPmn=0:在串行时钟开始运行时,开始数据输出。
• DAPmn=1:在串行时钟开始运行的半个时钟前,开始数据输出。
时钟相位
能通过 SCRmn 寄存器的 CKPmn 位进行选择。
• CKPmn=0:正相
• CKPmn=1:反相
数据方向
MSB 优先或者 LSB 优先
注
必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
326
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-32
3 线串行 I/O (CSI00、 CSI11、 CSI20)主控接收时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
0
11
10
8
7
STSmn
0
0
0
0
0
0
6
5
4
3
SISmn0
0
0
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
0
0
0/1
通道 n 的运行时钟 (fMCK)
通道 n 的中断源
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
1:缓冲器空中断
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
9
TXEmn
RXEmn
DAPmn
CKPmn
0
1
0/1
0/1
10
9
8
7
EOCmn
PTCmn1
PTCmn0
DIRmn
0
0
0
0/1
0
6
0
5
4
SLCmn1
SLCmn0
0
0
3
0
2
1
1
0
DLSmn1
DLSmn0
1注
0/1
数据传送顺序的选择
数据长度的设定
数据和时钟的相位选择 (详细内容请参照
0:进行 MSB 优先的输入 / 输出
0:7 位数据长度
“11.3 控制串行阵列单元的寄存器 ”)
1:进行 LSB 优先的输入 / 输出
1:8 位数据长度
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOp)
15
14
13
12
11
10
SDRmn
9
8
7
6
5
波特率的设定
4
3
2
1
0
接收数据
0
(运行时钟 (fMCK)的分频设定)
(写虚拟数据 “FFH”)
SIOp
(d) 串行输出寄存器 m (SOm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
SOm
0
0
0
0
8
CKOm3
CKOm2
CKOm1
CKOm0
0/1
0/1
0/1
0/1
7
0
6
0
5
0
4
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
×
×
×
×
当时钟相位为 “ 正相 ”(SCRmn 寄存器的 CKPmn=0)时,“1” 为开
始通信;当时钟相位为 “ 反相 ”(CKPmn=1)时,“0” 为开始通信。
(e) 串行输出允许寄存器 m (SOEm) …… 在此模式中不使用。
15
14
13
12
11
10
9
8
7
6
5
4
SOEm
0
(f)
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
×
×
×
×
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
注
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
2.
:在 CSI 主控接收模式中为固定设定。
:不能设定 (设定初始值)。
× :这是在此模式中不能使用的位 (在其他模式中也不使用的情况下,设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
327
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-33
主控接收的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
䇴ᇐՖ䘷⌘⢯⦽(䇴ᇐ䘆㺂ᰬ䫕(fMCK)
࠼仇ⲺՖ䘷ᰬ䫕)Ⱦ
䇴ᇐSOmᇺᆎಞ
䇴ᇐѨ㺂ᰬ䫕(CKOmn)Ⲻࡓခ䗉࠰⭫
ᒩȾ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᰬ䫕䗉࠰㖤Ѱᴿ᭾Ⱦ
䇴ᇐㄥਙ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
㔉ᶕࡓခ䇴ᇐȾ
ྸ᷒㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺ
bit7Њ0)䇴ᇐ㲐ᤕᮦᦤθቧᔶခ䙐ؗȾ
图 11-34
主控接收的中止步骤
ѣ↘䇴ᇐⲺᔶခ
No
(䘿)
ྸ᷒ᴿ↙൞Ֆ䘷ⲺᮦᦤθቧㅿᖻՖ䘷㔉ᶕ
(ྸ᷒䴶㾷㍝ᙛ↘ڒθቧуㅿᖻ)Ⱦ
TSFmn = 0?
Yes
(ᗻ㾷)
ߏSTmᇺᆎಞ
(ᗻ㾷)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
(䘿)
䇴ᇐPER0ᇺᆎಞ
ѣ↘䇴ᇐⲺ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ሼሯ䊗䙐䚉ⲺSTmnփ㖤“1”
(SEmn=0φ㖤Ѱ䘆㺂↘ڒ⣬ᘷ)Ⱦ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ䗉࠰Ⱦ
൞㍝ᙛ↘ڒᰬθṯᦤ䴶㾷θᴪ᭯ሯ䊗䙐䚉
ⲺѨ㺂ᰬ䫕(CKOmn)Ⲻ⭫ᒩȾ
↘ڒѨ㺂䱫ࡍঋⲺݹᰬ䫕θ㖤Ѱགྷփ⣬ᘷȾ
㔉ᶕѣ↘䇴ᇐθ䘑ޛсжѠ༺⨼Ⱦ
328
R7F0C903-908
第 11 章 串行阵列单元
图 11-35
重新开始主控接收的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
Ԅኔ䇴༽༽ᇂ∋ϋ
(ᗻ㾷)
No
ㅿࡦ䙐ؗሯ䊗(Ԅኔ䇴༽)↘ڒᡌ㘻䙐
ؗ㔉ᶕȾ
Yes
(ᗻ㾷)
ㄥਙᬃ֒
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᰬ䫕䗉࠰㖤Ѱᰖ᭾Ⱦ
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SDRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ֆ䘷⌘⢯⦽Ⲻ䇴ᇐ(䇴ᇐ䘆㺂
ᰬ䫕(fMCK)࠼仇ⲺՖ䘷ᰬ䫕)ᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
䇴ᇐѨ㺂ᰬ䫕(CKOmn)Ⲻࡓခ䗉࠰
⭫ᒩȾ
(䘿)
䲚䭏䈥ḽᘍ
ᖉOVFḽᘍؓᤷ㻡㖤փⲺ⣬ᘷᰬθ
䙐䗽Ѩ㺂ḽᘍ䲚䀜ਇᇺᆎಞmn
(SIRmn)䘑㺂䲚Ⱦ
(ᗻ㾷)
ㄥਙᬃ֒
(ᗻ㾷)
ߏSSmᇺᆎಞ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
备注
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᰬ䫕䗉࠰㖤Ѱᴿ᭾Ⱦ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
䇴ᇐ㔉ᶕȾ
ྸ᷒㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺ
bit7Њ0)䇴ᇐ㲐ᤕᮦᦤθቧᔶခ䙐ؗȾ
如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象 (从属设备)停止或者通信结束后进行初始
设定而不是进行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
329
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次接收模式)
图 11-36
主控接收 (单次接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
SSmn
STmn
SEmn
᭬ᮦᦤ2
᭬ᮦᦤ1
SDRmn
⭞ӄ᭬Ⲻ㲐ᤕᮦᦤ
㲐ᤕᮦᦤ
ߏ
᭬ᮦᦤ3
㲐ᤕᮦᦤ
ߏ
ߏ
䈱
䈱
䈱
SCKpᕋ㝐
SIpᕋ㝐
〱փᇺᆎಞmn
᭬ᮦᦤ1
᭬&〱փ䘆㺂
᭬ᮦᦤ2
᭬ᮦᦤ3
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
INTCSIp
ᮦᦤ᭬
ᮦᦤ᭬
ᮦᦤ᭬
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
330
R7F0C903-908
第 11 章 串行阵列单元
图 11-37
主控接收 (单次接收模式)的流程图
CSI䙐Ⲻؗᔶခ
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐ᭬ᮦᦤ
ݷ䇮ѣᯣ
㔏SIOp(=SDRmn[7:0])
ߏ㲐ᤕᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-34
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
䇴ᇐ᭬ᮦᦤⲺؓᆎ॰ૂ䙐ؗᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣ
ኅ㭳(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
䙐䗽ߏSIOpθ䗉࠰SCKp
ؗਭ(ᔶခ䙐)ؗȾ
ㅿᖻ᭬㔉ᶕ
ྸ᷒ਇ⭕Ֆ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
ѣᯣ༺⨼ぁᓅ
Ֆ䘷㔉ᶕѣᯣ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䈱᭬ᮦᦤᒬъߏࡦؓᆎ॰Ⱦ
ᴪ᯦᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦȾ
RETI
No
᭬ޞ䜞㔉ᶕ?
⺤䇚䙐ؗᮦᦤѠᮦȾ
ѱぁᓅ
Yes
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
331
R7F0C903-908
(4)
第 11 章 串行阵列单元
处理流程 (连续接收模式)
图 11-38
SSmn
主控接收 (连续接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
Ś
š
STmn
SEmn
SDRmn
᭬ᮦᦤ3
㲐ᤕᮦᦤ
㲐ᤕᮦᦤ
ś ߏ
ś ߏ
᭬ᮦᦤ2
᭬ᮦᦤ1
㲐ᤕᮦᦤ
ś ߏ
䈱
䈱
䈱
SCKpᕋ㝐
᭬ᮦᦤ1
SIpᕋ㝐
〱փᇺᆎಞmn
᭬ᮦᦤ2
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
ᮦᦤ᭬
ᮦᦤ᭬
᭬ᮦᦤ3
᭬&〱փ䘆㺂
INTCSIp
ᮦᦤ᭬
MDmn0
Ş
TSFmn
BFFmn
Ŝ
注意
Ŝ
ŝ
Ŝ
ŝ
şŠ
即使在运行过程中也能改写 MDmn0 位。但是,为了能赶上最后接收数据的传送结束中断,必须在开始接收最后一
位之前进行改写。
备注 1. 图中的①~⑧对应 “ 图 11-39 主控接收 (连续接收模式)的流程图 ” 中的①~⑧。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
332
R7F0C903-908
第 11 章 串行阵列单元
图 11-39
主控接收 (连续接收模式)的流程图
CSI䙐Ⲻؗᔶခ
Ś
ѱぁᓅ
SAUⲺࡓခ䇴ᇐ
ś
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-34
(䘿㕉ߨಞグѣᯣ)Ⱦ
䇴ᇐ᭬ᮦᦤ
ሯӄ᭬ᮦᦤθ䇴ᇐؓᆎ॰ૂ䙐ؗᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
ݷ䇮ѣᯣ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
㔏SIOp(=SDRmn[7:0])
ߏ㲐ᤕᮦᦤ
䙐䗽ߏSIOpθ䗉࠰SCKp
ؗਭ(ᔶခ䙐)ؗȾ
ㅿᖻ᭬㔉ᶕ
ྸ᷒ਇ⭕ѣᯣθቧ䖢〱ࡦ
ѣᯣ༺⨼ぁᓅȾ
Ŝş
㕉ߨಞグՖ䘷㔉ᶕѣᯣ
No
BFFmn=1 ?
Yes
ѣᯣ༺⨼ぁᓅ
ŝ
Š
ྸ᷒ᴿ᭬ᮦᦤθቧ䈱䈛ᮦᦤᒬъ
ߏࡦؓᆎ॰θᴪ᯦᭬ᮦᦤ䪾
(䙐ؗᮦᦤѠᮦ–1)Ⱦ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䙐ؗᮦᦤѠᮦ–1
=0
Ő2
䙐ؗᮦᦤѠᮦ ?
Ş
=1
㔏MDmn0փߏ“0”
ś
㔏SIOp(=SDRmn[7:0])
ߏ㲐ᤕᮦᦤ
RETI
No
䙐ؗᮦᦤѠᮦ = 0?
ྸ᷒䙐ؗᮦᦤѠᮦѰ“0”θቧ㔉ᶕ᭬Ⱦ
Yes
ѱぁᓅ
㔏MDmn0փߏ“1”
Yes
㔝㔣᭬?
No
⾷↘ѣᯣ(ኅ㭳)
š
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
备注
图中的①~⑧对应 “ 图 11-38 主控接收(连续接收模式)的时序图(类型 1:DAPmn=0、CKPmn=0)” 中的①~⑧。
R01UH0629CJ0120 Rev.1.20
2019.06.28
333
R7F0C903-908
11.5.3
第 11 章 串行阵列单元
主控的发送和接收
主控的发送和接收是指 RL78 微控制器输出传送时钟并且和其他设备进行数据发送和接收的运行。
3 线串行 I/O
对象通道
使用的引脚
中断
CSI00
CSI11
CSI20
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
SCK00、 SI00、 SO00
SCK11、 SI11、 SO11
SCK20、 SI20、 SO20
INTCSI00
INTCSI11
INTCSI20
可选择传送结束中断 (单次传送模式)或者缓冲器空中断 (连续传送模式)。
错误检测标志
只有溢出错误检测标志 (OVFmn)。
传送数据长度
7 位或者 8 位
传送速率注
Max. fCLK/2[Hz] (只限于 CSI00), fCLK/4[Hz]
Min. fCLK/(2×215×128)[Hz] fCLK:系统时钟频率
数据相位
能通过 SCRmn 寄存器的 DAPmn 位进行选择。
• DAPmn=0:在串行时钟开始运行时,开始数据输出。
• DAPmn=1:在串行时钟开始运行的半个时钟前,开始数据输出。
时钟相位
能通过 SCRmn 寄存器的 CKPmn 位进行选择。
• CKPmn=0:正相
• CKPmn=1:反相
数据方向
MSB 优先或者 LSB 优先
注
必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
334
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-40
3 线串行 I/O (CSI00、 CSI11、 CSI20)主控发送和接收时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
0
11
10
8
7
STSmn
0
0
0
0
0
6
5
4
3
SISmn0
0
0
0
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
0
0
0/1
通道 n 的运行时钟 (fMCK)
通道 n 的中断源
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
1:缓冲器空中断
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
9
TXEmn
RXEmn
DAPmn
CKPmn
1
1
0/1
0/1
10
9
8
7
EOCmn PTCmn1 PTCmn0
0
0
0
6
DIRmn
0
0/1
5
4
3
2
SLCmn1 SLCmn0
0
0
1
0
DLSmn1 DLSmn0
0
0
1
1注
0/1
数据传送顺序的选择
数据长度的设定
数据和时钟的相位选择 (详细内容请参照
0:进行 MSB 优先的输入 / 输出
0:7 位数据长度
“11.3 控制串行阵列单元的寄存器 ”)
1:进行 LSB 优先的输入 / 输出
1:8 位数据长度
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOp)
15
14
13
12
11
10
9
8
7
6
波特率的设定
SDRmn
4
3
2
1
0
发送数据的设定 / 接收数据寄存器
0
(运行时钟 (fMCK)的分频设定)
5
SIOp
(d) 串行输出寄存器 m (SOm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
SOm
0
0
0
0
8
7
CKOm3
CKOm2
CKOm1
CKOm0
0/1
0/1
0/1
0/1
0
6
0
5
0
4
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1
0/1
0/1
0/1
当时钟相位为 “ 正相 ”(SCRmn 寄存器的 CKPmn=0)时,“1” 为开
始通信;当时钟相位为 “ 反相 ”(CKPmn=1)时,“0” 为开始通信。
(e) 串行输出允许寄存器 m (SOEm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
7
6
5
4
SOEm
0
(f)
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0/1
0/1
0/1
0/1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
注
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
2.
:在 CSI 主控发送和接收模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
335
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-41
主控发送和接收的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
䇴ᇐՖ䘷⌘⢯⦽(䇴ᇐ䘆㺂ᰬ䫕(fMCK)
࠼仇ⲺՖ䘷ᰬ䫕)Ⱦ
䇴ᇐѨ㺂ᰬ䫕(CKOmn)ૂѨ㺂ᮦᦤ
(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
䇴ᇐSOmᇺᆎಞ
䇴ᇐSOEmᇺᆎಞ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䇴ᇐㄥਙ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰ૂᰬ䫕䗉
࠰㖤Ѱᴿ᭾Ⱦ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
㔉ᶕࡓခ䇴ᇐȾ
ྸ᷒㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺ
bit7Њ0)䇴ᇐਇ䘷ᮦᦤθቧᔶခ䙐ؗȾ
图 11-42
主控发送和接收的中止步骤
Ёℶ䆒ᅮⱘᓔྟ
No
(䗝ᢽ)
བᵰ᳝ℷӴ䗕ⱘ᭄ˈህㄝᕙӴ䗕㒧ᴳ
(བᵰ䳔㽕㋻ᗹذℶˈህϡㄝᕙ)DŽ
TSFmn = 0?
Yes
(ᖙ㽕)
ݭSTmᆘᄬ఼
(ᖙ㽕)
ᬍSOEmᆘᄬ఼ⱘ䆒ᅮ
(䗝ᢽ)
ᬍSOmᆘᄬ఼ⱘ䆒ᅮ
(䗝ᢽ)
䆒ᅮPER0ᆘᄬ఼
Ёℶ䆒ᅮⱘ㒧ᴳ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᇚᇍ䈵䗮䘧ⱘSTmnԡ㕂“1”
(SEmn=0˖㕂Ў䖤㸠ذℶ⢊ᗕ)DŽ
ᇚSOEmnԡ㕂“0”ˈذℶᇍ䈵䗮䘧ⱘ䕧ߎDŽ
㋻ᗹذℶᯊˈḍ䳔㽕ˈᬍᇍ䈵䗮䘧
ⱘІ㸠ᯊ䩳(CKOmn)І㸠᭄(SOmn)
ⱘ⬉ᑇDŽ
ذℶІ㸠䰉߫ऩⱘܗᯊ䩳ˈ㕂Ўԡ⢊ᗕDŽ
㒧ᴳЁℶ䆒ᅮˈ䖯ܹϟϔϾ໘⧚DŽ
336
R7F0C903-908
第 11 章 串行阵列单元
图 11-43
重新开始主控发送和接收的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
Ԅኔ䇴༽༽ᇂ∋ϋ
(ᗻ㾷)
No
ㅿࡦ䙐ؗሯ䊗(Ԅኔ䇴༽)↘ڒᡌ㘻䙐
ؗ㔉ᶕȾ
Yes
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰ૂᰬ䫕䗉
࠰㖤Ѱᰖ᭾Ⱦ
(ᗻ㾷)
ㄥਙᬃ֒
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SDRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ֆ䘷⌘⢯⦽Ⲻ䇴ᇐ(䇴ᇐ䘆㺂
ᰬ䫕(fMCK)࠼仇ⲺՖ䘷ᰬ䫕)ᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
䲚䭏䈥ḽᘍ
ᖉOVFḽᘍؓᤷ㻡㖤փⲺ⣬ᘷᰬθ
䙐䗽Ѩ㺂ḽᘍ䲚䀜ਇᇺᆎಞmn
(SIRmn)䘑㺂䲚Ⱦ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ
䗉࠰Ⱦ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
䇴ᇐѨ㺂ᰬ䫕(CKOmn)ૂѨ㺂ᮦᦤ
(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
(ᗻ㾷)
ㄥਙᬃ֒
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰ૂᰬ䫕䗉
࠰㖤Ѱᴿ᭾Ⱦ
(ᗻ㾷)
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”θֵSEmn
փѰ“1”(䘆㺂ݷ䇮⣬ᘷ)Ⱦ
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
337
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次发送和接收模式)
图 11-44
主控发送和接收 (单次发送和接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
SSmn
STmn
SEmn
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ߏ
᭬ᮦᦤ3
᭬ᮦᦤ2
᭬ᮦᦤ1
SDRmn
ਇ䘷ᮦᦤ3
ߏ
ߏ
䈱
䈱
䈱
SCKpᕋ㝐
SIpᕋ㝐
〱փᇺᆎಞmn
SOpᕋ㝐
᭬ᮦᦤ1
᭬&〱փ䘆㺂
᭬ᮦᦤ2
᭬&〱փ䘆㺂
᭬ᮦᦤ3
᭬&〱փ䘆㺂
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
INTCSIp
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
338
R7F0C903-908
第 11 章 串行阵列单元
图 11-45
主控发送和接收 (单次发送和接收模式)的流程图
CSI䙐Ⲻؗᔶခ
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐਇ䘷ૂ᭬ᮦᦤ
ݷ䇮ѣᯣ
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-42
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
ሯӄਇ䘷ૂ᭬ᮦᦤθ䇴ᇐؓᆎ॰ૂᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ߏSIOpθ䗉࠰SOpૂ
SCKpؗਭ(ᔶခ䙐)ؗȾ
ㅿᖻਇ䘷ૂ᭬Ⲻ㔉ᶕ
ྸ᷒ਇ⭕Ֆ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
ѣᯣ༺⨼ぁᓅ
Ֆ䘷㔉ᶕѣᯣ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䈱᭬ᮦᦤᒬъߏࡦؓᆎ॰θᴪ᯦᭬ᮦᦤ䪾Ⱦ
RETI
No
ਇ䘷ૂ᭬㔉ᶕ?
ྸ᷒ᴿсжѠᮦᦤቧ㔝㔣Ֆ䘷Ⱦ
ѱぁᓅ
Yes
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
339
R7F0C903-908
(4)
第 11 章 串行阵列单元
处理流程 (连续发送和接收模式)
图 11-46
SSmn
主控发送和接收 (连续发送和接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
Ś
š
STmn
SEmn
᭬ᮦᦤ3
SDRmn
ਇ䘷ᮦᦤ1
ߏ
ਇ䘷ᮦᦤ2
᭬ᮦᦤ1
ߏ
䈱
ਇ䘷ᮦᦤ3
ߏ
᭬ᮦᦤ2
䈱
䈱
SCKpᕋ㝐
SIpᕋ㝐
〱փᇺᆎಞmn
᭬ᮦᦤ1
᭬ᮦᦤ2
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
᭬ᮦᦤ3
᭬&〱փ䘆㺂
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
SOpᕋ㝐
INTCSIp
MDmn0
Ş
TSFmn
BFFmn
śŜ
⌞1
注
ś
⌞2
Ŝ
ŝ ś
⌞2
Ŝ
ŝ
şŠ
1. 如果在串行状态寄存器 mn (SSRmn)的 BFFmn 位为 “1” 期间 (有效数据保存在串行数据寄存器 mn (SDRmn)
时)给 SDRmn 寄存器写发送数据,就重写发送数据。
2. 如果在此期间读取 SDRmn 寄存器,就能读发送数据。此时,不影响传送运行。
注意
即使在运行中也能改写串行模式寄存器 mn(SMRmn)的 MDmn0 位。但是,为了能赶上最后发送数据的传送结束
中断,必须在开始传送最后一位之前进行改写。
备注 1. 图中的①~⑧对应 “ 图 11-47 主控发送和接收 (连续发送和接收模式)的流程图 ” 中的①~⑧。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
340
R7F0C903-908
第 11 章 串行阵列单元
图 11-47
主控发送和接收 (连续发送和接收模式)的流程图
CSI䙐Ⲻؗᔶခ
Ś
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐਇ䘷ૂ᭬ᮦᦤ
ݷ䇮ѣᯣ
ś
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-42
(䘿㕉ߨಞグѣᯣ)Ⱦ
ሯӄਇ䘷ૂ᭬ᮦᦤθ䇴ᇐؓᆎ॰ૂᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ߏSIOpθ䗉࠰SOpૂ
SCKpؗਭ(ᔶခ䙐)ؗȾ
ㅿᖻਇ䘷ૂ᭬Ⲻ㔉ᶕ
ྸ᷒ਇ⭕㕉ߨಞグՖ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
Ŝş
㕉ߨಞグՖ䘷㔉ᶕѣᯣ
No
BFFmn=1 ?
Yes
ѣᯣ༺⨼ぁᓅ
ŝ
Š
ㅢжѠѣᯣ䲚ཌθ䈱᭬ᮦᦤᒬъ
ߏࡦؓᆎ॰θᴪ᯦᭬ᮦᦤ䪾Ⱦ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䙐ؗᮦᦤѠᮦ–1
=0
=1
䙐ؗᮦᦤѠᮦ ?
Ő2
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
Ş
ྸ᷒ᴿਇ䘷ᮦᦤ(䙐ؗᮦᦤѠᮦŐ2)θቧԄ
ؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθᴪ᯦ਇ
䘷ᮦᦤ䪾Ⱦ
ྸ᷒ㅿᖻ᭬ᴶᮦᦤ(䙐ؗᮦᦤѠᮦ=1)θ
ቧሼѣᯣᰬᓅᴪ᭯Ѱ䙐ؗ㔉ᶕȾ
㔏MDmn0փߏ“0”
RETI
No
䙐ؗᮦᦤѠᮦ = 0?
Yes
㔏MDmn0փߏ“1”
Yes
ѱぁᓅ
㔝㔣䙐?ؗ
No
⾷↘ѣᯣ(ኅ㭳)
š
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
备注
图中的①~⑧对应 “ 图 11-46 主控发送和接收(连续发送和接收模式)的时序图(类型 1:DAPmn=0、CKPmn=0)”
中的①~⑧。
R01UH0629CJ0120 Rev.1.20
2019.06.28
341
R7F0C903-908
11.5.4
第 11 章 串行阵列单元
从属发送
从属发送是指在从其他设备输入传送时钟的状态下 RL78 微控制器将数据发送到其他设备的运行。
CSI00
CSI11
CSI20
对象通道
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
使用的引脚
SCK00、 SO00
SCK11、 SO11
SCK20、 SO20
INTCSI00
INTCSI11
INTCSI20
3 线串行 I/O
中断
可选择传送结束中断 (单次传送模式)或者缓冲器空中断 (连续传送模式)。
错误检测标志
只有溢出错误检测标志 (OVFmn)。
传送数据长度
7 位或者 8 位
传送速率
Max. fMCK/6[Hz] 注 1、 2
数据相位
能通过 SCRmn 寄存器的 DAPmn 位进行选择。
• DAPmn=0:在串行时钟开始运行时,开始数据输出。
• DAPmn=1:在串行时钟开始运行的半个时钟前,开始数据输出。
时钟相位
能通过 SCRmn 寄存器的 CKPmn 位进行选择。
• CKPmn=0:正相
• CKPmn=1:反相
数据方向
注
MSB 优先或者 LSB 优先
1. 因为在内部对SCK00、SCK11、SCK20引脚输入的外部串行时钟进行采样后使用,所以最大传送速率为fMCK/6[Hz]。
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注 1. fMCK:对象通道的运行时钟频率
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
342
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-48
3 线串行 I/O (CSI00、 CSI11、 CSI20)从属发送时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
1
11
10
8
7
STSmn
0
0
0
0
0
0
6
5
4
3
SISmn0
0
0
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
0
0
0/1
通道 n 的运行时钟 (fMCK)
通道 n 的中断源
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
1:缓冲器空中断
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
9
TXEmn
RXEmn
DAPmn
CKPmn
1
0
0/1
0/1
10
9
8
7
EOCmn
PTCmn1
PTCmn0
DIRmn
0
0
0
0/1
0
6
0
5
4
SLCmn1
SLCmn0
0
0
3
0
2
1
1
0
DLSmn1
DLSmn0
1注
0/1
数据传送顺序的选择
数据长度的设定
数据和时钟的相位选择 (详细内容请参照
0:进行 MSB 优先的输入 / 输出
0:7 位数据长度
“11.3 控制串行阵列单元的寄存器 ”)
1:进行 LSB 优先的输入 / 输出
1:8 位数据长度
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOp)
15
14
13
12
11
10
9
8
7
6
5
0000000
SDRmn
3
2
1
0
发送数据的设定
0
波特率的设定
4
SIOp
(d) 串行输出寄存器 m (SOm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
SOm
0
0
0
0
8
CKOm3
CKOm2
CKOm1
CKOm0
×
×
×
×
(e) 串行输出允许寄存器 m (SOEm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
7
6
5
4
SOEm
0
(f)
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1
0/1
0/1
0/1
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0/1
0/1
0/1
0/1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
注
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
2.
:在 CSI 从属发送模式中为固定设定。
:不能设定 (设定初始值)。
× :这是在此模式中不能使用的位 (在其他模式中也不使用的情况下,设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
343
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-49
从属发送的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
ሼ⌘⢯⦽(bit15Њ9)㖤“0000000B”Ⱦ
䇴ᇐѨ㺂ᮦᦤ(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
䇴ᇐSOmᇺᆎಞ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䇴ᇐSOEmᇺᆎಞ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
䇴ᇐㄥਙ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
㔉ᶕࡓခ䇴ᇐȾ
㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺbit7Њ
0)䇴ᇐਇ䘷ᮦᦤθㅿᖻѱ䇴༽Ⲻᰬ䫕Ⱦ
图 11-50
从属发送的中止步骤
ѣ↘䇴ᇐⲺᔶခ
No
(䘿)
ྸ᷒ᴿ↙൞Ֆ䘷ⲺᮦᦤθቧㅿᖻՖ䘷㔉ᶕ
(ྸ᷒䴶㾷㍝ᙛ↘ڒθቧуㅿᖻ)Ⱦ
TSFmn = 0?
Yes
(ᗻ㾷)
ߏSTmᇺᆎಞ
(ᗻ㾷)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
(䘿)
䇴ᇐPER0ᇺᆎಞ
ѣ↘䇴ᇐⲺ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ሼሯ䊗䙐䚉ⲺSTmnփ㖤“1”
(SEmn=0φ㖤Ѱ䘆㺂↘ڒ⣬ᘷ)Ⱦ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ䗉࠰Ⱦ
൞㍝ᙛ↘ڒᰬθṯᦤ䴶㾷θᴪ᭯ሯ䊗䙐䚉
ⲺѨ㺂ᮦᦤ(CKOmn)ૂѨ㺂ᮦᦤ(SOmn)
Ⲻ⭫ᒩȾ
↘ڒѨ㺂䱫ࡍঋⲺݹᰬ䫕θ㖤Ѱགྷփ⣬ᘷȾ
㔉ᶕѣ↘䇴ᇐθ䘑ޛсжѠ༺⨼Ⱦ
344
R7F0C903-908
第 11 章 串行阵列单元
图 11-51
重新开始从属发送的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
(ᗻ㾷)
ѱ䇴༽༽ᇂ∋ϋ
No
ㅿࡦ䙐ؗሯ䊗(ѱ䇴༽)↘ڒᡌ㘻䘆
㺂㔉ᶕȾ
Yes
(䘿)
ㄥਙᬃ֒
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᰖ᭾Ⱦ
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SDRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ֆ䘷⌘⢯⦽Ⲻ䇴ᇐ(䇴ᇐ䘆㺂
ᰬ䫕(fMCK)࠼仇ⲺՖ䘷ᰬ䫕)ᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
䲚䭏䈥ḽᘍ
ᖉOVFḽᘍؓᤷ㻡㖤փⲺ⣬ᘷᰬθ
䙐䗽Ѩ㺂ḽᘍ䲚䀜ਇᇺᆎಞmn
(SIRmn)䘑㺂䲚Ⱦ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ
䗉࠰Ⱦ
(ᗻ㾷)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
(ᗻ㾷)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
(ᗻ㾷)
ㄥਙᬃ֒
(ᗻ㾷)
ߏSSmᇺᆎಞ
(ᗻ㾷)
ࣞ䙐ؗ
䇴ᇐѨ㺂ᮦᦤ(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺbit7
Њ0)䇴ᇐਇ䘷ᮦᦤθㅿᖻѱ䇴༽Ⲻ
ᰬ䫕Ⱦ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
备注
如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象 (主控设备)停止或者通信结束后进行初始
设定而不是进行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
345
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次发送模式)
图 11-52
从属发送 (单次发送模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
SSmn
STmn
SEmn
SDRmn
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
SCKpᕋ㝐
SOpᕋ㝐
〱փᇺᆎಞmn
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
〱փ䘆㺂
〱փ䘆㺂
〱փ䘆㺂
ᮦᦤਇ䘷
ᮦᦤਇ䘷
ᮦᦤਇ䘷
INTCSIp
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
346
R7F0C903-908
第 11 章 串行阵列单元
图 11-53
从属发送 (单次发送模式)的流程图
CSI䙐Ⲻؗᔶခ
ѱぁᓅ
SAUⲺࡓခ䇴ᇐ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-50
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
䇴ᇐਇ䘷ᮦᦤ
ሯӄਇ䘷ᮦᦤθ䇴ᇐؓᆎ॰ૂᮦᦤѠᮦ(䙐䗽䖥
ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚਇ䘷ᮦᦤ
䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
ݷ䇮ѣᯣ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
Ԅ㕉ߨಞ䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ѱ䇴༽ᨆⲺבᰬ䫕θ
ᔶခ䙐ؗȾ
ㅿᖻਇ䘷㔉ᶕ
ѣᯣ༺⨼ぁᓅ
䙐䗽ਇ䘷㔉ᶕθӝ⭕ѣᯣ䈭≸Ⱦ
Ֆ䘷㔉ᶕѣᯣ
RETI
Yes
ਇ䘷сжѠᮦᦤ?
ሯ䙐ؗᮦᦤѠᮦ䘑㺂䇗ᮦθ࡚ᯣ㔉ᶕȾ
No
Yes
ѱぁᓅ
㔝㔣ਇ䘷?
No
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
347
R7F0C903-908
(4)
第 11 章 串行阵列单元
处理流程 (连续发送模式)
图 11-54
SSmn
从属发送 (连续发送模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
Ś
ş
STmn
SEmn
SDRmn
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
SCKpᕋ㝐
SOpᕋ㝐
ਇ䘷ᮦᦤ1
〱փᇺᆎಞmn
ਇ䘷ᮦᦤ2
〱փ䘆㺂
ਇ䘷ᮦᦤ3
〱փ䘆㺂
〱փ䘆㺂
INTCSIp
ᮦᦤਇ䘷
ᮦᦤਇ䘷
ᮦᦤਇ䘷
MDmn0
ŝ
TSFmn
BFFmn
śŜ
ś
Ŝ
ś
Ŝ
Ş
⌞
注
如果在串行状态寄存器 mn (SSRmn)的 BFFmn 位为 “1” 期间 (有效数据保存在串行数据寄存器 mn (SDRmn)
时)给 SDRmn 寄存器写发送数据,就重写发送数据。
注意
即使在运行中也能改写串行模式寄存器 mn(SMRmn)的 MDmn0 位。但是,必须在开始传送最后一位之前进行改
写。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
348
R7F0C903-908
第 11 章 串行阵列单元
图 11-55
从属发送 (连续发送模式)的流程图
CSI䙐Ⲻؗᔶခ
Ś
ѱぁᓅ
SAUⲺࡓခ䇴ᇐ
ś
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-50
(䘿㕉ߨಞグѣᯣ)Ⱦ
䇴ᇐਇ䘷ᮦᦤ
ሯӄਇ䘷ᮦᦤθ䇴ᇐؓᆎ॰ૂᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ
॰Ƚਇ䘷ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
ݷ䇮ѣᯣ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣ
ኅ㭳(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
Ԅ㕉ߨಞ䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ѱ䇴༽ᨆⲺבᰬ䫕θ
ᔶခ䙐ؗȾ
ㅿᖻਇ䘷㔉ᶕ
ྸ᷒ਇ⭕㕉ߨಞグՖ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
ŜŞ
㕉ߨಞグՖ䘷㔉ᶕѣᯣ
No
䙐ؗᮦᦤѠᮦ > 1?
ྸ᷒ᴿਇ䘷ᮦᦤθቧԄؓᆎ॰䈱ਇ䘷ᮦᦤᒬ
ъߏࡦSIOpθᴪ᯦ؓᆎ䪾Ⱦ
ੜࡏθቧሼѣᯣᴪ᭯ѰՖ䘷㔉ᶕȾ
ѣᯣ༺⨼ぁᓅ
Yes
䈱ਇ䘷ᮦᦤ
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
䙐ؗᮦᦤѠᮦ–1
RETI
㔏MDmn0փߏ“0”
ŝ
䙐䗽䙐ؗᮦᦤѠᮦ䘑㺂ԛсⲺ࡚ᯣφ
+1φਇ䘷ᮦᦤ㔉ᶕȾ
0φ↙൞᭬ᴶᮦᦤȾ
–1φޞ䜞ᮦᦤ᭬㔉ᶕȾ
No
䙐ؗᮦᦤѠᮦ=–1?
Yes
㔏MDmn0փߏ“1”
Yes
ѱぁᓅ
㔝㔣䙐?ؗ
No
⾷↘ѣᯣ(ኅ㭳)
ş
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
备注
图中的①~⑥对应 “ 图 11-54 从属发送(连续发送模式)的时序图(类型 1:DAPmn=0、CKPmn=0)” 中的①~⑥。
R01UH0629CJ0120 Rev.1.20
2019.06.28
349
R7F0C903-908
11.5.5
第 11 章 串行阵列单元
从属接收
从属接收是指在从其他设备输入传送时钟的状态下 RL78 微控制器从其他设备接收数据的运行。
CSI00
CSI11
CSI20
对象通道
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
使用的引脚
SCK00、 SI00
SCK11、 SI11
SCK20、 SI20
INTCSI00
INTCSI11
INTCSI20
3 线串行 I/O
中断
只限于传送结束中断 (禁止设定缓冲器空中断)。
错误检测标志
只有溢出错误检测标志 (OVFmn)。
传送数据长度
7 位或者 8 位
传送速率
Max. fMCK/6[Hz] 注 1、 2
数据相位
能通过 SCRmn 寄存器的 DAPmn 位进行选择。
• DAPmn=0:在串行时钟开始运行时,开始数据输出。
• DAPmn=1:在串行时钟开始运行的半个时钟前,开始数据输出。
时钟相位
能通过 SCRmn 寄存器的 CKPmn 位进行选择。
• CKPmn=0:正相
• CKPmn=1:反相
数据方向
注
MSB 优先或者 LSB 优先
1. 因为在内部对SCK00、SCK11、SCK20引脚输入的外部串行时钟进行采样后使用,所以最大传送速率为fMCK/6[Hz]。
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注 1. fMCK:对象通道的运行时钟频率
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
350
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-56
3 线串行 I/O (CSI00、 CSI11、 CSI20)从属接收时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
1
11
10
9
8
7
STSmn
0
0
0
0
0
0
6
5
4
3
SISmn0
0
0
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
0
0
0
通道 n 的运行时钟 (fMCK)
通道 n 的中断源
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
TXEmn
RXEmn
DAPmn
CKPmn
0
1
0/1
0/1
10
9
8
EOCmn PTCmn1 PTCmn0
0
0
0
0
7
6
DIRmn
0/1
5
4
3
2
SLCmn1 SLCmn0
0
0
1
0
DLSmn1 DLSmn0
0
0
1
1注
0/1
数据传送顺序的选择
数据长度的设定
数据和时钟的相位选择 (详细内容请参照
0:进行 MSB 优先的输入 / 输出
0:7 位数据长度
“11.3 控制串行阵列单元的寄存器 ”)
1:进行 LSB 优先的输入 / 输出
1:8 位数据长度
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOp)
15
14
13
12
11
10
SDRmn
9
8
7
6
5
0000000
3
2
1
0
接收数据
0
波特率的设定
4
SIOp
(d) 串行输出寄存器 m (SOm) …… 在此模式中不使用。
15
14
13
12
11
10
9
SOm
8
7
6
5
4
CKOm3
CKOm2
CKOm1
CKOm0
×
×
×
×
0
0
0
0
(e) 串行输出允许寄存器 m (SOEm) …… 在此模式中不使用。
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
SOEm
0
(f)
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
×
×
×
×
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
×
×
×
×
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
注
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
2.
:在从属接收模式中为固定设定。
:不能设定 (设定初始值)。
× :这是在此模式中不能使用的位 (在其他模式中也不使用的情况下,设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
351
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-57
从属接收的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
ሼ⌘⢯⦽(bit15Њ9)㖤“0000000B”Ⱦ
䇴ᇐㄥਙ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉ૂޛᰬ䫕䗉
ޛ㖤Ѱᴿ᭾Ⱦ
䙐䗽ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)θ
ㅿᖻѱ䇴༽Ⲻᰬ䫕Ⱦ
ߏSSmᇺᆎಞ
ࡓခ䇴ᇐⲺ㔉ᶕ
图 11-58
从属接收的中止步骤
Ёℶ䆒ᅮⱘᓔྟ
No
(䗝ᢽ)
བᵰ᳝ℷӴ䗕ⱘ᭄ˈህㄝᕙӴ䗕㒧ᴳ
(བᵰ䳔㽕㋻ᗹذℶˈህϡㄝᕙ)DŽ
TSFmn = 0?
Yes
ᇚᇍ䈵䗮䘧ⱘSTmnԡ㕂“1”
(SEmn=0˖㕂Ў䖤㸠ذℶ⢊ᗕ)DŽ
(ᖙ㽕)
ݭSTmᆘᄬ఼
(ᖙ㽕)
ᬍSOEmᆘᄬ఼ⱘ䆒ᅮ
ᇚSOEmnԡ㕂“0”ˈذℶᇍ䈵䗮䘧ⱘ䕧ߎDŽ
(䗝ᢽ)
䆒ᅮPER0ᆘᄬ఼
ذℶІ㸠䰉߫ऩⱘܗᯊ䩳ˈ㕂Ўԡ⢊ᗕDŽ
Ёℶ䆒ᅮⱘ㒧ᴳ
R01UH0629CJ0120 Rev.1.20
2019.06.28
㒧ᴳЁℶ䆒ᅮˈ䖯ܹϟϔϾ໘⧚DŽ
352
R7F0C903-908
第 11 章 串行阵列单元
图 11-59
重新开始从属接收的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
ѱ䇴༽༽ᇂ∋ϋ
(ᗻ㾷)
No
ㅿࡦ䙐ؗሯ䊗(ѱ䇴༽)↘ڒᡌ㘻䘆
㺂㔉ᶕȾ
Yes
(ᗻ㾷)
ㄥਙᬃ֒
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᰬ䫕䗉࠰㖤Ѱᰖ᭾Ⱦ
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
䲚䭏䈥ḽᘍ
ᖉOVFḽᘍؓᤷ㻡㖤փⲺ⣬ᘷᰬθ
䙐䗽Ѩ㺂ḽᘍ䲚䀜ਇᇺᆎಞmn
(SIRmn)䘑㺂䲚Ⱦ
(ᗻ㾷)
ㄥਙᬃ֒
(ᗻ㾷)
ߏSSmᇺᆎಞ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᰬ䫕䗉࠰㖤Ѱᴿ᭾Ⱦ
䙐䗽ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)θ
ㅿᖻѱ䇴༽Ⲻᰬ䫕Ⱦ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
备注
如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象 (主控设备)停止或者通信结束后进行初始
设定而不是进行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
353
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次接收模式)
图 11-60
从属接收 (单次接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
SSmn
STmn
SEmn
᭬ᮦᦤ3
SDRmn
᭬ᮦᦤ1
᭬ᮦᦤ2
䈱
䈱
䈱
SCKpᕋ㝐
SIpᕋ㝐
〱փᇺᆎಞmn
᭬ᮦᦤ1
᭬&〱փ䘆㺂
᭬ᮦᦤ2
᭬ᮦᦤ3
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
ᮦᦤ᭬
ᮦᦤ᭬
INTCSIp
ᮦᦤ᭬
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
354
R7F0C903-908
第 11 章 串行阵列单元
图 11-61
从属接收 (单次接收模式)的流程图
CSI䙐Ⲻؗᔶခ
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
᭬༽
ݷ䇮ѣᯣ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-58
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
䇴ᇐ᭬ᮦᦤⲺؓᆎ॰θ䲚᭬ᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
᭬ᮦᦤ䪾ૂ᭬ᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
ㅿᖻ᭬㔉ᶕ
䙐䗽ѱ䇴༽ᨆⲺבᰬ䫕θ
ᔶခ䙐ؗȾ
䙐䗽Ֆ䘷㔉ᶕθӝ⭕ѣᯣȾ
ѣᯣ༺⨼ぁᓅ
Ֆ䘷㔉ᶕѣᯣ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䈱᭬ᮦᦤᒬъߏࡦؓᆎ॰θሯ᭬
ᮦᦤѠᮦ䘑㺂䙈໔䇗ᮦȾ
ᴪ᯦᭬ᮦᦤ䪾Ⱦ
RETI
No
᭬㔉ᶕ?
⺤䇚᭬ᮦᦤѠᮦȾ
ѱぁᓅ
Yes
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
355
R7F0C903-908
11.5.6
第 11 章 串行阵列单元
从属的发送和接收
从属的发送和接收是指在从其他设备输入传送时钟的状态下 RL78 微控制器和其他设备进行数据发送和接
收的运行。
CSI00
CSI11
CSI20
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
SCK00、 SI00、 SO00
SCK11、 SI11、 SO11
SCK20、 SI20、 SO20
INTCSI00
INTCSI11
INTCSI20
3 线串行 I/O
对象通道
使用的引脚
中断
可选择传送结束中断 (单次传送模式)或者缓冲器空中断 (连续传送模式)。
错误检测标志
只有溢出错误检测标志 (OVFmn)。
传送数据长度
7 位或者 8 位
传送速率
Max. fMCK/6[Hz] 注 1、 2
数据相位
能通过 SCRmn 寄存器的 DAPmn 位进行选择。
• DAPmn=0:在串行时钟开始运行时,开始数据输入 / 输出。
• DAPmn=1:在串行时钟开始运行的半个时钟前,开始数据输入 / 输出。
时钟相位
能通过 SCRmn 寄存器的 CKPmn 位进行选择。
• CKPmn=0:正相
• CKPmn=1:反相
数据方向
注
MSB 优先或者 LSB 优先
1. 因为在内部对SCK00、SCK11、SCK20引脚输入的外部串行时钟进行采样后使用,所以最大传送速率为fMCK/6[Hz]。
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注 1. fMCK:对象通道的运行时钟频率
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
356
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-62
3 线串行 I/O (CSI00、 CSI11、 CSI20)从属发送和接收时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
1
11
10
9
8
7
STSmn
0
0
0
0
0
0
6
5
4
3
SISmn0
0
0
1
0
0
通道 n 的运行时钟 (fMCK)
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
TXEmn
RXEmn
DAPmn
CKPmn
1
1
0/1
0/1
10
9
0
7
0
6
DIRmn
0
MDmn0
0
0
0/1
0/1
5
4
3
9
8
7
0
6
0000000
0
5
1
0
DLSmn1 DLSmn0
0
0
1
1注
0/1
数据长度的设定
0:7 位数据长度
1:8 位数据长度
4
3
2
1
0
发送数据的设定 / 接收数据寄存器
0
波特率的设定
2
SLCmn1 SLCmn0
数据传送顺序的选择
0:进行 MSB 优先的输入 / 输出
1:进行 LSB 优先的输入 / 输出
数据和时钟的相位选择 (详细内容请参照
“11.3 控制串行阵列单元的寄存器 ”)
SDRmn
8
0
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOp)
15
14
13
12
11
10
1
MDmn1
通道 n 的中断源
0:传送结束中断
1:缓冲器空中断
EOCmn PTCmn1 PTCmn0
0
2
MDmn2
SIOp
(d) 串行输出寄存器 m (SOm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
SOm
0
0
0
0
8
7
CKOm3
CKOm2
CKOm1
CKOm0
×
×
×
×
(e) 串行输出允许寄存器 m (SOEm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
6
5
4
0
0
0
0
7
6
5
4
SOEm
0
(f)
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
注
只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
注意
在主控设备开始输出时钟前,必须给 SIOp 寄存器设定发送数据。
0
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1
0/1
0/1
0/1
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0/1
0/1
0/1
0/1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
2.
:在 CSI 从属发送和接收模式中为固定设定。
:不能设定 (设定初始值)。
× :这是在此模式中不能使用的位 (在其他模式中也不使用的情况下,设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
357
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-63
从属发送和接收的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
ሼ⌘⢯⦽(bit15Њ9)㖤“0000000B”Ⱦ
䇴ᇐѨ㺂ᮦᦤ(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
䇴ᇐSOmᇺᆎಞ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䇴ᇐSOEmᇺᆎಞ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
䇴ᇐㄥਙ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
㔉ᶕࡓခ䇴ᇐȾ
㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺbit7
Њ0)䇴ᇐਇ䘷ᮦᦤθㅿᖻѱ䇴༽Ⲻ
ᰬ䫕Ⱦ
图 11-64
从属发送和接收的中止步骤
Ёℶ䆒ᅮⱘᓔྟ
No
(䗝ᢽ)
བᵰ᳝ℷӴ䗕ⱘ᭄ˈህㄝᕙӴ䗕㒧ᴳ
(བᵰ䳔㽕㋻ᗹذℶˈህϡㄝᕙ)DŽ
TSFmn = 0?
Yes
(ᖙ㽕)
ݭSTmᆘᄬ఼
(ᖙ㽕)
ᬍSOEmᆘᄬ఼ⱘ䆒ᅮ
(䗝ᢽ)
ᬍSOmᆘᄬ఼ⱘ䆒ᅮ
(䗝ᢽ)
䆒ᅮPER0ᆘᄬ఼
Ёℶ䆒ᅮⱘ㒧ᴳ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᇚᇍ䈵䗮䘧ⱘSTmnԡ㕂“1”
(SEmn=0˖㕂Ў䖤㸠ذℶ⢊ᗕ)DŽ
ᇚSOEmnԡ㕂“0”ˈذℶᇍ䈵䗮䘧ⱘ䕧ߎDŽ
㋻ᗹذℶᯊˈḍ䳔㽕ˈᬍᇍ䈵䗮䘧
ⱘІ㸠᭄(SOmn)ⱘ⬉ᑇDŽ
ذℶІ㸠䰉߫ऩⱘܗᯊ䩳ˈ㕂Ўԡ⢊ᗕDŽ
㒧ᴳЁℶ䆒ᅮˈ䖯ܹϟϔϾ໘⧚DŽ
358
R7F0C903-908
第 11 章 串行阵列单元
图 11-65
重新开始从属发送和接收的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
ѱ䇴༽༽ᇂ∋ϋ
(ᗻ㾷)
No
ㅿࡦ䙐ؗሯ䊗(ѱ䇴༽)↘ڒᡌ㘻䘆
㺂㔉ᶕȾ
Yes
(ᗻ㾷)
ㄥਙᬃ֒
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᰖ᭾Ⱦ
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
䲚䭏䈥ḽᘍ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
(ᗻ㾷)
ㄥਙᬃ֒
(ᗻ㾷)
ߏSSmᇺᆎಞ
(ᗻ㾷)
ࣞ䙐ؗ
ᖉOVFḽᘍؓᤷ㻡㖤փⲺ⣬ᘷᰬθ
䙐䗽Ѩ㺂ḽᘍ䲚䀜ਇᇺᆎಞmn
(SIRmn)䘑㺂䲚Ⱦ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ
䗉࠰Ⱦ
䇴ᇐѨ㺂ᮦᦤ(SOmn)Ⲻࡓခ䗉࠰⭫ᒩȾ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”
(SEmn=1φ㖤Ѱ䘆㺂ݷ䇮⣬ᘷ)Ⱦ
㔏SIOpᇺᆎಞ(SDRmnᇺᆎಞⲺbit7
Њ0)䇴ᇐਇ䘷ᮦᦤθㅿᖻѱ䇴༽Ⲻ
ᰬ䫕Ⱦ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
注意 1. 在主控设备开始输出时钟前,必须给 SIOp 寄存器设定发送数据。
2. 如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象 (主控设备)停止或者通信结束后进行初
始设定而不是进行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
359
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次发送和接收模式)
图 11-66
从属发送和接收 (单次发送和接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
SSmn
STmn
SEmn
᭬ᮦᦤ1
SDRmn
ਇ䘷ᮦᦤ1
᭬ᮦᦤ2
ਇ䘷ᮦᦤ2
ߏ
᭬ᮦᦤ3
ਇ䘷ᮦᦤ3
ߏ
ߏ
䈱
䈱
䈱
SCKpᕋ㝐
SIpᕋ㝐
〱փᇺᆎಞmn
SOpᕋ㝐
᭬ᮦᦤ1
᭬&〱փ䘆㺂
ਇ䘷ᮦᦤ1
᭬ᮦᦤ2
᭬&〱փ䘆㺂
ਇ䘷ᮦᦤ2
᭬ᮦᦤ3
᭬&〱փ䘆㺂
ਇ䘷ᮦᦤ3
INTCSIp
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
360
R7F0C903-908
第 11 章 串行阵列单元
图 11-67
从属发送和接收 (单次发送和接收模式)的流程图
CSI䙐Ⲻؗᔶခ
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐਇ䘷ૂᮦᦤ
ݷ䇮ѣᯣ
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-64
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
ሯӄਇ䘷ૂ᭬ᮦᦤθ䇴ᇐؓᆎ॰ૂᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅ㕉ߨಞ䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ѱ䇴༽ᨆⲺבᰬ䫕θ
ᔶခ䙐ؗȾ
ㅿᖻਇ䘷ૂ᭬Ⲻ㔉ᶕ
ྸ᷒䙐䗽Ֆ䘷㔉ᶕӝ⭕ѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
ѣᯣ༺⨼ぁᓅ
Ֆ䘷㔉ᶕѣᯣ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䈱᭬ᮦᦤᒬъߏࡦؓᆎ॰θᴪ᯦᭬ᮦᦤ䪾Ⱦ
RETI
No
ਇ䘷ૂ᭬㔉ᶕ?
Yes
Yes
ѱぁᓅ
ਇ䘷ૂ᭬сжѠᮦᦤ?
ᴪ᯦䙐ؗᮦᦤѠᮦθ⺤䇚ᴿᰖсжѠ
ਇ䘷ૂ᭬ᮦᦤȾ
No
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
注意
在主控设备开始输出时钟前,必须给 SIOp 寄存器设定发送数据。
R01UH0629CJ0120 Rev.1.20
2019.06.28
361
R7F0C903-908
(4)
第 11 章 串行阵列单元
处理流程 (连续发送和接收模式)
图 11-68
SSmn
从属发送和接收 (连续发送和接收模式)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
Ś
š
STmn
SEmn
SDRmn
ਇ䘷ᮦᦤ1
ߏ
ਇ䘷ᮦᦤ2
᭬ᮦᦤ1
ߏ
᭬ᮦᦤ3
᭬ᮦᦤ2
ਇ䘷ᮦᦤ3
ߏ
䈱
䈱
䈱
SCKpᕋ㝐
SIpᕋ㝐
〱փᇺᆎಞmn
SOpᕋ㝐
᭬ᮦᦤ1
᭬ᮦᦤ2
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ3
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
ᮦᦤⲺਇ䘷ૂ᭬
᭬ᮦᦤ3
᭬&〱փ䘆㺂
INTCSIp
MDmn0
Ş
TSFmn
BFFmn
śŜ
⌞1
注
ś
⌞2
Ŝ
ŝ ś
⌞2
Ŝ
ŝ
şŠ
1. 如果在串行状态寄存器 mn (SSRmn)的 BFFmn 位为 “1” 期间 (有效数据保存在串行数据寄存器 mn (SDRmn)
时)给 SDRmn 寄存器写发送数据,就重写发送数据。
2. 如果在此期间读取 SDRmn 寄存器,就能读发送数据。此时,不影响传送运行。
注意
即使在运行中也能改写串行模式寄存器 mn(SMRmn)的 MDmn0 位。但是,为了能赶上最后发送数据的传送结束
中断,必须在开始传送最后一位之前进行改写。
备注 1. 图中的①~⑧对应 “ 图 11-69 从属发送和接收 (连续发送和接收模式)的流程图 ” 中的①~⑧。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) p:CSI 号 (p=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
362
R7F0C903-908
第 11 章 串行阵列单元
图 11-69
从属发送和接收 (连续发送和接收模式)的流程图
CSI䙐Ⲻؗᔶခ
Ś
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐਇ䘷ૂ᭬ᮦᦤ
ݷ䇮ѣᯣ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-64
(䘿㕉ߨಞグѣᯣ)Ⱦ
ሯӄਇ䘷ૂ᭬ᮦᦤθ䇴ᇐؓᆎ॰ૂᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
䙐䗽ѱ䇴༽ᨆⲺבᰬ䫕θᔶခ䙐ؗȾ
ㅿᖻՖ䘷㔉ᶕ
ྸ᷒ਇ⭕㕉ߨಞグՖ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
Ŝş
㕉ߨಞグՖ䘷㔉ᶕѣᯣ
No
BFFmn=1 ?
Yes
ѣᯣ༺⨼ぁᓅ
ŝ
Š
ㅢжѠѣᯣ䲚ཌθ䈱᭬ᮦᦤᒬъ
ߏࡦؓᆎ॰θᴪ᯦᭬ᮦᦤ䪾Ⱦ
ԄSIOp(=SDRmn[7:0])
䈱᭬ᮦᦤ
䙐ؗᮦᦤѠᮦ–1
=0
=1
䙐ؗᮦᦤѠᮦ ?
Yes
Ő2
㔏SIOp(=SDRmn[7:0])
ߏਇ䘷ᮦᦤ
Ş
ྸ᷒ᴿਇ䘷ᮦᦤ(䙐ؗᮦᦤѠᮦŐ2)θቧԄ
ؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦSIOpθᴪ᯦ؓ
ᆎ䪾Ⱦ
ྸ᷒ਇ䘷㔉ᶕ(䙐ؗᮦᦤѠᮦ=1)θቧᴪ᭯Ѱ
Ֆ䘷㔉ᶕѣᯣȾ
㔏MDmn0փߏ“0”
RETI
No
䙐ؗᮦᦤѠᮦ = 0?
Yes
㔏MDmn0փߏ“1”
ѱぁᓅ
Yes
㔝㔣䙐?ؗ
No
⾷↘ѣᯣ(ኅ㭳)
š
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
注意
在主控设备开始输出时钟前,必须给 SIOp 寄存器设定发送数据。
备注
图中的①~⑧对应 “ 图 11-68 从属发送和接收(连续发送和接收模式)的时序图(类型 1:DAPmn=0、CKPmn=0)”
中的①~⑧。
R01UH0629CJ0120 Rev.1.20
2019.06.28
363
R7F0C903-908
11.5.7
第 11 章 串行阵列单元
SNOOZE 模式功能
这是在 STOP 模式中通过检测 SCKp 引脚的输入使 CSI 进行接收的模式。通常,在 STOP 模式中 CSI 停止
通信,但是如果使用 SNOOZE 模式功能,就能在 CPU 不运行的状态下通过检测 SCKp 引脚的输入进行 CSI 的
接收。只有以下的通道才能设定 SNOOZE 模式。
•
本产品:CSI00
要在 SNOOZE 模式中使用 CSI 时,必须在转移到 STOP 模式前进行以下的设定(参照 “ 图 11-71 SNOOZE
模式运行 (启动一次)的流程图和图 11-73 SNOOZE 模式运行 (连续启动)的流程图 ”)。
•
必须在即将转移到 STOP 模式前将串行待机控制寄存器 0 (SSC0)的 SWC0 位置 “1”。在初始设定结束
后将串行通道开始寄存器 m (SSm)的 SSm0 位置 “1”。
•
在转移到 STOP 模式后,如果检测到SCKp 引脚的有效边沿,就转移到 SNOOZE 模式。
通过 SCKp 引脚的串行时钟输入,开始 CSI 接收。
注意 1. 只有在选择高速内部振荡器时钟作为 fCLK 时才能设定 SNOOZE 模式。
2. 在 SNOOZE 模式中使用时,最大传送速率为 1Mbps。
(1)
SNOOZE 模式运行 (启动一次)
图 11-70
STOP⁗ᕅ
䙐ᑮ䘆㺂
CPU䘆㺂⣬ᘷ
Ŝ
SS00
ST00
SNOOZE 模式运行 (启动一次)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
䙐ᑮ䘆㺂
SNOOZE⁗ᕅ
ŝ
Ţ
Ś
SE00
SWC0
SSEC0
ţ
L
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
᭬ᮦᦤ2
SDR00
᭬ᮦᦤ1
š
䈱⌞
SCK00ᕋ㝐
SI00ᕋ㝐
᭬ᮦᦤ1
〱փᇺᆎಞ00
᭬ᮦᦤ2
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
INTCSI00
ᮦᦤ᭬
ᮦᦤ᭬
TSF00
ś
注
Şş
Š
必须在 SWC0 位为 “1” 的状态下并且在检测到 SCKp 引脚输入的下一个边沿前读接收数据。
注意 1. 在向 SNOOZE 模式转移前或者在 SNOOZE 模式中接收结束后,必须将 STm0 位置 “1” (清除 SEm0 位并且停止
运行),而且还必须在接收结束后清除 SWC0 位 (解除 SNOOZE 模式)。
2. 当 SWC0 位为 “1” 时, BFFm0 标志和 OVFm0 标志不变。
备注 1. 图中的①~
对应 “ 图 11-71 SNOOZE 模式运行 (启动一次)的流程图 ” 中的①~
。
2. 本产品:m=0, p=00
R01UH0629CJ0120 Rev.1.20
2019.06.28
364
R7F0C903-908
第 11 章 串行阵列单元
图 11-71
SNOOZE 模式运行 (启动一次)的流程图
SNOOZEⲺ䘆㺂
ޞ䜞䙐䚉ⲺTSFmn = 0 ϋ
No
Yes
Ś
㔏STm0փߏ“1”
䙐ᑮ䘆㺂
SAUⲺࡓခ䇴ᇐ
ś
Ŝ
䇴ᇐSSC0ᇺᆎಞ
(SWC0=1ȽSSEC0=0)
㔏SSm0փߏ“1”
ݷ䇮ѣᯣ༺⨼
䖢〱ࡦSTOP⁗ᕅ
SMRm0ȽSCRm0φ䙐ؗ䇴ᇐ
SDRm0[15:9]φ䇴ᇐѰ“0000000B”Ⱦ
䇴ᇐSNOOZE⁗ᕅȾ
Ѱ䙐ؗᖻᵰ⣬ᘷ(SEm0=1)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ༺⨼Ⱦ
↘ڒ㔏SAUᨆבCPUཌപ⺢Ԭᰬ䫕fCLKȾ
STOP⁗ᕅ
ŝ
Ѱ䘆㺂↘ڒ⣬ᘷ(SEm0=0)Ⱦ
SNOOZE⁗ᕅ
Ş
Ỷ⎁ࡦSCKpᕋ㝐Ⲻᴿ᭾䗯⋵
(䖢〱ࡦSNOOZE⁗ᕅ)
SCKpᕋ㝐ⲺѨ㺂ᰬ䫕䗉ޛ
(CSIpѰ᭬䘆㺂)
ş
Š
䙐ᑮ䘆㺂
š
ӝ⭕Ֆ䘷ѣᯣ(INTCSIp)
(CSIpѰ᭬㔉ᶕ)
䈱SIOp(=SDRm0[7:0])
ᇺᆎಞ
ԄSNOOZE⁗ᕅѰ䙐ᑮ䘆㺂⣬ᘷȾ
Ѱ䘆㺂↘ڒ⣬ᘷ(SEm0=0)Ⱦ
Ţ
㔏STm0փߏ“1”
ţ
㔏SWC0փߏ“0”
䀙䲚SNOOZE⁗ᕅⲺ䇴ᇐȾ
㔏SSm0փߏ“1”
Ѱ䙐ᑮ䘆㺂Ⲻ䙐ؗᖻᵰ⣬ᘷ(SEm0=1)Ⱦ
SNOOZEⲺ㔉ᶕ
备注 1. 图中的①~
的①~
对应 “ 图 11-70 SNOOZE 模式运行 (启动一次)的时序图 (类型 1:DAPmn=0、 CKPmn=0) ” 中
。
2. 本产品:m=0, p=00
R01UH0629CJ0120 Rev.1.20
2019.06.28
365
R7F0C903-908
(2)
第 11 章 串行阵列单元
SNOOZE 模式运行 (连续启动)
图 11-72
CPU䘆㺂⣬ᘷ
䙐ᑮ䘆㺂
Ŝ
SS00
ST00
SNOOZE 模式运行 (连续启动)的时序图 (类型 1:DAPmn=0、 CKPmn=0)
STOP⁗ᕅ
䙐ᑮ䘆㺂
SNOOZE⁗ᕅ
ŝ
STOP⁗ᕅ
Ŝ
Ś
SNOOZE⁗ᕅ
ŝ
Ţ
SE00
SWC0
SSEC0
ţ
L
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
᭬ᮦᦤ2
SDR00
᭬ᮦᦤ1
š
䈱⌞
SCK00ᕋ㝐
SI00ᕋ㝐
᭬ᮦᦤ1
〱փᇺᆎಞ00
᭬ᮦᦤ2
᭬&〱փ䘆㺂
᭬&〱փ䘆㺂
INTCSI00
ᮦᦤ᭬
ᮦᦤ᭬
TSF00
ś
注
Şş
Š
ś
Şş
必须在 SWC0 位为 “1” 的状态下并且在检测到 SCKp 引脚输入的下一个边沿前读接收数据。
注意 1. 在向 SNOOZE 模式转移前或者在 SNOOZE 模式中接收结束后,必须将 STm0 位置 “1” (清除 SEm0 位并且停止
运行),而且还必须在接收结束后清除 SWC0 位 (解除 SNOOZE 模式)。
2. 当 SWC0 位为 “1” 时, BFFm0 标志和 OVFm0 标志不变。
备注 1. 图中的①~⑩对应 “ 图 11-73 SNOOZE 模式运行 (连续启动)的流程图 ” 中的①~⑩。
2. 本产品:m=0, p=00
R01UH0629CJ0120 Rev.1.20
2019.06.28
366
R7F0C903-908
第 11 章 串行阵列单元
图 11-73
SNOOZE 模式运行 (连续启动)的流程图
SNOOZEⲺ䘆㺂
ޞ䜞䙐䚉ⲺTSFmn = 0 ϋ
No
Yes
䙐ᑮ䘆㺂
Ś
ś
Ŝ
㔏STm0փߏ“1”
ྸ᷒Ѱ䘆㺂↘ڒ⣬ᘷθSEm0փቧѰ“0”Ⱦ
SAUⲺࡓခ䇴ᇐ
SMRm0ȽSCRm0φ䙐ؗ䇴ᇐ
SDRm0[15:9]φ䇴ᇐѰ“0000000B”Ⱦ
䇴ᇐSSC0ᇺᆎಞ
(SWC0=1ȽSSEC0=0)
㔏SSm0փߏ“1”
ݷ䇮ѣᯣ༺⨼
䖢〱ࡦSTOP⁗ᕅ
Ѱ䙐ؗᖻᵰ⣬ᘷ(SEm0=1)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ༺⨼Ⱦ
↘ڒ㔏SAUᨆבCPUཌപ⺢Ԭᰬ䫕fCLKȾ
STOP⁗ᕅ
ŝ
䇴ᇐSNOOZE⁗ᕅȾ
SNOOZE⁗ᕅ
Ş
Ỷ⎁ࡦSCKpᕋ㝐Ⲻᴿ᭾䗯⋵
(䖢〱ࡦSNOOZE⁗ᕅ)
SCKpᕋ㝐ⲺѨ㺂ᰬ䫕䗉ޛ
(CSIpѰ᭬䘆㺂)
ş
Š
䙐ᑮ䘆㺂
š
ӝ⭕Ֆ䘷ѣᯣ(INTCSIp)
(CSIpѰ᭬㔉ᶕ)
䈱SIOp(=SDRmn[7:0])
ᇺᆎಞ
Ţ
㔏STm0փߏ“1”
ţ
㔏SWC0փߏ“0”
ԄSNOOZE⁗ᕅѰ䙐ᑮ䘆㺂⣬ᘷȾ
䀙䲚SNOOZE⁗ᕅⲺ䇴ᇐȾ
备注 1. 图中的①~⑩对应 “ 图 11-72 SNOOZE 模式运行 (连续启动)的时序图 (类型 1:DAPmn=0、 CKPmn=0) ” 中
的①~⑩。
2. 本产品:m=0, p=00
R01UH0629CJ0120 Rev.1.20
2019.06.28
367
R7F0C903-908
11.5.8
第 11 章 串行阵列单元
传送时钟频率的计算
3 线串行 I/O (CSI00、 CSI11、 CSI20)通信的传送时钟频率能用以下计算式进行计算。
(1)
主控设备
(传送时钟频率) = { 对象通道的运行时钟 (fMCK)频率 } ÷ (SDRmn[15:9] + 1) ÷ 2[Hz]
(2)
从属设备
(传送时钟频率) = { 主控设备提供的串行时钟 (SCK)频率 } 注
[Hz]
注
容许的最大传送时钟频率为 fMCK/6。
备注
因为SDRmn[15:9]的值为串行数据寄存器mn(SDRmn)的bit15~9的值(0000000B~1111111B),所以为0~127。
运行时钟(fMCK)取决于串行时钟选择寄存器 m(SPSm)和串行模式寄存器 mn(SMRmn)的 bit15(CKSmn)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
368
R7F0C903-908
第 11 章 串行阵列单元
表 11-2
SMRmn
0
1
注
运行时钟 (fMCK)注
SPSm 寄存器
寄存器
CKSmn
3 线串行 I/O 运行时钟的选择
PRS PRS PRS PRS PRS PRS PRS PRS
fCLK=20MHz 运行时
m13
m12
m11
m10
m03
m02
m01
m00
X
X
X
X
0
0
0
0
fCLK
20MHz
X
X
X
X
0
0
0
1
fCLK/2
10MHz
X
X
X
X
0
0
1
0
fCLK/22
5MHz
X
X
X
X
0
0
1
1
fCLK/23
2.5MHz
X
X
X
X
0
1
0
0
fCLK/24
1.25MHz
X
X
X
X
0
1
0
1
fCLK/25
625kHz
X
X
X
X
0
1
1
0
fCLK/26
312.5kHz
X
X
X
X
0
1
1
1
fCLK/27
156.2kHz
X
X
X
X
1
0
0
0
fCLK/28
78.1kHz
X
X
X
X
1
0
0
1
fCLK/29
39.1kHz
X
X
X
X
1
0
1
0
fCLK/210
19.5kHz
X
X
X
X
1
0
1
1
fCLK/211
9.77kHz
X
X
X
X
1
1
0
0
fCLK/212
4.88kHz
X
X
X
X
1
1
0
1
fCLK/213
2.44kHz
X
X
X
X
1
1
1
0
fCLK/214
1.22kHz
X
X
X
X
1
1
1
1
fCLK/215
610Hz
0
0
0
0
X
X
X
X
fCLK
20MHz
0
0
0
1
X
X
X
X
fCLK/2
10MHz
0
0
1
0
X
X
X
X
fCLK/22
5MHz
0
0
1
1
X
X
X
X
fCLK/23
2.5MHz
0
1
0
0
X
X
X
X
fCLK/24
1.25MHz
0
1
0
1
X
X
X
X
fCLK/25
625kHz
0
1
1
0
X
X
X
X
fCLK/26
312.5kHz
0
1
1
1
X
X
X
X
fCLK/27
156.2kHz
1
0
0
0
X
X
X
X
fCLK/28
78.1kHz
1
0
0
1
X
X
X
X
fCLK/29
39.1kHz
1
0
1
0
X
X
X
X
fCLK/210
19.5kHz
1
0
1
1
X
X
X
X
fCLK/211
9.77kHz
1
1
0
0
X
X
X
X
fCLK/212
4.88kHz
1
1
0
1
X
X
X
X
fCLK/213
2.44kHz
1
1
1
0
X
X
X
X
fCLK/214
1.22kHz
1
1
1
1
X
X
X
X
fCLK/215
610Hz
要更改被选择为 fCLK 的时钟 (更改系统时钟控制寄存器 (CKC)的值)时,必须在停止串行阵列单元 (SAU)的
运行 (串行通道停止寄存器 m (STm) =000FH)后进行更改。
备注 1. X:忽略
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
369
R7F0C903-908
11.5.9
第 11 章 串行阵列单元
在 3 线串行 I/O (CSI00、 CSI11、 CSI20)通信过程中发生错误时的处理步骤
在 3 线串行 I/O (CSI00、 CSI11、 CSI20)通信过程中发生错误时的处理步骤如图 11-74 所示。
图 11-74
软件操作
读串行数据寄存器 mn (SDRmn)。
发生溢出错误时的处理步骤
硬件状态
备注
SSRmn 寄存器的 BFFmn 位为 “0” 并且 这是为了防止在错误处理的过程中结束
通道 n 为可接收状态。
读串行状态寄存器 mn (SSRmn)。
下一次接收而发生溢出错误。
判断错误种类,读取值用于清除错误标
志。
给串行标志清除触发寄存器 mn
清除错误标志。
(SIRmn)写 “1”。
通过将 SSRmn 寄存器的读取值直接写
到 SIRmn 寄存器,只能清除读操作时的
错误。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
370
R7F0C903-908
11.6
第 11 章 串行阵列单元
UART (UART0 ~ UART2)通信的运行
这是通过串行数据发送 (TxD)和串行数据接收 (RxD)共 2 条线进行异步通信的功能。使用这 2 条通信
线,按数据帧 (由起始位、数据、奇偶校验位和停止位构成)与其他通信方进行异步 (使用内部波特率)的数
据发送和接收。能通过使用发送专用(偶数通道)和接收专用(奇数通道)共 2 个通道来实现全双工异步 UART
通信。
[ 数据的发送和接收 ]
•
7 位、 8 位或者 9 位的数据长度注
•
MSB/LSB 优先的选择
•
发送和接收数据的电平设定 (选择电平是否反相)
•
奇偶校验位的附加、奇偶校验功能
•
停止位的附加、停止位的检测功能
[ 中断功能 ]
•
传送结束中断、缓冲器空中断
•
帧错误、奇偶校验错误和溢出错误引起的错误中断
[ 错误检测标志]
•
帧错误、奇偶校验错误、溢出错误
以下通道的 UART 接收支持 SNOOZE 模式。 SNOOZE 模式功能是指:如果在 STOP 模式的状态下检测到
RxD的输入,就不需要CPU运行而接收数据。只有在接收时支持波特率调整功能的以下UART才能设定SNOOZE
模式。
•
本产品:UART0
只有以下的 UART 支持 9 位数据长度。
注
• 本产品:UART0
UART0 使用 SAU0 的通道 0 和通道 1。
UART1 使用 SAU0 的通道 2 和通道 3。
UART2 使用 SAU1 的通道 0 和通道 1。
单元
通道
用作 CSI
用作 UART
用作简易 I2C
0
0
CSI00
UART0
IIC00
1
—
2
—
3
CSI11
0
CSI20
1
—
1
—
UART1
—
IIC11
UART2
IIC20
—
各通道任意选择一个功能使用,除了所选功能以外,其他功能不能运行。例如,在单元 0 的通道 0 和通道 1
使用 UART0 时,不能使用 CSI00。但是,在使用 UART0 的同时,不同通道的通道 2 和通道 3 能使用 CSI11、
UART1 或者 IIC11。
当用作 UART 时,发送方 (偶数通道)和接收方 (奇数通道)只能用于 UART。
注意
UART 有以下 2 种通信运行:
•
UART 发送
(参照 11.6.1)
•
UART 接收
(参照 11.6.2)
R01UH0629CJ0120 Rev.1.20
2019.06.28
371
R7F0C903-908
11.6.1
第 11 章 串行阵列单元
UART 发送
UART 发送是 RL78 微控制器将数据异步发送到其他设备的运行。
UART 使用的 2 个通道中的偶数通道用于 UART 发送。
UART
对象通道
UART0
UART1
UART2
SAU0 的通道 0
SAU0 的通道 2
SAU1 的通道 0
TxD0
TxD1
TxD2
INTST0
INTST1
INTST2
使用的引脚
中断
可选择传送结束中断 (单次传送模式)或者缓冲器空中断 (连续传送模式)。
错误检测标志
无
传送数据长度
7 位、 8 位或者 9 位注 1
传送速率注 2
Max. fMCK/6[bps] (SDRmn[15:9] ≥ 2)、 Min. fCLK/(2×215×128)[bps]
数据相位
正相输出 (默认值:高电平)。
反相输出 (默认值:低电平)。
奇偶校验位
可选择以下内容:
•
•
•
•
停止位
无奇偶校验位。
附加零校验。
附加偶校验。
附加奇校验。
可选择以下内容:
• 附加 1 位。
• 附加 2 位。
数据方向
注
MSB 优先或者 LSB 优先
1. 只有以下的 UART 支持 9 位数据长度。
• 本产品:UART0
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注 1. fMCK:对象通道的运行时钟频率
fCLK:系统时钟频率
2. m:单元号 (m=0、 1) n:通道号 (n=0、 2) mn=00、 02、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
372
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-75
UART (UART0 ~ UART2)的 UART 发送时的寄存器设定内容例子 (1/2)
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
0
0
11
0
0
9
0
0
8
0
7
0
6
5
0
4
1
3
0
0
2
1
0
MDmn2
MDmn1
MDmn0
0
1
0/1
通道 n 的运行时钟 (fMCK)
通道 n 的中断源
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
1:缓冲器空中断
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
10
TXEmn
RXEmn
DAPmn
CKPmn
1
0
0
0
10
9
8
EOCmn PTCmn1 PTCmn0
0
0
0/1
0/1
7
6
DIRmn
0/1
5
4
0
0/1
2
1
0
DLSmn1 DLSmn0
0/1
奇偶校验位的设定
0
1
0/1 注 1
0/1
2
1
0
2
1
停止位的设定
00B:无奇偶校验
01B:附加 1 位
01B:附加零校验
数据传送顺序的选择
10B:附加偶校验
0:进行 MSB 优先的输出
11B:附加奇校验
1:进行 LSB 优先的输出
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:TXDq)
15
14
13
12
11
10
9
SDRmn
3
SLCmn1 SLCmn0
波特率的设定
8
7
6
10B:附加 2 位
5
4
3
发送数据的设定
0注2
TXDq
(d) 串行输出电平寄存器 m (SOLm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
8
7
6
5
4
3
SOLm
SOLm2
0
0
0
0
0
0
0
0
0
0
0
0
0
0/1
0
SOLm0
0
0/1
0:正相 (通常)发送
1:反相发送
注
1. 只限于 SCR00 寄存器,其他固定为 “1”。
2. 当进行 9 位数据长度的通信时,SDRm0 寄存器的 bit0 ~ 8 为发送数据的设定区。只有以下的 UART 才能进行 9 位
数据长度的通信。
• 本产品:UART0
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0、 2) q:UART 号 (q=0 ~ 2) mn=00、 02、 10
2.
:在 UART 发送模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
373
R7F0C903-908
第 11 章 串行阵列单元
图 11-75
UART (UART0 ~ UART2)的 UART 发送时的寄存器设定内容例子 (2/2)
(e) 串行输出寄存器 m (SOm) …… 只设定对象通道的位。
15
14
13
12
11
10
9
SOm
0 0
0
0
0
8
CKOm3
CKOm2
CKOm1
CKOm0
×
×
×
×
7
0
6
0
5
0
4
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
×
0/1 注
×
0/1 注
0:串行数据输出值为 “0”
1:串行数据输出值为 “1”
(f)
串行输出允许寄存器 m (SOEm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
7
6
5
4
SOEm
0
0
0
0
0
0
0
0
(g) 串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
×
0/1
×
0/1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
×
0/1
×
0/1
在开始发送前,当对应通道的 SOLmn 位为 “0” 时,必须置 “1” ;当对应通道的 SOLmn 位为 “1” 时,必须置 “0”。
注
在通信过程中,值因通信数据而变。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0、 2) mn=00、 02、 10
2.
:不能设定 (设定初始值)。
× :这是在此模式中不能使用的位 (在其他模式中也不使用的情况下,设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
374
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-76
UART 发送的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
䇴ᇐՖ䘷⌘⢯⦽(䇴ᇐ䘆㺂ᰬ䫕(fMCK)
࠼仇ⲺՖ䘷ᰬ䫕)Ⱦ
䇴ᇐSOLmᇺᆎಞ
䇴ᇐ䗉࠰ᮦᦤⲺ⭫ᒩȾ
䇴ᇐSOmᇺᆎಞ
䇴ᇐѨ㺂ᮦᦤ(SOmn)Ⲻࡓခ䗉࠰⭫
ᒩȾ
䇴ᇐSOEmᇺᆎಞ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
䇴ᇐㄥਙ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”θֵSEmn
փѰ“1”(䘆㺂ݷ䇮⣬ᘷ)Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
㔉ᶕࡓခ䇴ᇐȾ
䙐䗽㔏SDRmn[7:0](TXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)䇴ᇐਇ䘷
ᮦᦤθᔶခ䙐ؗȾ
图 11-77
UART 发送的中止步骤
Ёℶ䆒ᅮⱘᓔྟ
No
(䗝ᢽ)
བᵰ᳝ℷӴ䗕ⱘ᭄ˈህㄝᕙӴ䗕㒧ᴳ
(བᵰ䳔㽕㋻ᗹذℶˈህϡㄝᕙ)DŽ
TSFmn = 0?
Yes
(ᖙ㽕)
ݭSTmᆘᄬ఼
(ᖙ㽕)
ᬍSOEmᆘᄬ఼ⱘ䆒ᅮ
(䗝ᢽ)
ᬍSOmᆘᄬ఼ⱘ䆒ᅮ
(䗝ᢽ)
䆒ᅮPER0ᆘᄬ఼
Ёℶ䆒ᅮⱘ㒧ᴳ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᇚᇍ䈵䗮䘧ⱘSTmnԡ㕂“1”
(SEmn=0˖㕂Ў䖤㸠ذℶ⢊ᗕ)DŽ
ᇚSOEmnԡ㕂“0”ˈذℶᇍ䈵䗮䘧ⱘ䕧ߎDŽ
㋻ᗹذℶᯊˈḍ䳔㽕ˈᬍᇍ䈵䗮䘧
ⱘІ㸠᭄(SOmn)ⱘ⬉ᑇDŽ
ذℶІ㸠䰉߫ऩⱘܗᯊ䩳ˈ㕂Ўԡ⢊ᗕDŽ
㒧ᴳЁℶ䆒ᅮˈ䖯ܹϟϔϾ໘⧚DŽ
375
R7F0C903-908
第 11 章 串行阵列单元
图 11-78
重新开始 UART 发送的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
䙐ؗሯ䊗༽ᇂ∋ϋ
(ᗻ㾷)
No
ㅿࡦ䙐ؗሯ䊗↘ڒᡌ㘻䙐ؗ㔉ᶕȾ
Yes
备注
䙐䗽䇴ᇐㄥਙ⁗ᕅᇺᆎಞθሼሯ䊗䙐
䚉Ⲻᮦᦤ䗉࠰㖤Ѱᰖ᭾Ⱦ
(䘿)
ㄥਙᬃ֒
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SDRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ֆ䘷⌘⢯⦽Ⲻ䇴ᇐ(䇴ᇐ䘆㺂
ᰬ䫕(fMCK)࠼仇ⲺՖ䘷ᰬ䫕)ᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmn(SMRmn)
Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SOLmᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䗉࠰⭫ᒩᇺᆎಞm(SOLm)
Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“0”θ↘ڒሯ䊗䙐䚉Ⲻ
䗉࠰Ⱦ
(䘿)
ᴪ᭯SOmᇺᆎಞⲺ䇴ᇐ
䇴ᇐѨ㺂ᮦᦤ(SOmn)Ⲻࡓခ䗉࠰⭫
ᒩȾ
(ᗻ㾷)
ᴪ᭯SOEmᇺᆎಞⲺ䇴ᇐ
ሼSOEmnփ㖤“1”θݷ䇮ሯ䊗䙐䚉Ⲻ
ᮦᦤ䗉࠰Ⱦ
(ᗻ㾷)
ㄥਙᬃ֒
(ᗻ㾷)
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”θֵSEmn
փѰ“1”(䘆㺂ݷ䇮⣬ᘷ)Ⱦ
(ᗻ㾷)
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
䇴ᇐ㔉ᶕȾ
䙐䗽㔏SDRmn[7:0](TXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)䇴ᇐਇ䘷
ᮦᦤθᔶခ䙐ؗȾ
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
䙐䗽䇴ᇐㄥਙᇺᆎಞૂㄥਙ⁗ᕅᇺᆎ
ಞθሼሯ䊗䙐䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象停止或者通信结束后进行初始设定而不是进
行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
376
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程 (单次发送模式)
图 11-79
UART 发送 (单次发送模式)的时序图
SSmn
STmn
SEmn
SDRmn
TxDqᕋ㝐
〱փᇺᆎಞmn
ਇ䘷ᮦᦤ1
ST
ਇ䘷ᮦᦤ1
〱փ䘆㺂
ਇ䘷ᮦᦤ2
P SP
ST
ਇ䘷ᮦᦤ2
〱փ䘆㺂
ਇ䘷ᮦᦤ3
P SP
ST
ਇ䘷ᮦᦤ3
P SP
〱փ䘆㺂
INTSTq
ᮦᦤਇ䘷
ᮦᦤਇ䘷
ᮦᦤਇ䘷
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0、 2) q:UART 号 (q=0 ~ 2) mn=00、 02、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
377
R7F0C903-908
第 11 章 串行阵列单元
图 11-80
UART 发送 (单次发送模式)的流程图
UART䙐Ⲻؗᔶခ
SAUⲺࡓခ䇴ᇐ
ѱぁᓅ
䇴ᇐਇ䘷ᮦᦤ
ݷ䇮ѣᯣ
㔏SDRmn[7:0](TXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)ߏ
ਇ䘷ᮦᦤ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-77
(䘿Ֆ䘷㔉ᶕѣᯣ)Ⱦ
䇴ᇐਇ䘷ᮦᦤૂᮦᦤѠᮦθ䲚䙐ؗ㔉ᶕḽᘍ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ॰Ƚ
ਇ䘷ᮦᦤ䪾Ƚ䙐ؗᮦᦤѠᮦૂ䙐ؗ㔉ᶕḽᘍ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦTxDqθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ߏSDRmn[7:0]θ
ᔶခਇ䘷Ⱦ
ㅿᖻਇ䘷㔉ᶕ
ྸ᷒ਇ⭕Ֆ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
Ֆ䘷㔉ᶕѣᯣ
ѣᯣ༺⨼ぁᓅ
No
ਇ䘷сжѠᮦᦤ?
Yes
㔏SDRmn[7:0](TXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)ߏ
ਇ䘷ᮦᦤ
ሼ䙐ؗ㔉ᶕḽᘍ㖤փ
ྸ᷒ᴿᓊ䈛ਇ䘷ⲺᮦᦤθቧԄؓᆎ॰䈱ਇ
䘷ᮦᦤᒬъߏࡦTxDqθᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
ੜࡏθቧሼ䙐ؗ㔉ᶕḽᘍ㖤փȾ
RETI
No
ਇ䘷㔉ᶕ?
䙐䗽⺤䇚䙐ؗ㔉ᶕḽᘍᶛỶḛਇ䘷㔉ᶕȾ
ѱぁᓅ
Yes
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
378
R7F0C903-908
(4)
第 11 章 串行阵列单元
处理流程 (连续发送模式)
图 11-81
SSmn
UART 发送 (连续发送模式)的时序图
Ś
ş
STmn
SEmn
SDRmn
ਇ䘷ᮦᦤ1
ST
TxDqᕋ㝐
〱փᇺᆎಞmn
ਇ䘷ᮦᦤ2
ਇ䘷ᮦᦤ1
ਇ䘷ᮦᦤ3
ਇ䘷ᮦᦤ2
P SP ST
P SP ST
〱փ䘆㺂
〱փ䘆㺂
ਇ䘷ᮦᦤ3
P SP
〱փ䘆㺂
INTSTq
ᮦᦤਇ䘷
ᮦᦤਇ䘷
ᮦᦤਇ䘷
MDmn0
ŝ
TSFmn
BFFmn
śŜ
ś
Ŝ
ś
Ŝ
Ş
⌞
注
如果在串行状态寄存器 mn (SSRmn)的 BFFmn 位为 “1” 期间 (有效数据保存在串行数据寄存器 mn (SDRmn)
时)给 SDRmn 寄存器写发送数据,就重写发送数据。
注意
即使在运行中也能改写串行模式寄存器 mn(SMRmn)的 MDmn0 位。但是,为了能赶上最后发送数据的传送结束
中断,必须在开始传送最后一位之前进行改写。
备注
m:单元号 (m=0、 1) n:通道号 (n=0、 2) q:UART 号 (q=0 ~ 2) mn=00、 02、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
379
R7F0C903-908
第 11 章 串行阵列单元
图 11-82
UART 发送 (连续发送模式)的流程图
UART䙐Ⲻؗᔶခ
Ś
SAUⲺࡓခ䇴ᇐ
䇴ᇐਇ䘷ᮦᦤ
ѱぁᓅ
ݷ䇮ѣᯣ
㔏SDRmn[7:0](TXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)ߏ
ਇ䘷ᮦᦤ
ś
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-77
(䘿㕉ߨಞグѣᯣ)Ⱦ
䇴ᇐਇ䘷ᮦᦤ䪾ૂᮦᦤѠᮦθ䲚䙐ؗ㔉ᶕ
ḽᘍ(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ
॰Ƚਇ䘷ᮦᦤ䪾Ƚ䙐ؗᮦᦤѠᮦૂ䙐ؗ㔉ᶕ
ḽᘍ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
Ԅؓᆎ॰䈱ਇ䘷ᮦᦤᒬъߏࡦTxDqθ
ᴪ᯦ਇ䘷ᮦᦤ䪾Ⱦ
䙐䗽ߏSDRmn[7:0]θ
ᔶခਇ䘷Ⱦ
ㅿᖻਇ䘷㔉ᶕ
ྸ᷒ਇ⭕㕉ߨಞグՖ䘷㔉ᶕѣᯣθ
ቧ䖢〱ࡦѣᯣ༺⨼ぁᓅȾ
Ŝ
㕉ߨಞグՖ䘷㔉ᶕѣᯣ
ྸ᷒ᴿਇ䘷ᮦᦤθቧԄؓᆎ॰䈱ਇ䘷ᮦᦤᒬъ
ߏࡦTxDqθᴪ᯦ਇ䘷ᮦᦤ䪾ૂਇ䘷ᮦᦤѠᮦȾ
ྸ᷒⋗ᴿਇ䘷ᮦᦤθቧ൞MDmnփѰ“1”ᰬ䲚
MDmnփȾੜࡏθቧ㔉ᶕਇ䘷Ⱦ
No
ਇ䘷ᮦᦤѠᮦ > 0?
ѣᯣ༺⨼ぁᓅ
Yes
㔏SDRmn[7:0](TXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)ߏ
ਇ䘷ᮦᦤ
ś
MDmn = 1?
ŝ
䙐ؗᮦᦤѠᮦ–1
Yes
No
Ş
㔏MDmn0փߏ“0”
ሼ䙐ؗ㔉ᶕḽᘍ㖤փ
RETI
No
ਇ䘷㔉ᶕ?
䙐䗽⺤䇚䙐ؗ㔉ᶕḽᘍᶛỶḛਇ䘷㔉ᶕȾ
Yes
㔏MDmn0փߏ“1”
Yes
ѱぁᓅ
㔝㔣䙐?ؗ
No
⾷↘ѣᯣ(ኅ㭳)
ş
㔏STmnփߏ“1”
䙐Ⲻؗ㔉ᶕ
备注
图中的①~⑥对应 “ 图 11-81 UART 发送 (连续发送模式)的时序图 ” 中的①~⑥。
R01UH0629CJ0120 Rev.1.20
2019.06.28
380
R7F0C903-908
11.6.2
第 11 章 串行阵列单元
UART 接收
UART 接收是 RL78 微控制器从其他设备异步接收数据的运行。
UART 使用的 2 个通道中的奇数通道用于 UART 接收。但是,需要设定奇数通道和偶数通道的 SMR 寄存器。
UART
对象通道
UART0
UART1
UART2
SAU0 的通道 1
SAU0 的通道 3
SAU1 的通道 1
RxD0
RxD1
RxD2
INTSR0
INTSR1
INTSR2
使用的引脚
中断
只限于传送结束中断 (禁止设定缓冲器空中断)。
INTSRE0
错误中断
INTSRE1
错误检测标志
• 帧错误检测标志 (FEFmn)
• 奇偶校验错误检测标志 (PEFmn)
• 溢出错误检测标志 (OVFmn)
传送数据长度
7 位、 8 位或者 9 位注 1
传送速率
Max. fMCK/6[bps] (SDRmn[15:9] ≥ 2)、 Min. fCLK/(2×215×128)[bps]
数据相位
正相输出 (默认值:高电平)。
INTSRE2
反相输出 (默认值:低电平)。
奇偶校验位
可选择以下内容:
•
•
•
•
无奇偶校验位 (无奇偶校验)。
不判断奇偶校验 (零校验)。
偶校验
奇校验
停止位
附加 1 位。
数据方向
MSB 优先或者 LSB 优先
注
1. 只有以下的 UART 支持 9 位数据长度。
• 本产品:UART0
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注 1. fMCK:对象通道的运行时钟频率
fCLK:系统时钟频率
2. m:单元号 (m=0、 1) n:通道号 (n=1、 3) mn=01、 03、 11
R01UH0629CJ0120 Rev.1.20
2019.06.28
381
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-83
UART (UART0 ~ UART2)的 UART 接收时的寄存器设定内容例子 (1/2)
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
0
11
10
9
8
7
STSmn
0
0
0
0
0
1
6
5
4
3
SISmn0
0
0/1
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
0
1
0
通道 n 的运行时钟 (fMCK)
0:通常接收
通道 n 的运行模式
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
1:反相接收
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
(b) 串行模式寄存器 mr (SMRmr)
15
14
13
12
SMRmr
CKSmr
CCSmr
0/1
0
0
11
0
10
0
0
9
0
8
0
7
0
6
0
5
1
4
0
3
0
2
1
0
MDmr2
MDmr1
MDmr0
0
1
0
和 CKSmn 位相同的设定值
通道 r 的运行模式
0:传送结束中断
(c) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
TXEmn
RXEmn
DAPmn
CKPmn
0
1
0
0
10
9
8
EOCmn PTCmn1 PTCmn0
0
0/1
0/1
0/1
7
6
DIRmn
0/1
5
4
3
2
SLCmn1 SLCmn0
0
0
0
1
0
DLSmn1 DLSmn0
0
1
0/1 注 1
0/1
奇偶校验位的设定
00B:无奇偶校验
01B:不判断奇偶校验
10B:偶校验
数据传送顺序的选择
11B:奇校验
1:进行 LSB 优先的输出
(d) 串行数据寄存器 mn (SDRmn)(低 8 位:RXDq)
15
14
13
12
11
10
9
SDRmn
波特率的设定
数据长度的设定
0:进行 MSB 优先的输出
8
7
6
5
0注2
4
3
2
1
0
接收数据寄存器
RXDq
注
1. 只限于 SCR01 寄存器,其他固定为 “1”。
2. 当进行 9 位数据长度的通信时,SDRm1 寄存器的 bit0 ~ 8 为发送数据的设定区。只有以下的 UART 才能进行 9 位
数据长度的通信。
• 本产品:UART0
在 UART 接收时,还必须将与通道 n 成对的通道 r 的 SMRmr 寄存器设定为 UART 发送模式。
注意
备注 1. m:单元号(m=0、1) n:通道号(n=1、3) mn=01、03、11 r:通道号(r=n–1) q:UART 号(q=0 ~ 2)
2.
:在 UART 接收模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
382
R7F0C903-908
第 11 章 串行阵列单元
图 11-83
UART (UART0 ~ UART2)的 UART 接收时的寄存器设定内容例子 (2/2)
(e) 串行输出寄存器 m (SOm) …… 在此模式中不使用。
15
14
13
12
11
10
9
SOm
7
6
5
4
CKOm2
CKOm1
CKOm0
×
×
×
×
0
0
0
0
串行输出允许寄存器 m (SOEm) …… 在此模式中不使用。
15
14
13
12
11
10
9
8
7
6
5
4
0
(f)
8
CKOm3
0
0
0
SOEm
0
0
0
0
0
0
0
0
(g) 串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
0
0
0
0
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
×
×
×
×
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
×
×
×
×
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
×
0/1
×
备注 1. m:单元号 (m=0、 1)
2.
:不能设定 (设定初始值)。
× :这是在此模式中不能使用的位 (在其他模式中也不使用的情况下,设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
383
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-84
UART 接收的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
ૂSMRmrᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
䇴ᇐՖ䘷⌘⢯⦽(䇴ᇐ䘆㺂ᰬ䫕(fMCK)
࠼仇ⲺՖ䘷ᰬ䫕)Ⱦ
䇴ᇐㄥਙ
䙐䗽䇴ᇐㄥਙ⁗ᕅᇺᆎಞθሼሯ䊗䙐
䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”θֵSEmn
փѰ“1”(䘆㺂ݷ䇮⣬ᘷ)θㅿᖻ䎭ခ
փⲺỶ⎁Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
注意
必须在将 SCRmn 寄存器的 RXEmn 位置 “1” 后至少间隔 4 个 fMCK 时钟,然后将 SSmn 位置 “1”。
图 11-85
UART 接收的中止步骤
Ёℶ䆒ᅮⱘᓔྟ
No
(䗝ᢽ)
བᵰ᳝ℷӴ䗕ⱘ᭄ˈህㄝᕙӴ䗕㒧ᴳ
(བᵰ䳔㽕㋻ᗹذℶˈህϡㄝᕙ)DŽ
TSFmn = 0?
Yes
(ᖙ㽕)
ݭSTmᆘᄬ఼
(䗝ᢽ)
䆒ᅮPER0ᆘᄬ఼
Ёℶ䆒ᅮⱘ㒧ᴳ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ᇚᇍ䈵䗮䘧ⱘSTmnԡ㕂“1”
(SEmn=0˖㕂Ў䖤㸠ذℶ⢊ᗕ)DŽ
ذℶІ㸠䰉߫ऩⱘܗᯊ䩳ˈ㕂Ўԡ⢊ᗕDŽ
㒧ᴳЁℶ䆒ᅮˈ䖯ܹϟϔϾ໘⧚DŽ
384
R7F0C903-908
第 11 章 串行阵列单元
图 11-86
重新开始 UART 接收的设定步骤
䠃᯦ᔶခⲺ䇴ᇐᔶခ
(ᗻ㾷)
䙐ؗሯ䊗༽ᇂ∋ϋ
No
ㅿࡦ䙐ؗሯ䊗↘ڒᡌ㘻䙐ؗ㔉ᶕȾ
Yes
㾷ᴪ᭯䘆㺂ᰬ䫕Ⲻ䇴ᇐᰬθ䠃᯦䇴ᇐȾ
(䘿)
ᴪ᭯SPSmᇺᆎಞⲺ䇴ᇐ
(䘿)
ᴪ᭯SDRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ֆ䘷⌘⢯⦽Ⲻ䇴ᇐ(䇴ᇐ䘆㺂
ᰬ䫕(fMCK)࠼仇ⲺՖ䘷ᰬ䫕)ᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SMRmnᇺᆎಞૂ
SMRmrᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂⁗ᕅᇺᆎಞmnȽmr
(SMRmnȽSMRmr)Ⲻ䇴ᇐᰬθ䠃᯦
䇴ᇐȾ
(䘿)
ᴪ᭯SCRmnᇺᆎಞⲺ䇴ᇐ
㾷ᴪ᭯Ѩ㺂䙐ؗ䘆㺂䇴ᇐᇺᆎಞmn
(SCRmn)Ⲻ䇴ᇐᰬ θ䠃᯦䇴ᇐȾ
(䘿)
䲚䭏䈥ḽᘍ
ᖉFEFȽPEFȽOVFḽᘍؓᤷ㻡㖤փ
Ⲻ⣬ᘷᰬθ䙐䗽Ѩ㺂ḽᘍ䲚䀜ਇᇺ
ᆎಞmn(SIRmn)䘑㺂䲚Ⱦ
(ᗻ㾷)
䇴ᇐㄥਙ
䙐䗽䇴ᇐㄥਙ⁗ᕅᇺᆎಞθሼሯ䊗䙐
䚉Ⲻᮦᦤ䗉࠰㖤Ѱᴿ᭾Ⱦ
(ᗻ㾷)
ߏSSmᇺᆎಞ
ሼሯ䊗䙐䚉ⲺSSmnփ㖤“1”θֵSEmn
փѰ“1”(䘆㺂ݷ䇮⣬ᘷ)θㅿᖻ䎭ခ
փⲺỶ⎁Ⱦ
䠃᯦ᔶခⲺ䇴ᇐ㔉ᶕ
注意
必须在将 SCRmn 寄存器的 RXEmn 位置 “1” 后至少间隔 4 个 fMCK 时钟,然后将 SSmn 位置 “1”。
备注
如果在中止设定中改写 PER0 来停止提供时钟,就必须在等到通信对象停止或者通信结束后进行初始设定而不是进
行重新开始的设定。
R01UH0629CJ0120 Rev.1.20
2019.06.28
385
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程
图 11-87
UART 接收的时序图
SSmn
STmn
SEmn
᭬ᮦᦤ3
SDRmn
RxDqᕋ㝐
〱փᇺᆎಞmn
᭬ᮦᦤ1
ST
᭬ᮦᦤ1
〱փ䘆㺂
P SP
ST
᭬ᮦᦤ2
〱փ䘆㺂
᭬ᮦᦤ2
P SP
ST
᭬ᮦᦤ3
P SP
〱փ䘆㺂
INTSRq
ᮦᦤ᭬
ᮦᦤ᭬
ᮦᦤ᭬
TSFmn
备注
m:单元号(m=0、1) n:通道号(n=1、3) mn=01、03、11 r:通道号(r=n–1) q:UART 号(q=0 ~ 2)
R01UH0629CJ0120 Rev.1.20
2019.06.28
386
R7F0C903-908
第 11 章 串行阵列单元
图 11-88
UART 接收的流程图
UART䙐Ⲻؗᔶခ
ѱぁᓅ
SAUⲺࡓခ䇴ᇐ
䇴ᇐ᭬ᮦᦤ
ݷ䇮ѣᯣ
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-85
(䇴ᇐѰኅ㭳䭏䈥ѣᯣ)Ⱦ
䇴ᇐ᭬ᮦᦤⲺؓᆎ॰ૂ䙐ؗᮦᦤѠᮦ
(䙐䗽䖥ԬθԱᝅ䇴ᇐ䜞RAMѣⲺؓᆎ
॰Ƚ᭬ᮦᦤ䪾ૂ䙐ؗᮦᦤѠᮦ)Ⱦ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣ
ኅ㭳(XXMK)㖤Ѱݷ䇮ѣᯣ(EI)Ⱦ
ㅿᖻ᭬㔉ᶕ
䙐䗽Ỷ⎁䎭ခփθᔶခ᭬Ⱦ
䙐䗽᭬㔉ᶕθӝ⭕ѣᯣȾ
Ֆ䘷㔉ᶕѣᯣ
ѣᯣ༺⨼ぁᓅ
䈱SDRmn[7:0](RXDqᇺᆎಞθ
8փ)ᡌ㘻SDRmn[8:0](9փ)Ⲻ
᭬ᮦᦤ
䈱᭬ᮦᦤᒬъߏࡦؓᆎ॰θሯ
᭬ᮦᦤѠᮦ䘑㺂䙈໔䇗ᮦȾ
ᴪ᯦᭬ᮦᦤ䪾Ⱦ
No
↙ᑮ᭬?
Yes
RETI
䭏䈥༺⨼
No
᭬㔉ᶕ?
⺤䇚᭬ᮦᦤѠᮦθ࡚ᯣ᭬㔉ᶕȾ
ѱぁᓅ
Yes
⾷↘ѣᯣ(ኅ㭳)
㔏STmnփߏ“1”
UART䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
387
R7F0C903-908
11.6.3
第 11 章 串行阵列单元
SNOOZE 模式功能
这是在 STOP 模式中通过检测 RxDq 引脚的输入使 UART 进行接收的模式。通常,在 STOP 模式中 UART
停止通信,但是如果使用 SNOOZE 模式功能,就能在 CPU 不运行的状态下进行 UART 的接收。只有以下的
UART 才能设定 SNOOZE 模式。
•
本产品:UART0
要在 SNOOZE 模式中使用 UARTq 时,必须在转移到 STOP 模式前进行以下的设定 (参照 “ 图 11-91
SNOOZE 模式运行 (EOCm1=0、 SSEC0=0/1 或者 EOCm1=1、 SSEC0=0)的流程图和图 11-93 SNOOZE
模式运行 (EOCm1=1、 SSEC0=1)的流程图 ”)。
•
在 SNOOZE 模式中,需要更改 UART 接收波特率的设定 (更改为和通常运行时不同的值)。必须参照
表 11-3,设定SPSm 寄存器和 SDRmn寄存器 [15:9]。
•
设定 EOCmn 位和 SSEC0 位。能设定允许或者停止在发生通信错误时产生错误中断 (INTSRE0)。
•
必须在即将要转移到 STOP 模式前将串行待机控制寄存器 0 (SSC0)的 SWC0 位置 “1”。在初始设定结
束后,将串行通道开始寄存器 m (SSm)的 SSm1位置 “1”。
•
如果在转移到 STOP 模式后检测到 RxDq输入的起始位, UARTq就开始接收。
注意 1. 只有在选择高速内部振荡器时钟 (fIH)作为 fCLK 时才能使用 SNOOZE 模式功能。
2. SNOOZE 模式中的传送速率只为 4800bps。
3. 如果将 SWC0 位置 “1”,就只能在 STOP 模式中开始接收时使用 UARTq。当其他 SNOOZE 模式功能和中断同时
使用并且在以下非 STOP 模式的状态下开始接收时,可能无法正常接收数据而发生帧错误或者奇偶校验错误。
• 在将 SWC0 位置 “1” 后并且在转移到 STOP 模式前开始接收的情况
• 在其他 SNOOZE 模式中开始接收的情况
• 在通过中断等从 STOP 模式返回到通常运行后并且在将 SWC0 位置 “0” 前开始接收的情况
4. 如果将 SSEC0 位置 “1”,就在发生奇偶校验错误、帧错误或者溢出错误时不将 PEFmn、FEFmn、OVFmn 标志置
位,也不产生错误中断 (INTSREq)。因此,在 SSEC0 位为 “1” 的情况下使用时,必须在将 SWC0 位置 “1” 前清
除 PEFmn、 FEFmn、 OVFmn 标志并且读 SDRm1 寄存器的 bit7 ~ 0 (RxDq)。
5. 通过检测 RxDq 引脚的有效边沿,转移到 SNOOZE 模式。
如果接受到无法检测到输入起始位的短脉冲,就可能不开始 UART 接收而继续保持 SNOOZE 模式。此时,可能在
下一次的 UART 接收过程中无法正常接收数据而发生帧错误或者奇偶校验错误。
R01UH0629CJ0120 Rev.1.20
2019.06.28
388
R7F0C903-908
第 11 章 串行阵列单元
表 11-3
SNOOZE 模式中的 UART 接收波特率的设定
SNOOZE 模式中的 UART 接收波特率
高速内部振荡器
(fIH)
波特率 4800bps
运行时钟 (fMCK)
SDRmn[15:9]
最大容许值
最小容许值
24MHz±1.0% 注
fCLK/25
79
1.60%
–2.18%
16MHz±1.0% 注
fCLK/24
105
2.27%
–1.53%
12MHz±1.0% 注
fCLK/24
79
1.60%
–2.19%
8MHz±1.0% 注
fCLK/23
105
2.27%
–1.53%
6MHz±1.0% 注
fCLK/23
79
1.60%
–2.19%
4MHz±1.0% 注
fCLK/22
105
2.27%
–1.53%
3MHz±1.0% 注
fCLK/22
79
1.60%
–2.19%
2MHz±1.0% 注
fCLK/2
105
2.27%
–1.54%
1MHz±1.0% 注
fCLK
105
2.27%
–1.57%
注
当高速内部振荡器的频率精度为 ±1.5%、 ±2.0% 时,以下的容许范围会变窄。
• 在 fIH±1.5%的情况下,必须将上表的最大容许值设定为–0.5%,并且将最小容许值设定为+0.5%。
• 在 fIH±2.0%的情况下,必须将上表的最大容许值设定为–1.0%,并且将最小容许值设定为+1.0%。
备注
最大容许值和最小容许值是 UART 接收时的波特率的容许值。
必须将发送方的波特率设定在此范围内。
R01UH0629CJ0120 Rev.1.20
2019.06.28
389
R7F0C903-908
(1)
第 11 章 串行阵列单元
SNOOZE 模式运行 (EOCm1=0、 SSEC0=0/1)
因为 EOCm1 位为 “0”,所以与 SSEC0 位的设定无关,即使发生通信错误也不产生错误中断(INTSREq)。
但是,产生传送结束中断 (INTSRq)。
图 11-89
䙐ᑮ䘆㺂
CPU䘆㺂⣬ᘷ
Ŝ
SS01
ST01
SNOOZE 模式运行 (EOCm1=0、 SSEC0=0/1)的时序图
䙐ᑮ䘆㺂
SNOOZE⁗ᕅ
STOP⁗ᕅ
ŝ
ţ
Ś
SE01
SWC0
EOC01
L
SSEC0
L
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
᭬ᮦᦤ2
SDR01
᭬ᮦᦤ1
Ţ
RxD0ᕋ㝐
ST
〱փᇺᆎಞ01
᭬ᮦᦤ1
P
䈱⌞
SP
ST
᭬ᮦᦤ2
P SP
〱փ䘆㺂
〱փ䘆㺂
INTSR0
ᮦᦤ᭬
INTSRE0 L
TSF01
ᮦᦤ᭬
Š
ş
ś
Ş
š
注
必须在 SWC0 位为 “1” 的状态下读接收数据。
注意
在向 SNOOZE 模式转移前或者在 SNOOZE 模式中接收结束后,必须将 STm1 位置 “1”(清除 SEm1 位并且停止运
行),而且还必须在接收结束后清除 SWC0 位 (解除 SNOOZE 模式)。
备注 1. 图中的①~
对应 “ 图 11-91 SNOOZE 模式运行 (EOCm1=0、 SSEC0=0/1 或者 EOCm1=1、 SSEC0=0)的流
程图 ” 中的①~
。
2. 本产品:m=0, q=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
390
R7F0C903-908
(2)
第 11 章 串行阵列单元
SNOOZE 模式运行 (EOCm1=1、 SSEC0=0:允许产生错误中断 (INTSREq))
因为 EOCm1 位为 “1” 并且 SSEC0 位为 “0”,所以在发生通信错误时产生错误中断 (INTSREq)。
图 11-90
䙐ᑮ䘆㺂
CPU䘆㺂⣬ᘷ
Ŝ
SS01
ST01
SNOOZE 模式运行 (EOCm1=1、 SSEC0=0)的时序图
STOP⁗ᕅ
䙐ᑮ䘆㺂
SNOOZE⁗ᕅ
ŝ
Ś
ţ
SE01
SWC0
EOC01
SSEC0 L
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
᭬ᮦᦤ2
SDR01
᭬ᮦᦤ1
Ţ 䈱⌞
RxD0ᕋ㝐
ST
〱փᇺᆎಞ01
᭬ᮦᦤ1
P SP
〱փ䘆㺂
ST
᭬ᮦᦤ2
P SP
〱փ䘆㺂
INTSR0
ᮦᦤ᭬
INTSRE0 L
TSF01
注意
ᮦᦤ᭬
ş
ś
注
Š
Ş
š
必须在 SWC0 位为 “1” 的状态下读接收数据。
在向 SNOOZE 模式转移前或者在 SNOOZE 模式中接收结束后,必须将 STm1 位置 “1”(清除 SEm1 位并且停止运
行),而且还必须在接收结束后清除 SWC0 位 (解除 SNOOZE 模式)。
备注 1. 图中的①~
对应 “ 图 11-91 SNOOZE 模式运行 (EOCm1=0、 SSEC0=0/1 或者 EOCm1=1、 SSEC0=0)的流
程图 ” 中的①~
。
2. 本产品:m=0, q=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
391
R7F0C903-908
图 11-91
第 11 章 串行阵列单元
SNOOZE 模式运行 (EOCm1=0、 SSEC0=0/1 或者 EOCm1=1、 SSEC0=0)的流程图
䇴ᇐⲺᔶခ
ޞ䜞䙐䚉ⲺTSFmn = 0 ϋ
No
Yes
䙐ᑮ䘆㺂
Ś
㔏STmnփߏ“1”
→ SEmn=0
ѰҼ䖢〱ࡦSTOP⁗ᕅθޞ↘ڒ䜞䙐䚉Ⲻ䘆㺂Ⱦ
SAUⲺࡓခ䇴ᇐ
ሼ䙐䚉1䇴ᇐѰUART᭬(ᴪ᭯ѰSNOOZE⁗ᕅ
ѣⲺUART᭬⌘⢯⦽(SPSmᇺᆎಞૂSDRm1
ᇺᆎಞ[15:9]))Ⱦ
ś
䇴ᇐSSC0ᇺᆎಞ
(SWC0=1)
Ŝ
㔏SSm1փߏ“1”
→ SEm1=1
䇴ᇐSNOOZE⁗ᕅȾ
Ѱ䙐ؗᖻᵰ⣬ᘷȾ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱݷ䇮ѣᯣ(IE)Ⱦ
ݷ䇮ѣᯣ
ŝ
↘ڒ㔏SAUᨆבfCLKȾ
STOP⁗ᕅ
䖢〱ࡦSTOP⁗ᕅ
SNOOZE⁗ᕅ
Ş
Ỷ⎁ࡦRxDqᕋ㝐Ⲻᴿ᭾䗯⋵
(䖢〱ࡦSNOOZE⁗ᕅ)
Ỷ⎁ࡦRxDqᕋ㝐䗉Ⲻޛ䎭ခփ
(UARTѰ᭬䘆㺂)
ş
Š
ӝ⭕Ֆ䘷ѣᯣ(INTSRq)
ᡌ㘻䭏䈥ѣᯣ(INTSREq)
š
䙐ᑮ䘆㺂
INTSREq
INTSRq
ԄSNOOZE⁗ᕅѰ䙐ᑮⲺ
䘆㺂⣬ᘷȾ
䈱SDRm1[7:0](RxDqᇺᆎಞθ8փ)
ᡌ㘻SDRm1[8:0](9փ)Ⲻ᭬ᮦᦤ
Ţ
䈱SDRm1[7:0](RxDqᇺᆎಞθ8փ)
ᡌ㘻SDRm1[8:0](9փ)Ⲻ᭬ᮦᦤ
㔏STm1փߏ“1”
ţ
㔏STm1փߏ“1”
Ѱ䘆㺂↘ڒ⣬ᘷ(SEm1=0)Ⱦ
㔏SWC0փߏ“0”
䀙䲚SNOOZE⁗ᕅⲺ䇴ᇐȾ
ᴪ᭯Ѱ䙐ᑮ䘆㺂ᰬⲺUART᭬⌘⢯⦽
ᴪ᭯Ѱ䙐ᑮ䘆㺂ᰬⲺUART᭬⌘⢯⦽
䇴ᇐSPSmᇺᆎಞૂSDRm1
ᇺᆎಞ[15:9]Ⱦ
㔏SSmnփߏ“1”
㔏SSmnփߏ“1”
䙐ᑮ䘆㺂
䙐ᑮ䘆㺂
㔏SWC0փߏ“0”
䭏䈥༺⨼
备注 1. 图中的①~
Ѱ䙐ؗᖻᵰ⣬ᘷ(SEmn=1)Ⱦ
对应 “ 图 11-89 SNOOZE 模式运行(EOCm1=0、SSEC0=0/1)的时序图 ” 和 “ 图 11-90 SNOOZE
模式运行 (EOCm1=1、 SSEC0=0)的时序图 ” 中的①~
。
2. 本产品:m=0, q=0, n=0 ~ 3
R01UH0629CJ0120 Rev.1.20
2019.06.28
392
R7F0C903-908
(3)
第 11 章 串行阵列单元
SNOOZE 模式运行 (EOCm1=1、 SSEC0=1:停止产生错误中断 (INTSREq))
因为 EOCm1 位为 “1” 并且 SSEC0 位为 “1”,所以在发生通信错误时不产生错误中断 (INTSREq)。
图 11-92
CPU䘆㺂⣬ᘷ
䙐ᑮ䘆㺂
Ŝ
SS01
ST01
SNOOZE 模式运行 (EOCm1=1、 SSEC0=1)的时序图
SNOOZE⁗ᕅ
STOP⁗ᕅ
䙐ᑮ䘆㺂
SNOOZE⁗ᕅ
STOP⁗ᕅ
ŝ
ţ
Ś
SE01
SWC0
EOC01
SSEC0
ᰬ䫕䈭≸ؗਭ
(䜞ؗਭ)
᭬ᮦᦤ2
SDR01
᭬ᮦᦤ1
䈱⌞
RxD0ᕋ㝐
ST
〱փᇺᆎಞ01
᭬ᮦᦤ1
P
SP
᭬ᮦᦤ2
ST
Ţ
P SP
〱փ䘆㺂
〱փ䘆㺂
INTSR0
INTSRE0
TSF01
ş
ś
注
ᮦᦤ᭬
ᮦᦤ᭬
L
Ş
ş
Š
Ş
ŠȽ
š
必须在 SWC0 位为 “1” 的状态下读接收数据。
注意 1. 在向 SNOOZE 模式转移前或者在 SNOOZE 模式中接收结束后,必须将 STm1 位置 “1” (清除 SEm1 位并且停止
运行),而且还必须在接收结束后清除 SWC0 位 (解除 SNOOZE 模式)。
2. 如果 SSEC0 位为 “1”,就在发生奇偶校验错误、帧错误或者溢出错误时不将 PEFm1、FEFm1、OVFm1 标志置位,
也不产生错误中断 (INTSREq)。因此,在 SSEC0 位为 “1” 的情况下使用时,必须在将 SWC0 位置 “1” 前清除
PEFm1、 FEFm1、 OVFm1 标志并且读 SDRm1[7:0] (RXDq 寄存器, 8 位)或者 SDRm1[8:0] (9 位)。
备注 1. 图中的①~
对应 “ 图 11-93 SNOOZE 模式运行 (EOCm1=1、 SSEC0=1)的流程图 ” 中的①~
。
2. 本产品:m=0, q=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
393
R7F0C903-908
第 11 章 串行阵列单元
图 11-93
SNOOZE 模式运行 (EOCm1=1、 SSEC0=1)的流程图
䇴ᇐⲺᔶခ
ޞ䜞䙐䚉ⲺTSFmn = 0 ϋ
No
Yes
䙐ᑮ䘆㺂
Ś
ś
Ŝ
SIRmn=0007H
䲚ޞ䜞䭏䈥ḽᘍȾ
㔏STmnփߏ“1”
→ SEmn=0
ѰҼ䖢〱ࡦSTOP⁗ᕅθޞ↘ڒ䜞䙐䚉Ⲻ䘆㺂Ⱦ
SAUⲺࡓခ䇴ᇐ
ሼ䙐䚉1䇴ᇐѰUART᭬(ᴪ᭯ѰSNOOZE⁗ᕅ
ѣⲺUART᭬⌘⢯⦽(SPSmᇺᆎಞૂSDRm1
ᇺᆎಞ[15:9]))Ⱦ
EOCm1φ䇴ᇐѰݷ䇮ӝ⭕䭏䈥ѣᯣINTSREqȾ
䇴ᇐSSC0ᇺᆎಞ
(SWC0=1ȽSSEC0=1)
㔏SSm1փߏ“1”
→ SEm1=1
SNOOZE⁗ᕅ
STOP⁗ᕅ
䇴ᇐѣᯣ
ŝ
䖢〱ࡦSTOP⁗ᕅ
Ş
Ѱ䙐ؗᖻᵰ⣬ᘷȾ
൞䲚ѣᯣ䈭≸ḽᘍ(XXIF)ᒬъ䀙䲚ѣᯣኅ㭳
(XXMK)㖤Ѱ⾷↘ѣᯣ(DI)Ⱦ
↘ڒ㔏SAUᨆבfCLKȾ
Ỷ⎁ࡦRxDqᕋ㝐Ⲻᴿ᭾䗯⋵
(䖢〱ࡦSNOOZE⁗ᕅ)
ş
Ỷ⎁ࡦRxDqᕋ㝐䗉Ⲻޛ䎭ခփ
(UARTѰ᭬䘆㺂)
Ỷ⎁᭬䭏䈥
STOP⁗ᕅ
Š
SNOOZE⁗ᕅ
䇴ᇐSNOOZE⁗ᕅ(䇴ᇐѰݷ䇮൞SNOOZE⁗
ᕅѣӝ⭕䭏䈥ѣᯣINTSREq)Ⱦ
ഖѰ൞ਇ⭕䭏䈥ᰬCPU߃⅗䖢〱ࡦSTOP⁗ᕅθ
ᡶԛуሼ䭏䈥ḽᘍ㖤փȾ
Ỷ⎁ࡦRxDqᕋ㝐Ⲻᴿ᭾䗯⋵
(䖢〱ࡦSNOOZE⁗ᕅ)
Ỷ⎁ࡦRxDqᕋ㝐䗉Ⲻޛ䎭ခփ
(UARTѰ᭬䘆㺂)
Š
ӝ⭕Ֆ䘷ѣᯣ(INTSRq)
š
䙐ᑮ䘆㺂
INTSRq
Ţ
䈱SDRm1[7:0](RxDqᇺᆎಞθ8փ)
ᡌ㘻SDRm1[8:0](9փ)Ⲻ᭬ᮦᦤ
ţ
㔏STm1փߏ“1”
䇴ᇐSSC0ᇺᆎಞ
(SWC0=0ȽSSEC0=0)
ᴪ᭯Ѱ䙐ᑮ䘆㺂ᰬⲺ
UART᭬⌘⢯⦽
㔏SSmnփߏ“1”
ԄSNOOZE⁗ᕅѰ䙐ᑮ䘆㺂⣬ᘷȾ
Ѱ䘆㺂↘ڒ⣬ᘷ(SEm1=0)Ⱦ
䀙䲚SNOOZE⁗ᕅⲺ䇴ᇐȾ
䇴ᇐSPSmᇺᆎಞૂSDRm1ᇺᆎಞ[15:9]Ⱦ
Ѱ䘆㺂↘ڒ⣬ᘷ(SEmn=1)Ⱦ
䙐ᑮ䘆㺂
R01UH0629CJ0120 Rev.1.20
2019.06.28
394
R7F0C903-908
注意
第 11 章 串行阵列单元
如果 SSEC0 位为 “1”,就在发生奇偶校验错误、帧错误或者溢出错误时不将 PEFm1、FEFm1、OVFm1 标志置位,
也不产生错误中断 (INTSREq)。因此,在 SSEC0 位为 “1” 的情况下使用时,必须在将 SWC0 位置 “1” 前清除
PEFm1、 FEFm1、 OVFm1 标志并且读 SDRm1[7:0] (RXDq 寄存器, 8 位)或者 SDRm1[8:0] (9 位)。
备注 1. 图中的①~
对应 “ 图 11-92 SNOOZE 模式运行 (EOCm1=1、 SSEC0=1)的时序图 ” 中的①~
。
2. 本产品:m=0, q=0, n=0 ~ 3
11.6.4
(1)
波特率的计算
波特率的计算式
UART (UART0 ~ UART2)通信的波特率能用以下计算式进行计算:
(波特率) = { 对象通道的运行时钟 (fMCK)频率 } ÷ (SDRmn[15:9] + 1) ÷ 2 [bps]
注意
禁止将串行数据寄存器 mn (SDRmn)的 SDRmn[15:9] 设定为 “0000000B” 和 “0000001B”。
备注 1. 因为在使用UART时SDRmn[15:9]的值为SDRmn寄存器的bit15~9的值(0000010B~1111111B),所以为2~127。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
运行时钟(fMCK)取决于串行时钟选择寄存器m(SPSm)和串行模式寄存器mn(SMRmn)的bit15(CKSmn位)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
395
R7F0C903-908
第 11 章 串行阵列单元
表 11-4
SMRmn
0
1
注
运行时钟 (fMCK)注
SPSm 寄存器
寄存器
CKSmn
UART 运行时钟的选择
PRS PRS PRS PRS PRS PRS PRS PRS
fCLK=20MHz 运行时
m13
m12
m11
m10
m03
m02
m01
m00
X
X
X
X
0
0
0
0
fCLK
20MHz
X
X
X
X
0
0
0
1
fCLK/2
10MHz
X
X
X
X
0
0
1
0
fCLK/22
5MHz
X
X
X
X
0
0
1
1
fCLK/23
2.5MHz
X
X
X
X
0
1
0
0
fCLK/24
1.25MHz
X
X
X
X
0
1
0
1
fCLK/25
625kHz
X
X
X
X
0
1
1
0
fCLK/26
312.5kHz
X
X
X
X
0
1
1
1
fCLK/27
156.2kHz
X
X
X
X
1
0
0
0
fCLK/28
78.1kHz
X
X
X
X
1
0
0
1
fCLK/29
39.1kHz
X
X
X
X
1
0
1
0
fCLK/210
19.5kHz
X
X
X
X
1
0
1
1
fCLK/211
9.77kHz
X
X
X
X
1
1
0
0
fCLK/212
4.88kHz
X
X
X
X
1
1
0
1
fCLK/213
2.44kHz
X
X
X
X
1
1
1
0
fCLK/214
1.22kHz
X
X
X
X
1
1
1
1
fCLK/215
610Hz
0
0
0
0
X
X
X
X
fCLK
20MHz
0
0
0
1
X
X
X
X
fCLK/2
10MHz
0
0
1
0
X
X
X
X
fCLK/22
5MHz
0
0
1
1
X
X
X
X
fCLK/23
2.5MHz
0
1
0
0
X
X
X
X
fCLK/24
1.25MHz
0
1
0
1
X
X
X
X
fCLK/25
625kHz
0
1
1
0
X
X
X
X
fCLK/26
312.5kHz
0
1
1
1
X
X
X
X
fCLK/27
156.2kHz
1
0
0
0
X
X
X
X
fCLK/28
78.1kHz
1
0
0
1
X
X
X
X
fCLK/29
39.1kHz
1
0
1
0
X
X
X
X
fCLK/210
19.5kHz
1
0
1
1
X
X
X
X
fCLK/211
9.77kHz
1
1
0
0
X
X
X
X
fCLK/212
4.88kHz
1
1
0
1
X
X
X
X
fCLK/213
2.44kHz
1
1
1
0
X
X
X
X
fCLK/214
1.22kHz
1
1
1
1
X
X
X
X
fCLK/215
610Hz
要更改被选择为 fCLK 的时钟 (更改系统时钟控制寄存器 (CKC)的值)时,必须在停止串行阵列单元 (SAU)的
运行 (串行通道停止寄存器 m (STm) =000FH)后进行更改。
备注 1. X:忽略
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
396
R7F0C903-908
(2)
第 11 章 串行阵列单元
发送时的波特率误差
UART (UART0 ~ UART2)通信发送时的波特率误差能用以下计算式进行计算,必须将发送方的波特率
设定在接收方的波特率容许范围内。
(波特率误差) = (波特率的计算值)÷ (目标波特率的值)× 100 – 100 [%]
fCLK=20MHz 时的 UART 波特率的设定例子如下所示。
fCLK=20MHz
UART 波特率
(目标波特率)
运行时钟 (fMCK)
SDRmn[15:9]
波特率的计算值
与目标波特率的误差
300bps
fCLK/29
103
300.48bps
+0.16%
600bps
fCLK/28
103
600.96bps
+0.16%
1200bps
fCLK/27
103
1201.92bps
+0.16%
2400bps
fCLK/26
103
2403.85bps
+0.16%
4800bps
fCLK/25
103
4807.69bps
+0.16%
9600bps
fCLK/24
103
9615.38bps
+0.16%
19200bps
fCLK/23
103
19230.8bps
+0.16%
31250bps
fCLK/23
63
31250.0bps
±0.0%
38400bps
fCLK/22
103
38461.5bps
+0.16%
76800bps
fCLK/2
103
76923.1bps
+0.16%
153600bps
fCLK
103
153846bps
+0.16%
312500bps
fCLK
50
312500bps
±0.0%
备注
m:单元号 (m=0、 1) n:通道号 (n=0、 2) mn=00、 02、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
397
R7F0C903-908
(3)
第 11 章 串行阵列单元
接收时的波特率容许范围
UART (UART0 ~ UART2)通信接收时的波特率容许范围能用以下计算式进行计算,必须将发送方的波
特率设定在接收方的波特率容许范围内。
(可接收的最大波特率) =
(可接收的最小波特率) =
2 × k × Nfr
2 × k × Nfr – k + 2
2 × k × (Nfr – 1)
2 × k × Nfr – k – 2
× Brate
× Brate
Brate: 接收方的波特率的计算值 (参照 “11.6.4(1) 波特率的计算式 ”)
k:
SDRmn[15:9]+1
Nfr:
1 个数据的帧长 [ 位 ]
= (起始位) + (数据长度) + (奇偶校验位) + (停止位)
备注
m:单元号 (m=0、 1) n:通道号 (n=1、 3) mn=01、 03、 11、 13
图 11-94
接收时的波特率容许范围 (1 个数据的帧长 =11 位的情况)
䬷ᆎ
ᰬᓅ
SAUⲺ
ᮦᦤᑝ䮵
䎭ခփ
bit0
bit1
bit7
ཽڬ
ṗ僂փ
↘ڒփ
FL
1Ѡᮦᦤᑝ(11×FL)
ᴶቅᇯ䇮
ᮦᦤᑝ䮵
䎭ခփ
bit0
bit1
ཽڬ
ṗ僂փ
bit7
↘ڒփ
(11×FL) min
ᴶཝᇯ䇮
ᮦᦤᑝ䮵
䎭ခփ
bit0
bit1
bit7
ཽڬ
ṗ僂փ
↘ڒփ
(11×FL) max
如图 11-94 所示,在检测到起始位后,接收数据的锁存时序取决于串行数据寄存器 mn (SDRmn)的 bit15 ~ 9
设定的分频比。如果最后的数据 (停止位)能赶上此锁存时序,就能正常接收。
R01UH0629CJ0120 Rev.1.20
2019.06.28
398
R7F0C903-908
11.6.5
第 11 章 串行阵列单元
在 UART (UART0 ~ UART2)通信过程中发生错误时的处理步骤
在 UART (UART0 ~ UART2)通信过程中发生错误时的处理步骤如图 11-95 和图 11-96 所示。
图 11-95
发生奇偶校验错误或者溢出错误时的处理步骤
软件操作
读串行数据寄存器 mn (SDRmn)。
硬件状态
备注
SSRmn 寄存器的 BFFmn 位为 “0” 并且 这是为了防止在错误处理的过程中结束
通道 n 为可接收状态。
读串行状态寄存器 mn (SSRmn)。
下一次接收而发生溢出错误。
判断错误种类,读取值用于清除错误标
志。
给串行标志清除触发寄存器 mn
清除错误标志。
(SIRmn)写 “1”。
通过将 SSRmn 寄存器的读取值直接写
到 SIRmn 寄存器,只能清除读操作时的
错误。
图 11-96
软件操作
读串行数据寄存器 mn (SDRmn)。
发生帧错误时的处理步骤
硬件状态
备注
SSRmn 寄存器的 BFFmn 位为 “0” 并且 这是为了防止在错误处理的过程中结束
通道 n 为可接收状态。
读串行状态寄存器 mn (SSRmn)。
下一次接收而发生溢出错误。
判断错误种类,读取值用于清除错误标
志。
写串行标志清除触发寄存器 mn
清除错误标志。
通过将 SSRmn 寄存器的读取值直接写
到 SIRmn 寄存器,只能清除读操作时的
(SIRmn)。
错误。
将串行通道停止寄存器 m (STm)的
STmn 位置 “1”。
串行通道允许状态寄存器 m(SEm)的
SEmn 位为 “0” 并且通道 n 为运行停止
状态。
与通信方进行同步处理。
因为起始位偏移,所以可认为发生了帧
错误。因此,需要与通信方重新取得同
步,重新开始通信。
将串行通道开始寄存器 m (SSm)的
SSmn 位置 “1”。
串行通道允许状态寄存器 m(SEm)的
SEmn 位为 “1” 并且通道 n 为可运行状
态。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
399
R7F0C903-908
第 11 章 串行阵列单元
简易 I2C (IIC00、 IIC11、 IIC20)通信的运行
11.7
这是通过串行时钟 (SCL)和串行数据 (SDA)共 2 条线与多个设备进行时钟同步通信的功能。因为此简
易
I2C
是为了与 EEPROM、闪存、 A/D 转换器等设备进行单通信而设计的,所以只用作主控设备。
对于开始条件和停止条件,必须遵守 I2C 总线的特性,通过软件操作控制寄存器。
[ 数据的发送和接收 ]
•
主控发送、主控接收 (只限于单主控的主控功能)
•
ACK 输出功能注、 ACK 检测功能
•
•
8 位数据长度 (在发送地址时,用高 7 位指定地址,用最低位进行R/W 控制)
通过软件产生开始条件和停止条件。
[ 中断功能 ]
•
传送结束中断
[ 错误检测标志 ]
•
溢出错误
•
ACK 错误
※ [ 简易 I2C 不支持的功能 ]
•
•
从属发送、从属接收
多主控功能 (仲裁失败检测功能)
•
等待检测功能
在接收最后的数据时,如果给 SOEmn 位 (SOEm 寄存器)写 “0” 来停止串行通信数据的输出,就不输出 ACK。详
注
细内容请参照 “11.7.3(2) 处理流程 ”。
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
备注
SAU0 的通道 0 ~ 3 以及 SAU1 的通道 0 和通道 1 是支持简易 I2C (IIC00、 IIC11、 IIC20)的通道。
单元
通道
用作 CSI
用作 UART
用作简易 I2C
0
0
CSI00
UART0
IIC00
1
—
2
—
3
CSI11
0
CSI20
1
—
1
—
UART1
—
IIC11
UART2
IIC20
—
简易 I2C (IIC00、 IIC11、 IIC20)有以下 4 种通信运行:
•
地址段发送
(参照 11.7.1)
•
数据发送
(参照11.7.2)
•
数据接收
(参照11.7.3)
•
停止条件的产生
(参照 11.7.4)
R01UH0629CJ0120 Rev.1.20
2019.06.28
400
R7F0C903-908
11.7.1
第 11 章 串行阵列单元
地址段发送
地址段发送是为了特别指定传送对象 (从属设备)而在 I2C 通信时最先进行的发送运行。在产生开始条件
后,将地址 (7 位)和传送方向 (1 位)作为 1 帧进行发送。
IIC00
IIC11
IIC20
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
简易 I2C
对象通道
SCL00、
使用的引脚
SDA00 注 1
SCL11、
INTIIC00
中断
SDA11 注 1
SCL20、 SDA20 注 1
INTIIC11
INTIIC20
只限于传送结束中断 (不能选择缓冲器空中断)。
错误检测标志
ACK 错误检测标志 (PEFmn)
传送数据长度
8 位 (将高 7 位作为地址并且将低 1 位作为 R/W 控制进行发送)
传送速率注 2
Max. fMCK/4[Hz] (SDRmn[15:9] ≥ 1)
fMCK:对象通道的运行时钟频率
但是,必须在 I2C 的各模式中满足以下条件:
• Max.1MHz (增强型快速模式)
• Max. 400kHz (快速模式)
• Max. 100kHz (标准模式)
数据电平
正相输出 (默认值:高电平)。
奇偶校验位
无奇偶校验位。
停止位
附加 1 位 (用于 ACK 接收)。
数据方向
MSB 优先
注
1. 要通过简易 I2C 进行通信时,必须通过端口输出模式寄存器 (POMxx)设定 N 沟道漏极开路输出 (VDD 耐压)模式
(POMxx=1)。详细内容请参照 “4.3 控制端口功能的寄存器 ” 和 “4.5 使用复用功能时的寄存器设定 ”。
要将 IIC00、 IIC20 与不同电位的外部设备进行通信时,还必须同样地将时钟输入 / 输出引脚 (SCL00、 SCL20)
设定为 N 沟道漏极开路输出 (VDD 耐压)模式 (POMxx=1)。详细内容请参照 “4.4.4 通过输入 / 输出缓冲器进行
的不同电位 (1.8V、 2.5V、 3V)的对应 ”。
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
401
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
简易 I2C (IIC00、 IIC11、 IIC20)地址段发送时的寄存器设定内容例子
图 11-97
(a) 串行模式寄存器 mn (SMRmn)
15
14
13
12
SMRmn
CKSmn
CCSmn
0/1
0
11
10
9
8
7
STSmn
0
0
0
0
0
0注1
6
5
4
3
SISmn0
0
0注1
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
1
0
0
通道 n 的运行时钟 (fMCK)
通道 n 的运行模式
0:SPSm 寄存器设定的预分频器输出时钟 CKm0
0:传送结束中断
1:SPSm 寄存器设定的预分频器输出时钟 CKm1
(b) 串行通信运行设定寄存器 mn (SCRmn)
15
14
13
12
11
SCRmn
TXEmn
RXEmn
DAPmn
CKPmn
1
0
0
0
10
9
0
0
0
0
7
6
DIRmn
0
5
4
3
2
SLCmn1 SLCmn0
0
0注2
1
0
DLSmn1 DLSmn0
1
0
1
1
1注3
奇偶校验位的设定
停止位的设定
00B:无奇偶校验
01B:附加 1 位 (ACK)
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOr)
15
14
13
12
11
10
SDRmn
8
EOCmn PTCmn1 PTCmn0
9
波特率的设定
8
7
6
5
4
3
2
1
0
发送数据的设定 (地址 +R/W)
0
SIOr
(d) 串行输出寄存器 m (SOm)
15
14
13
12
SOm
0
0
0
0
11
10
9
8
CKOm3
CKOm2
CKOm1
CKOm0
0/1
0/1
0/1
0/1
7
0
6
0
5
0
4
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1
0/1
0/1
0/1
通过操作 SOmn 位来产生开始条件。
(e) 串行输出允许寄存器 m (SOEm)
15
14
13
12
11
10
9
8
7
6
5
4
SOEm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0/1
0/1
0/1
0/1
在产生开始条件前 SOEmn 位为 “0”,在产生开始条件后 SOEmn 位为 “1”。
(f)
串行通道开始寄存器 m (SSm) …… 只将对象通道的位置 “1”。
15
14
13
12
11
10
9
8
7
6
5
4
SSm
0
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
在产生开始条件前 SSmn 位为 “0”,在产生开始条件后 SSmn 位为 “1”。
注
1. 只限于 SMR00、 SMR03、 SMR11 寄存器。
2. 只限于 SCR00、 SCR02、 SCR10 寄存器。
3. 只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) r:IIC 号 (r=00、 11、 20) mn=00、 03、 10
2.
:在 IIC 模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0”或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
402
R7F0C903-908
(2)
第 11 章 串行阵列单元
操作步骤
图 11-98
地址段发送的初始设定步骤
ࡓခ䇴ᇐⲺᔶခ
䇴ᇐPER0ᇺᆎಞ
䀙䲚Ѩ㺂䱫ࡍঋⲺݹགྷփ⣬ᘷθᔶခ
ᨆבᰬ䫕Ⱦ
䇴ᇐSPSmᇺᆎಞ
䇴ᇐ䘆㺂ᰬ䫕Ⱦ
䇴ᇐSMRmnᇺᆎಞ
䇴ᇐ䘆㺂⁗ᕅㅿȾ
䇴ᇐSCRmnᇺᆎಞ
䇴ᇐ䙐ؗṲᕅȾ
䇴ᇐSDRmnᇺᆎಞ
䇴ᇐՖ䘷⌘⢯⦽(䇴ᇐ䘆㺂ᰬ䫕(fMCK)
࠼仇ⲺՖ䘷ᰬ䫕)Ⱦ
䇴ᇐSOmᇺᆎಞ
䇴ᇐㄥਙ
䇴ᇐѨ㺂ᮦᦤ(SOmn)ૂѨ㺂ᰬ䫕
(CKOmn)Ⲻࡓခ䗉࠰⭫ᒩ(㖤“1”)Ⱦ
䙐䗽䇴ᇐㄥਙᇺᆎಞȽㄥਙ⁗ᕅᇺᆎ
ಞૂㄥਙ䗉࠰⁗ᕅᇺᆎಞθሼሯ䊗䙐
䚉Ⲻᮦᦤ䗉࠰Ƚᰬ䫕䗉࠰ૂN⋕䚉╅
ᶷᔶ䐥䗉࠰(VDD㙆ু)⁗ᕅ㖤Ѱᴿ᭾Ⱦ
ࡓခ䇴ᇐⲺ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
403
R7F0C903-908
(3)
第 11 章 串行阵列单元
处理流程
图 11-99
地址段发送的时序图
SSmn
SEmn
SOEmn
൦൶⇫ਇ䘷
SDRmn
SCLr䗉࠰
CKOmn
փᬃ֒
SDAr 䗉࠰
D7
D6
D5
D4
D3
D2
D1
SOmnփᬃ֒
R/W
൦൶
SDAr 䗉ޛ
〱փᇺᆎಞmn
D7
D6
D5
D4
D0
D3
D2
D1
D0
ACK
〱փ䘆㺂
INTIICr
TSFmn
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) r:IIC 号 (r=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
404
R7F0C903-908
第 11 章 串行阵列单元
图 11-100
地址段发送的流程图
൦൶⇫ਇ䘷
ᴿީࡓခ䇴ᇐθ䈭৸➝ഴ11-100Ⱦ
ࡓခ䇴ᇐ
ሼSOmnփ㖤“0”Ⱦ
㔏SOmnփߏ“0”
ӝ⭕ᔶခᶗԬȾ
ㅿᖻ
⺤ؓSCLؗਭⲺؓᤷᰬ䰪Ⱦ
㔏CKOmnփߏ“0”
ֵSCLؗਭс䲃θ༽䙐ؗȾ
㔏SOEmnփߏ“1”
ݷ䇮Ѩ㺂䗉࠰Ⱦ
㖤ѰѨ㺂䘆㺂ݷ䇮⣬ᘷȾ
㔏SSmnփߏ“1”
㔏SIOr(SDRmn[7:0])
ߏ൦൶ૂR/WⲺᮦᦤ
ਇ⭕Ֆ䘷㔉ᶕѣᯣ?
ਇ䘷൦൶⇫Ⱦ
No
ㅿᖻ൦൶⇫ਇ䘷㔉ᶕ
(䲚ѣᯣ䈭≸ḽᘍ)Ⱦ
Yes
No
ACKᓊㆊ?
Yes
൦൶⇫ਇ䘷㔉ᶕ
䙐䗽PEFmnփ⺤䇚Ԅኔ䇴༽ⲺACKᓊㆊȾ
ྸ᷒ᱥACK(PEFmn=0)θቧ䘑ޛсжѠ༺
⨼χྸ᷒ᱥNACK(PEFmn=1)θቧ䘑ޛ䭏
䈥༺⨼Ⱦ
䙐ؗ䭏䈥༺⨼
ᮦᦤਇ䘷⍷ぁȽᮦᦤ᭬⍷ぁ
R01UH0629CJ0120 Rev.1.20
2019.06.28
405
R7F0C903-908
11.7.2
第 11 章 串行阵列单元
数据发送
数据发送是在发送地址段后给该传送对象 (从属设备)发送数据的运行。在给对象从属设备发送全部数据
后产生停止条件并且释放总线。
IIC00
IIC11
IIC20
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
简易 I2C
对象通道
SCL00、
使用的引脚
SDA00 注 1
SCL11、
INTIIC00
中断
SDA11 注 1
INTIIC11
SCL20、 SDA20 注 1
INTIIC20
只限于传送结束中断 (不能选择缓冲器空中断)。
错误检测标志
ACK 错误标志 (PEFmn)
传送数据长度
8位
传送速率注 2
Max. fMCK/4[Hz] (SDRmn[15:9] ≥ 1)
fMCK:对象通道的运行时钟频率
但是,必须在 I2C 的各模式中满足以下条件:
• Max.1MHz (增强型快速模式)
• Max. 400kHz (快速模式)
• Max. 100kHz (标准模式)
数据电平
正相输出 (默认值:高电平)。
奇偶校验位
无奇偶校验位。
停止位
附加 1 位 (用于 ACK 接收)。
数据方向
MSB 优先
注
1. 要通过简易 I2C 进行通信时,必须通过端口输出模式寄存器 (POMxx)设定 N 沟道漏极开路输出 (VDD 耐压)模式
(POMxx=1)。详细内容请参照 “4.3 控制端口功能的寄存器 ” 和 “4.5 使用复用功能时的寄存器设定 ”。
要将 IIC00、 IIC20 与不同电位的外部设备进行通信时,还必须同样地将时钟输入 / 输出引脚 (SCL00、 SCL20)
设定为 N 沟道漏极开路输出 (VDD 耐压)模式 (POMxx=1)。详细内容请参照 “4.4.4 通过输入 / 输出缓冲器进行
的不同电位 (1.8V、 2.5V、 3V)的对应 ”。
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
406
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-101
简易 I2C (IIC00、 IIC11、 IIC20)数据发送时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
5
SMRmn
CKSmn
CCSmn
0/1
0
STSmn
0
0
0
0
0
0注1
4
3
SISmn0
0
0注1
1
0
0
2
1
0
MDmn2
MDmn1
MDmn0
1
0
0
(b) 串行通信运行设定寄存器 mn (SCRmn) …… 在数据发送和接收的过程中不操作 TXEmn 位和 RXEmn 位以外的位)。
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
SCRmn
TXEmn
RXEmn
DAPmn
CKPmn
1
0
0
0
EOCmn PTCmn1 PTCmn0
0
0
0
0
DIRmn
0
SLCmn1 SLCmn0
0
0注2
1
0
1
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOr) …… 在数据发送和接收的过程中只有低 8 位有效 (SIOr)。
15
14
13
12
11
10
9
8
7
6
5
4
3
2
SDRmn
波特率的设定注 4
0
DLSmn1 DLSmn0
1注3
1
1
0
发送数据的设定
0
SIOr
(d) 串行输出寄存器 m (SOm) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
SOm
CKOm3
0
0
0
0
CKOm2
CKOm1
5
4
CKOm0
0
0
(e) 串行输出允许寄存器 m (SOEm) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
5
4
0/1 注 5 0/1 注 5 0/1 注 5 0/1 注 5
0
0
SOEm
0
(f)
0
0
0
0
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
5
4
SSm
0
注
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1 注 5 0/1 注 5 0/1 注 5 0/1 注 5
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
1
1
1
1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
1. 只限于 SMR01 寄存器和 SMR03 寄存器。
2. 只限于 SCR00 寄存器和 SCR02 寄存器。
3. 只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
4. 因为已经在发送地址段时设定,所以不需要设定。
5. 在通信运行过程中,值因通信数据而变。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) r:IIC 号 (r=00、 11、 20) mn=00、 03、 10
2.
:在 IIC 模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
407
R7F0C903-908
(2)
第 11 章 串行阵列单元
处理流程
图 11-102
SSmn
SEmn
SOEmn
数据发送的时序图
“L”
“H”
“H”
SDRmn
ਇ䘷ᮦᦤ1
SCLr䗉࠰
SDAr䗉࠰
D7
D6
D5
D4
D3
D2
D1
D0
SDAr䗉ޛ
D7
D6
D5
D4
D3
D2
D1
D0
〱փᇺᆎಞmn
ACK
〱փ䘆㺂
INTIICr
TSFmn
图 11-103
数据发送的流程图
൦൶⇫ਇ䘷㔉ᶕ
ᮦᦤਇ䘷Ⲻᔶခ
㔏SIOr(SDRmn[7:0])
ߏᮦᦤ
ਇ⭕Ֆ䘷㔉ᶕѣᯣ?
䙐䗽ߏᮦᦤθᔶခਇ䘷Ⱦ
No
ㅿᖻਇ䘷㔉ᶕ
(䲚ѣᯣ䈭≸ḽᘍ)Ⱦ
Yes
No
ACKᓊㆊ?
⺤䇚Ԅኔ䇴༽ⲺACKᓊㆊȾ
ྸ᷒ᱥACK(PEF=0)θቧ䘑ޛсжѠ༺
⨼χྸ᷒ᱥNACK(PEF=1)θቧ䘑ޛ䭏
䈥༺⨼Ⱦ
Yes
䙐ؗ䭏䈥༺⨼
No
ᮦᦤՖ䘷㔉ᶕ?
Yes
ᮦᦤਇ䘷Ⲻ㔉ᶕ
ӝ⭕↘ڒᶗԬȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
408
R7F0C903-908
11.7.3
第 11 章 串行阵列单元
数据接收
数据接收是在发送地址段后从传送对象 (从属设备)接收数据的运行。在从对象从属设备接收全部数据后
产生停止条件并且释放总线。
IIC00
IIC11
IIC20
SAU0 的通道 0
SAU0 的通道 3
SAU1 的通道 0
简易 I2C
对象通道
SCL00、
使用的引脚
SDA00 注 1
SCL11、
INTIIC00
中断
SDA11 注 1
INTIIC11
SCL20、 SDA20 注 1
INTIIC20
只限于传送结束中断 (不能选择缓冲器空中断)。
错误检测标志
只有溢出错误检测标志 (OVFmn)。
传送数据长度
8位
传送速率注 2
Max. fMCK/4[Hz] (SDRmn[15:9] ≥ 1)
fMCK:对象通道的运行时钟频率
但是,必须在 I2C 的各模式中满足以下条件:
• Max.1MHz (增强型快速模式)
• Max. 400kHz (快速模式)
• Max. 100kHz (标准模式)
数据电平
正相输出 (默认值:高电平)。
奇偶校验位
无奇偶校验位。
停止位
附加 1 位 (ACK 发送)。
数据方向
MSB 优先
注
1. 要通过简易 I2C 进行通信时,必须通过端口输出模式寄存器 (POMxx)设定 N 沟道漏极开路输出 (VDD 耐压)模式
(POMxx=1)。详细内容请参照 “4.3 控制端口功能的寄存器 ” 和 “4.5 使用复用功能时的寄存器设定 ”。
要将 IIC00、 IIC20 与不同电位的外部设备进行通信时,还必须同样地将时钟输入 / 输出引脚 (SCL00、 SCL20)
设定为 N 沟道漏极开路输出 (VDD 耐压)模式(POMxx=1)。详细内容请参照 “4.4.4 通过输入 / 输出缓冲器进行
的不同电位 (1.8V、 2.5V、 3V)的对应 ”。
2. 必须在满足此条件并且满足电特性的外围功能特性(参照 “ 第 27 章 电特性(TA=–40 ~ +85°C)”)的范围内使用。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
409
R7F0C903-908
(1)
第 11 章 串行阵列单元
寄存器的设定
图 11-104
简易 I2C (IIC00、 IIC11、 IIC20)数据接收时的寄存器设定内容例子
(a) 串行模式寄存器 mn (SMRmn) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
5
2
1
0
MDmn2
MDmn1
MDmn0
1
0
0
(b) 串行通信运行设定寄存器 mn (SCRmn) …… 在数据发送和接收的过程中不操作 TXEmn 位和 RXEmn 位以外的位。
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SMRmn
SCRmn
CKSmn
CCSmn
0/1
0
STSmn
0
0
TXEmn
RXEmn
DAPmn
CKPmn
0
1
0
0
0
0
0
EOCmn PTCmn1 PTCmn0
0
0
(c) 串行数据寄存器 mn (SDRmn)(低 8 位:SIOr)
15
14
13
12
11
10
SDRmn
0注1
4
3
SISmn0
0
0注1
DIRmn
1
0
0
SLCmn1 SLCmn0
DLSmn1 DLSmn0
0
0
0
0
0注2
1
0
1
1注3
1
9
8
7
6
5
4
3
2
1
0
波特率的设定注 4
虚拟发送数据的设定 (FFH)
0
SIOr
(d) 串行输出寄存器 m (SOm) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
SOm
CKOm3
0
0
0
0
CKOm2
CKOm1
5
4
CKOm0
0
0
(e) 串行输出允许寄存器 m (SOEm) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
5
4
0/1 注 5 0/1 注 5 0/1 注 5 0/1 注 5
0
0
SOEm
0
(f)
0
0
0
0
0
0
0
0
0
0
0
串行通道开始寄存器 m (SSm) …… 在数据发送和接收的过程中不操作此寄存器。
15
14
13
12
11
10
9
8
7
6
5
4
SSm
0
注
0
0
0
0
0
0
0
0
0
0
0
3
2
1
0
SOm3
SOm2
SOm1
SOm0
0/1 注 5 0/1 注 5 0/1 注 5 0/1 注 5
3
2
1
0
SOEm3
SOEm2
SOEm1
SOEm0
0/1
0/1
0/1
0/1
3
2
1
0
SSm3
SSm2
SSm1
SSm0
0/1
0/1
0/1
0/1
1. 只限于 SMR01 寄存器和 SMR03 寄存器。
2. 只限于 SCR00 寄存器和 SCR02 寄存器。
3. 只限于 SCR00 寄存器和 SCR01 寄存器,其他固定为 “1”。
4. 因为已经在发送地址段时设定,所以不需要设定。
5. 在通信运行过程中,值因通信数据而变。
备注 1. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) r:IIC 号 (r=00、 11、 20) mn=00、 03、 10
2.
:在 IIC 模式中为固定设定。
:不能设定 (设定初始值)。
0/1 :根据用户的用途置 “0” 或者 “1”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
410
R7F0C903-908
(2)
第 11 章 串行阵列单元
处理流程
图 11-105
数据接收的时序图
(a) 开始接收数据的情况
SSmn
STmn
SEmn
SOEmn
“H”
TXEmnȽ
TXEmn=1/RXEmn=0
RXEmn
TXEmn=0/RXEmn=1
㲐ᤕᮦᦤ(FFH)
SDRmn
᭬ᮦᦤ
SCLr䗉࠰
SDAr䗉࠰
ACK
D7
SDAr䗉ޛ
D6
D5
D4
〱փᇺᆎಞmn
D3
D2
D1
D0
〱փ䘆㺂
INTIICr
TSFmn
(b) 接收最后数据的情况
SSmn
SEmn
SOEmn
ݷ䇮Ѩ㺂䙐Ⲻؗ䗉࠰Ⱦ
↘ڒѨ㺂䙐Ⲻؗ䗉࠰Ⱦ
TXEmnȽ
RXEmn
TXEmn=0/RXEmn=1
SDRmn
㲐ᤕᮦᦤ (FFH)
㲐ᤕᮦᦤ(FFH)
᭬ᮦᦤ
᭬ᮦᦤ
SCLr䗉࠰
SDAr䗉࠰
SDAr䗉ޛ
〱փᇺᆎಞmn
ACK
D2
D1
D0
〱փ䘆㺂
NACK
D7
D6
D5
D4
D3
D2
D1
D0
〱փ䘆㺂
INTIICr
TSFmn
ᴶᆍ㢸Ⲻ᭬
SOmnփ
ᬃ֒
IIC↘ڒ䘆㺂
SOmnփ
ᬃ֒
CKOmnփ
ᬃ֒
↘ڒᶗԬ
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) r:IIC 号 (r=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
411
R7F0C903-908
第 11 章 串行阵列单元
图 11-106
数据接收的流程图
൦൶⇫ਇ䘷㔉ᶕ
ᮦᦤ᭬
ѰҼ᭯ߏSCRmnᇺᆎಞθ↘ڒ䘆㺂Ⱦ
㔏STmnփߏ“1”
㔏TXEmnփߏ“0”θ㔏RXEmnփߏ“1”
ሼ䙐䚉Ⲻ䘆㺂⁗ᕅ䇴ᇐѰ᭬Ⱦ
䠃᯦ᔶခ䘆㺂Ⱦ
㔏SSmnփߏ“1”
᭬ᴶⲺᮦᦤ?
No
Yes
ѰҼуሯᴶⲺᮦᦤ䘑㺂ACKᓊㆊ
㙂⾷↘䗉࠰Ⱦ
㔏SOEmnփߏ“0”
㔏SIOr(SDRmn[7:0])
ߏ㲐ᤕᮦᦤ(FFH)
ਇ⭕Ֆ䘷㔉ᶕѣᯣ?
᭬ࣞ䘆㺂Ⱦ
No
ㅿᖻ᭬㔉ᶕ
(䲚ѣᯣ䈭≸ḽᘍ)Ⱦ
Yes
䈱SIOr(SDRmn[7:0])
䈱᭬ᮦᦤθ䘑㺂༺⨼(ؓᆎRAMㅿ)Ⱦ
No
ᮦᦤՖ䘷㔉ᶕ?
Yes
ᮦᦤ᭬Ⲻ㔉ᶕ
ӝ⭕↘ڒᶗԬȾ
注意
在接收最后的数据时不输出 ACK (NACK)。此后,先通过将串行通道停止寄存器 m (STm)的 STmn 位置 “1” 来
停止运行,然后产生停止条件来结束通信。
R01UH0629CJ0120 Rev.1.20
2019.06.28
412
R7F0C903-908
11.7.4
第 11 章 串行阵列单元
停止条件的产生
在与对象从属设备进行了全部数据的发送和接收后,产生停止条件并且释放总线。
(1)
处理流程
图 11-107
产生停止条件的时序图
STmn
SEmn
SOEmn⌞
SCLr䗉࠰
SDAr䗉࠰
SOmn
փᬃ֒
↘ڒ䘆㺂
CKOmn
փᬃ֒
SOmn
փᬃ֒
↘ڒᶗԬ
注
在接收时,已经在接收最后的数据前将串行输出允许寄存器 m (SOEm)的 SOEmn 位置 “0”。
图 11-108
产生停止条件的流程图
ᮦᦤਇ䘷㔉ᶕᮦᦤ᭬㔉ᶕ
↘ڒᶗԬ⭕ᡆⲺᔶခ
㔏STmnփߏ“1”
(SEmn=0)
㔏SOEmnփߏ“0”
䘆㺂↘ڒ⣬ᘷ(㜳ᬃ֒CKOmnփ)
䗉࠰⾷↘⣬ᘷ(㜳ᬃ֒SOmnփ)
㔏SOmnփߏ“0”
㔏CKOmnփߏ“1”
ᰬᓅᗻ亱ㅜਾI2Cᙱ㓵ⲺSCLⲺք
⭫ᒩᇳᓜ㿺ṲȾ
ㅿᖻ
ѰҼㅜਾI2Cᙱ㓵Ⲻ㿺Ṳθ⺤ؓㅿ
ᖻᰬ䰪Ⱦ
㔏SOmnփߏ“1”
IIC䙐Ⲻؗ㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
413
R7F0C903-908
11.7.5
第 11 章 串行阵列单元
传送速率的计算
简易 I2C (IIC00、 IIC11、 IIC20)通信的传送速率能用以下计算式进行计算。
(传送速率) = { 对象通道的运行时钟 (fMCK)频率 } ÷ (SDRmn[15:9] + 1) ÷ 2
注意
禁止将 SDRmn[15:9] 设定为 “0000000B”, SDRmn[15:9] 的设定值必须大于等于 “0000001B”。简易 I2C 输出的
SCL 信号的占空比为 50%。在 I2C 总线规格中, SCL 信号的低电平宽度大于高电平宽度。因此,如果设定为快速
模式的 400kbps 或者增强型快速模式的 1Mbps, SCL 信号输出的低电平宽度就小于 I2C 总线的规格值。必须给
SDRmn[15:9] 设定能满足 I2C 总线规格的值。
备注 1. 因为 SDRmn[15:9] 的值为串行数据寄存器(SDRmn)的 bit15 ~ 9 的值(0000001B ~ 1111111B),所以为 1 ~ 127。
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
运行时钟(fMCK)取决于串行时钟选择寄存器m(SPSm)和串行模式寄存器mn(SMRmn)的bit15(CKSmn位)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
414
R7F0C903-908
第 11 章 串行阵列单元
表 11-5
SMRmn
0
1
注
运行时钟 (fMCK)注
SPSm 寄存器
寄存器
CKSmn
简易 I2C 运行时钟的选择
PRS PRS PRS PRS PRS PRS PRS PRS
fCLK=20MHz 运行时
m13
m12
m11
m10
m03
m02
m01
m00
X
X
X
X
0
0
0
0
fCLK
20MHz
X
X
X
X
0
0
0
1
fCLK/2
10MHz
X
X
X
X
0
0
1
0
fCLK/22
5MHz
X
X
X
X
0
0
1
1
fCLK/23
2.5MHz
X
X
X
X
0
1
0
0
fCLK/24
1.25MHz
X
X
X
X
0
1
0
1
fCLK/25
625kHz
X
X
X
X
0
1
1
0
fCLK/26
312.5kHz
X
X
X
X
0
1
1
1
fCLK/27
156.2kHz
X
X
X
X
1
0
0
0
fCLK/28
78.1kHz
X
X
X
X
1
0
0
1
fCLK/29
39.1kHz
X
X
X
X
1
0
1
0
fCLK/210
19.5kHz
X
X
X
X
1
0
1
1
fCLK/211
9.77kHz
X
X
X
X
1
1
0
0
fCLK/212
4.88kHz
X
X
X
X
1
1
0
1
fCLK/213
2.44kHz
X
X
X
X
1
1
1
0
fCLK/214
1.22kHz
X
X
X
X
1
1
1
1
fCLK/215
610Hz
0
0
0
0
X
X
X
X
fCLK
20MHz
0
0
0
1
X
X
X
X
fCLK/2
10MHz
0
0
1
0
X
X
X
X
fCLK/22
5MHz
0
0
1
1
X
X
X
X
fCLK/23
2.5MHz
0
1
0
0
X
X
X
X
fCLK/24
1.25MHz
0
1
0
1
X
X
X
X
fCLK/25
625kHz
0
1
1
0
X
X
X
X
fCLK/26
312.5kHz
0
1
1
1
X
X
X
X
fCLK/27
156.2kHz
1
0
0
0
X
X
X
X
fCLK/28
78.1kHz
1
0
0
1
X
X
X
X
fCLK/29
39.1kHz
1
0
1
0
X
X
X
X
fCLK/210
19.5kHz
1
0
1
1
X
X
X
X
fCLK/211
9.77kHz
1
1
0
0
X
X
X
X
fCLK/212
4.88kHz
1
1
0
1
X
X
X
X
fCLK/213
2.44kHz
1
1
1
0
X
X
X
X
fCLK/214
1.22kHz
1
1
1
1
X
X
X
X
fCLK/215
610Hz
要更改被选择为 fCLK 的时钟 (更改系统时钟控制寄存器 (CKC)的值)时,必须在停止串行阵列单元 (SAU)的
运行 (串行通道停止寄存器 m (STm) =000FH)后进行更改。
备注 1. X:忽略
2. m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
415
R7F0C903-908
第 11 章 串行阵列单元
fMCK=fCLK=20MHz 时的 I2C 传送速率的设定例子如下所示。
fCLK=20MHz
I2C 传送模式
(期待的传送速率)
运行时钟 (fMCK)
SDRmn[15:9]
计算的传送速率
与期待的传送速率的误差
100kHz
fCLK/2
49
100kHz
0.0%
400kHz
fCLK
25
380kHz
3.8% 注
注
因为 SCL 信号的占空比为 50%,所以不能将误差设定为 “0”% 左右。
11.7.6
在简易 I2C (IIC00、 IIC11、 IIC20)通信过程中发生错误时的处理步骤
在简易 I2C (IIC00、 IIC11、 IIC20)通信过程中发生错误时的处理步骤如图 11-109 和图 11-110 所示。
图 11-109
软件操作
发生溢出错误时的处理步骤
硬件状态
读串行数据寄存器 mn (SDRmn)。
备注
SSRmn 寄存器的 BFFmn 位为 “0” 并且 这是为了防止在错误处理的过程中结束
通道 n 为可接收状态。
读串行状态寄存器 mn (SSRmn)。
下一次接收而发生溢出错误。
判断错误种类,读取值用于清除错误标
志。
给串行标志清除触发寄存器 mn
清除错误标志。
(SIRmn)写 “1”。
通过将 SSRmn 寄存器的读取值直接写
到 SIRmn 寄存器,只能清除读操作时的
错误。
图 11-110
在简易 I2C 模式中发生 ACK 错误时的处理步骤
软件操作
硬件状态
读串行状态寄存器 mn (SSRmn)。
备注
判断错误种类,读取值用于清除错误标
志。
写串行标志清除触发寄存器 mn
清除错误标志。
通过将 SSRmn 寄存器的读取值直接写
到 SIRmn 寄存器,只能清除读操作时的
(SIRmn)。
错误。
将串行通道停止寄存器 m (STm)的
STmn 位置 “1”。
串行通道允许状态寄存器 m(SEm)的 因为没有返回 ACK,所以从属设备没有
SEmn 位为 “0” 并且通道 n 为运行停止 做好接收的准备。因此,生成停止条件
状态。
并且释放总线,再次从开始条件开始通
生成停止条件。
信,或者也能生成重新开始条件并且从
生成开始条件。
地址发送开始重新进行。
将串行通道开始寄存器 m (SSm)的
SSmn 位置 “1”。
串行通道允许状态寄存器 m(SEm)的
SEmn 位为 “1” 并且通道 n 为可运行状
态。
备注
m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3) r:IIC 号 (r=00、 11、 20) mn=00、 03、 10
R01UH0629CJ0120 Rev.1.20
2019.06.28
416
R7F0C903-908
第 12 章 串行接口 IICA
第 12 章
串行接口 IICA
串行接口 IICA 的通道个数因产品而不同。
本产品
通道
12.1
1ch
串行接口 IICA 的功能
串行接口 IICA 有以下 3 种模式。
(1)
运行停止模式
这是用于不进行串行传送时的模式,能降低功耗。
(2)
I2C 总线模式 (支持多主控)
此模式通过串行时钟 (SCLAn)和串行数据总线 (SDAAn)的 2 条线,与多个设备进行 8 位数据传送。
符合 I2C 总线格式,主控设备能在串行数据总线上给从属设备生成 “ 开始条件 ”、“ 地址 ”、“ 传送方向的指
示 ”、 “ 数据 ” 和 “ 停止条件 ”。从属设备通过硬件自动检测接收到的状态和数据。能通过此功能简化应用程序
的 I2C 总线控制部分。
因为串行接口 IICA 的 SCLAn 引脚和 SDAAn 引脚用作漏极开路输出,所以串行时钟线和串行数据总线需
要上拉电阻。
(3)
唤醒模式
在 STOP 模式中,当接收到来自主控设备的扩展码或者本地站地址时,能通过产生中断请求信号(INTIICAn)
解除 STOP 模式。通过 IICA 控制寄存器 n1 (IICCTLn1)的 WUPn 位进行设定。
串行接口 IICA 的框图如图 12-1 所示。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
417
R7F0C903-908
第 12 章 串行接口 IICA
图 12-1
串行接口 IICA 的框图
䜞ᙱ㓵
IICA⣬ᘷᇺᆎಞ0
(IICS0)
WUP0
MSTS0 ALD0 EXC0 COI0 TRC0 ACKD0 STD0 SPD0
IICAᇺᆎಞ00
(IICCTL00)
⭞ӄSTOP⁗ᕅ
Ⲻ⭫䐥
IICE0 LREL0 WREL0SPIE0 WTIM0 ACKE0 STT0 SPT0
┚⌘ಞ
Ԅኔ൦൶ᇺᆎಞ0
(SVA0)
SDAA0/
P61
ੂؗਭ
ಠ༦⎾䲚
⭫䐥
IICA〱փᇺᆎಞ0
(IICA0)
DFC0
TRC0
N⋕䚉╅ᶷ
ᔶ䐥䗉࠰
PM61
䲚
D Q
ᔶခᶗԬ
⭕ᡆ⭫䐥
㖤փ
↘ڒᶗԬ
⭕ᡆ⭫䐥
SO䬷ᆎಞ
IICWL0
ᮦᦤؓᤷᰬ䰪
ṗ↙⭫䐥
ᓊㆊ
⭕ᡆ⭫䐥
䗉࠰
䗉࠰
䬷ᆎಞ
(P61)
䟈⭫䐥
ᓊㆊỶ⎁⭫䐥
ᔶခᶗԬỶ⎁⭫䐥
┚⌘ಞ
↘ڒᶗԬỶ⎁⭫䐥
SCLA0/
P60
ಠ༦⎾䲚
⭫䐥
ѣᯣ䈭≸ؗਭ
ਇ⭕⭫䐥
Ѩ㺂ᰬ䫕䇗ᮦಞ
INTIICA0
IICS0.MSTS0ȽEXC0ȽCOI0
DFC0
N⋕䚉╅ᶷ
ᔶ䐥䗉࠰
PM60
fCLK
䗉࠰
䬷ᆎಞ
(P60)
fCLK/2
䘿ಞ
Ѩ㺂ᰬ䫕⭫䐥
Ѩ㺂ᰬ䫕ㅿᖻ
⭫䐥
IICA〱փᇺᆎಞ0(IICA0)
IICCTL00.STT0ȽSPT0
fMCK
䇗ᮦಞ
ᙱ㓵⣬ᘷ
Ỷ⎁⭫䐥
IICS0.MSTS0ȽEXC0ȽCOI0
ੂؗਭ
IICCTL01.PRS0
IICAք⭫ᒩᇳᓜ䇴ᇐᇺᆎಞ0
(IICWL0)
IICA儎⭫ᒩᇳᓜ䇴ᇐᇺᆎಞ0
(IICWH0)
WUP0
CLD0
DAD0
SMC0
DFC0 PRS0
IICAᇺᆎಞ01
(IICCTL01)
STCF0 IICBSY0 STCEN0 IICRSV0
IICAḽᘍᇺᆎಞ0
(IICF0)
䜞ᙱ㓵
R01UH0629CJ0120 Rev.1.20
2019.06.28
418
R7F0C903-908
第 12 章 串行接口 IICA
串行总线的结构例子如图 12-2 所示。
图 12-2
I2C 总线的串行总线结构例子
+ VDD + VDD
ѱCPU1
SDAAn
ԄኔCPU1
൦൶0
SCLAn
Ѩ㺂ᮦᦤᙱ㓵
Ѩ㺂ᰬ䫕
SDAAn
ԄኔCPU2
SCLAn
SDAAn
SCLAn
SDAAn
SCLAn
SDAAn
SCLAn
备注
ѱCPU2
൦൶1
ԄኔCPU3
൦൶2
ԄኔIC
൦൶3
ԄኔIC
൦൶N
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
419
R7F0C903-908
12.2
第 12 章 串行接口 IICA
串行接口 IICA 的结构
串行接口 IICA 由以下硬件构成。
表 12-1
串行接口 IICA 的结构
项目
结构
IICA 移位寄存器 n (IICAn)
寄存器
从属地址寄存器 n (SVAn)
外围允许寄存器 0 (PER0)
控制寄存器
IICA 控制寄存器 n0 (IICCTLn0)
IICA 状态寄存器 n (IICSn)
IICA 标志寄存器 n (IICFn)
IICA 控制寄存器 n1 (IICCTLn1)
IICA 低电平宽度设定寄存器 n (IICWLn)
IICA 高电平宽度设定寄存器 n (IICWHn)
端口模式寄存器 6 (PM6)
端口寄存器 6 (P6)
(1)
IICA 移位寄存器 n (IICAn)
IICAn 寄存器是与串行时钟同步进行 8 位串行数据和 8 位并行数据相互转换的寄存器,用于发送和接收。
能通过读写 IICAn 寄存器来控制实际的发送和接收。
在等待期间,通过写 IICAn 寄存器来解除等待,开始传送数据。
通过 8 位存储器操作指令设定 IICAn 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 12-3
地址:FFF50H (IICA0)
符号
7
IICAn 移位寄存器 n (IICAn)的格式
复位后:00H
6
R/W
5
4
3
2
1
0
IICAn
注意 1. 在数据传送过程中,不能给 IICAn 寄存器写数据。
2. 只能在等待期间读写 IICAn 寄存器。除了等待期间以外,禁止在通信状态下存取 IICAn 寄存器。但是,在主控设备
的情况下,能在将通信触发位 (STTn)置 “1” 后写一次 IICAn 寄存器。
3. 当预约通信时,必须在检测到由停止条件产生的中断后给 IICAn 寄存器写数据。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
420
R7F0C903-908
(2)
第 12 章 串行接口 IICA
从属地址寄存器 n (SVAn)
这是在用作从属设备时保存 7 位本地站地址 {A6, A5, A4, A3, A2, A1, A0} 的寄存器。
通过 8 位存储器操作指令设定 SVAn 寄存器。但是,在 STDn 位为 “1” (检测到开始条件)时,禁止改写
此寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 12-4
地址:F0234H (SVA0)
从属地址寄存器 n (SVAn)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
SVAn
A6
A5
A4
A3
A2
A1
A0
0注
bit0 固定为 “0”。
注
(3)
SO 锁存器
SO 锁存器保持 SDAAn 引脚的输出电平。
(4)
唤醒控制电路
当设定在从属地址寄存器 n (SVAn)的地址值和接收到的地址相同时或者当接收到扩展码时,此电路产生
中断请求 (INTIICAn)。
(5)
串行时钟计数器
在发送或者接收过程中,此计数器对输出或者输入的串行时钟进行计数,检查是否进行了 8 位数据的发送
和接收。
(6)
中断请求信号发生电路
此电路控制产生中断请求信号 (INTIICAn)。
由以下 2 种触发产生 I2C 中断请求。
备注
•
第 8 或者第9 个串行时钟的下降 (通过 WTIMn 位进行设定)
•
因检测到停止条件而产生中断请求 (通过 SPIEn 位进行设定)。
WTIMn 位: IICA 控制寄存器 n0 (IICCTLn0)的 bit3
SPIEn位: IICA 控制寄存器 n0 (IICCTLn0)的 bit4
(7)
串行时钟控制电路
在主控模式中,此电路从采样时钟生成输出到 SCLAn 引脚的时钟。
(8)
串行时钟等待控制电路
此电路控制等待时序。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
421
R7F0C903-908
(9)
第 12 章 串行接口 IICA
应答生成电路、停止条件检测电路、开始条件检测电路、应答检测电路
这些电路生成并且检测各种状态。
(10) 数据保持时间校正电路
此电路生成对串行时钟下降的数据保持时间。
(11) 开始条件生成电路
如果将 STTn 位置 “1”,此电路就生成开始条件。
但是,在禁止预约通信的状态下 (IICRSVn 位 =1)并且没有释放总线 (IICBSYn 位 =1)时,忽视开始条
件请求并且将 STCFn 位置 “1”。
(12) 停止条件生成电路
如果将 SPTn 位置 “1”,此电路就生成停止条件。
(13) 总线状态检测电路
此电路通过检测开始条件和停止条件来检测总线是否被释放。
但是,在刚运行时不能立即检测总线状态,因此必须通过 STCENn 位设定总线状态检测电路的初始状态。
备注 1. STTn 位:
IICA 控制寄存器 n0 (IICCTLn0)的 bit1
SPTn 位:
IICA 控制寄存器 n0 (IICCTLn0)的 bit0
IICRSVn 位:IICA 标志寄存器 n (IICFn)的 bit0
IICBSYn 位:IICA 标志寄存器 n (IICFn)的 bit6
STCFn 位: IICA 标志寄存器 n (IICFn)的 bit7
STCENn 位:IICA 标志寄存器 n (IICFn)的 bit1
2. n=0
12.3
控制串行接口 IICA 的寄存器
通过以下寄存器控制串行接口 IICA。
•
•
•
•
•
•
•
•
•
备注
外围允许寄存器 0 (PER0)
IICA 控制寄存器 n0 (IICCTLn0)
IICA 标志寄存器 n (IICFn)
IICA 状态寄存器 n (IICSn)
IICA 控制寄存器 n1 (IICCTLn1)
IICA 低电平宽度设定寄存器 n (IICWLn)
IICA 高电平宽度设定寄存器 n (IICWHn)
端口模式寄存器 6 (PM6)
端口寄存器 6 (P6)
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
422
R7F0C903-908
12.3.1
第 12 章 串行接口 IICA
外围允许寄存器 0 (PER0)
PER0 寄存器是设定允许或者禁止给各外围硬件提供时钟的寄存器。通过停止给不使用的硬件提供时钟,以
降低功耗和噪声。
要使用串行接口 IICAn 时,必须将 bit4 (IICA0EN)置 “1”。
通过 1 位或者 8 位存储器操作指令设定 PER0 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 12-5
地址:F00F0H
外围允许寄存器 0 (PER0)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
PER0
TMKAEN
0
ADCEN
IICA0EN
SAU1EN
SAU0EN
0
TAU0EN
IICAnEN
0
串行接口 IICAn 的输入时钟的控制
停止提供输入时钟。
• 不能写串行接口 IICAn 使用的 SFR。
• 串行接口 IICAn 处于复位状态。
1
提供输入时钟。
• 能读写串行接口 IICAn 使用的 SFR。
注意 1. 要设定串行接口 IICA 时,必须先在 IICAnEN 位为 “1” 的状态下设定以下的寄存器。当 IICAnEN 位为 “0” 时,串行
接口 IICA 的控制寄存器的值为初始值,忽视写操作 (端口模式寄存器 6 (PM6)和端口寄存器 6 (P6)除外)。
• IICA 控制寄存器 n0 (IICCTLn0)
• IICA 标志寄存器 n (IICFn)
• IICA 状态寄存器 n (IICSn)
• IICA 控制寄存器 n1 (IICCTLn1)
• IICA 低电平宽度设定寄存器 n (IICWLn)
• IICA 高电平宽度设定寄存器 n (IICWHn)
2. 必须将 bit6 和 bit1 置 “0”。
备注
n=0
12.3.2
IICA 控制寄存器 n0 (IICCTLn0)
这是允许或者停止 I2C 运行、设定等待时序以及设定其他 I2C 运行的寄存器。
通过 1 位或者 8 位存储器操作指令设定 IICCTLn0 寄存器。但是,必须在 IICEn 位为 “0” 时或者在等待期间
设定 SPIEn 位、 WTIMn 位和 ACKEn 位,而且在将 IICEn 位从 “0” 置为 “1” 时能同时设定这些位。
在产生复位信号后,此寄存器的值变为 “00H”。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
423
R7F0C903-908
第 12 章 串行接口 IICA
图 12-6
地址:F0230H (IICCTL00)
IICA 控制寄存器 n0 (IICCTLn0)的格式 (1/4)
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
IICCTLn0
IICEn
LRELn
WRELn
SPIEn
WTIMn
ACKEn
STTn
SPTn
IICEn
I2C 运行的允许
0
停止运行。对 IICA 状态寄存器 n (IICSn)进行复位注 1,并且停止内部运行。
1
允许运行。
必须在 SCLAn 线和 SDAAn 线为高电平的状态下将此位置 “1”。
清除条件 (IICEn=0)
置位条件 (IICEn=1)
• 通过指令清除。
• 当复位时
• 通过指令置位。
LRELn 注 2、3
通信的退出
0
通常运行
1
退出当前的通信,进入待机状态。执行后自动清 “0”。
在接收到与本地站无关的扩展码等情况下使用。
SCLAn 线和 SDAAn 线变为高阻状态。
IICA 控制寄存器 n0 (IICCTLn0)和 IICA 状态寄存器 n (IICSn)中的以下标志被清 “0”:
•STTn •SPTn •MSTSn •EXCn •COIn •TRCn •ACKDn •STDn
变为退出通信的待机状态,保持到满足以下的通信参加条件为止。
• 在检测到停止条件后作为主控设备启动。
• 在检测到开始条件后地址匹配或者接收到扩展码。
清除条件 (LRELn=0)
置位条件 (LRELn=1)
• 在执行后自动清除。
• 当复位时
• 通过指令置位。
WRELn注2、3
等待的解除
0
不解除等待。
1
解除等待。在解除等待后自动清除。
如果在发送状态下 (TRCn=1)的第 9 个时钟等待期间将 WRELn 位 (解除等待)置位, SDAAn 线就变为
高阻抗状态 (TRCn=0)。
注
清除条件 (WRELn=0)
置位条件 (WRELn=1)
• 在执行后自动清除。
• 当复位时
• 通过指令置位。
1. 对 IICA 移位寄存器 n(IICAn)、IICA 标志寄存器 n(IICFn)的 STCFn 位和 IICBSYn 位以及 IICA 控制寄存器 n1
(IICCTLn1)的 CLDn 位和 DADn 位进行复位。
2. 在 IICEn 位为 “0” 的状态下,此位的信号无效。
3. LRELn 位和 WRELn 位的读取值总是 “0”。
注意
如果在 SCLAn 线为高电平、SDAAn 线为低电平并且数字滤波器为 ON(IICCTLn1 寄存器的 DFCn=1)时允许 I2C
运行 (IICEn=1),就立即检测开始条件。此时,必须在允许 I2C 运行 (IICEn=1)后连续通过位存储器操作指令将
LRELn 位置 “1”。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
424
R7F0C903-908
第 12 章 串行接口 IICA
图 12-6
SPIEn 注 1
IICA 控制寄存器 n0 (IICCTLn0)的格式 (2/4)
允许或者禁止停止条件检测产生的中断请求
0
禁止
1
允许
当 IICA 控制寄存器 n1(IICCTLn1)的 WUPn 位为 “1” 时,即使将 SPIEn 位置 “1” 也不产生停止条件中断。
清除条件 (SPIEn=0)
置位条件 (SPIEn=1)
• 通过指令清除。
• 当复位时
• 通过指令置位。
WTIMn 注 1
0
等待和中断请求的控制
在第 8 个时钟的下降沿产生中断请求信号。
主控设备:在输出 8 个时钟后,将时钟输出置为低电平进行等待。
从属设备:在输入 8 个时钟后,将时钟置为低电平,然后等待主控设备。
1
在第 9 个时钟的下降沿产生中断请求信号。
主控设备:在输出 9 个时钟后,将时钟输出置为低电平进行等待。
从属设备:在输入 9 个时钟后,将时钟置为低电平,然后等待主控设备。
在地址传送期间,与此位的设定无关,在第 9 个时钟的下降沿产生中断;在地址传送结束后,此位的设定有
效。主控设备在地址传送期间的第 9 个时钟下降沿进入等待状态。接收到本地站地址的从属设备在产生应答
(ACK)后的第 9 个时钟下降沿进入等待状态,但是接收到扩展码的从属设备在第 8 个时钟下降沿进入等待
状态。
清除条件 (WTIMn=0)
置位条件 (WTIMn=1)
• 通过指令清除。
• 当复位时
• 通过指令置位。
ACKEn 注1、2
注
应答控制
0
禁止应答。
1
允许应答。在第 9 个时钟期间将 SDAAn 线置为低电平。
清除条件 (ACKEn=0)
置位条件 (ACKEn=1)
• 通过指令清除。
• 当复位时
• 通过指令置位。
1. 在 IICEn 位为 “0” 的状态下,此位的信号无效。必须在此期间设定此位。
2. 在地址传送过程中不是扩展码时,设定值无效。
当为从属设备并且地址匹配时,与设定值无关而生成应答。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
425
R7F0C903-908
第 12 章 串行接口 IICA
图 12-6
IICA 控制寄存器 n0 (IICCTLn0)的格式 (3/4)
STTn 注 1、2
开始条件的触发
0
不生成开始条件。
1
当总线被释放时 (待机状态, IICBSYn 位为 “0”):
如果将此位置 “1”,就生成开始条件 (作为主控设备的启动)。
当第三方正在通信时:
• 允许通信预约功能的情况 (IICRSVn=0)
用作开始条件预约标志。如果将此位置 “1”,就在释放总线后自动生成开始条件。
• 禁止通信预约功能的情况 (IICRSVn=1)
即使将此位置 “1”,也清除 STTn 位并且将 STTn 清除标志(STCFn)置 “1”,不生成开始条件。
等待状态 (主控设备):
在解除等待后生成重新开始条件。
有关置位时序的注意事项:
• 主控接收:禁止在传送过程中将此位置 “1”。只有在将 ACKEn 位置 “0” 并且通知从属设备接收已经完成后
的等待期间才能将此位置 “1”。
• 主控发送:在应答期间,可能无法正常生成开始条件。必须在输出第 9 个时钟后的等待期间将此位置 “1”。
• 禁止与停止条件的触发 (SPTn)同时置 “1”。
• 在将 STTn 位置 “1” 后,禁止在满足清除条件前再次将此位 “1”。
注
清除条件 (STTn=0)
置位条件 (STTn=1)
•
•
•
•
•
•
• 通过指令置位。
在禁止通信预约的状态下将 STTn 位置 “1”。
在仲裁失败时
主控设备生成开始条件。
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位为 “0” (停止运行)时
当复位时
1. 在 IICEn 位为 “0” 的状态下,此位的信号无效。
2. STTn 位的读取值总是 “0”。
备注 1. IICRSVn:
STCFn:
IICA 标志寄存器 n (IICFn)的 bit0
IICA 标志寄存器 n (IICFn)的 bit7
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
426
R7F0C903-908
第 12 章 串行接口 IICA
图 12-6
IICA 控制寄存器 n0 (IICCTLn0)的格式 (4/4)
SPTn 注
停止条件的触发
0
不生成停止条件。
1
生成停止条件 (作为主控设备的传送结束)。
有关置位时序的注意事项:
• 主控接收:禁止在传送过程中将此位置 “1”。只有在将 ACKEn 位置 “0” 并且通知从属设备接收已经完成后
的等待期间才能将此位置 “1”。
• 主控发送:在应答期间,可能无法正常生成停止条件。必须在输出第 9 个时钟后的等待期间将此位置 “1”。
• 禁止与开始条件的触发 (STTn)同时置 “1”。
• 只有在主控设备的情况下才能将 SPTn 位置 “1”。
• 在 WTIMn 位为 “0” 时,必须注意:如果在输出 8 个时钟后的等待期间将 SPTn 位置 “1”,就在解除等待后
的第 9 个时钟的高电平期间生成停止条件。必须在输出 8 个时钟后的等待期间将 WTIMn 位从 “0” 置为 “1”
并且在输出第 9 个时钟后的等待期间将 SPTn 位置 “1”。
• 在将 SPTn 位置 “1” 后,禁止在满足清除条件前再次将此位置 “1”。
清除条件 (SPTn=0)
置位条件 (SPTn=1)
•
•
•
•
•
• 通过指令置位。
当仲裁失败时
在检测到停止条件后自动清除。
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位为 “0” (停止运行)时
当复位时
注
SPTn 位的读取值总是 “0”。
注意
在 IICA 状态寄存器 n (IICSn)的 bit3 (TRCn)为 “1” (发送状态)时,如果在第 9 个时钟将 IICCTLn0 寄存器的
bit5 (WRELn)置 “1” 来解除等待,就在清除 TRCn 位 (接收状态)后将 SDAAn 线置为高阻抗。必须通过写 IICA
移位寄存器 n 进行 TRCn 位为 “1” (发送状态)时的等待解除。
备注 1. 如果在设定数据后读 bit0 (SPTn),此位就变为 “0”。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
427
R7F0C903-908
12.3.3
第 12 章 串行接口 IICA
IICA 状态寄存器 n (IICSn)
这是表示 I2C 状态的寄存器。
只有在 STTn 位为 “1” 并且等待期间,才能通过 1 位或者 8 位存储器操作指令读 IICSn 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
注意
在 STOP 模式中允许地址匹配唤醒功能 (WUPn=1)状态下,禁止读 IICSn 寄存器。在 WUPn 位为 “1” 的状态下,
与 INTIICAn 中断请求无关,如果将 WUPn 位从 “1” 改为 “0” (停止唤醒运行),就在检测到下一个开始条件或者停
止条件后才会反映状态的变化。因此,要使用唤醒功能时,必须允许 (SPIEn=1)因检测到停止条件而产生的中
断,并且在检测到中断后读 IICSn 寄存器。
备注
STTn:
IICA 控制寄存器 n0 (IICCTLn0)的 bit1
WUPn:
IICA 控制寄存器n1 (IICCTLn1)的bit7
图 12-7
地址:FFF51H (IICS0)
IICA 状态寄存器 n (IICSn)的格式 (1/3)
复位后:00H
R
符号
7
6
5
4
3
2
1
0
IICSn
MSTSn
ALDn
EXCn
COIn
TRCn
ACKDn
STDn
SPDn
MSTSn
主控状态的确认标志
0
从属状态或者通信待机状态
1
主控通信状态
清除条件 (MSTSn=0)
置位条件 (MSTSn=1)
•
•
•
•
•
• 当生成开始条件时
当检测到停止条件时
当 ALDn 位为 “1” (仲裁失败)时
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位从 “1” 变为 “0” (停止运行)时
当复位时
ALDn
注
仲裁失败的检测
0
表示未发生仲裁或者赢得仲裁。
1
表示仲裁失败。清除 MSTSn 位。
清除条件 (ALDn=0)
置位条件 (ALDn=1)
• 在读 IICSn 寄存器后自动清除注。
• 当 IICEn 位从 “1” 变为 “0” (停止运行)时
• 当复位时
• 当仲裁失败时
即使对 IICSn 寄存器以外的位执行位存储器操作指令,也清除此位。因此,在使用 ALDn 位时,必须在读其他位前
先读 ALDn 位的数据。
备注 1. LRELn:
IICEn:
IICA 控制寄存器 n0 (IICCTLn0)的 bit6
IICA 控制寄存器 n0 (IICCTLn0)的 bit7
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
428
R7F0C903-908
第 12 章 串行接口 IICA
图 12-7
IICA 状态寄存器 n (IICSn)的格式 (2/3)
EXCn
扩展码的接收检测
0
未接收到扩展码。
1
接收到扩展码。
清除条件 (EXCn=0)
置位条件 (EXCn=1)
•
•
•
•
•
• 当接收的地址数据的高 4 位为 “0000” 或者 “1111” 时
(在第 8 个时钟的上升沿置位)
当检测到开始条件时
当检测到停止条件时
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位从 “1” 变为 “0” (停止运行)时
当复位时
COIn
地址匹配的检测
0
地址不同。
1
地址相同。
清除条件 (COIn=0)
置位条件 (COIn=1)
•
•
•
•
•
• 当接收地址和本地站地址 (从属地址寄存器 n
(SVAn))相同时 (在第 8 个时钟的上升沿置位)
当检测到开始条件时
当检测到停止条件时
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位从 “1” 变为 “0” (停止运行)时
当复位时
TRCn
发送 / 接收的状态检测
0
处于接收状态 (发送状态除外)。将 SDAAn 线置为高阻抗。
1
处于发送状态。设定为能将 SOn 锁存器的值输出到 SDAAn 线 (在第 1 字节的第 9 个时钟的
下降沿以后有效)。
清除条件 (TRCn=0)
置位条件 (TRCn=1)
<主控设备和从属设备>
<主控设备>
• 当检测到停止条件时
• 因 LRELn 位为 “1” (退出通信)而进行的清除
• 当 IICEn 位从 “1” 变为 “0” (停止运行)时
• 因 WRELn 位为 “1” (解除等待)而进行的清除注
• 当 ALDn 位从 “0” 变为 “1” (仲裁失败)时
• 当复位时
• 不参加通信的情况 (MSTSn、 EXCn、 COIn=0)
<主控设备>
• 当生成开始条件时
• 当第 1 字节(地址传送)的 LSB(传送方向指示位)
输出 “0” (主控发送)时
<从属设备>
• 当主控设备的第 1 字节(地址传送)的 LSB(传送
方向指示位)输入 “1” (从属发送)时
• 当第 1 字节的 LSB (传送方向指示位)输出 “1” 时
<从属设备>
• 当检测到开始条件时
• 当第 1 字节的 LSB (传送方向指示位)输入 “0” 时
注
在 IICA 状态寄存器 n (IICSn)的 bit3 (TRCn)为 “1” (发送状态)时,如果在第 9 个时钟将 IICA 控制寄存器 n0
(IICCTLn0)的 bit5 (WRELn)置 “1” 来解除等待,就在清除 TRCn 位 (接收状态)后将 SDAAn 线置为高阻抗。
必须通过写 IICA 移位寄存器 n 进行 TRCn 位为 “1” (发送状态)时的等待解除。
备注 1. LRELn:
IICEn:
IICA 控制寄存器 n0 (IICCTLn0)的 bit6
IICA 控制寄存器 n0 (IICCTLn0)的 bit7
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
429
R7F0C903-908
第 12 章 串行接口 IICA
图 12-7
IICA 状态寄存器 n (IICSn)的格式 (3/3)
ACKDn
应答 (ACK)的检测
0
未检测到应答。
1
检测到应答。
清除条件 (ACKDn=0)
置位条件 (ACKDn=1)
•
•
•
•
•
• 在 SCLAn 线的第 9 个时钟上升沿将 SDAAn 线置为
低电平时
当检测到停止条件时
当下一个字节的第 1 个时钟上升时
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位从 “1” 变为 “0” (停止运行)时
当复位时
STDn
开始条件的检测
0
未检测到开始条件。
1
检测到开始条件,表示处于地址传送期间。
清除条件 (STDn=0)
置位条件 (STDn=1)
•
•
•
•
•
• 当检测到开始条件时
当检测到停止条件时
在地址传送后的下一个字节的第 1 个时钟上升时
因 LRELn 位为 “1” (退出通信)而进行的清除
当 IICEn 位从 “1” 变为 “0” (停止运行)时
当复位时
SPDn
停止条件的检测
0
未检测到停止条件。
1
检测到停止条件,主控设备结束通信并且已释放总线。
清除条件 (SPDn=0)
置位条件 (SPDn=1)
• 在将此位置位后,当检测到开始条件后的地址传送 • 当检测到停止条件时
字节的第 1 个时钟上升时
• 当 WUPn 位从 “1” 变为 “0” 时
• 当 IICEn 位从 “1” 变为 “0” (停止运行)时
• 当复位时
备注 1. LRELn:
IICEn:
IICA 控制寄存器 n0 (IICCTLn0)的 bit6
IICA 控制寄存器 n0 (IICCTLn0)的 bit7
2. n=0
12.3.4
IICA 标志寄存器 n (IICFn)
这是设定 I2C 运行模式以及表示 I2C 总线状态的寄存器。
通过 1 位或者 8 位存储器操作指令设定 IICFn 寄存器。但是,只能读 STTn 清除标志(STCFn)和 I2C 总线
状态标志 (IICBSYn)。
通过 IICRSVn 位设定允许或者禁止通信预约功能,并且通过 STCENn 位设定 IICBSYn 位的初始值。
只有在禁止 I2C 运行 (IICA 控制寄存器 n0 (IICCTLn0)的 bit7 (IICEn) =0)时才能写 IICRSVn 位和
STCENn 位。在允许运行后,只能读 IICFn 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
430
R7F0C903-908
第 12 章 串行接口 IICA
图 12-8
地址:FFF52H (IICF0)
IICA 标志寄存器 n (IICFn)的格式
复位后:00H
R/W 注
符号
7
6
5
4
3
2
1
0
IICFn
STCFn
IICBSYn
0
0
0
0
STCENn
IICRSVn
STCFn
STTn 清除标志
0
发行开始条件。
1
无法发行开始条件而清除 STTn 标志。
清除条件 (STCFn=0)
置位条件 (STCFn=1)
• 因 STTn 位为 “1” 而进行的清除
• 当 IICEn 位为 “0” (停止运行)时
• 当复位时
• 在设定为禁止通信预约 (IICRSVn=1)的状态下无
法发行开始条件而将 STTn 位清 “0” 时
IICBSYn
I2C 总线状态标志
0
总线释放状态 (STCENn=1 时的通信初始状态)
1
总线通信状态 (STCENn=0 时的通信初始状态)
清除条件 (IICBSYn=0)
置位条件 (IICBSYn=1)
• 当检测到停止条件时
• 当 IICEn 位为 “0” (停止运行)时
• 当复位时
• 当检测到开始条件时
• STCENn 位为 “0” 时的 IICEn 位的置位
STCENn
初始开始允许触发
0
在允许运行 (IICEn=1)后,通过检测停止条件来允许生成开始条件。
1
在允许运行 (IICEn=1)后,不检测停止条件而允许生成开始条件。
清除条件 (STCENn=0)
置位条件 (STCENn=1)
• 通过指令清除。
• 当检测到开始条件时
• 当复位时
• 通过指令置位。
IICRSVn
注
通信预约功能禁止位
0
允许通信预约。
1
禁止通信预约。
清除条件 (IICRSVn=0)
置位条件 (IICRSVn=1)
• 通过指令清除。
• 当复位时
• 通过指令置位。
bit6 和 bit7 是只读位。
注意 1. 只有在停止运行 (IICEn=0)时才能写 STCENn 位。
2. 如果 STCENn 位为 “1”,就与实际的总线状态无关而认为总线为释放状态 (IICBSYn=0),因此为了避免在发行第
1 个开始条件 (STTn=1)时破坏其他通信,需要确认没有正在通信的第三方。
3. 只有在停止运行 (IICEn=0)时才能写 IICRSVn。
备注 1. STTn:IICA 控制寄存器 n0 (IICCTLn0)的 bit1
IICEn:IICA 控制寄存器 n0 (IICCTLn0)的 bit7
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
431
R7F0C903-908
12.3.5
第 12 章 串行接口 IICA
IICA 控制寄存器 n1 (IICCTLn1)
这是用于设定 I2C 运行模式以及检测 SCLAn 引脚状态和 SDAAn 引脚状态的寄存器。
通过 1 位或者 8 位存储器操作指令设定 IICCTLn1 寄存器。但是,只能读 CLDn 位和 DADn 位。
除了 WUPn 位以外,必须在禁止 I2C 运行 (IICA 控制寄存器 n0 (IICCTLn0)的 bit7 (IICEn) =0)时设
定 IICCTLn1 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 12-9
地址:F0231H (IICCTL01)
IICA 控制寄存器 n1 (IICCTLn1)的格式 (1/2)
R/W 注 1
复位后:00H
符号
7
6
5
4
3
2
1
0
IICCTLn1
WUPn
0
CLDn
DADn
SMCn
DFCn
0
PRSn
WUPn
地址匹配唤醒的控制
0
在 STOP 模式中,停止地址匹配唤醒功能的运行。
1
在 STOP 模式中,允许地址匹配唤醒功能的运行。
要通过将 WUPn 位置 “1” 来转移到 STOP 模式时,必须在将 WUPn 位置 “1” 后至少经过 3 个 fMCK 时钟,然
后执行 STOP 指令 (参照 “ 图 12-22 将 WUPn 位置 “1” 时的流程 ”)。
在地址匹配或者接收到扩展码后,必须将 WUPn 位清 “0”。能通过将 WUPn 位清 “0” 来参加后续的通信 (需
要在将 WUPn 位清 “0” 后解除等待以及写发送数据)。
在 WUPn 位为 “1” 的状态下,地址匹配或者接收到扩展码时的中断时序与 WUPn 位为 “0” 时的中断时序相同
(根据时钟产生采样误差的延迟差)。另外,当 WUPn 位为 “1” 时,即使将 SPIEn 位置 “1” 也不产生停止条
件中断。
清除条件 (WUPn=0)
置位条件 (WUPn=1)
• 通过指令清除(在地址匹配或者接收到扩展码后)。 • 通过指令置位(MSTSn=0、EXCn=0、COIn=0 并
且 STDn=0 (不参加通信))注 2。
注
1. bit4 和 bit5 是只读位。
2. 在以下所示的期间,需要确认 IICA 状态寄存器 n (IICSn)的状态并且将其置位。
Ś
ś
SCLAn
SDAAn
A6
A5
A4
A3
A2
A1
A0
R/W
Ԅ䈱IICSnࡦሼWUPnփ㖤փⲺᴶ䮵ᰬ䰪Ѱ
ŚĮśⲺᰬ䰪Ⱦ
൞↚ᵕ䰪θ䙐䗽IICSn⺤䇚䘆㺂⣬ᘷᒬъሼWUPnփ㖤փȾ
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
432
R7F0C903-908
第 12 章 串行接口 IICA
图 12-9
IICA 控制寄存器 n1 (IICCTLn1)的格式 (2/2)
CLDn
SCLAn 引脚的电平检测 (只在 IICEn 位为 “1” 时有效)
0
检测到 SCLAn 引脚为低电平。
1
检测到 SCLAn 引脚为高电平。
清除条件 (CLDn=0)
置位条件 (CLDn=1)
• 当 SCLAn 引脚为低电平时
• 当 IICEn 位为 “0” (停止运行)时
• 当复位时
• 当 SCLAn 引脚为高电平时
DADn
SDAAn 引脚的电平检测 (只在 IICEn 位为 “1” 时有效)
0
检测到 SDAAn 引脚为低电平。
1
检测到 SDAAn 引脚为高电平。
清除条件 (DADn=0)
置位条件 (DADn=1)
• 当 SDAAn 引脚为低电平时
• 当 IICEn 位为 “0” (停止运行)时
• 当复位时
• 当 SDAAn 引脚为高电平时
SMCn
运行模式的切换
0
在标准模式中运行 (最大传送速率:100kbps)。
1
在快速模式 (最大传送速率:400kbps)或者增强型快速模式 (最大传送速率:1Mbps)中运行。
DFCn
数字滤波器的运行控制
0
数字滤波器 OFF
1
数字滤波器 ON
必须在快速模式或者增强型快速模式中使用数字滤波器。
数字滤波器用于消除噪声。
无论是将 DFCn 位置 “1” 还是清 “0”,传送时钟都不变。
PRSn
IICA 运行时钟 (fMCK)的控制
0
选择 fCLK (1MHz ≤ fCLK ≤ 20MHz)。
1
选择 fCLK/2 (20MHz < fCLK)。
注意 1. IICA 运行时钟 (fMCK)的最大工作频率为 20MHz(Max.)。只有在 fCLK 超过 20MHz 时才必须将 IICA 控制寄存器
n1 (IICCTLn1)的 bit0 (PRSn)置 “1”。
2. 在设定传送时钟的情况下,必须注意 fCLK 的最小工作频率。串行接口 IICA 的 fCLK 最小工作频率取决于运行模式。
快速模式:
fCLK=3.5MHz (Min.)
增强型快速模式: fCLK=10MHz (Min.)
标准模式:
fCLK=1MHz (Min.)
备注 1. IICEn:IICA 控制寄存器 n0 (IICCTLn0)的 bit7
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
433
R7F0C903-908
12.3.6
第 12 章 串行接口 IICA
IICA 低电平宽度设定寄存器 n (IICWLn)
此寄存器控制串行接口 IICA 输出的 SCLAn 引脚信号低电平宽度 (tLOW)和 SDAAn 引脚信号。
通过 8 位存储器操作指令设定 IICWLn 寄存器。
必须在禁止 I2C 运行 (IICA 控制寄存器 n0 (IICCTLn0)的 bit7 (IICEn) =0)时设定 IICWLn 寄存器。
在产生复位信号后,此寄存器的值变为 “FFH”。
有关 IICWLn 寄存器的设定方法,请参照 “12.4.2 通过 IICWLn 寄存器和 IICWHn 寄存器设定传送时钟的
方法 ”。
数据保持时间为 IICWLn 所设时间的 1/4。
图 12-10
地址:F0232H (IICWL0)
符号
7
IICA 低电平宽度设定寄存器 n (IICWLn)的格式
复位后:FFH
6
R/W
5
4
3
2
1
0
IICWLn
12.3.7
IICA 高电平宽度设定寄存器 n (IICWHn)
此寄存器控制串行接口 IICA 输出的 SCLAn 引脚信号高电平宽度和 SDAAn 引脚信号。
通过 8 位存储器操作指令设定 IICWHn 寄存器。
必须在禁止 I2C 运行 (IICA 控制寄存器 n0 (IICCTLn0)的 bit7 (IICEn) =0)时设定 IICWHn 寄存器。
在产生复位信号后,此寄存器的值变为 “FFH”。
图 12-11
地址:F0233H (IICWH0)
符号
7
IICA 高电平宽度设定寄存器 n (IICWHn)的格式
复位后:FFH
6
5
R/W
4
3
2
1
0
IICWHn
备注 1. 有关主控方传送时钟的设定方法,请参照 12.4.2(1) ;有关从属方 IICWLn 寄存器和 IICWHn 寄存器的设定方法,请
参照 12.4.2(2)。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
434
R7F0C903-908
12.3.8
第 12 章 串行接口 IICA
端口模式寄存器 6 (PM6)
此寄存器以位为单位设定端口 6 的输入 / 输出。
在将 P60/SCLA0 引脚用作时钟输入 / 输出并且将 P61/SDAA0 引脚用作串行数据输入 / 输出时,必须将 PM60
和 PM61 以及 P60 和 P61 的输出锁存器置 “0”。
当 IICEn 位(IICA 控制寄存器 n0(IICCTLn0)的 bit7)为 “0” 时,P60/SCLA0 引脚和 P61/SDAA0 引脚为
低电平输出 (固定),因此必须在将 IICEn 位置 “1” 后切换到输出模式。
通过 1 位或者 8 位存储器操作指令设定 PM6 寄存器。
在产生复位信号后,此寄存器的值变为 “FFH”。
图 12-12
地址:FFF26H
复位后:FFH
端口模式寄存器 6 (PM6)的格式
R/W
符号
7
6
5
4
3
2
1
0
PM6
1
1
1
1
1
PM62
PM61
PM60
PM6n
P6n 引脚的输入 / 输出模式的选择 (n=0 ~ 2)
0
输出模式 (输出缓冲器 ON)
1
输入模式 (输出缓冲器 OFF)
R01UH0629CJ0120 Rev.1.20
2019.06.28
435
R7F0C903-908
第 12 章 串行接口 IICA
I2C 总线模式的功能
12.4
12.4.1
引脚结构
串行时钟引脚 (SCLAn)和串行数据总线引脚 (SDAAn)的结构如下。
(1) SCLAn……串行时钟的输入 / 输出引脚
主控设备和从属设备的输出都为 N 沟道漏极开路输出,输入都为施密特输入。
(2) SDAAn…… 串行数据的输入/ 输出复用引脚
主控设备和从属设备的输出都为 N 沟道漏极开路输出,输入都为施密特输入。
因为串行时钟线和串行数据总线的输出为 N 沟道漏极开路输出,所以需要外接上拉电阻。
图 12-13
引脚结构图
Ԅኔ䇴༽
VDD
ѱ䇴༽
SCLAn
SCLAn
ᰬ䫕䗉࠰
(ᰬ䫕䗉࠰)
VDD
VSS
VSS
(ᰬ䫕䗉)ޛ
ᰬ䫕䗉ޛ
SDAAn
SDAAn
ᮦᦤ䗉࠰
ᮦᦤ䗉࠰
VSS
ᮦᦤ䗉ޛ
备注
VSS
ᮦᦤ䗉ޛ
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
436
R7F0C903-908
12.4.2
(1)
第 12 章 串行接口 IICA
通过 IICWLn 寄存器和 IICWHn 寄存器设定传送时钟的方法
主控方传送时钟的设定方法
Ӵ䗕ᯊ䩳 =
f MCK
IICWL + IICWH + f MCK(t R + t F)
此时, IICWLn 寄存器和 IICWHn 寄存器的最佳设定值如下:
(全部设定值的小数部分都舍入)
•
快速模式
IICWLn =
IICWHn = (
•
IICWHn = (
0.47
× fMCK
Ֆ䘷ᰬ䫕
0.53
− tR − tF ) × fMCK
Ֆ䘷ᰬ䫕
增强型快速模式
IICWLn =
IICWHn = (
(2)
0.48
− tR − tF ) × fMCK
Ֆ䘷ᰬ䫕
标准模式
IICWLn =
•
0.52
× fMCK
Ֆ䘷ᰬ䫕
0.50
× fMCK
Ֆ䘷ᰬ䫕
0.50
− tR − tF ) × fMCK
Ֆ䘷ᰬ䫕
从属方 IICWLn 寄存器和 IICWHn 寄存器的设定方法
(全部设定值的小数部分都舍入)
•
快速模式
IICWLn = 1.3μs × fMCK
IICWHn = (1.2μs – tR – tF) × fMCK
•
标准模式
IICWLn = 4.7μs × fMCK
IICWHn = (5.3μs – tR – tF) × fMCK
•
增强型快速模式
IICWLn = 0.50μs × fMCK
IICWHn = (0.50μs – tR – tF) × fMCK
注意 1. IICA 运行时钟 (fMCK)的最大工作频率为 20MHz(Max.)。只有在 fCLK 超过 20MHz 时才必须将 IICA 控制寄存器
n1 (IICCTLn1)的 bit0 (PRSn)置 “1”。
2. 在设定传送时钟的情况下,必须注意 fCLK 的最小工作频率。串行接口 IICA 的 fCLK 最小工作频率取决于运行模式。
快速模式:
fCLK=3.5MHz (Min.)
增强型快速模式: fCLK=10MHz (Min.)
标准模式:
fCLK=1MHz (Min.)
R01UH0629CJ0120 Rev.1.20
2019.06.28
437
R7F0C903-908
第 12 章 串行接口 IICA
备注 1. 因为 SDAAn 信号和 SCLAn 信号的上升时间 (tR)和下降时间 (tF)因上拉电阻和布线电容而不同,所以必须各
自计算。
2. IICWLn:
IICA 低电平宽度设定寄存器 n
IICWHn:
IICA 高电平宽度设定寄存器 n
tF:
SDAAn 信号和 SCLAn 信号的下降时间
tR:
SDAAn 信号和 SCLAn 信号的上升时间
fMCK:
IICA 运行时钟频率
3. n=0
I2C 总线的定义和控制方法
12.5
以下说明 I2C 总线的串行数据通信格式和使用的信号。
I2C总线的串行数据总线上生成的“开始条件”、“地址”、“数据”和“停止条件”的各传送时序如图12-14所示。
I2C 总线的串行数据传送时序
图 12-14
SCLAn
1Њ7
8
9
1Њ8
9
1Њ8
9
൦൶
R/W
ACK
ᮦᦤ
ACK
ᮦᦤ
ACK
SDAAn
ᔶခᶗԬ
↘ڒᶗԬ
主控设备生成开始条件、从属地址和停止条件。
主控设备和从属设备都能生成应答 (ACK)(在一般情况下,接收方输出 8 位数据)。
主控设备连续输出串行时钟 (SCLAn)。但是,从属设备能延长 SCLAn 引脚的低电平期间并且插入等待。
12.5.1
开始条件
在 SCLAn 引脚为高电平时,如果 SDAAn 引脚从高电平变为低电平,就生成开始条件。SCLAn 引脚和 SDAAn
引脚的开始条件是在主控设备对从属设备开始串行传送时生成的信号。在用作从属设备时,能检测到开始条
件。
图 12-15
SCLAn
开始条件
H
SDAAn
在检测到停止条件 (SPDn:IICA 状态寄存器 n (IICSn)的 bit0=1)的状态下,如果将 IICA 控制寄存器 n0
(IICCTLn0)的 bit1(STTn)置 “1”,就输出开始条件。如果检测到开始条件,就将 IICSn 寄存器的 bit1(STDn)
置 “1”。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
438
R7F0C903-908
12.5.2
第 12 章 串行接口 IICA
地址
开始条件的后续 7 位数据被定义为地址。
地址是主控设备为了从连接在总线的多个从属设备中选择特定的从属设备而输出的 7 位数据。因此,总线
上的从属设备需要设定完全不同的地址。
从属设备通过硬件检测到开始条件,并且检查 7 位数据是否和从属地址寄存器 n (SVAn)的内容相同。此
时,如果 7 位数据和 SVAn 寄存器的值相同,该从属设备就被选中,在主控设备生成开始条件或者停止条件前,
与主控设备进行通信。
图 12-16
地址
SCLAn
1
2
3
4
5
6
7
8
SDAAn
A6
A5
A4
A3
A2
A1
A0
R/W
9
൦൶
⌞
INTIICAn
注
如果在从属运行时接收到本地站地址或者扩展码以外的数据,就不产生 INTIICAn。
如果将从属地址和 “12.5.3 传送方向的指定 ” 中说明的传送方向构成的 8 位数据写到 IICA 移位寄存器 n
(IICAn),就输出地址。接收到的地址被写到 IICAn 寄存器。
从属地址分配在 IICAn 寄存器的高 7 位。
12.5.3
传送方向的指定
主控设备在 7 位地址之后发送 1 位指定传送方向的数据。
当此传送方向指定位为 “0” 时,表示主控设备向从属设备发送数据;当此传送方向指定位为 “1” 时,表示
主控设备从从属设备接收数据。
图 12-17
传送方向的指定
SCLAn
1
2
3
4
5
6
7
8
SDAAn
A6
A5
A4
A3
A2
A1
A0
R/W
9
ᇐՖ䘷ᯯੇȾ
⌞
INTIICAn
注
如果在从属运行时接收到本地站地址或者扩展码以外的数据,就不产生 INTIICAn。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
439
R7F0C903-908
12.5.4
第 12 章 串行接口 IICA
应答 (ACK)
能通过应答 (ACK)确认发送方和接收方的串行数据状态。
接收方在每次接收到 8 位数据时返回应答。
通常,发送方在发送 8 位数据后接收应答。当接收方返回应答时,认为已正常接收,继续处理。能通过 IICA
状态寄存器 n (IICSn)的 bit2 (ACKDn)确认应答的检测。
在主控设备为接收状态下接收到最后的数据时,不返回应答而生成停止条件。在从属设备接收数据后不返
回应答时,主控设备输出停止条件或者重新开始条件,中止发送。不返回应答的原因如下:
① 没有正常接收。
② 已结束最后数据的接收。
③ 不存在地址指定的接收方。
接收方在第 9 个时钟将 SDAAn 线置为低电平,生成应答 (正常接收)。
通过将 IICA 控制寄存器 n0 (IICCTLn0)的 bit2 (ACKEn)置 “1”,变为能自动生成应答的状态。通过 7
位地址信息后续的第 8 位数据设定 IICSn 寄存器的 bit3 (TRCn)。在接收 (TRCn=0)的情况下,通常必须将
ACKEn 位置 “1”。
在从属接收运行过程中 (TRCn=0)不能接收数据或者不需要下一个数据时,必须将 ACKEn 位清 “0”,通
知主控方不能接收数据。
在主控接收运行过程中 (TRCn=0)不需要下一个数据时,为了不生成应答,必须将 ACKEn 位清 “0”,通
知从属发送方数据的结束 (停止发送)。
图 12-18
应答
SCLAn
1
2
3
4
5
6
7
8
9
SDAAn
A6
A5
A4
A3
A2
A1
A0
R/W
ACK
当接收到本地站的地址时,与 ACKEn 位的值无关,自动生成应答;当接收到非本地站的地址时,不生成应
答 (NACK)。
在接收到扩展码时,通过事先将 ACKEn 位置 “1”,生成应答。
接收数据时的应答生成方法因等待时序的设定而不同,如下所示。
•
当选择 8 个时钟的等待时 (IICCTLn0 寄存器的 bit3 (WTIMn) =0):
通过在解除等待前将 ACKEn 位置 “1”,与 SCLAn引脚的第 8 个时钟下降沿同步生成应答。
•
当选择 9 个时钟的等待时 (IICCTLn0 寄存器的 bit3 (WTIMn) =1):
通过事先将 ACKEn 位置 “1”,生成应答。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
440
R7F0C903-908
12.5.5
第 12 章 串行接口 IICA
停止条件
在 SCLAn 引脚为高电平时,如果 SDAAn 引脚从低电平变为高电平,就生成停止条件。
停止条件是在主控设备结束对从属设备的串行传送时生成的信号。在用作从属设备时,能检测到停止条
件。
图 12-19
SCLAn
停止条件
H
SDAAn
如果将 IICA 控制寄存器 n0(IICCTLn0)的 bit0(SPTn)置 “1”,就生成停止条件。如果检测到停止条件,
就将 IICA 状态寄存器 n (IICSn)的 bit0 (SPDn)置 “1”,并且在 IICCTLn0 寄存器的 bit4 (SPIEn)为 “1” 时
产生 INTIICAn。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
441
R7F0C903-908
12.5.6
第 12 章 串行接口 IICA
等待
通过等待来通知对方主控设备或者从属设备正在准备数据的发送 / 接收 (等待状态)。
通过将 SCLAn 引脚置为低电平,通知对方处于等待状态。如果主控设备和从属设备的等待状态都被解除,
就能开始下一次传送。
图 12-20
(1)
等待 (1/2)
主控设备为 9 个时钟等待,从属设备为 8 个时钟等待的情况
(主控设备:发送,从属设备:接收, ACKEn=1)
ѱ䇴༽
ѱ䇴༽ᚘགྷHi-Z⣬ᘷθ
Ԅኔ䇴༽༺ӄㅿᖻ⣬ᘷ ൞䗉࠰ㅢ9Ѡᰬ䫕
(ք⭫ᒩ)Ⱦ
䘑ޛㅿᖻ⣬ᘷȾ
IICAn
㔏IICAnߏᮦᦤ(䀙䲚ㅿᖻ)Ⱦ
SCLAn
6
7
8
9
1
2
3
Ԅኔ䇴༽
൞䗉࠰ㅢ8Ѡᰬ䫕
䘑ޛㅿᖻ⣬ᘷȾ
IICAn←FFHᡌ㘻WRELn←1
IICAn
SCLAn
ACKEn
H
Ֆ䘷㓵
Ԅኔ䇴༽Ⲻㅿᖻ
备注
SCLAn
6
7
8
SDAAn
D2
D1
D0
9
ACK
ѱ䇴༽Ⲻㅿᖻ
1
2
3
D7
D6
D5
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
442
R7F0C903-908
第 12 章 串行接口 IICA
图 12-20
(2)
等待 (2/2)
主控设备和从属设备都为 9 个时钟等待的情况
(主控设备:发送,从属设备:接收, ACKEn=1)
ѱ䇴༽ૂԄኔ䇴༽
䜳൞䗉࠰ㅢ9Ѡᰬ䫕
䘑ޛㅿᖻ⣬ᘷȾ
ѱ䇴༽
IICAn
6
SCLAn
7
8
㔏IICAnߏᮦᦤ(䀙䲚ㅿᖻ)Ⱦ
9
1
2
Ԅኔ䇴༽
3
IICAn←FFHᡌ㘻WRELn←1
IICAn
SCLAn
ACKEn
H
ѱ䇴༽ૂԄኔ
䇴༽Ⲻㅿᖻ
Ֆ䘷㓵
SCLAn
6
7
8
9
SDAAn
D2
D1
D0
ACK
Ԅኔ䇴༽Ⲻㅿᖻ
1
D7
2
3
D6
D5
ṯᦤӁݾ䇴ᇐⲺACKEn䘑㺂⭕ᡆȾ
ACKEn: IICA 控制寄存器 n0 (IICCTLn0)的 bit2
备注
WRELn:IICA 控制寄存器 n0 (IICCTLn0)的 bit5
通过设定 IICA 控制寄存器 n0 (IICCTLn0)的 bit3 (WTIMn)自动产生等待状态。
通常,在接收方,如果 IICCTLn0 寄存器的 bit5 (WRELn)为 “1” 或者给 IICA 移位寄存器 n (IICAn)写
“FFH”,就解除等待;在发送方,如果给 IICAn 寄存器写数据,就解除等待。
主控设备还能通过以下方法解除等待:
•
•
备注
将 IICCTLn0 寄存器的 bit1 (STTn)置 “1”。
将 IICCTLn0 寄存器的 bit0 (SPTn)置 “1”。
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
443
R7F0C903-908
12.5.7
第 12 章 串行接口 IICA
等待的解除方法
在一般情况下, I2C 能通过以下的处理来解除等待。
•
注
给 IICA 移位寄存器 n (IICAn)写数据。
•
将 IICA 控制寄存器 n0 (IICCTLn0)的 bit5 (WRELn)置位 (解除等待)。
•
将 IICCTLn0 寄存器的 bit1 (STTn)置位 (生成开始条件)注。
•
将 IICCTLn0 寄存器的 bit0 (SPTn)置位 (生成停止条件)注。
只限于主控设备。
如果执行了这些等待的解除处理, I2C 就解除等待,重新开始通信。
要在解除等待后发送数据 (包括地址)时,必须给 IICAn 寄存器写数据。
要在解除等待后接收数据或者结束发送数据时,必须将 IICCTLn0 寄存器的 bit5 (WRELn)置 “1”。
要在解除等待后生成重新开始条件时,必须将 IICCTLn0 寄存器的 bit1 (STTn)置 “1”。
要在解除等待后生成停止条件时,必须将 IICCTLn0 寄存器的 bit0 (SPTn)置 “1”。
对于一次等待只能执行一次解除处理。
例如,如果在通过将 WRELn 位置 “1” 来解除等待后给 IICAn 寄存器写数据,SDAAn 线的变化时序与 IICAn
寄存器的写时序就可能发生冲突,导致将错误的值输出到 SDAAn 线。
除了这些处理以外,在中途中止通信的情况下,如果将 IICEn 位清 “0”,就停止通信,因此能解除等待。
在 I2C 总线状态因噪声而被死锁的情况下,如果将 IICCTLn0 寄存器的 bit6(LRELn)置 “1”,就退出通信,
因此能解除等待。
注意
如果在 WUPn 位为 “1” 时执行等待的解除处理,就不解除等待。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
444
R7F0C903-908
12.5.8
第 12 章 串行接口 IICA
中断请求 (INTIICAn)的产生时序和等待控制
通过设定 IICA 控制寄存器 n0 (IICCTLn0)的 bit3 (WTIMn),在表 12-2 所示的时序产生 INTIICAn 并且
进行等待控制。
表 12-2
WTIMn
注
INTIICAn 的产生时序和等待控制
从属运行
主控运行
地址
数据接收
数据发送
地址
数据接收
数据发送
0
9 注 1、 2
8注2
8注2
9
8
8
1
9 注 1、 2
9注2
9注2
9
9
9
1. 只有在接收的地址和从属地址寄存器n(SVAn)的设定地址相同时,从属设备才在第9个时钟的下降沿产生INTIICAn
信号并且进入等待状态。
此时,与 IICCTLn0 寄存器的 bit2(ACKEn)的设定无关,生成应答。接收到扩展码的从属设备在第 8 个时钟的下
降沿产生 INTIICAn。如果在重新开始后地址不同,就在第 9 个时钟的下降沿产生 INTIICAn,但是不进入等待状态。
2. 如果接收的地址和从属地址寄存器 n(SVAn)的内容不同并且未接收到扩展码,就不产生 INTIICAn 并且也不进入
等待状态。
备注
表中的数字表示串行时钟的时钟数。中断请求和等待控制都与串行时钟的下降沿同步。
(1)
地址的发送和接收
•
从属运行:与 WTIMn 位无关,根据上述注 1 和注 2 的条件决定中断和等待的时序。
•
主控运行:与 WTIMn 位无关,在第9 个时钟的下降沿产生中断和等待的时序。
(2)
数据接收
•
(3)
主控运行 / 从属运行:通过 WTIMn 位决定中断和等待的时序。
数据发送
•
(4)
主控运行 / 从属运行:通过 WTIMn 位决定中断和等待的时序。
等待的解除方法
等待的解除方法有以下 4 种:
•
注
给 IICA 移位寄存器 n (IICAn)写数据。
•
将 IICA 控制寄存器 n0 (IICCTLn0)的 bit5 (WRELn)置位 (解除等待)。
•
将 IICCTLn0 寄存器的 bit1 (STTn)置位 (生成开始条件)注。
•
将 IICCTLn0 寄存器的 bit0 (SPTn)置位 (生成停止条件)注。
只限于主控设备。
当选择 8 个时钟的等待 (WTIMn=0)时,需要在解除等待前决定是否生成应答。
(5)
停止条件的检测
如果检测到停止条件,就产生 INTIICAn (只限于 SPIEn=1 的情况)。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
445
R7F0C903-908
12.5.9
第 12 章 串行接口 IICA
地址匹配的检测方法
在 I2C 总线模式中,主控设备能通过发送从属地址来选择特定的从属设备。
能通过硬件自动检测地址匹配。当主控设备发送的从属地址和从属地址寄存器 n (SVAn)的设定地址相同
或者只接收到扩展码时,产生 INTIICAn 中断请求。
12.5.10
错误的检测
在 I2C 总线模式中,因为发送过程中的串行数据总线 (SDAAn)的状态被取到发送器件的 IICA 移位寄存
器 n (IICAn),所以能通过将开始发送前和发送结束后的 IICA 数据进行比较来检测发送错误。此时,如果 2
个数据不同,就判断为发生了发送错误。
12.5.11
扩展码
(1) 当接收地址的高 4 位为 “0000”或者 “1111” 时,作为接收到扩展码,将扩展码接收标志(EXCn)置 “1”,
并且在第 8 个时钟的下降沿产生中断请求 (INTIICAn)。
不影响保存在从属地址寄存器 n (SVAn)的本地站地址。
(2) 当 SVAn 寄存器的设定值为 “11110xx0” 时,如果通过 10 位地址传送从主控设备发送 “11110xx0”,就发
生以下的置位。但是,在第 8 个时钟的下降沿产生中断请求 (INTIICAn)。
备注
•
高 4 位数据相同: EXCn=1
•
7 位数据相同:
COIn=1
EXCn: IICA 状态寄存器 n (IICSn)的 bit5
COIn: IICA 状态寄存器 n (IICSn)的 bit4
(3) 中断请求发生后的处理因扩展码的后续数据而不同,通过软件进行处理。
如果在从属运行时接收到扩展码,即使地址不同也在参加通信。
例如,在接收到扩展码后不想作为从属设备运行时,必须将 IICA 控制寄存器 n0 (IICCTLn0)的 bit6
(LRELn)置 “1”,进入下一次通信的待机状态。
表 12-3
主要扩展码的位定义
从属地址
R/W 位
0000 000
0
全呼地址
1111 0xx
0
10 位从属地址的指定 (地址认证时)
1111 0xx
1
10 位从属地址的指定 (在地址相同后发行读命令时)
说明
备注 1. 有关上述以外的扩展码,请参照 NXP 公司发行的 I2C 总线规格书。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
446
R7F0C903-908
12.5.12
第 12 章 串行接口 IICA
仲裁
当多个主控设备同时生成开始条件时 (在 STDn 位变为 “1” 前将 STTn 位置 “1” 的情况),边调整时钟边进
行主控设备的通信,直到数据不同为止。此运行称为仲裁。
在仲裁失败时,仲裁失败的主控设备将 IICA 状态寄存器 n (IICSn)的仲裁失败标志 (ALDn)置 “1”,并
且将 SCLAn 线和 SDAAn 线都置为高阻抗状态,释放总线。
在发生下一次中断请求时 (例如:在第 8 或者第 9 个时钟检测到停止条件),用软件通过 ALDn 位为 “1”
来检测仲裁的失败。
有关中断请求的产生时序,请参照 “12.5.8 中断请求 (INTIICAn)的产生时序和等待控制 ”。
备注
STDn:IICA 状态寄存器 n (IICSn)的 bit1
STTn:IICA控制寄存器 n0 (IICCTLn0)的 bit1
图 12-21
仲裁时序例子
ѱ䇴༽1
SCLAn
SDAAn
ѱ䇴༽2
Hi-Z
Hi-Z
ѱ䇴༽1Ԩ㻷ཧ䍛Ⱦ
SCLAn
SDAAn
Ֆ䘷㓵
SCLAn
SDAAn
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
447
R7F0C903-908
第 12 章 串行接口 IICA
表 12-4
发生仲裁时的状态和中断请求的产生时序
发生仲裁时的状态
地址发送过程中
中断请求的产生时序
在字节传送后的第 8 或者第 9 个时钟的下降沿注 1
发送地址后的读写信息
扩展码发送过程中
发送扩展码后的读写信息
数据发送过程中
发送数据后的应答传送过程中
在数据传送过程中检测到重新开始条件。
在数据传送过程中检测到停止条件。
在生成停止条件时 (SPIEn=1)注 2
想要生成重新开始条件,但是数据为低电平。
在字节传送后的第 8 或者第 9 个时钟的下降沿注 1
想要生成重新开始条件,但是检测到停止条件。
在生成停止条件时 (SPIEn=1)注 2
想要生成停止条件,但是数据为低电平。
在字节传送后的第 8 或者第 9 个时钟的下降沿注 1
想要生成重新开始条件,但是 SCLAn 为低电平。
注
1. 当 WTIMn 位 (IICA 控制寄存器 n0 (IICCTLn0)的 bit3)为 “1” 时,在第 9 个时钟的下降沿产生中断请求;当
WTIMn 位为 “0” 并且接收到扩展码的从属地址时,在第 8 个时钟的下降沿产生中断请求。
2. 当有可能发生仲裁时,必须在主控运行时将 SPIEn 位置 “1”。
备注 1. SPIEn:IICA 控制寄存器 n0 (IICCTLn0)的 bit4
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
448
R7F0C903-908
12.5.13
第 12 章 串行接口 IICA
唤醒功能
这是 I2C 的从属功能,是在接收到本地站地址和扩展码时产生中断请求信号 (INTIICAn)的功能。
在地址不同的情况下不产生不需要的 INTIICAn 信号,能提高处理效率。
如果检测到开始条件,就进入唤醒待机状态。因为主控设备 (已经生成开始条件的情况)也有可能因仲裁
失败而变为从属设备,所以在发送地址的同时进入唤醒待机状态。
要在 STOP 模式中使用唤醒功能时,必须将 WUPn 位置 “1”。与运行时钟无关而能接收地址。即使在这种
情况下,也在接收到本地站地址和扩展码时产生中断请求信号 (INTIICAn) 。在产生此中断后,通过指令将
WUPn 位清 “0”,返回到通常运行。
将 WUPn 位置 “1” 时的流程如图 12-22 所示,通过地址匹配将 WUPn 位置 “0” 时的流程如图 12-23 所示。
图 12-22
将 WUPn 位置 “1” 时的流程
START
MSTSn = STDn = EXCn = COIn =0?
No
Yes
WUPn = 1
ㅿᖻ
ㅿᖻ3ѠfMCKᰬ䫕Ⱦ
ᢝ㺂STOPԚ
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
449
R7F0C903-908
第 12 章 串行接口 IICA
图 12-23
通过地址匹配将 WUPn 位置 “0” 时的流程 (包括接收扩展码)
STOP⁗ᕅ⣬ᘷ
No
INTIICAn = 1?
Yes
WUPn = 0
ㅿᖻ
ㅿᖻ5ѠfMCKᰬ䫕Ⱦ
䈱IICSn
൞⺤䇚Ѩ㺂ਙIICAⲺ䘆㺂⣬ᘷθ
ṯᦤ㾷ᢝ㺂Ⲻᇯ䘑㺂༺⨼Ⱦ
除了串行接口 IICA 产生的中断请求 (INTIICAn)以外,必须通过以下的流程解除 STOP 模式。
•
下一次 IIC 通信为主控设备运行的情况:图 12-24的流程
•
下一次 IIC 通信为从属设备运行的情况:
通过 INTIICAn 中断返回的情况:
和图 12-23 的流程相同。
通过 INTIICAn 中断以外的中断返回的情况:必须在产生INTIICAn中断前保持WUPn位为“1”的状态继
续运行。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
450
R7F0C903-908
图 12-24
第 12 章 串行接口 IICA
在通过 INTIICAn 以外的中断来解除 STOP 模式后作为主控设备运行的情况
START
SPIEn = 1
WUPn = 1
ㅿᖻ
ㅿᖻ3ѠfMCKᰬ䫕Ⱦ
STOPԚ
STOP⁗ᕅ⣬ᘷ
䀙䲚STOP⁗ᕅ
䙐䗽INTIICAnԛཌⲺѣᯣᶛ䀙䲚STOP⁗ᕅȾ
WUPn = 0
No
INTIICAn = 1?
Yes
ㅿᖻ
⭕ᡆSTOPᶗԬᡌ㘻䘿ѰԄኔ䇴༽Ⱦ
ㅿᖻ5ѠfMCKᰬ䫕Ⱦ
䈱IICSn
൞⺤䇚Ѩ㺂ਙIICAⲺ䘆㺂⣬ᘷθ
ṯᦤ㾷ᢝ㺂Ⲻᇯ䘑㺂༺⨼Ⱦ
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
451
R7F0C903-908
12.5.14
(1)
第 12 章 串行接口 IICA
通信预约
允许通信预约功能的情况 (IICA 标志寄存器 n (IICFn)的 bit 0 (IICRSVn) =0)
要在不加入总线的状态下进行下一次主控通信时,能通过通信预约在释放总线时发送开始条件。此时的不
加入总线包括以下 2 种状态:
•
•
在仲裁结果既不是主控设备也不是从属设备时
在接收到扩展码后不作为从属设备运行时 (不返回应答而将 IICA 控制寄存器 n0 (IICCTLn0)的 bit6
(LRELn)置 “1”,退出通信后释放了总线)
如果在不加入总线的状态下将 IICCTLn0 寄存器的 bit1 (STTn)置 “1”,就在释放总线后 (检测到停止条
件)自动生成开始条件,进入等待状态。
将 IICCTLn0 寄存器的 bit4 (SPIEn)置 “1”,在通过产生的中断请求信号 (INTIICAn)检测到总线的释放
(检测到停止条件)后,如果给 IICA 移位寄存器 n (IICAn)写地址,就自动作为主控设备开始通信。在检测
到停止条件前,给 IICAn 寄存器写的数据无效。
当将 STTn 位置 “1” 时,根据总线状态决定是作为开始条件运行还是作为通信预约运行。
•
总线处于释放状态时 ……………………… 生成开始条件
•
总线未处于释放状态 (待机状态)时 …… 通信预约
在将 STTn 位置 “1” 并且经过等待时间后,通过 MSTSn 位 (IICA 状态寄存器 n (IICSn)的 bit7)确认是
否作为通信预约运行。
必须通过软件确保以下计算式计算的等待时间:
从将 STTn 位置 “1” 到确认 MSTSn 标志为止的等待时间:
(IICWLn 的设定值 + IICWHn 的设定值 + 4) / fMCK + tF × 2
备注 1. IICWLn:
IICA 低电平宽度设定寄存器 n
IICWHn:
IICA 高电平宽度设定寄存器 n
tF:
SDAAn 信号和 SCLAn 信号的下降时间
fMCK:
IICA 运行时钟频率
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
452
R7F0C903-908
第 12 章 串行接口 IICA
通信预约的时序如图 12-25 所示。
图 12-25
ぁᓅ༺⨼
STTn = 1
⺢Ԭ༺⨼
䙐ؗ
人㓜
SCLAn
1
2
3
4
通信预约的时序
ߏIICAn
SPDnૂ
INTIICAn
Ⲻ㖤փ
5
6
7
8
STDn
Ⲻ㖤փ
9
1
2
3
4
5
6
SDAAn
⭧খᴿᙱ㓵Ⲻѱ䇴༽⭕ᡆȾ
备注
IICAn: IICA 移位寄存器 n
STTn: IICA控制寄存器 n0 (IICCTLn0)的 bit1
STDn: IICA状态寄存器 n (IICSn)的 bit1
SPDn: IICA状态寄存器n (IICSn)的 bit0
通过图 12-26 所示的时序接受通信预约。在 IICA 状态寄存器 n (IICSn)的 bit1 (STDn)变为 “1” 后并且
在检测到停止条件前,将 IICA 控制寄存器 n0 (IICCTLn0)的 bit1 (STTn)置 “1” 进行通信预约。
图 12-26
通信预约的接受时序
SCLAn
SDAAn
STDn
SPDn
ᖻᵰ⣬ᘷ(൞↚ᵕ䰪θ㜳䙐䗽ሼSTTnփ㖤“1”䘑㺂䙐ؗ人㓜)
通信预约的步骤如图 12-27 所示。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
453
R7F0C903-908
第 12 章 串行接口 IICA
图 12-27
通信预约的步骤
DI
SET1 STTn
ᇐѿ䙐ؗ人㓜
ㅿᖻ
(䙐ؗ人㓜)⌞2
Yes
MSTSn = 0?
ሼSTTnḽᘍ㖤փ(䙐ؗ人㓜)Ⱦ
ᇐѿѰ༺ӄ䙐ؗ人㓜Ⲻ⣬ᘷȾ
(ሯԱᝅRAMⲺ⭞ᡭḽᘍ䘑㺂ᇐѿૂ㖤փ)
䙐䗽䖥Ԭ⺤ؓㅿᖻᰬ䰪⌞1 Ⱦ
⺤䇚䙐ؗ人㓜Ⱦ
No
(⭕ᡆᔶခᶗԬ)
䀙䲚䙐ؗ人㓜
MOV IICAn, #xxH
䲚⭞ᡭḽᘍȾ
ߏIICAnȾ
EI
注
1. 等待时间如下:
(IICWLn 的设定值 + IICWHn 的设定值 + 4) / fMCK + tF × 2
2. 在通信预约运行时,通过停止条件中断请求来写 IICA 移位寄存器 n (IICAn)。
备注 1. STTn:
IICA 控制寄存器 n0 (IICCTLn0)的 bit1
MSTSn:
IICA 状态寄存器 n (IICSn)的 bit7
IICAn:
IICA 移位寄存器 n
IICWLn:
IICA 低电平宽度设定寄存器 n
IICWHn:
IICA 高电平宽度设定寄存器 n
tF:
SDAAn 信号和 SCLAn 信号的下降时间
fMCK:
IICA 运行时钟频率
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
454
R7F0C903-908
(2)
第 12 章 串行接口 IICA
禁止通信预约功能的情况 (IICA 标志寄存器 n (IICFn)的 bit0 (IICRSVn) =1)
在总线通信过程中,如果在不参加此通信的状态下将 IICA 控制寄存器 n0 (IICCTLn0)的 bit1 (STTn)置
“1”,就拒绝此请求而且不生成开始条件。此时的不加入总线包括以下 2 种状态:
•
在仲裁结果既不是主控设备也不是从属设备时
•
在接收到扩展码后不作为从属设备运行时(不返回应答而将 IICCTLn0 寄存器的 bit6(LRELn)置 “1”,
退出通信后释放了总线)
能通过 STCFn (IICFn 寄存器的 bit7)来确认是生成了开始条件还是拒绝了请求。因为从 STTn 位为 “1” 到
将 STCFn 位置 “1” 为止需要 5 个 fMCK 时钟的时间,所以必须通过软件确保此时间。
备注
n=0
12.5.15
其他注意事项
(1) STCENn 位为 “0”的情况
在刚允许 I2C 运行 (IICEn=1)后,与实际的总线状态无关而视为通信状态 (IICBSYn=1)。要在没有
检测到停止条件的状态下进行主控通信时,必须先生成停止条件,在释放总线后进行主控通信。
对于多主控,在总线未释放 (未检测到停止条件)的状态下不能进行主控通信。
按照以下顺序生成停止条件:
① 设定 IICA 控制寄存器 n1 (IICCTLn1)。
② 将 IICA 控制寄存器 n0 (IICCTLn0)的 bit7 (IICEn)置 “1”。
③ 将 IICCTLn0 寄存器的 bit0 (SPTn)置 “1”。
(2) STCENn 位为 “1”的情况
在刚允许 I2C 运行 (IICEn=1)后,与实际的总线状态无关而视为释放状态 (IICBSYn=0)。因此在生
成第 1 个开始条件 (STTn=1)时,为了不破坏其他的通信,需要确认总线已被释放。
(3) 正在和其他设备进行 I2C 通信的情况
在 SDAAn 引脚为低电平并且 SCLAn 引脚为高电平时,如果允许 I2C 运行而且中途参加通信, I2C 的宏
就视为 SDAAn 引脚从高电平变为低电平 (检测到开始条件)。如果此时总线上的值是能识别为扩展码
的值,就返回应答而妨碍和其他设备的 I2C通信。为了避免这种情况,必须按照以下顺序启动 I2C:
① 将IICCTLn0寄存器的bit4(SPIEn)清“0”,禁止在检测到停止条件时产生中断请求信号(INTIICAn)。
② 将 IICCTLn0 寄存器的 bit7 (IICEn)置 “1”,允许I2C 运行。
③ 等待检测到开始条件。
④ 在返回应答前(将 IICEn 位置 “1”后的 4 ~ 72个 fMCK 时钟内)将 IICCTLn0 寄存器的 bit6(LRELn)
置 “1”,强制将检测置为无效。
(4) 在将 STTn 位和 SPTn 位 (IICCTLn0 寄存器的 bit1 和 bit0)置位后,禁止清 “0” 前的再置位。
(5) 如果进行了通信预约,就必须将 SPIEn 位 (IICCTLn0 寄存器的 bit4)置 “1”,在检测到停止条件时产生
中断请求。在产生中断请求后,通过给 IICA 移位寄存器 n (IICAn)写通信数据,开始传送。如果在检
测到停止条件时不发生中断,就因在开始通信时不产生中断请求而停止在等待状态。但是,当通过软
件检测 MSTSn 位 (IICA 状态寄存器 n (IICSn)的 bit7)时,不需要将SPIEn 位置 “1”。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
455
R7F0C903-908
12.5.16
第 12 章 串行接口 IICA
通信运行
在此通过流程图表示以下 3 个运行步骤。
(1)
单主控系统的主控运行
在单主控系统中用作主控设备的流程图如下所示。
此流程大体分为 “ 初始设定 ” 和 “ 通信处理 ”。在启动时执行 “ 初始设定 ” 部分,如果需要和从属设备进行
通信,就在进行通信时所需的准备后执行 “ 通信处理 ” 部分。
(2)
多主控系统的主控运行
在 I2C 总线的多主控系统中,只根据 I2C 总线的规格无法判断在参加通信的阶段总线是处于释放状态还是
处于使用状态。在此,如果数据和时钟在一定时间内 (1 帧)为高电平,就将总线作为释放状态而参加通信。
此流程大体分为 “ 初始设定 ”、 “ 通信等待 ” 和 “ 通信处理 ”。在此省略因仲裁失败而被指定为从属设备的
处理,只表示用作主控设备的处理。在启动时执行 “ 初始设定 ” 部分后加入总线,然后通过 “ 通信等待 ”,等待
主控设备的通信请求或者从属设备的指定。实际进行通信的是 “ 通信处理 ” 部分,除了支持与从属设备进行数
据发送和接收以外,还支持与其他主控设备的仲裁。
(3)
从属运行
用作 I2C 总线从属设备的例子如下所示。
当用作从属设备时,通过中断开始运行。在启动时执行 “ 初始设定 ” 部分,然后通过 “ 通信等待 ”,等待
INTIICAn 中断的发生。如果发生 INTIICAn 中断,就判断通信状态并且将标志传递给主处理部。
通过检查各标志,进行所需的 “ 通信处理 ”。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
456
R7F0C903-908
(1)
第 12 章 串行接口 IICA
单主控系统的主控运行
图 12-28
单主控系统的主控运行
START
䀙䲚Ѩ㺂ਙIICAⲺགྷփ⣬ᘷθᔶခᨆבᰬ䫕Ⱦ
䇴ᇐPER0ᇺᆎಞ
I2Cᙱ㓵Ⲻࡓခौ⌞
䇴ᇐ㾷ֵ⭞Ⲻᕋ㝐ૂགྷ⭞ⲺㄥਙȾ
俌ݾሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅᒬъሼ䗉࠰䬷ᆎಞ㖤“0”(৸➝“13.3.8 ㄥਙ⁗ᕅᇺᆎಞ6(PM6)”)Ⱦ
䇴ᇐㄥਙ
IICWLnȽIICWHn ← XXH
䇴ᇐՖ䘷ᰬ䫕Ⱦ
SVAn ← XXH
䇴ᇐᵢ൦ㄏ൦൶Ⱦ
IICFn ← 0XH
䇴ᇐSTCENnθIICRSVn = 0
䇴ᇐᔶခᶗԬȾ
ࡓခ䇴ᇐ
䇴ᇐIICCTLn1
IICCTLn0 ← 0XX111XXB
ACKEn = WTIMn = SPIEn = 1
IICCTLn0 ← 1XX111XXB
IICEn = 1
൞ሼㄥਙԄ䗉⁗ޛᕅ䇴ᇐѰ䗉࠰⁗ᕅݷ䇮I2Cᙱ㓵Ⲻ䗉࠰Ⱦ
(৸➝“13.3.8 ㄥਙ⁗ᕅᇺᆎಞ6(PM6)”)Ⱦ
䇴ᇐㄥਙ
STCENn = 1?
Yes
No
SPTn = 1
ਇ⭕INTIICAnѣᯣ?
༽ᔶခ䙐ؗȾ
(⭕ᡆ↘ڒᶗԬ)
No
ㅿᖻỶ⎁ࡦ↘ڒᶗԬȾ
Yes
STTn = 1
ߏIICAn
ਇ⭕INTIICAnѣᯣ?
༽ᔶခ䙐ؗȾ
(⭕ᡆᔶခᶗԬ)
ᔶခ䙐ؗȾ
(ᇐ൦൶ૂՖ䘷ᯯੇ)
No
ㅿᖻỶ⎁ࡦᓊㆊȾ
Yes
No
ACKDn = 1?
ACKEn = 1
WTIMn = 0
Yes
TRCn = 1?
No
WRELn = 1
ᔶခ᭬Ⱦ
ਇ⭕INTIICAnѣᯣ?
No
ㅿᖻ᭬ᮦᦤȾ
䙐⨼༺ؗ
Yes
ߏIICAn
ᔶခਇ䘷Ⱦ
Yes
ਇ⭕INTIICAnѣᯣ?
No
ㅿᖻਇ䘷ᮦᦤȾ
Yes
ACKDn = 1?
Ֆ䘷㔉ᶕ?
No
No
Yes
ACKEn = 0
Yes
No
䈱IICAn
Ֆ䘷㔉ᶕ?
WTIMn = 1
Yes
WRELn = 1
䠃᯦ᔶခ?
Yes
No
SPTn = 1
END
注
ਇ⭕INTIICAnѣᯣ?
No
ㅿᖻỶ⎁ࡦᓊㆊȾ
Yes
必须根据通信中的产品的规格,释放 I2C 总线 (SCLAn 引脚和 SDAAn 引脚为高电平)。例如,如果 EEPROM 处
于给 SDAAn 引脚输出低电平的状态,就必须将 SCLAn 引脚设定为输出端口,并且在 SDAAn 引脚固定为高电平
前从输出端口输出时钟脉冲。
备注 1. 发送和接收的格式必须符合通信中的产品的规格。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
457
R7F0C903-908
(2)
第 12 章 串行接口 IICA
多主控系统的主控运行
图 12-29
多主控系统的主控运行 (1/3)
START
䀙䲚Ѩ㺂ਙIICAⲺགྷփ⣬ᘷθᔶခᨆבᰬ䫕Ⱦ
䇴ᇐPER0ᇺᆎಞ
䇴ᇐ㾷ֵ⭞Ⲻᕋ㝐ૂགྷ⭞ⲺㄥਙȾ
俌ݾሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅᒬъሼ䗉࠰䬷ᆎಞ㖤“0”(৸➝“13.3.8 ㄥਙ⁗ᕅᇺᆎಞ6(PM6)”)Ⱦ
䇴ᇐㄥਙ
IICWLnȽIICWHn ← XXH
䘿Ֆ䘷ᰬ䫕Ⱦ
SVAn ← XXH
䇴ᇐᵢ൦ㄏ൦൶Ⱦ
IICFn ← 0XH
䇴ᇐSTCENnૂIICRSVn
䇴ᇐᔶခᶗԬȾ
䇴ᇐIICCTLn1
IICCTLn0 ← 0XX111XXB
ACKEn = WTIMn = SPIEn = 1
ࡓခ䇴ᇐ
IICCTLn0 ← 1XX111XXB
IICEn = 1
൞ሼㄥਙԄ䗉⁗ޛᕅ䇴ᇐѰ䗉࠰⁗ᕅݷ䇮I2Cᙱ㓵Ⲻ䗉࠰Ⱦ
(৸➝“13.38 ㄥਙ⁗ᕅᇺᆎಞ6(PM6)”)Ⱦ
䇴ᇐㄥਙ
⺤䇚ᙱ㓵⣬ᘷ ⌞
ᙱ㓵൞жᇐᰬ䰪༺ӄ䠀᭴⣬ᘷȾ
↙൞⺤䇚ᙱ㓵⣬ᘷȾ
No
No
STCENn = 1?
SPTn = 1
Yes
ਇ⭕INTIICAnѣᯣ?
༽ᔶခ䙐ؗȾ
(⭕ᡆ↘ڒᶗԬ)
Yes
ਇ⭕INTIICAnѣᯣ?
SPDn = 1?
No
No
ㅿᖻỶ⎁ࡦ↘ڒᶗԬȾ
Yes
Yes
Ԅኔ䘆㺂
SPDn = 1?
Yes
Ԅኔ䘆㺂
gㅿᖻެԌѱᇐԄኔ䇴༽Ⱦ
gㅿᖻ䙐ؗᔶခ䈭≸(ߩӄ⭞ᡭぁᓅ)Ⱦ
1
ᔶခѱ䘆㺂?
No
(ᰖ䙐ؗᔶခ䈭≸)
SPIEn = 0
Yes
(ᴿ䙐ؗᔶခ䈭≸)
䙐ؗㅿᖻ
No
ਇ⭕INTIICAnѣᯣ?
SPIEn = 1
No
ㅿᖻ䙐ؗ䈭≸Ⱦ
Yes
IICRSVn = 0?
No
Ԅኔ䘆㺂
Yes
A
ݷ䇮䙐ؗ人㓜Ⱦ
注
B
⾷↘䙐ؗ人㓜Ⱦ
必须确认总线在一定时间内 (例如, 1 帧)处于释放状态 (CLDn 位 =1、 DADn 位 =1)。当 SDAAn 引脚固定为
低电平时,必须根据通信中的产品的规格,判断是否释放 I2C 总线 (SCLAn 引脚和 SDAAn 引脚为高电平)。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
458
R7F0C903-908
第 12 章 串行接口 IICA
图 12-29
A
多主控系统的主控运行 (2/3)
ݷ䇮䙐ؗ人㓜Ⱦ
༽ᔶခ䙐ؗȾ
(⭕ᡆᔶခᶗԬ)
STTn = 1
䙐䗽䖥Ԭ⺤ؓㅿᖻᰬ䰪⌞Ⱦ
ㅿᖻ
MSTSn = 1?
No
Yes
䙐⨼༺ؗ
ਇ⭕INTIICAnѣᯣ?
No
ㅿᖻ䠀᭴ᙱ㓵Ⱦ
(䙐ؗ人㓜ѣ)
Yes
No
൞Ỷ⎁ࡦ↘ڒᶗԬθ䙐䗽䙐ؗ人㓜ࣕ㜳
⭕ᡆᔶခᶗԬθ❬䘑ޛㅿᖻ⣬ᘷȾ
C
EXCn = 1ᡌ㘻COIn = 1?
Yes
Ԅኔ䘆㺂
⌞ㅿᖻᰬ䰪ྸсφ
(IICWLnⲺ䇴ᇐ ٲ+ IICWHnⲺ䇴ᇐ ٲ+ 4) / fMCK + tF × 2
B
⾷↘䙐ؗ人㓜Ⱦ
IICBSYn = 0?
Yes
D
STTn = 1
ㅿᖻ
䙐⨼༺ؗ
No
STCFn = 0?
༽ᔶခ䙐ؗȾ
(⭕ᡆᔶခᶗԬ)
ㅿᖻ5ѠfMCKᰬ䫕Ⱦ
No
Yes
ਇ⭕INTIICAnѣᯣ?
No
ㅿᖻ䠀᭴ᙱ㓵Ⱦ
Yes
C
EXCn = 1ᡌ㘻COIn = 1?
No
Ỷ⎁ࡦ↘ڒᶗԬȾ
Yes
Ԅኔ䘆㺂
备注 1. IICWLn:
D
IICA 低电平宽度设定寄存器 n
IICWHn:
IICA 高电平宽度设定寄存器 n
tF:
SDAAn 信号和 SCLAn 信号的下降时间
fMCK:
IICA 运行时钟频率
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
459
R7F0C903-908
第 12 章 串行接口 IICA
图 12-29
多主控系统的主控运行 (3/3)
C
ߏIICAn
ਇ⭕INTIICAnѣᯣ?
ᔶခ䙐ؗȾ
(ᇐ൦൶ૂՖ䘷ᯯੇ)
No
ㅿᖻỶ⎁ࡦᓊㆊȾ
Yes
MSTSn = 1?
No
Yes
No
2
ACKDn = 1?
Yes
TRCn = 1?
No
ACKEn = 1
WTIMn = 0
Yes
WTIMn = 1
WRELn = 1
ߏIICAn
ᔶခਇ䘷Ⱦ
䙐⨼༺ؗ
ਇ⭕INTIICAnѣᯣ?
ਇ⭕INTIICAnѣᯣ?
No
ㅿᖻਇ䘷ᮦᦤȾ
Yes
MSTSn = 1?
No
ㅿᖻ᭬ᮦᦤȾ
Yes
MSTSn = 1?
No
No
Yes
Yes
ACKDn = 1?
ᔶခ᭬Ⱦ
2
2
䈱IICAn
No
Ֆ䘷㔉ᶕ?
No
Yes
Yes
No
Ֆ䘷㔉ᶕ?
ACKEn = 0
Yes
WTIMn = 1
䠃᯦ᔶခ?
No
WRELn = 1
SPTn = 1
Yes
STTn = 1
END
C
ਇ⭕INTIICAnѣᯣ?
Yes
MSTSn = 1?
2
Yes
䙐⨼༺ؗ
No
ㅿᖻỶ⎁ࡦᓊㆊȾ
EXCn = 1ᡌ㘻COIn = 1?
Yes
Ԅኔ䘆㺂
No
2
No
1
у৸ࣖ䙐ؗȾ
备注 1. 传送和接收的格式必须符合通信中的产品的规格。
2. 在多主控系统中用作主控设备的情况下,必须在每次发生 INTIICAn 中断时读 MSTSn 位,确认仲裁结果。
3. 在多主控系统中用作从属设备的情况下,必须在每次发生 INTIICAn 中断时通过 IICA 状态寄存器 n(IICSn)和 IICA
标志寄存器 n (IICFn)确认状态,决定以后的处理。
4. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
460
R7F0C903-908
(3)
第 12 章 串行接口 IICA
从属运行
从属运行的处理步骤如下所示。
从属运行基本上由事件驱动,因此需要通过 INTIICAn 中断进行处理 (需要对通信中的停止条件检测等的
运行状态进行很大的变更处理)。
在此说明中,假设数据通信不支持扩展码,INTIICAn 中断处理只进行状态转移处理并且实际的数据通信由
主处理部进行。
ḽᘍ
INTIICAn
ѣᯣ༺⨼
䇴ᇐㅿ
ѱ༺⨼
IICA
ᮦᦤ
䇴ᇐㅿ
因此,准备以下 3 个标志并且代替 INTIICAn 将标志传递给主处理部,进行数据通信处理。
① 通信模式标志
此标志表示以下 2 种通信状态:
•
清除模式:不在进行数据通信的状态
•
通信模式:正在进行数据通信的状态 (有效地址的检测~停止条件的检测,未检测到主控设备的
应答,地址不同)
② 就绪标志
此标志表示能进行数据通信。在通常的数据通信中,和 INTIICAn 中断相同,由中断处理部置位而由主
处理部清除。在开始通信时,由中断处理部清除标志。但是,在发送第 1 个数据时,中断处理部不将就
绪标志置位,因此在不清除标志的状态下发送第 1 个数据 (地址匹配被解释为下一次数据请求)。
③ 通信方向标志
此标志表示通信方向,和 TRCn 位的值相同。
备注
n=0
从属运行的主处理部的运行如下所示。
启动串行接口 IICA,等待变为可通信的状态。如果变为可通信的状态,就使用通信模式标志和就绪标志进
行通信 (因为通过中断进行停止条件和开始条件的处理,所以在此通过标志确认状态)。
在发送时,重复发送,直到主控设备不返回应答为止。如果主控设备不返回应答,就结束通信。
在接收时,接收所需数量的数据。如果通信结束,就在下一个数据时不返回应答。此后,主控设备生成停
止条件或者重新开始条件,从而退出通信状态。
R01UH0629CJ0120 Rev.1.20
2019.06.28
461
R7F0C903-908
第 12 章 串行接口 IICA
图 12-30
从属运行步骤 (1)
START
䀙䲚Ѩ㺂ਙIICAⲺགྷփ⣬ᘷθᔶခᨆבᰬ䫕Ⱦ
䇴ᇐPER0ᇺᆎಞ
䇴ᇐ㾷ֵ⭞Ⲻᕋ㝐ૂགྷ⭞ⲺㄥਙȾ
俌ݾሼㄥਙ䇴ᇐѰ䗉⁗ޛᕅᒬъሼ䗉࠰䬷ᆎಞ㖤“0”(৸➝“13.3.8 ㄥਙ⁗ᕅᇺᆎಞ6(PM6)”)Ⱦ
䇴ᇐㄥਙ
IICWLnȽIICWHn ← XXH
䘿Ֆ䘷ᰬ䫕Ⱦ
ࡓခ䇴ᇐ
SVAn ← XXH
䇴ᇐᵢ൦ㄏ൦൶Ⱦ
IICFn ← 0XH
䇴ᇐᔶခᶗԬȾ
䇴ᇐIICRSVn
䇴ᇐIICCTLn1
IICCTLn0 ← 0XX011XXB
ACKEn = WTIMn = 1ȽSPIEn = 0
IICCTLn0 ← 1XX011XXB
IICEn = 1
൞ሼㄥਙԄ䗉⁗ޛᕅ䇴ᇐѰ䗉࠰⁗ᕅݷ䇮I2Cᙱ㓵Ⲻ䗉࠰Ⱦ
(৸➝“13.3.8 ㄥਙ⁗ᕅᇺᆎಞ6(PM6)”)Ⱦ
䇴ᇐㄥਙ
No
䙐⁗ؗᕅḽᘍ = 1?
Yes
No
䙐ؗᯯੇḽᘍ = 1?
Yes
SPIEn = 1
ߏIICAn
ᔶခਇ䘷Ⱦ
WRELn = 1
No
ᔶခ᭬Ⱦ
䙐⁗ؗᕅḽᘍ = 1?
No
Yes
䙐⁗ؗᕅḽᘍ = 1?
No
䙐⨼༺ؗ
䙐ؗᯯੇḽᘍ = 1?
Yes
Yes
䙐ؗᯯੇḽᘍ = 1?
No
No
ቧ㔠ḽᘍ = 1?
Yes
Yes
No
ቧ㔠ḽᘍ = 1?
䲚ቧ㔠ḽᘍ
Yes
Yes
ACKDn = 1?
䈱IICAn
No
䲚䙐⁗ؗᕅḽᘍ
WRELn = 1
䲚ቧ㔠ḽᘍ
备注 1. 传送和接收的格式必须符合通信中的产品的规格。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
462
R7F0C903-908
第 12 章 串行接口 IICA
从属设备通过 INTIICAn 中断进行处理的步骤例子如下所示 (在此假设没有用扩展码进行处理) 。通过
INTIICAn 中断确认状态并且进行以下处理。
① 如果生成停止条件,就结束通信。
② 如果生成开始条件,就确认地址。如果地址不同,就结束通信。如果地址相同,就设定为通信模式并且
解除等待,然后从中断返回 (清除就绪标志)。
③ 当发送和接收数据时,只要将就绪标志置位, I2C 总线就保持等待状态并且从中断返回。
备注
上述的①~③对应 “ 图 12-31 从属运行步骤 (2)” 的①~③。
图 12-31
从属运行步骤 (2)
ӝ⭕INTIICAn
Yes
Ś
Yes
ś
SPDn = 1?
No
STDn = 1?
No
No
Ŝ
COIn = 1?
Yes
ሼቧ㔠ḽᘍ㖤փ
䙐ؗᯯੇḽᘍ←TRCn
ሼ䙐⁗ؗᕅḽᘍ㖤փ
䲚䙐ؗᯯੇḽᘍȽ
ቧ㔠ḽᘍૂ䙐⁗ؗᕅḽᘍ
䲚ቧ㔠ḽᘍ
ѣᯣ༺⨼㔉ᶕ
12.5.17
I2C 中断请求 (INTIICAn)的产生时序
数据的发送和接收时序、 INTIICAn 中断请求信号的产生时序以及产生 INTIICAn 信号时的 IICA 状态寄存
器 n (IICSn)的值如下所示。
备注 1. ST:
开始条件
AD6 ~ AD0:地址
R/W:
传送方向的指定
ACK:
应答
D7 ~ D0:
数据
SP:
停止条件
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
463
R7F0C903-908
第 12 章 串行接口 IICA
(1)
主控运行
(a)
Start ~ Address ~ Data ~ Data ~ Stop (发送和接收)
(i)
WTIMn=0 的情况
SPTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7Њ D0
2
ACK
SP
3
4
5
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×000B
▲ 3:IICSn=1000×000B (将 WTIMn 位置 “1”)注
▲ 4:IICSn=1000××00B (将 SPTn 位置 “1”)
△ 5:IICSn=00000001B
注
为了生成停止条件,必须将 WTIMn 位置 “1” 并且更改 INTIICAn 中断请求信号的产生时序。
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
(ii) WTIMn=1 的情况
SPTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
1
D7ЊD0
2
ACK
SP
3
4
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×100B
▲ 3:IICSn=1000××00B (将 SPTn 位置 “1”)
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
464
R7F0C903-908
(b)
第 12 章 串行接口 IICA
Start ~ Address ~ Data ~ Start ~ Address ~ Data ~ Stop (重新开始)
(i)
WTIMn=0 的情况
STTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
2
3
SPTn = 1
↓
AD6ЊAD0
D7ЊD0
R/W ACK
4
ACK
5
SP
6
7
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×000B (将 WTIMn 位置 “1”)注 1
▲ 3:IICSn=1000××00B (将 WTIMn 位清 “0” 注 2 并且将 STTn 位置 “1”)
▲ 4:IICSn=1000×110B
▲ 5:IICSn=1000×000B (将 WTIMn 位置 “1”)注 3
▲ 6:IICSn=1000××00B (将 SPTn 位置 “1”)
△ 7:IICSn=00000001B
注 1.
为了生成开始条件,必须将 WTIMn 位置 “1” 并且更改 INTIICAn 中断请求信号的产生时序。
2.
为了恢复原来的设定,必须将 WTIMn 位清 “0”。
3.
为了生成停止条件,必须将 WTIMn 位置 “1” 并且更改 INTIICAn 中断请求信号的产生时序。
备注
▲
△
×
一定产生
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况
STTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
2
SPTn = 1
↓
AD6ЊAD0
R/W ACK
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000××00B (将 STTn 位置 “1”)
▲ 3:IICSn=1000×110B
▲ 4:IICSn=1000××00B (将 SPTn 位置 “1”)
△ 5:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
465
R7F0C903-908
(c)
第 12 章 串行接口 IICA
Start ~ Code ~ Data ~ Data ~ Stop (发送扩展码)
(i)
WTIMn=0 的情况
SPTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
2
ACK
3
SP
4
5
▲ 1:IICSn=1010×110B
▲ 2:IICSn=1010×000B
▲ 3:IICSn=1010×000B (将 WTIMn 位置 “1”)注
▲ 4:IICSn=1010××00B (将 SPTn 位置 “1”)
△ 5:IICSn=00000001B
注
为了生成停止条件,必须将 WTIMn 位置 “1” 并且更改 INTIICAn 中断请求信号的产生时序。
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
(ii) WTIMn=1 的情况
SPTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
1
D7ЊD0
2
ACK
SP
3
4
▲ 1:IICSn=1010×110B
▲ 2:IICSn=1010×100B
▲ 3:IICSn=1010××00B (将 SPTn 位置 “1”)
△ 4:IICSn=00001001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
466
R7F0C903-908
第 12 章 串行接口 IICA
(2)
从属运行 (接收从属地址的情况)
(a)
Start ~ Address ~ Data ~ Data ~ Stop
(i)
WTIMn=0 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
2
ACK
SP
3
4
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001×000B
▲ 3:IICSn=0001×000B
△ 4:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
2
ACK
SP
3
4
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001×100B
▲ 3:IICSn=0001××00B
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
467
R7F0C903-908
(b)
第 12 章 串行接口 IICA
Start ~ Address ~ Data ~ Start ~ Address ~ Data ~ Stop
(i)
WTIMn=0 的情况 (在重新开始后 SVAn 相同)
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
AD6ЊAD0
R/W ACK
2
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001×000B
▲ 3:IICSn=0001×110B
▲ 4:IICSn=0001×000B
△ 5:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况 (在重新开始后 SVAn 相同)
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
2
AD6ЊAD0
R/W ACK
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001××00B
▲ 3:IICSn=0001×110B
▲ 4:IICSn=0001××00B
△ 5:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
468
R7F0C903-908
(c)
第 12 章 串行接口 IICA
Start ~ Address ~ Data ~ Start ~ Code ~ Data ~ Stop
(i)
WTIMn=0 的情况 (在重新开始后地址不同 (扩展码))
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
AD6ЊAD0
2
R/W ACK
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001×000B
▲ 3:IICSn=0010×010B
▲ 4:IICSn=0010×000B
△ 5:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况 (在重新开始后地址不同 (扩展码))
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
2
AD6ЊAD0
R/W ACK
3
D7ЊD0
4
ACK
SP
5
6
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001××00B
▲ 3:IICSn=0010×010B
▲ 4:IICSn=0010×110B
▲ 5:IICSn=0010××00B
△ 6:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
469
R7F0C903-908
(d)
第 12 章 串行接口 IICA
Start ~ Address ~ Data ~ Start ~ Address ~ Data ~ Stop
(i)
WTIMn=0 的情况 (在重新开始后地址不同 (非扩展码))
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
AD6ЊAD0
R/W ACK
2
D7ЊD0
ACK
SP
3
4
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001×000B
▲ 3:IICSn=00000×10B
△ 4:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
(ii) WTIMn=1 的情况 (在重新开始后地址不同 (非扩展码))
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
2
AD6ЊAD0
R/W ACK
D7ЊD0
3
ACK
SP
4
▲ 1:IICSn=0001×110B
▲ 2:IICSn=0001××00B
▲ 3:IICSn=00000×10B
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
470
R7F0C903-908
(3)
第 12 章 串行接口 IICA
从属运行 (接收扩展码的情况)
在接收扩展码时,始终参加通信。
(a)
Start ~ Code ~ Data ~ Data ~ Stop
(i)
WTIMn=0 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
2
ACK
SP
3
4
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×000B
▲ 3:IICSn=0010×000B
△ 4:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况
ST
AD6ЊAD0
R/W ACK
1
D7ЊD0
2
ACK
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×110B
▲ 3:IICSn=0010×100B
▲ 4:IICSn=0010××00B
△ 5:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
471
R7F0C903-908
(b)
第 12 章 串行接口 IICA
Start ~ Code ~ Data ~ Start ~ Address ~ Data ~ Stop
(i)
WTIMn=0 的情况 (在重新开始后 SVAn 相同)
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
AD6ЊAD0
R/W ACK
2
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×000B
▲ 3:IICSn=0001×110B
▲ 4:IICSn=0001×000B
△ 5:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况 (在重新开始后 SVAn 相同)
ST
AD6ЊAD0
R/W ACK
1
D7ЊD0
2
ACK
ST
3
AD6ЊAD0
R/W ACK
D7ЊD0
4
ACK
SP
5
6
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×110B
▲ 3:IICSn=0010××00B
▲ 4:IICSn=0001×110B
▲ 5:IICSn=0001××00B
△ 6:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
472
R7F0C903-908
(c)
第 12 章 串行接口 IICA
Start ~ Code ~ Data ~ Start ~ Code ~ Data ~ Stop
(i)
WTIMn=0 的情况 (在重新开始后接收扩展码)
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
AD6ЊAD0
2
R/W ACK
D7ЊD0
3
ACK
SP
4
5
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×000B
▲ 3:IICSn=0010×010B
▲ 4:IICSn=0010×000B
△ 5:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况 (在重新开始后接收扩展码)
ST
AD6ЊAD0
R/W ACK
1
D7ЊD0
2
ACK
ST
3
AD6ЊAD0
R/W ACK
4
D7ЊD0
5
ACK
SP
6
7
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×110B
▲ 3:IICSn=0010××00B
▲ 4:IICSn=0010×010B
▲ 5:IICSn=0010×110B
▲ 6:IICSn=0010××00B
△ 7:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
473
R7F0C903-908
(d)
第 12 章 串行接口 IICA
Start ~ Code ~ Data ~ Start ~ Address ~ Data ~ Stop
(i)
WTIMn=0 的情况 (在重新开始后地址不同 (非扩展码))
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
ST
AD6ЊAD0
R/W ACK
2
D7ЊD0
ACK
SP
3
4
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×000B
▲ 3:IICSn=00000×10B
△ 4:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
(ii) WTIMn=1 的情况 (在重新开始后地址不同 (非扩展码))
ST
AD6ЊAD0
R/W ACK
1
D7ЊD0
2
ACK
ST
3
AD6ЊAD0
R/W ACK
D7ЊD0
4
ACK
SP
5
▲ 1:IICSn=0010×010B
▲ 2:IICSn=0010×110B
▲ 3:IICSn=0010××00B
▲ 4:IICSn=00000×10B
△ 5:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
474
R7F0C903-908
第 12 章 串行接口 IICA
(4)
不参加通信的运行
(a)
Start ~ Code ~ Data ~ Data ~ Stop
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
D7ЊD0
ACK
SP
1
△ 1:IICSn=00000001B
△:只在 SPIEn 位为 “1” 时产生。
备注
(5)
仲裁失败的运行 (在仲裁失败后作为从属设备运行)
在多主控系统中用作主控设备时,必须在每次产生 INTIICAn 中断请求信号时读 MSTSn 位,确认仲裁结果。
(a)
在发送从属地址数据的过程中仲裁失败的情况
(i)
WTIMn=0 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
2
D7ЊD0
ACK
3
SP
4
▲ 1:IICSn=0101×110B
▲ 2:IICSn=0001×000B
▲ 3:IICSn=0001×000B
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
475
R7F0C903-908
第 12 章 串行接口 IICA
(ii) WTIMn=1 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
1
D7ЊD0
ACK
2
SP
3
4
▲ 1:IICSn=0101×110B
▲ 2:IICSn=0001×100B
▲ 3:IICSn=0001××00B
△ 4:IICSn=00000001B
备注
(b)
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
在发送扩展码的过程中仲裁失败的情况
(i)
WTIMn=0 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
2
D7ЊD0
ACK
3
SP
4
▲ 1:IICSn=0110×010B
▲ 2:IICSn=0010×000B
▲ 3:IICSn=0010×000B
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
476
R7F0C903-908
第 12 章 串行接口 IICA
(ii) WTIMn=1 的情况
ST
AD6ЊAD0
R/W ACK
1
D7ЊD0
ACK
2
D7ЊD0
ACK
3
SP
4
5
▲ 1:IICSn=0110×010B
▲ 2:IICSn=0010×110B
▲ 3:IICSn=0010×100B
▲ 4:IICSn=0010××00B
△ 5:IICSn=00000001B
备注
(6)
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
仲裁失败的运行 (在仲裁失败后不参加通信)
在多主控系统中用作主控设备时,必须在每次产生 INTIICAn 中断请求信号时读 MSTSn 位,确认仲裁结果。
(a)
在发送从属地址数据的过程中仲裁失败的情况 (WTIMn=1)
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
ACK
SP
2
▲ 1:IICSn=01000110B
△ 2:IICSn=00000001B
备注
备注
▲
△
一定产生。
只在 SPIEn位为 “1” 时产生。
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
477
R7F0C903-908
(b)
第 12 章 串行接口 IICA
在发送扩展码的过程中仲裁失败的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
D7ЊD0
ACK
SP
1
2
▲ 1:IICSn=0110×010B
通过软件将 LRELn 位置 “1”。
△ 2:IICSn=00000001B
备注
(c)
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
在传送数据时仲裁失败的情况
(i)
WTIMn=0 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
2
D7ЊD0
ACK
SP
3
▲ 1:IICSn=10001110B
▲ 2:IICSn=01000000B
△ 3:IICSn=00000001B
备注
备注
▲
△
一定产生。
只在 SPIEn位为 “1” 时产生。
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
478
R7F0C903-908
第 12 章 串行接口 IICA
(ii) WTIMn=1 的情况
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
1
D7ЊD0
ACK
SP
2
3
▲ 1:IICSn=10001110B
▲ 2:IICSn=01000100B
△ 3:IICSn=00000001B
备注
(d)
▲
△
一定产生。
只在 SPIEn位为 “1” 时产生。
在传送数据时因重新开始条件而仲裁失败的情况
(i)
非扩展码 (例如, SVAn 不同)
ST
AD6ЊAD0
R/W ACK
D7ЊDm
1
ST
AD6ЊAD0
R/W ACK
D7ЊD0
2
ACK
SP
3
▲ 1:IICSn=1000×110B
▲ 2:IICSn=01000110B
△ 3:IICSn=00000001B
备注
备注
▲ 一定产生。
△ 只在 SPIEn位为 “1” 时产生。
× 任意
m=6~ 0
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
479
R7F0C903-908
第 12 章 串行接口 IICA
(ii) 扩展码
ST
AD6ЊAD0
R/W ACK
D7ЊDm
ST
AD6ЊAD0
1
R/W ACK
2
D7ЊD0
ACK
SP
3
▲ 1:IICSn=1000×110B
▲ 2:IICSn=01100010B
通过软件将 LRELn 位置 “1”。
△ 3:IICSn=00000001B
备注
(e)
▲ 一定产生。
△ 只在 SPIEn位为 “1” 时产生。
× 任意
m=6~ 0
在传送数据时因停止条件而仲裁失败的情况
ST
AD6ЊAD0
R/W ACK
D7ЊDm
1
SP
2
▲ 1:IICSn=10000110B
△ 2:IICSn=01000001B
备注
备注
▲ 一定产生。
△ 只在 SPIEn位为“1” 时产生。
× 任意
m=6~0
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
480
R7F0C903-908
(f)
第 12 章 串行接口 IICA
在想要生成重新开始条件时因数据为低电平而仲裁失败的情况
(i)
WTIMn=0 的情况
STTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
2
D7ЊD0
3
D7ЊD0
ACK
ACK
SP
4
5
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×000B (将 WTIMn 位置 “1”)
▲ 3:IICSn=1000×100B (将 WTIMn 位清 “0”)
▲ 4:IICSn=01000000B
△ 5:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况
STTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
2
D7ЊD0
ACK
3
ACK
SP
4
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×100B (将 STTn 位置 “1”)
▲ 3:IICSn=01000100B
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为“1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
481
R7F0C903-908
(g)
第 12 章 串行接口 IICA
在想要生成重新开始条件时因停止条件而仲裁失败的情况
(i)
WTIMn=0 的情况
STTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
2
SP
3
4
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×000B (将 WTIMn 位置 “1”)
▲ 3:IICSn=1000××00B (将 STTn 位置 “1”)
△ 4:IICSn=01000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况
STTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
ACK
1
SP
2
3
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000××00B (将 STTn 位置 “1”)
△ 3:IICSn=01000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
482
R7F0C903-908
(h)
第 12 章 串行接口 IICA
在想要生成停止条件时因数据为低电平而仲裁失败的情况
(i)
WTIMn=0 的情况
SPTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
2
D7ЊD0
D7ЊD0
ACK
3
ACK
SP
4
5
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×000B (将 WTIMn 位置 “1”)
▲ 3:IICSn=1000×100B (将 WTIMn 位清 “0”)
▲ 4:IICSn=01000100B
△ 5:IICSn=00000001B
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
(ii) WTIMn=1 的情况
SPTn = 1
↓
ST
AD6ЊAD0
R/W ACK
D7ЊD0
1
ACK
D7ЊD0
2
D7ЊD0
ACK
3
ACK
SP
4
▲ 1:IICSn=1000×110B
▲ 2:IICSn=1000×100B (将 SPTn 位置 “1”)
▲ 3:IICSn=01000100B
△ 4:IICSn=00000001B
备注
备注
▲
△
×
一定产生。
只在 SPIEn位为 “1” 时产生。
任意
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
483
R7F0C903-908
12.6
第 12 章 串行接口 IICA
时序图
在 I2C 总线模式中,主控设备通过给串行总线输出地址,从多个从属设备中选择一个通信对象的从属设备。
主控设备在从属设备地址之后发送表示数据传送方向的 TRCn 位 (IICA 状态寄存器 n (IICSn)的 bit3),
开始与从属设备进行串行通信。
数据通信的时序图如图 12-32 和图 12-33 所示。
与串行时钟(SCLAn)的下降沿同步进行 IICA 移位寄存器 n(IICAn)的移位,并且将发送数据传送到 SO
锁存器,以 MSB 优先从 SDAAn 引脚输出数据。
在 SCLAn 的上升沿将 SDAAn 引脚输入的数据取到 IICAn。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
484
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 主控设备 → 从属设备的通信例子
(主控设备:选择 9 个时钟的等待,从属设备:选择 9 个时钟的等待)(1/4)
(1)
开始条件~地址~数据
ѱᯯ
⌞1
IICAn
Ş
ś
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
H
MSTSn
(䙐ؗ⣬ᘷ)
STTn
(ST䀜ਇ)
Ś
SPTn
(SP䀜ਇ)
L
WRELn
(䀙䲚ㅿᖻ)
L
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
ᔶခᶗԬ
ᙱ㓵
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
ŝ
⌞2
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
AD6
AD5
AD4
AD3 AD2
Ԅኔ൦൶
AD1
AD0
ACK
W
D17
Ŝ
Ԅኔᯯ
IICAn
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
SPDn
(SPỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
H
L
⌞3
ş
WRELn
(䀙䲚ㅿᖻ)
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
L
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 要解除主控方发送期间的等待时,必须给 IICAn 写数据而不是将 WRELn 位置位。
2. 从 SDAAn 引脚信号下降到 SCLAn 引脚信号下降的时间,在设定为标准模式时至少为 4.0μs,在设定为快速模式时
至少为 0.6μs。
3. 要解除从属方接收期间的等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
485
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 的 “(1) 开始条件~地址~数据 ” 的①~⑥的说明如下:
① 如果在主控方将开始条件触发置位 (STTn=1),总线数据线 (SDAAn)就下降,生成开始条件 (通
过 SCLAn=1 使 SDAAn 从 “1” 变为 “0”) 。此后,如果检测到开始条件,主控方就进入主控通信状态
(MSTSn=1),在经过保持时间后总线时钟线下降 (SCLAn=0),结束通信准备。
② 如果主控方给 IICA 移位寄存器 n (IICAn)写地址 +W (发送),就发送从属地址。
③ 在从属方,如果接收地址和本地站地址 (SVAn 的值)相同注,就通过硬件给主控方发送 ACK。主控
方在第 9 个时钟的上升沿检测到 ACK (ACKDn=1)。
④ 主控方在第 9 个时钟的下降沿产生中断 (INTIICAn:地址发送结束中断)。相同地址的从属设备进入
等待状态 (SCLAn=0),并且产生中断 (INTIICAn:地址匹配中断)注。
⑤ 主控方给 IICAn 寄存器写发送数据,解除主控方的等待。
⑥ 如果从属方解除等待 (WRELn=1),主控方就开始给从属方传送数据。
注
如果发送的地址和从属地址不同,从属方就不给主控方返回 ACK (NACK:SDAAn=1),并且不产生 INTIICAn 中
断 (地址匹配中断),也不进入等待状态。
但是,主控方对于ACK和NACK 都产生 INTIICAn中断 (地址发送结束中断)。
备注 1. 图 12-32 的①~
是通过 I2C 总线进行数据通信的一系列运行步骤。
图 12-32 的 “(1) 开始条件~地址~数据 ” 说明步骤①~⑥。
图 12-32 的 “(2) 地址~数据~数据 ” 说明步骤③~⑩。
图 12-32 的 “(3) 数据~数据~停止条件 ” 说明步骤⑦~
。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
486
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 主控设备 → 从属设备的通信例子
(主控设备:选择 9 个时钟的等待,从属设备:选择 9 个时钟的等待)(2/4)
(2)
地址~数据~数据
ѱᯯ
⌞1
IICAn
⌞1
Ş
Ţ
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
H
MSTSn
(䙐ؗ⣬ᘷ)
H
STTn
(ST䀜ਇ)
L
SPTn
(SP䀜ਇ)
L
WRELn
(䀙䲚ㅿᖻ)
L
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
H
ᙱ㓵
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
š
ŝ
W ACK
Ŝ
D17
D16
D 15
D14
D1 3
D12
D11
D10 ACK
Š
D27
Ԅኔᯯ
IICAn
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
SPDn
(SPỶ⎁)
L
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
H
L
WRELn
(䀙䲚ㅿᖻ)
ş
⌞2
ţ
⌞2
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
L
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 要解除主控方发送期间的等待时,必须给 IICAn 写数据而不是将 WRELn 位置位。
2. 要解除从属方接收期间的等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
487
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 的 “(2) 地址~数据~数据 ” 的③~⑩的说明如下:
③ 在从属方,如果接收地址和本地站地址 (SVAn 的值)相同注,就通过硬件给主控方发送 ACK。主控
方在第 9 个时钟的上升沿检测到 ACK (ACKDn=1)。
④ 主控方在第 9 个时钟的下降沿产生中断 (INTIICAn:地址发送结束中断)。相同地址的从属设备进入
等待状态 (SCLAn=0),并且产生中断 (INTIICAn:地址匹配中断)注。
⑤ 主控方给 IICA 移位寄存器 n (IICAn)写发送数据,解除主控方的等待。
⑥ 如果从属方解除等待 (WRELn=1),主控方就开始给从属方传送数据。
⑦ 在数据传送结束后,因为从属方的 ACKEn 位为 “1”,所以通过硬件给主控方发送 ACK。主控方在第 9
个时钟的上升沿检测到 ACK (ACKDn=1)。
⑧ 主控方和从属方在第 9 个时钟的下降沿进入等待状态 (SCLAn=0),并且都产生中断 (INTIICAn:传
送结束中断)。
⑨ 主控方给 IICAn 寄存器写发送数据,解除主控方的等待。
⑩ 如果从属方读接收数据并且解除等待 (WRELn=1),主控方就开始给从属方传送数据。
注
如果发送的地址和从属地址不同,从属方就不给主控方返回 ACK (NACK:SDAAn=1),并且不产生 INTIICAn 中
断 (地址匹配中断),也不进入等待状态。
但是,主控方对于ACK和NACK 都产生 INTIICAn中断 (地址发送结束中断)。
备注 1. 图 12-32 的①~
是通过 I2C 总线进行数据通信的一系列运行步骤。
图 12-32 的 “(1) 开始条件~地址~数据 ” 说明步骤①~⑥。
图 12-32 的 “(2) 地址~数据~数据 ” 说明步骤③~⑩。
图 12-32 的 “(3) 数据~数据~停止条件 ” 说明步骤⑦~
。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
488
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 主控设备 → 从属设备的通信例子
(主控设备:选择 9 个时钟的等待,从属设备:选择 9 个时钟的等待)(3/4)
(3)
数据~数据~停止条件
ѱᯯ
⌞1
IICAn
Ţ
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
H
MSTSn
(䙐ؗ⣬ᘷ)
STTn
(ST䀜ਇ)
L
SPTn
(SP䀜ਇ)
WRELn
(䀙䲚ㅿᖻ)
L
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
↘ڒᶗԬ
ᙱ㓵
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
š
D150 ACK
Š
⌞2
D167
D166
D165
D164
D163
D162
D161
D160 ACK
Ԅኔᯯ
IICAn
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
L
SPDn
(SPỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
H
L
WRELn
(䀙䲚ㅿᖻ)
ţ
⌞3
⌞3
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
L
φѱ䇴༽Ⲻㅿᖻ
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 要解除主控方发送期间的等待时,必须给 IICAn 写数据而不是将 WRELn 位置位。
2. 在发行停止条件后,从 SCLAn 引脚信号上升到生成停止条件的时间,在设定为标准模式时至少为 4.0μs,在设定
为快速模式时至少为 0.6μs。
3. 要解除从属方接收期间的等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
489
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 的 “(3) 数据~数据~停止条件 ” 的⑦~
的说明如下:
⑦ 在数据传送结束后,因为从属方的 ACKEn 位为 “1”,所以通过硬件给主控方发送 ACK。主控方在第 9
个时钟的上升沿检测到 ACK (ACKDn=1)。
⑧ 主控方和从属方在第 9 个时钟的下降沿进入等待状态 (SCLAn=0),并且都产生中断 (INTIICAn:传
送结束中断)。
⑨ 主控方给 IICA 移位寄存器 n (IICAn)写发送数据,解除主控方的等待。
⑩ 如果从属方读接收数据并且解除等待 (WRELn=1),主控方就开始给从属方传送数据。
在数据传送结束后,从属方 (ACKEn=1)通过硬件给主控方发送 ACK。主控方在第 9 个时钟的上升沿
检测到 ACK (ACKDn=1)。
主控方和从属方在第 9 个时钟的下降沿进入等待状态 (SCLAn=0),并且都产生中断 (INTIICAn:传
送结束中断)。
从属方读接收数据,解除等待 (WRELn=1)。
如果在主控方将停止条件触发置位 (SPTn=1) ,就清除总线数据线 (SDAAn=0)并且将总线时钟线
置位 (SCLAn=1) ,在经过停止条件的准备时间后将总线数据线置位 (SDAAn=1) ,生成停止条件
(通过SCLAn=1 使 SDAAn 从 “0” 变为 “1”)。
如果生成停止条件,从属方就检测到停止条件并且产生中断 (INTIICAn:停止条件中断)。
备注 1. 图 12-32 的①~
是通过 I2C 总线进行数据通信的一系列运行步骤。
图 12-32 的 “(1) 开始条件~地址~数据 ” 说明步骤①~⑥。
图 12-32 的 “(2) 地址~数据~数据 ” 说明步骤③~⑩。
图 12-32 的 “(3) 数据~数据~停止条件 ” 说明步骤⑦~
。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
490
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 主控设备 → 从属设备的通信例子
(主控设备:选择 9 个时钟的等待,从属设备:选择 9 个时钟的等待)(4/4)
(4)
数据~重新开始条件~地址
ѱᯯ
IICAn
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
H
MSTSn
(䙐ؗ⣬ᘷ)
H
STTn
(ST䀜ਇ)
SPTn
(SP䀜ਇ)
L
WRELn
(䀙䲚ㅿᖻ)
L
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
H
䠃᯦ᔶခᶗԬ
ᙱ㓵
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
š
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
D13
D12
D11
D 10
ACK
⌞1
Š
AD6
AD5
AD4
AD3
AD2
AD1
Ԅኔ൦൶
Ԅኔᯯ
IICAn
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
SPDn
(SPỶ⎁)
L
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
H
MSTSn
(䙐ؗ⣬ᘷ)
WRELn
(䀙䲚ㅿᖻ)
L
⌞2
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
L
φѱ䇴༽Ⲻㅿᖻ
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 在发行重新开始条件后,从 SCLAn 引脚信号上升到生成开始条件的时间,在设定为标准模式时至少为 4.7μs,在
设定为快速模式时至少为 0.6μs。
2. 要解除从属方接收期间的等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
491
R7F0C903-908
第 12 章 串行接口 IICA
图 12-32 的 “(4) 数据~重新开始条件~地址 ” 的运行说明如下。在执行步骤⑦和⑧后执行 ~ ,从
而返回到步骤③的数据发送步骤。
⑦ 在数据传送结束后,因为从属方的 ACKEn 位为 “1”,所以通过硬件给主控方发送 ACK。主控方在第 9
个时钟的上升沿检测到 ACK (ACKDn=1)。
⑧ 主控方和从属方在第 9 个时钟的下降沿进入等待状态 (SCLAn=0),并且都产生中断 (INTIICAn:传
送结束中断)。
从属方读接收数据,解除等待 (WRELn=1)。
如果在主控方再次将开始条件触发置位 (STTn=1),总线时钟线就上升 (SCLAn=1),而且在经过重
新开始条件的准备时间后总线数据线下降 (SDAAn=0),生成开始条件 (通过 SCLAn=1 使 SDAAn 从
“1” 变为 “0”)。然后,如果检测到开始条件,就在经过保持时间后总线时钟线下降 (SCLAn=0),结
束通信准备。
如果主控方给 IICA 移位寄存器 n (IICAn)写地址 +R/W (发送),就发送从属地址。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
492
R7F0C903-908
第 12 章 串行接口 IICA
图 12-33 从属设备 → 主控设备的通信例子
(主控设备:选择 8 个时钟的等待,从属设备:选择 9 个时钟的等待)(1/3)
(1)
开始条件~地址~数据
ѱᯯ
IICAn
ś
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
ACKEn
(ACK)
Ş
H
MSTSn
(䙐ؗ⣬ᘷ)
STTn
(ST䀜ਇ)
Ś
SPTn
(SP䀜ਇ)
L
WRELn
(䀙䲚ㅿᖻ)
Š
⌞1
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
ᙱ㓵
ᔶခᶗԬ
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
⌞2
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
ŝ
AD6
AD5
AD4
AD3
Ԅኔ൦൶
AD2
AD1
AD0
ACK
R
D 17
Ŝ
Ԅኔᯯ
⌞3
ş
IICAn
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
SPDn
(SPỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
WRELn
(䀙䲚ㅿᖻ)
H
H
L
L
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
φѱ䇴༽Ⲻㅿᖻ
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 要解除主控方接收期间的等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
2. 从 SDAAn 引脚信号下降到 SCLAn 引脚信号下降的时间,在设定为标准模式时至少为 4.0μs,在设定为快速模式时
至少为 0.6μs。
3. 要解除从属方发送期间的等待时,必须给 IICAn 写数据而不是将 WRELn 位置位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
493
R7F0C903-908
第 12 章 串行接口 IICA
图 12-33 的 “(1) 开始条件~地址~数据 ” 的①~⑦的说明如下:
① 如果在主控方将开始条件触发置位 (STTn=1),总线数据线 (SDAAn)就下降,生成开始条件 (通
过 SCLAn=1 使 SDAAn 从 “1” 变为 “0”) 。此后,如果检测到开始条件,主控方就进入主控通信状态
(MSTSn=1),在经过保持时间后总线时钟线下降 (SCLAn=0),结束通信准备。
② 如果主控方给 IICA 移位寄存器 n (IICAn)写地址 +R (接收),就发送从属地址。
③ 在从属方,如果接收地址和本地站地址 (SVAn 的值)相同注,就通过硬件给主控方发送 ACK。主控
方在第 9 个时钟的上升沿检测到 ACK (ACKDn=1)。
④ 主控方在第 9 个时钟的下降沿产生中断 (INTIICAn:地址发送结束中断)。相同地址的从属设备进入
等待状态 (SCLAn=0),并且产生中断 (INTIICAn:地址匹配中断)注。
⑤ 主控方将等待时序改为第 8 个时钟 (WTIMn=0)。
⑥ 从属方给 IICAn 寄存器写发送数据,解除从属方的等待。
⑦ 主控方解除等待 (WRELn=1),开始来自从属设备的数据传送。
注
如果发送的地址和从属地址不同,从属方就不给主控方返回 ACK (NACK:SDAAn=1),并且不产生 INTIICAn 中
断 (地址匹配中断),也不进入等待状态。
但是,主控方对于ACK和NACK 都产生 INTIICAn中断 (地址发送结束中断)。
备注 1. 图 12-33 的①~
是通过 I2C 总线进行数据通信的一系列运行步骤。
图 12-33 的 “(1) 开始条件~地址~数据 ” 说明步骤①~⑦。
图 12-33 的 “(2) 地址~数据~数据 ” 说明步骤③~
。
图 12-33 的 “(3) 数据~数据~停止条件 ” 说明步骤⑧~
。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
494
R7F0C903-908
第 12 章 串行接口 IICA
图 12-33 从属设备 → 主控设备的通信例子
(主控设备:选择 8 个时钟的等待,从属设备:选择 9 个时钟的等待)(2/3)
(2)
地址~数据~数据
ѱᯯ
IICAn
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
ACKEn
(ACK)
H
MSTSn
(䙐ؗ⣬ᘷ)
H
STTn
(ST䀜ਇ)
L
SPTn
(SP䀜ਇ)
L
WRELn
(䀙䲚ㅿᖻ)
⌞1
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
⌞1
Š
Ţ
L
ᙱ㓵
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
š
ŝ
R ACK
Ŝ
D17
D16
D 15
D 14
D1 3
D12
D11
D10
ACK
D27
ţ
Ԅኔᯯ
⌞2
IICAn
⌞2
ş
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
SPDn
(SPỶ⎁)
L
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
H
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
H
WRELn
(䀙䲚ㅿᖻ)
L
L
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
H
φѱ䇴༽Ⲻㅿᖻ
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 要解除主控方接收期间的等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
2. 要解除从属方发送期间的等待时,必须给 IICAn 写数据而不是将 WRELn 位置位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
495
R7F0C903-908
第 12 章 串行接口 IICA
图 12-33 的 “(2) 地址~数据~数据 ” 的③~
的说明如下:
③ 在从属方,如果接收地址和本地站地址 (SVAn 的值)相同注,就通过硬件给主控方发送 ACK。主控
方在第 9 个时钟的上升沿检测到 ACK (ACKDn=1)。
④ 主控方在第 9 个时钟的下降沿产生中断 (INTIICAn:地址发送结束中断)。相同地址的从属设备进入
等待状态 (SCLAn=0),并且产生中断 (INTIICAn:地址匹配中断)注。
⑤ 主控方将等待时序改为第 8 个时钟 (WTIMn=0)。
⑥ 从属方给 IICA 移位寄存器 n (IICAn)写发送数据,解除从属方的等待。
⑦ 主控方解除等待 (WRELn=1),开始来自从属设备的数据传送。
⑧ 主控方在第 8 个时钟的下降沿进入等待状态 (SCLAn=0) ,并且产生中断 (INTIICAn:传送结束中
断)。因为主控方的 ACKEn 位为 “1”,所以通过硬件给从属方发送 ACK。
⑨ 主控方读接收数据,解除等待 (WRELn=1)。
⑩ 从属方在第 9 个时钟的上升沿检测到 ACK (ACKDn=1)。
从属方在第9个时钟的下降沿进入等待状态(SCLAn=0),并且产生中断(INTIICAn:传送结束中断)。
如果从属方给 IICAn 寄存器写发送数据,就解除从属方的等待,开始从属方到主控方的数据传送。
注
如果发送的地址和从属地址不同,从属方就不给主控方返回 ACK (NACK:SDAAn=1),并且不产生 INTIICAn 中
断 (地址匹配中断),也不进入等待状态。
但是,主控方对于ACK和NACK 都产生 INTIICAn中断 (地址发送结束中断)。
备注 1. 图 12-33 的①~
是通过 I2C 总线进行数据通信的一系列运行步骤。
图 12-33 的 “(1) 开始条件~地址~数据 ” 说明步骤①~⑦。
图 12-33 的 “(2) 地址~数据~数据 ” 说明步骤③~
。
图 12-33 的 “(3) 数据~数据~停止条件 ” 说明步骤⑧~
。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
496
R7F0C903-908
第 12 章 串行接口 IICA
图 12-33 从属设备 → 主控设备的通信例子
(主控设备:选择 8 个 →9 个时钟的等待,从属设备:选择 9 个时钟的等待)(3/3)
(3)
数据~数据~停止条件
ѱᯯ
IICAn
ACKDn
(ACKỶ⎁)
WTIMn
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
STTn
(ST䀜ਇ)
SPTn
(SP䀜ਇ)
L
WRELn
(䀙䲚ㅿᖻ)
INTIICAn
(ѣᯣ)
TRCn
(ਇ䘷᭬)
⌞1
⌞1
Ţ
L
↘ڒᶗԬ
ᙱ㓵
SCLAn (ᙱ㓵)
(ᰬ䫕㓵)
SDAAn (ᙱ㓵)
(ᮦᦤ㓵)
š
D150
D167
ACK
D166
D165
D164
D163
D162
D161
D160
NACK
⌞2
ţ
Ԅኔᯯ
⌞3
IICAn
ACKDn
(ACKỶ⎁)
STDn
(STỶ⎁)
SPDn
(SPỶ⎁)
L
WTIMn
H
(8Ѡᡌ㘻9Ѡᰬ䫕Ⲻㅿᖻ)
ACKEn
(ACK)
MSTSn
(䙐ؗ⣬ᘷ)
WRELn
(䀙䲚ㅿᖻ)
INTIICAn
(ѣᯣ)
H
L
⌞1Ƚ4
TRCn
(ਇ䘷᭬)
⌞4
φѱ䇴༽Ⲻㅿᖻ
φԄኔ䇴༽Ⲻㅿᖻ
φѱ䇴༽ૂԄኔ䇴༽Ⲻㅿᖻ
注
1. 要解除等待时,必须将 IICAn 置 “FFH” 或者将 WRELn 位置位。
2. 在发行停止条件后,从 SCLAn 引脚信号上升到生成停止条件的时间,在设定为标准模式时至少为 4.0μs,在设定
为快速模式时至少为 0.6μs。
3. 要解除从属方发送期间的等待时,必须给 IICAn 写数据而不是将 WRELn 位置位。
4. 在从属方的发送期间,如果通过 WRELn 位的置位来解除等待,就清除 TRCn 位。
备注
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
497
R7F0C903-908
第 12 章 串行接口 IICA
图 12-33 的 “(3) 数据~数据~停止条件 ” 的⑧~
的说明如下:
⑧ 主控方在第 8 个时钟的下降沿进入等待状态 (SCLAn=0) ,并且产生中断 (INTIICAn:传送结束中
断)。因为主控方的 ACKEn 位为 “0”,所以通过硬件给从属方发送 ACK。
⑨ 主控方读接收数据,解除等待 (WRELn=1)。
⑩ 从属方在第 9 个时钟的上升沿检测到 ACK (ACKDn=1)。
从属方在第9个时钟的下降沿进入等待状态(SCLAn=0),并且产生中断(INTIICAn:传送结束中断)。
如果从属方给 IICA 移位寄存器 n(IICAn)写发送数据,就解除从属方的等待,开始从属方到主控方的
数据传送。
主控方在第8个时钟的下降沿产生中断(INTIICAn:传送结束中断),并且进入等待状态(SCLAn=0)。
因为进行 ACK控制 (ACKEn=1),所以此阶段的总线数据线变为低电平 (SDAAn=0)。
主控方设定为 NACK 应答 (ACKEn=0),并且将等待时序改为第 9 个时钟 (WTIMn=1)。
如果主控方解除等待 (WRELn=1),从属方就在第 9 个时钟的上升沿检测到 NACK (ACKDn=0)。
主控方和从属方在第 9 个时钟的下降沿进入等待状态 (SCLAn=0),并且都产生中断 (INTIICAn:传
送结束中断)。
如果主控方发行停止条件 (SPTn=1),就清除总线数据线 (SDAAn=0),并且解除主控方的等待。此
后,主控方处于待机状态,直到将总线时钟线置位 (SCLAn=1)为止。
从属方在确认 NACK 后停止发送,为了结束通信,解除等待 (WRELn=1)。如果解除从属方的等待,
就将总线时钟线置位 (SCLAn=1)。
如果主控方确认到总线时钟线被置位 (SCLAn=1),就在经过停止条件准备时间后将总线数据线置位
(SDAAn=1),然后发行停止条件 (通过 SCLAn=1 使 SDAAn 从 “0” 变为 “1”)。如果生成停止条件,从
属方就检测到停止条件,并且产生中断 (INTIICAn:停止条件中断)。
备注 1. 图 12-33 的①~
是通过 I2C 总线进行数据通信的一系列运行步骤。
图 12-33 的 “(1) 开始条件~地址~数据 ” 说明步骤①~⑦。
图 12-33 的 “(2) 地址~数据~数据 ” 说明步骤③~
。
图 12-33 的 “(3) 数据~数据~停止条件 ” 说明步骤⑧~
。
2. n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
498
R7F0C903-908
第 13 章 乘除器和乘加器
第 13 章
13.1
乘除器和乘加器
乘除器和乘加器的功能
乘除器和乘加器有以下功能:
•
16 位 ×16 位 =32位 (无符号)
•
16 位 ×16 位 =32位 (带符号)
•
16 位 ×16 位 +32位 =32 位 (无符号)
•
16 位 ×16 位 +32位 =32 位 (带符号)
•
32 位 ÷32 位 =32位、余数 32 位 (无符号)
13.2
乘除器和乘加器的结构
乘除器和乘加器由以下硬件构成。
表 13-1
乘除器和乘加器的结构
项目
寄存器
结构
乘除数据寄存器 A (L)(MDAL)
乘除数据寄存器 A (H)(MDAH)
乘除数据寄存器 B (L)(MDBL)
乘除数据寄存器 B (H)(MDBH)
乘除数据寄存器 C (L)(MDCL)
乘除数据寄存器 C (H)(MDCH)
控制寄存器
乘除控制寄存器 (MDUC)
乘除器和乘加器的框图如图 13-1 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
499
R7F0C903-908
第 13 章 乘除器和乘加器
图 13-1
乘除器和乘加器的框图
䜞ᙱ㓵
Ҏ⌋䘆㇍㔉᷒ (〥)
Ҏࣖ䘆㇍ᰬⲺҎ⌋䘆㇍㔉᷒ (〥)
䲚⌋䘆㇍㔉᷒
(֏ᮦ)
Ҏࣖ䘆㇍㔉᷒
(㍥ࣖ)ٲ
Ҏ䲚ᮦᦤᇺᆎಞ B
MDBH
Ҏ䲚ᮦᦤᇺᆎಞ C
MDCH
MDBL
MDCL
Ҏ䲚ᇺᆎಞ
(MDUC)
䲚⌋䘆㇍㔉᷒
()
Ҏ䲚ᮦᦤᇺᆎಞ A
MDAH
DIVMODE MACMODE MDSM MACOF MACSF DIVST
MDAL
ᔶခ
3
2
INTMD
㻡Ҏᮦ
䲚ᮦ
Ҏᮦ
㻡䲚ᮦ
䲚
⭫䐥
⭫䐥
䇗ᮦಞ
fCLK
Ҏ䲚䘆㇍䜞
ࣖ⌋䘆㇍䜞
⭫䐥
䲚⌋䘆㇍ᰬⲺᮦᦤ⍷
Ҏ⌋ૂҎࣖ䘆㇍ᰬⲺᮦᦤ⍷
备注
fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
500
R7F0C903-908
13.2.1
第 13 章 乘除器和乘加器
乘除数据寄存器 A (MDAH、 MDAL)
MDAH 寄存器和 MDAL 寄存器设定用于乘除运算的值并且保存运算结果。在乘法运算模式或者乘加运算
模式中,设定乘数和被乘数的数据;在除法运算模式中,设定被除数的数据。另外,在除法运算模式中,运算
结果 (商)保存在 MDAH 寄存器和 MDAL 寄存器。
通过 16 位操作指令设定 MDAH 寄存器和 MDAL 寄存器。
在产生复位信号后,这些寄存器的值变为 “0000H”。
图 13-2
乘除数据寄存器 A (MDAH、 MDAL)的格式
地址:FFFF0H、 FFFF1H、 FFFF2H、 FFFF3H
复位后:0000H、 0000H
R/W
FFFF3H
符号
FFFF2H
MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH MDAH
15
14
13
12
11
10
9
8
7
6
5
FFFF1H
符号
4
3
2
1
0
FFFF0H
MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL MDAL
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
注意 1. 在除法运算过程中 (乘除控制寄存器 (MDUC)为 “81H” 或者 “C1H”),不能改写 MDAH 寄存器和 MDAL 寄存器
的值。否则,虽然进行运算,但是运算结果为不定值。
2. 在除法运算过程中 (MDUC 寄存器为 “81H” 或者 “C1H”),如果读 MDAH 寄存器和 MDAL 寄存器的值,就不保证
其读取值。
3. 在乘法运算模式 (带符号)或者乘加运算模式 (带符号)中,数据为 2 的补码。
运算时 MDAH 寄存器和 MDAL 寄存器的功能如下所示。
表 13-2
运算模式
运算时 MDAH 寄存器和 MDAL 寄存器的功能
设定
乘法运算模式 (无符号)
MDAH:乘数 (无符号)
乘加运算模式 (无符号)
MDAL:被乘数 (无符号)
乘法运算模式 (带符号)
MDAH:乘数 (带符号)
乘加运算模式 (带符号)
MDAL:被乘数 (带符号)
除法运算模式 (无符号)
MDAH:被除数 (无符号)
(高 16 位)
MDAL:被除数 (无符号)
(低 16 位)
R01UH0629CJ0120 Rev.1.20
2019.06.28
运算结果
—
—
MDAH:除法运算结果 (商)(无符号)
高 16 位
MDAL:除法运算结果 (商)(无符号)
低 16 位
501
R7F0C903-908
13.2.2
第 13 章 乘除器和乘加器
乘除数据寄存器 B (MDBL、 MDBH)
MDBH 寄存器和 MDBL 寄存器设定用于乘除运算的值并且保存运算结果。在乘法运算模式或者乘加运算模
式中,保存运算结果 (积);在除法运算模式中,设定除数的数据。
通过 16 位操作指令设定 MDBH 寄存器和 MDBL 寄存器。
在产生复位信号后,这些寄存器的值变为 “0000H”。
图 13-3
乘除数据寄存器 B (MDBH、 MDBL)的格式
地址:FFFF4H、 FFFF5H、 FFFF6H、 FFFF7H
复位后:0000H、 0000H
R/W
FFFF5H
符号
FFFF4H
MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH MDBH
15
14
13
12
11
10
9
8
7
6
5
FFFF7H
符号
4
3
2
1
0
FFFF6H
MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL MDBL
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
注意 1. 在除法运算 (乘除控制寄存器 (MDUC)为 “81H” 或者 “C1H”)或者乘加运算过程中,不能通过软件改写 MDBH
寄存器和 MDBL 寄存器的值。否则,运算结果为不定值。
2. 在除法运算模式中,不能将 MDBH 寄存器和 MDBL 寄存器置 “0000H”。否则,运算结果为不定值。
3. 在乘法运算模式 (带符号)或者乘加运算模式 (带符号)中,数据为 2 的补码。
运算时 MDBH 寄存器和 MDBL 寄存器的功能如下所示。
表 13-3
运算模式
乘法运算模式 (无符号)
运算时 MDBH 寄存器和 MDBL 寄存器的功能
设定
—
—
MDBH:乘法运算结果 (积)(带符号)高 16 位
MDBL:乘法运算结果 (积)(带符号)低 16 位
乘加运算模式 (带符号)
除法运算模式 (无符号)
MDBH:乘法运算结果 (积)(无符号)高 16 位
MDBL:乘法运算结果 (积)(无符号)低 16 位
乘加运算模式 (无符号)
乘法运算模式 (带符号)
运算结果
MDBH:除数 (无符号)
—
(高 16 位)
MDBL:除数 (无符号)
(低 16 位)
R01UH0629CJ0120 Rev.1.20
2019.06.28
502
R7F0C903-908
13.2.3
第 13 章 乘除器和乘加器
乘除数据寄存器 C (MDCL、 MDCH)
MDCH 寄存器和 MDCL 寄存器在乘加运算模式中,保存累加结果;在除法运算模式中,保存运算结果的余
数。在乘法运算模式中,不使用这些寄存器。
通过 16 位操作指令设定 MDCH 寄存器和 MDCL 寄存器。
在产生复位信号后,这些寄存器的值变为 “0000H”。
图 13-4
乘除数据寄存器 C (MDCH、 MDCL)的格式
地址:F00E0H、 F00E1H、 F00E2H、 F00E3H
复位后:0000H、 0000H
R/W
F00E3H
符号
F00E2H
MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH MDCH
15
14
13
12
11
10
9
8
7
6
5
F00E1H
符号
4
3
2
1
0
F00E0H
MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL MDCL
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
注意 1. 在除法运算过程中 (乘除控制寄存器 (MDUC)为 “81H” 或者 “C1H”),如果读 MDCH 寄存器和 MDCL 寄存器的
值,就不保证其读取值。
2. 在乘加运算过程中,不能通过软件改写 MDCH 寄存器和 MDCL 寄存器的值。否则,运算结果为不定值。
3. 在乘加运算模式 (带符号)中,数据为 2 的补码。
表 13-4
运算模式
乘法运算模式
运算时 MDCH 寄存器和 MDCL 寄存器的功能
设定
运算结果
—
—
(带符号或者无符号)
乘加运算模式 (无符号)
MDCH:累加初始值 (无符号)(高 16 位) MDCH:累加值 (无符号)(高 16 位)
MDCL:累加初始值 (无符号)(低 16 位)
乘加运算模式 (带符号)
MDCH:累加初始值 (带符号)(高 16 位) MDCH:累加值 (带符号)(高 16 位)
MDCL:累加初始值 (带符号)(低 16 位)
除法运算模式 (无符号)
MDCL:累加值 (无符号)(低 16 位)
—
MDCL:累加值 (带符号)(低 16 位)
MDCH:余数 (无符号)(高 16 位)
MDCL:余数 (无符号)(低 16 位)
R01UH0629CJ0120 Rev.1.20
2019.06.28
503
R7F0C903-908
第 13 章 乘除器和乘加器
进行乘法运算和除法运算时的寄存器结构如下所示。
•
乘法运算时的寄存器结构
<乘数 A >
<乘数 B >
<积>
MDAL (bit15 ~ 0)× MDAH (bit15~ 0)= [MDBH (bit15 ~ 0)、 MDBL (bit15 ~ 0) ]
•
乘加运算时的寄存器结构
<乘数 A >
<乘数 B >
<累加值>
MDAL (bit15 ~ 0)× MDAH (bit15~ 0)+ MDC (bit31 ~ 0)=
<累加结果>
[MDCH (bit15~ 0)、 MDCL (bit15 ~ 0) ]
(MDBH (bit15 ~ 0)和 MDBL (bit15~ 0)保存乘法运算结果)
•
除法运算时的寄存器结构
<被除数>
<除数>
[MDAH (bit15 ~ 0)、 MDAL (bit15~ 0) ] ÷ [MDBH (bit15~ 0)、 MDBL (bit15 ~ 0) ] =
<商>
<余数>
[MDAH (bit15 ~ 0)、 MDAL (bit15~ 0) ]…[MDCH (bit15 ~ 0)、 MDCL (bit15 ~ 0) ]
R01UH0629CJ0120 Rev.1.20
2019.06.28
504
R7F0C903-908
13.3
第 13 章 乘除器和乘加器
控制乘除器和乘加器的寄存器
通过乘除控制寄存器 (MDUC)来控制乘除器和乘加器。
13.3.1
乘除控制寄存器 (MDUC)
MDUC 寄存器是控制乘除器和乘加器运算的 8 位寄存器。
通过 1 位或者 8 位存储器操作指令设定 MDUC 寄存器。
但是,只能读乘加运行结果 (累加值)的上溢标志 (MACOF)和符号标志 (MACSF)。
在产生复位信号后,此寄存器的值变为 “00H”。
图 13-5
地址:F00E8H
复位后:00H
乘除控制寄存器 (MDUC)的格式
R/W 注 1
符号
7
6
5
4
3
2
1
0
MDUC
DIVMODE
MACMODE
0
0
MDSM
MACOF
MACSF
DIVST
DIVMODE MACMODE
MDSM
运算模式的选择
0
0
0
乘法运算模式 (无符号)(默认)
0
0
1
乘法运算模式 (带符号)
0
1
0
乘加运算模式 (无符号)
0
1
1
乘加运算模式 (带符号)
1
0
0
除法运算模式 (无符号),产生除法运算结束中断 (INTMD)。
1
1
0
除法运算模式 (无符号),不产生除法运算结束中断 (INTMD)。
上述以外
MACOF
禁止设定。
乘加运算结果 (累加值)的上溢标志
0
没有发生上溢。
1
发生上溢。
[ 置位条件 ]
• 乘加运算模式 (无符号)
当累加值超出 00000000h ~ FFFFFFFFh 的范围时
• 乘加运算模式 (带符号)
当正累加值与正积之和超过 7FFFFFFFh 而结果为负时
当负累加值与负积之和超过 80000000h 而结果为正时
MACSF
乘加结果 (累加值)的符号标志
0
累加值为正。
1
累加值为负。
乘加运算模式 (无符号):总是 “0”。
乘加运算模式 (带符号):表示累加值的符号位。
DIVST 注 2
除法运算的开始 / 停止
0
除法运算处理结束。
1
开始除法运算 / 正在进行除法运算。
R01UH0629CJ0120 Rev.1.20
2019.06.28
505
R7F0C903-908
注
第 13 章 乘除器和乘加器
1. bit1 和 bit2 是只读位。
2. 只有在除法运算模式中才能将 DIVST 位置 “1”。在除法运算模式中,如果将 DIVST 位置 “1”,就开始除法运算。在
运算结束后,自动将 DIVST 位清 “0”。在乘法运算模式中,通过给乘除数据寄存器 A (MDAH、 MDAL)设定乘数
和被乘数,自动开始运算。
注意 1. 在运算过程中 (DIVST 位为 “1”),不能改写 DIVMODE 位和 MDSM 位。否则,运算结果为不定值。
2. 在除法运算过程中 (DIVST 位为 “1”),不能通过软件将 DIVST 位清 “0”。
13.4
乘除器和乘加器的运算
13.4.1
•
乘法运算 (无符号)
初始设定
① 将乘除控制寄存器 (MDUC)置 “00H”。
② 给乘除数据寄存器 A (L)(MDAL)设定被乘数。
③ 给乘除数据寄存器 A (H)(MDAH)设定乘数。
(②和③的设定顺序不分先后。如果给 MDAH 寄存器和 MDAL 寄存器设定乘数和被乘数,就自动
开始乘法运算)
•
运算处理
•
运算结束
④ 至少等待 1 个时钟。运算在 1 个时钟内完成。
⑤ 从乘除数据寄存器 B (L)(MDBL)读积 (低 16 位)。
⑥ 从乘除数据寄存器 B (H)(MDBH)读积 (高 16位)。
(⑤和⑥的读取顺序不分先后)
•
下一次运算
⑦ 在更改运行模式时,必须从各运算步骤的初始设定开始进行。
在继续使用相同的运算模式时,能省略①和②的设定。
备注
步骤①~⑦对应图 13-6 中的①~⑦。
图 13-6
乘法运算 (无符号)的时序图 (2×3=6)
䘆㺂ᰬ䫕
MDUC 00H Ś
MDSM
L
MDAL
0000H
MDAH
0000H
MDBH
MDBL
0000H
0000H
0 00 2H
FFFFH
0003H
0000H
0006H
FFFFH
0002H
FFFDH
FFFEH
0001H
ŝ
śŜŞȽşŠ
R01UH0629CJ0120 Rev.1.20
2019.06.28
506
R7F0C903-908
13.4.2
•
第 13 章 乘除器和乘加器
乘法运算 (带符号)
初始设定
① 将乘除控制寄存器 (MDUC)置 “08H”。
② 给乘除数据寄存器 A (L)(MDAL)设定被乘数。
③ 给乘除数据寄存器 A (H)(MDAH)设定乘数。
(②和③的设定顺序不分先后。如果给 MDAH 寄存器和 MDAL 寄存器设定乘数和被乘数,就自动
开始乘法运算)
•
运算处理
④ 至少等待 1 个时钟。运算在 1 个时钟内完成。
•
运算结束
⑤ 从乘除数据寄存器 B (L)(MDBL)读积 (低 16 位)。
⑥ 从乘除数据寄存器 B (H)(MDBH)读积 (高 16位)。
(⑤和⑥的读取顺序不分先后)
•
下一次运算
⑦ 在更改运算模式时,必须从各运算步骤的初始设定开始进行。
在继续使用相同的运算模式时,能省略①和②的设定。
注意
在乘法运算模式 (带符号)中,数据为 2 的补码。
备注
步骤①~⑦对应图 13-7 中的①~⑦。
图 13-7
乘法运算 (带符号)的时序图 (–2×32767=–65534)
䘆㺂ᰬ䫕
Ś
MDUC 00H
08H
MDSM
MDAL
0000H
MDAH
0000H
MDBH
MDBL
0000H
0000H
FFFEH
FFFFH
FFFFH
7FFFH
FFFFH
0002H
FFFFH
8001H
0000H
0001H
ŝ
śŜŞȽşŠ
R01UH0629CJ0120 Rev.1.20
2019.06.28
507
R7F0C903-908
13.4.3
•
第 13 章 乘除器和乘加器
乘加运算 (无符号)
初始设定
① 将乘除控制寄存器 (MDUC)置 “40H”。
② 给乘除数据寄存器 C (H)(MDCH)设定累加初始值的高 16 位。
③ 给乘除数据寄存器 C (L)(MDCL)设定累加初始值的低 16 位。
④ 给乘除数据寄存器 A (L)(MDAL)设定被乘数。
⑤ 给乘除数据寄存器 A (H)(MDAH)设定乘数。
(②、③和④的设定顺序不分先后。如果给⑤的 MDAH 寄存器设定乘数,就自动开始乘法运算)
•
运算处理
⑥ 乘法运算在 1 个时钟内完成。
(乘法结果保存在乘除数据寄存器 B (L)(MDBL)和乘除数据寄存器 B (H)(MDBH))
•
⑦ ⑥之后,乘加运算在 1 个时钟内完成 (在初始设定结束 (⑤)后,至少等待 2 个时钟)。
运算结束
⑧ 从乘除数据寄存器 C (L)(MDCL)读累加值 (低 16 位)。
⑨ 从乘除数据寄存器 C (H)(MDCH)读累加值 (高 16 位)。
(⑧和⑨的读取顺序不分先后)
(⑩ 当乘加运算的结果发生上溢时,将 MACOF 位置 “1”并且产生 INTMD 信号)
•
下一次运算
在更改运算模式时,必须从各运算步骤的初始设定开始进行。
在继续使用相同的运算模式时,能省略①~④的设定。
备注
步骤①~⑩对应图 13-8 中的①~⑩。
图 13-8 乘加运算 (无符号)的时序图
(2×3+3=9→32767×2+4294901762=0 (发生上溢))
䘆㺂ᰬ䫕
Ś
MDUC 00H
40H
44H
MDSM L
M DCH
0000H
MDCL
0000H
MDAL
0000H
MDAH
0000H
MDBH
MDBL
0000H
0000H
F F F FH
0003H
0009H
0 0 00 H
0002H
0000H
šȽŢ
0002H
7FFFH
0003H
0002H
0000H
0006H
0000H
FFFEH
ţ
INTMD
MACOF
MACSF
L
śŜŝŞşŠ
R01UH0629CJ0120 Rev.1.20
2019.06.28
śŜŝŞşŠ
508
R7F0C903-908
13.4.4
•
第 13 章 乘除器和乘加器
乘加运算 (带符号)
初始设定
① 将乘除控制寄存器 (MDUC)置 “48H”。
② 给乘除数据寄存器 C (H)(MDCH)设定累加初始值的高 16 位。
(③ 当 MDCH 寄存器的累加值为负值时,将 MACSF 位置 “1”)
④ 给乘除数据寄存器 C (L)(MDCL)设定累加初始值的低 16 位。
⑤ 给乘除数据寄存器 A (L)(MDAL)设定被乘数。
⑥ 给乘除数据寄存器 A (H)(MDAH)设定乘数。
(②、④和⑤的设定顺序不分先后。如果给⑥的 MDAH 寄存器设定乘数,就自动开始乘法运算)
•
运算处理
⑦ 乘法运算在 1 个时钟内完成。
(乘法结果保存在乘除数据寄存器 B (L)(MDBL)和乘除数据寄存器 B (H)(MDBH))
⑧ ⑦之后,乘加运算在 1 个时钟内完成 (在初始设定结束 (⑥)后,至少等待 2 个时钟)。
•
运算结束
⑨ 当保存在 MDCL 寄存器和 MDCH寄存器中的累加值为正值时,将 MACSF 位清 “0”。
⑩ 从 MDCL 寄存器读累加值 (低 16位)。
从 MDCH 寄存器读累加值 (高 16 位)。
(⑩和
(
•
的读取顺序不分先后)
当乘加运算的结果发生上溢时,将 MACOF 位置 “1”并且产生 INTMD 信号)
下一次运算
在更改运算模式时,必须从各运算步骤的初始设定开始进行。
在继续使用相同的运算模式时,能省略①~⑤的设定。
注意
在乘加运算模式 (带符号)中,数据为 2 的补码。
备注
步骤①~
对应图 13-9 中的①~
R01UH0629CJ0120 Rev.1.20
2019.06.28
。
509
R7F0C903-908
第 13 章 乘除器和乘加器
图 13-9 乘加运算 (带符号)的时序图
(2×3+(–4)=2→32767×(–1)+(–2147483647)=–2147450882 (发生上溢))
䘆㺂ᰬ䫕
Ś
MDUC 00H 48H
4AH
48H
4AH
4CH
MDSM L
Ŝ
MDCH
0000H
MDCL
0000H
Ŝ
Ţ
FFFFH
0 0 00 H
FFFCH
8 0 0 0H
0002H
7 FF F H
0001H
8002H
ţȽ
MDAL
0000H
MDAH
0000H
MDBH
MDBL
0000H
0000H
0002H
7FFFH
0003H
FFFFH
0000H
0006H
FFFFH
8001H
INTMD
MACOF
MACSF
L
Ŝ
Ţ
śŝŞşŠš
R01UH0629CJ0120 Rev.1.20
2019.06.28
Ŝ
śŝŞşŠš
510
R7F0C903-908
13.4.5
•
第 13 章 乘除器和乘加器
除法运算
初始设定
① 将乘除控制寄存器 (MDUC)置 “80H”。
② 给乘除数据寄存器 A (H)(MDAH)设定被除数 (高16 位)。
③ 给乘除数据寄存器 A (L)(MDAL)设定被除数 (低16 位)。
④ 给乘除数据寄存器 B (H)(MDBH)设定除数 (高 16 位)。
⑤ 给乘除数据寄存器 B (L)(MDBL)设定除数 (低 16 位)。
⑥ 将 MDUC 寄存器的 bit0 (DIVST)置 “1”。
(②~⑤的顺序不分先后)
•
运算处理
⑦ 如果完成以下某种处理,就结束运算。
•
•
至少等待 16 个时钟 (运算在 16个时钟内完成)。
确认 DIVST 位的清除。
(在运算过程中,不保证 MDBL、 MDBH、 MDCL、 MDCH寄存器的读取值)
•
运算结束
⑧ 将 DIVST 位清 “0” 并且结束运算。此时,如果是 MACMODE=0 的运算,就产生中断请求信号
(INTMD)。
⑨ 从 MDAL寄存器读商 (低 16 位)。
⑩ 从 MDAH 寄存器读商 (高 16 位)。
从乘除数据寄存器 C (L)(MDCL)读余数 (低 16 位)。
从乘除数据寄存器 C (H)(MDCH)读余数 (高 16 位)。
(⑨~
•
的顺序不分先后)
下一次运算
在更改运算模式时,必须从各运算步骤的初始设定开始进行。
在继续使用相同的运算模式时,能省略①~⑤的设定。
备注
步骤①~
对应图 13-10 中的①~
R01UH0629CJ0120 Rev.1.20
2019.06.28
。
511
R01UH0629CJ0120 Rev.1.20
2019.06.28
XXXXH
XXXXH
XXXXH
XXXXH
XXXXH
XXXXH
MDAH
MDAL
MDBH
MDBL
MDCH
MDCL
INTMD
уᇐ
80H
0000H
0000H
0000H
0023H
ŚśŜŝŞş
0000H
0000H
0H
2H
3H
4H
5H
6H
7H
8H
9H AH BH CH DH EH FH
0000H
0006H
0000H
0000H
Š
š
0000H
0002H
0000H 0000H 0000H 0000H 0000H 0002H 0008H 0023H 008CH 0230H 08C0H 2300H 8C00H 3000H C000H
008CH 0230H 08C0H 2300H 8C00H 3000H C000H 0000H 0000H 0000H 0000H 0000H 0000H 0000H 0001H
1H
81H
0H
š
ŢȽţ
0000H
0005H
0000H
0005H
80H
Ƚ
图 13-10
䇗ᮦಞ
DIVST
MDUC
䘆㺂ᰬ䫕
R7F0C903-908
第 13 章 乘除器和乘加器
除法运算的时序图 (35÷6=5 余数 5)
512
R7F0C903-908
第 14 章 DMA 控制器
第 14 章
DMA 控制器
R7F0C908B2、 R7F0C907B2、 R7F0C906B2 内置一个 DMA (Direct Memory Access)控制器。
能在支持 DMA 外围硬件的 SFR 和内部 RAM 之间不经过 CPU 而自动传送数据。
因为能在进行通常的 CPU 内部运算和数据传送的同时进行 SFR 和内部 RAM 之间的传送,所以能进行大容
量数据的处理,并且还能实现通过通信、定时器和 A/D 进行的实时控制。
14.1
DMA 控制器的功能
○ DMA 通道个数:2 个通道 (本产品)
○ 传送单位:8 位或者16 位
○ 最大传送单位:1024 次
○ 传送类型:2 个周期传送 (通过2 个时钟进行一次传送并且在传送期间 CPU停止运行)
○ 传送模式:单次传送模式
○ 传送请求:选择以下外围硬件中断。
•
A/D 转换器
•
串行接口 (CSI00、 CSI11、 CSI20、 UART0 ~ UART2)
•
定时器 (通道 0、 1、 2、 3)
○ 传送对象:SFR 和内部RAM 之间的传送
使用 DMA 功能的例子如下所示:
•
串行接口的连续传送
•
A/D 转换结果的连续取得
•
每隔一段时间的端口值的取得
R01UH0629CJ0120 Rev.1.20
2019.06.28
513
R7F0C903-908
14.2
第 14 章 DMA 控制器
DMA 控制器的结构
DMA 控制器由以下硬件构成。
表 14-1
DMA 控制器的结构
项目
结构
地址寄存器
• DMA SFR 地址寄存器 0、 1 (DSA0、 DSA1)
• DMA RAM 地址寄存器 0、 1 (DRA0、 DRA1)
计数寄存器
• DMA 字节计数寄存器 0、 1 (DBC0、 DBC1)
控制寄存器
• DMA 模式控制寄存器 0、 1 (DMC0、 DMC1)
• DMA 运行控制寄存器 0、 1 (DRC0、 DRC1)
14.2.1
DMA SFR 地址寄存器 n (DSAn)
这是设定 SFR 地址的 8 位寄存器, SFR 地址是 DMA 通道 n 的传送源或者传送目标。
必须设定 SFR 地址 FFF00H ~ FFFFFH 的低 8 位。
此寄存器为固定值而不自动递增。
在 16 位传送模式中,忽略最低位而作为偶数地址处理。
能以 8 位为单位读写 DSAn 寄存器,但是不能在 DMA 传送过程中写此寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 14-1
DMA SFR 地址寄存器 n (DSAn)的格式
地址:FFFB0H (DSA0)、 FFFB1H (DSA1)
7
6
5
复位后:00H
4
R/W
3
2
1
0
DSAn
备注
n:DMA 通道号 (n=0、 1)
R01UH0629CJ0120 Rev.1.20
2019.06.28
514
R7F0C903-908
14.2.2
第 14 章 DMA 控制器
DMA RAM 地址寄存器 n (DRAn)
这是设定 RAM 地址的 16 位寄存器, RAM 地址是 DMA 通道 n 的传送源或者传送目标。
能设定通用寄存器以外的内部 RAM 区 (参照表 14-2)的地址。
必须设定 RAM 地址的低 16 位。
如果开始 DMA 传送,此寄存器就自动递增。在 8 位传送模式中增 1 ;在 16 位传送模式中增 2。如果从此
DRAn 寄存器的设定地址开始传送到最后地址,DMA 传送就停止运行。此时,在 8 位传送模式中,DRAn 寄存
器为最后地址 +1 ;在 16 位传送模式中, DRAn 寄存器为最后地址 +2。
在 16 位传送模式中,忽略最低位而作为偶数地址处理。
能以 8 位或者 16 位为单位读写 DRAn 寄存器,但是不能在 DMA 传送过程中写此寄存器。
在产生复位信号后,此寄存器的值变为 “0000H”。
图 14-2
DMA RAM 地址寄存器 n (DRAn)的格式
地址:FFFB2H、 FFFB3H (DRA0)、 FFFB4H、 FFFB5H (DRA1)
15
14
R/W
复位后:0000H
DRA0H:FFFB3H
DRA0L:FFFB2H
DRA1H:FFFB5H
DRA1L:FFFB4H
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DRAn
备注
n:DMA 通道号 (n=0、 1)
表 14-2
产品
通用寄存器以外的内部 RAM 区
通用寄存器以外的内部 RAM 区
R7F0C908B2
FF700H ~ FFEDFH
R7F0C907B2、 R7F0C906B2
FC000H ~ FFEDFH
R01UH0629CJ0120 Rev.1.20
2019.06.28
515
R7F0C903-908
14.2.3
第 14 章 DMA 控制器
DMA 字节计数寄存器 n (DBCn)
这是设定 DMA 通道 n 传送次数的 10 位寄存器。必须在 DMA 传送前给此 DBCn 寄存器设定连续的传送次
数 (最多 1024 次)。
每进行一次 DMA 传送,此寄存器就自动递减。在 DMA 传送过程中,能通过读此 DBCn 寄存器获得剩余
的连续传送次数。
能以 8 位或者 16 位为单位读写 DBCn 寄存器,但是不能在 DMA 传送过程中写此寄存器。
在产生复位信号后,此寄存器的值变为 “0000H”。
图 14-3
DMA 字节计数寄存器 n (DBCn)的格式
地址:FFFB6H、 FFFB7H (DBC0)、 FFFB8H、 FFFB9H (DBC1)
DBC0L:FFFB6H
DBC1L:FFFB8H
DBC0H:FFFB7H
DBC1H:FFFB9H
DBCn
R/W
复位后:0000H
15
14
13
12
11
10
0
0
0
0
0
0
9
8
7
6
5
4
3
2
1
0
DBCn[9:0]
传送次数的设定 (写 DBCn)
剩余的传送次数 (读 DBCn)
000H
1024 次
传送结束或者等待 1024 次的 DMA 传送。
001H
1次
等待剩余的 1 次 DMA 传送。
002H
2次
等待剩余的 2 次 DMA 传送。
003H
3次
等待剩余的 3 次 DMA 传送。
•
•
•
•
•
•
•
•
•
3FEH
1022 次
等待剩余的 1022 次 DMA 传送。
3FFH
1023 次
等待剩余的 1023 次 DMA 传送。
注意 1. 必须将 bit15 ~ 10 置 “0”。
2. 如果指定通用寄存器或者因连续传送而超过内部 RAM 空间,就读写通用寄存器或者 SFR 空间,导致数据的破坏。
必须将传送次数设定在内部 RAM 空间范围内。
备注
n:DMA 通道号 (n=0、 1)
R01UH0629CJ0120 Rev.1.20
2019.06.28
516
R7F0C903-908
14.3
第 14 章 DMA 控制器
控制 DMA 控制器的寄存器
控制 DMA 控制器的寄存器如下所示:
•
DMA 模式控制寄存器 n (DMCn)
•
DMA 运行控制寄存器 n (DRCn)
n:DMA 通道号 (n=0、 1)
备注
14.3.1
DMA 模式控制寄存器 n (DMCn)
DMCn 寄存器设定 DMA 通道 n 的传送模式,选择传送方向、数据长度、保留设定和启动源。bit7(STGn)
为启动 DMA 的软件触发。
禁止在 DMA 运行过程中 (DSTn=1)改写 DMCn 寄存器的 bit6、 5、 3 ~ 0。
通过 1 位或者 8 位存储器操作指令设定 DMCn 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 14-4
DMA 模式控制寄存器 n (DMCn)的格式 (1/2)
地址:FFFBAH (DMC0)、 FFFBBH (DMC1)
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
DMCn
STGn
DRSn
DSn
DWAITn
IFCn3
IFCn2
IFCn1
IFCn0
STGn 注 1
DMA 传送开始的软件触发
0
没有软件触发。
1
在允许 DMA 运行 (DENn=1)时,开始 DMA 传送。
在允许 DMA 运行 (DENn=1)时,通过给 STGn 位写 “1” 进行一次 DMA 传送。
此位的读取值总是 “0”。
DRSn
DMA 传送方向的选择
0
SFR→ 内部 RAM
1
内部 RAM→SFR
DSn
DMA 传送数据长度的指定
0
8位
1
16 位
DWAITn 注 2
DMA 传送的保留
0
通过 DMA 启动请求进行 DMA 传送 (不保留)。
1
即使接收到 DMA 启动请求也保留 DMA 传送。
能通过将 DWAITn 位的值从 “1” 置为 “0” 来开始被保留的 DMA 传送。
在将 DWAITn 位的值从 “0” 置为 “1” 后,实际上需要经过 2 个时钟,然后保留 DMA 传送。
1. 与 IFCn3 ~ IFCn0 位的值无关,能使用软件触发 (STGn)。
注
2.
要在使用 2 个或者更多通道的 DMA 过程中保留 DMA 传送时,必须保留全部通道的 DMA 传送(DWAIT0=DWAIT1=
DWAIT2=DWAIT3=1)。
备注
n:DMA 通道号 (n=0、 1)
R01UH0629CJ0120 Rev.1.20
2019.06.28
517
R7F0C903-908
第 14 章 DMA 控制器
图 14-4
DMA 模式控制寄存器 n (DMCn)的格式 (2/2)
地址:FFFBAH (DMC0)、 FFFBBH (DMC1)
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
DMCn
STGn
DRSn
DSn
DWAITn
IFCn3
IFCn2
IFCn1
IFCn0
DMA 启动源的选择注
IFCn IFCn IFCn IFCn
3
2
1
0
触发信号
0
0
0
0
—
触发内容
禁止通过中断触发 DMA 传送。
(只能允许软件触发)
0
0
0
1
INTAD
A/D 转换结束中断
0
0
1
0
INTTM00
定时器通道 0 的计数结束或者捕捉中断
0
0
1
1
INTTM01
定时器通道 1 的计数结束或者捕捉中断
0
1
0
0
INTTM02
定时器通道 2 的计数结束或者捕捉中断
0
1
0
1
INTTM03
定时器通道 3 的计数结束或者捕捉中断
0
1
1
0
INTST0/INTCSI00
UART0发送的传送结束或者缓冲器空中断
0
1
1
1
INTSR0
UART0 接收的传送结束中断
1
0
0
0
INTST1
UART1发送的传送结束或者缓冲器空中断
1
0
0
1
INTSR1/INTCSI11
UART1 接收的传送结束 /CSI11 的传送结
/CSI00 的传送结束或者缓冲器空中断
束或者缓冲器空中断
1
0
1
0
INTST2/INTCSI20
1
0
1
1
INTSR2
UART2发送的传送结束或者缓冲器空中断
/CSI20 的传送结束或者缓冲器空中断
上述以外
禁止设定。
注
与 IFCn3 ~ IFCn0 位的值无关,能使用软件触发 (STGn)。
备注
n:DMA 通道号 (n=0、 1)
R01UH0629CJ0120 Rev.1.20
2019.06.28
UART2 接收的传送结束中断
518
R7F0C903-908
14.3.2
第 14 章 DMA 控制器
DMA 运行控制寄存器 n (DRCn)
DRCn 寄存器设定允许或者禁止 DMA 通道 n 的传送。
禁止在 DMA 运行过程中 (DSTn=1)改写 DRCn 寄存器的 bit7 (DENn)。
通过 1 位或者 8 位存储器操作指令设定 DRCn 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 14-5
DMA 运行控制寄存器 n (DRCn)的格式
地址:FFFBCH (DRC0)、 FFFBDH (DRC1)
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
DRCn
DENn
0
0
0
0
0
0
DSTn
DENn
DMA 运行允许标志
0
禁止 DMA 通道 n 的运行 (停止 DMA 的运行时钟)。
1
允许 DMA 通道 n 的运行。
在设定为允许 DMA 运行 (DENn=1)后,通过将 DSTn 标志置 “1” 进入等待 DMA 触发的状态。
DSTn
DMA 传送模式标志
0
DMA 通道 n 的 DMA 传送结束。
1
DMA 通道 n 的 DMA 传送没有结束 (正在传送)。
在设定为允许 DMA 运行 (DENn=1)后,通过将 DSTn 标志置 “1” 进入等待 DMA 触发的状态。
如果输入软件触发 (STGn)或者输入由 IFCn3 ~ IFCn0 位设定的启动源触发,就开始 DMA 传送。
此后,如果 DMA 传送结束,就自动将此标志清 “0”。
要在 DMA 传送过程中强制结束传送时,给此标志写 “0”。
注意
如果 DMA 传送结束,就自动将 DSTn 标志清 “0”。
因为只有在 DSTn标志为 “0” 时才允许写 DENn标志,所以当不等待DMAn中断 (INTDMAn)的发生而结束 DMA 传
送时,必须在将 DSTn标志置 “0” 后将 DENn标志置“0” (详细内容请参照“14.5.5 通过软件强制结束 ”)。
备注
n:DMA 通道号 (n=0、 1)
R01UH0629CJ0120 Rev.1.20
2019.06.28
519
R7F0C903-908
14.4
第 14 章 DMA 控制器
DMA 控制器的运行
14.4.1
运行步骤
① 通过将 DENn 位置 “1”,使 DMA 控制器变为允许运行状态。必须在将DENn 位置 “1”后写其他寄存器。
当通过 8 位操作指令进行写操作时,写 “80H”。
② 给 DMA SFR 地址寄存器 n (DSAn)、 DMA RAM 地址寄存器 n (DRAn)、 DMA 字节计数寄存器 n
(DBCn)和 DMA 模式控制寄存器 n (DMCn)设定 DMA传送的 SFR地址、 RAM 地址、传送次数和传
送模式。
③ 通过将 DSTn 位置 “1”,使 DMA变为等待触发的状态。当通过 8 位操作指令进行写操作时,写 “81H”。
④ 如果输入软件触发 (STGn)或者输入由 IFCn3~ IFCn0 位设定的启动源触发,就开始 DMA 传送。
⑤ 如果 DBCn 寄存器设定的传送次数变为 “0”,就完成传送并且产生中断请求 (INTDMAn)而自动结束
传送。
⑥ 此后,如果不使用DMA 控制器,就必须将 DENn位置 “0”,进入运行停止状态。
图 14-6
运行步骤
DENn = 1
䙐䗽䖥Ԭ(ぁᓅ)䘑㺂䇴ᇐȾ
䇴ᇐDSAnȽDRAnȽDBCnૂDMCn
DSTn = 1
DMA䀜ਇ = 1 ?
No
Yes
ਇ䘷DMA䈭≸
᭬DMAᓊㆊ
DMAՖ䘷
䙐䗽DMAಞ
(⺢Ԭ)䘑㺂䘆㺂Ⱦ
DRAn = DRAn + 1 (or + 2)
DBCn = DBCn − 1
DBCn = 0000H ?
No
Yes
DSTn = 0
INTDMAn = 1
DENn = 0
备注
䙐䗽䖥Ԭ(ぁᓅ)䘑㺂䇴ᇐȾ
n:DMA 通道号 (n=0、 1)
R01UH0629CJ0120 Rev.1.20
2019.06.28
520
R7F0C903-908
14.4.2
第 14 章 DMA 控制器
传送模式
能通过设定 DMA 模式控制寄存器 n (DMCn)的 bit6 和 bit5 (DRSn、 DSn),给 DMA 传送选择以下 4 种
传送模式。
DRSn
DSn
0
0
从 1 字节数据 (固定地址)的 SFR 到 RAM (地址递增 +1)的传送
0
1
从 2 字节数据 (固定地址)的 SFR 到 RAM (地址递增 +2)的传送
1
0
从 1 字节数据 (地址递增 +1)的 RAM 到 SFR (固定地址)的传送
1
1
从 2 字节数据 (地址递增 +2)的 RAM 到 SFR (固定地址)的传送
DMA 传送模式
通过这些传送模式,能利用串行接口最多连续传送 1024 字节的数据,并且能连续传送 A/D 转换结果的数
据以及利用定时器每隔一段时间扫描端口的数据。
14.4.3
DMA 传送的结束
如果 DBCn 变为 “00H” 而完成 DMA 传送,就自动将 DSTn 位清 “0”,然后产生中断请求 (INTDMAn)而
结束传送。
如果为了强制结束 DMA 传送而将 DSTn 位清 “0”, DMA 字节计数寄存器 n (DBCn)和 DMA RAM 地址
寄存器 n (DRAn)就保持停止时的值。
当强制结束传送时,不产生中断请求 (INTDMAn)。
n:DMA 通道号 (n=0、 1)
备注
14.5
DMA 控制器的设定例子
14.5.1
CSI 连续发送
CSI 连续发送的设定例子的流程图如下所示:
备注
•
CSI00 的连续发送 (256 字节)
•
•
DMA 传送使用 DMA 的通道 0。
DMA 启动源:INTCSI00 (软件触发 (STG0)只限于最初的启动源)
•
通过 IFC03 ~ IFC00=0110B 指定 CSI00的中断。
•
将 RAM的 FFB00H ~ FFBFFH (256字节)传送到 CSI 的数据寄存器 (SIO00)的 FFF10H。
IFC03 ~ IFC00:DMA 模式控制寄存器 0 (DMC0)的 bit3 ~ 0
R01UH0629CJ0120 Rev.1.20
2019.06.28
521
R7F0C903-908
第 14 章 DMA 控制器
图 14-7
CSI 连续发送的设定例子
ᔶခ
DEN0 = 1
DSA0 = 44H
DRA0 = FB00H
DBC0 = 0100H
DMC0 = 48H
䇴ᇐCSIՖ䘷
DST0 = 1
STG0 = 1
ࣞDMA0Ⱦ
ӝ⭕INTCSI00Ⱦ
⭞ᡭぁᓅ
Ⲻ༺⨼
DMA0Ֆ䘷
CSIਇ䘷
ӝ⭕INTDMA0Ⱦ
DST0 = 0
⌞
DEN0 = 0
RETI
⺢Ԭ༺⨼
㔉ᶕ
注
如果 DMA 传送结束,就自动将 DST0 标志清 “0”。
因为只有在 DST0标志为 “0” 时才允许写 DEN0标志,所以当不等待DMA0中断 (INTDMA0)的发生而结束 DMA传
送时,必须在将 DST0标志置 “0” 后将 DEN0标志置“0” (详细内容请参照“14.5.5 通过软件强制结束 ”)。
在连续发送时, CSI 中断不能启动第一次触发。在此例子中,通过软件触发进行启动。
自动进行第二次及以后的 CSI 发送。
在给数据寄存器写完最后的发送数据时,产生 DMA 中断 (INTDMA0)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
522
R7F0C903-908
14.5.2
第 14 章 DMA 控制器
A/D 转换结果的连续读取
A/D 转换结果连续读取的设定例子的流程图如下所示:
•
A/D 转换结果的连续读取
•
DMA 传送使用 DMA 的通道 1。
•
DMA 启动源:INTAD
•
通过 IFC13 ~ IFC10=0001B 指定 A/D的中断。
•
将 10 位 A/D 转换结果寄存器 (ADCR)的 FFF1EH 和 FFF1FH (2 字节)传送到 RAM 的 FFCE0H ~
FFEDFH (512字节)。
备注
IFC13 ~ IFC10:DMA 模式控制寄存器 1 (DMC1)的 bit3 ~ 0
图 14-8
A/D 转换结果连续读取的设定例子
ᔶခ
DEN1 = 1
DSA1 = 1EH
DRA1 = FCE0H
DBC1 = 0100H
DMC1 = 21H
DST1 = 1
ᔶခA/D䖢ᦘ
ӝ⭕INTADȾ
⭞ᡭぁᓅ
Ⲻ༺⨼
DMA1Ֆ䘷
ӝ⭕INTDMA1Ⱦ
DST1 = 0
⌞
DEN1 = 0
RETI
⺢Ԭ༺⨼
㔉ᶕ
注
如果 DMA 传送结束,就自动将 DST1 标志清 “0”。
因为只有在 DST1标志为 “0” 时才允许写 DEN1标志,所以当不等待DMA1中断 (INTDMA1)的发生而结束 DMA 传
送时,必须在将 DST1标志置 “0” 后将 DEN1标志置“0” (详细内容请参照“14.5.5 通过软件强制结束 ”)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
523
R7F0C903-908
14.5.3
第 14 章 DMA 控制器
UART 连续接收 +ACK 发送
UART 连续接收 +ACK 发送的设定例子的流程图如下所示:
•
UART0 连续进行接收并且将接收结束的 ACK输出到 P10。
•
DMA 传送使用 DMA 的通道 0。
•
DMA 启动源:软件触发 (禁止通过中断触发DMA 传送)
•
将 UART 接收数据寄存器 0 (RxD0)的 FFF12H传送到 RAM的 FFE00H ~ FFE3FH (64字节)。
图 14-9
UART 连续接收 +ACK 发送的设定例子
ᔶခ
INTSR0ѣᯣぁᓅ
DEN0 = 1
DSA0 = 12H
DRA0 = FE00H
DBC0 = 0040H
STG0 = 1
ࣞDMA0Ⱦ
DMC0 = 00H
DMA0Ֆ䘷
P10 = 1
䇴ᇐUART᭬
P10 = 0
DST0 = 1
ӝ⭕INTSR0Ⱦ
RETI
⭞ᡭぁᓅ
Ⲻ༺⨼
ӝ⭕INTDMA0Ⱦ
DST0 = 0
⌞
DEN0 = 0
RETI
⺢Ԭ༺⨼
㔉ᶕ
注
如果 DMA 传送结束,就自动将 DST0 标志清 “0”。
因为只有在 DST0标志为 “0” 时才允许写 DEN0标志,所以当不等待DMA0中断 (INTDMA0)的发生而结束 DMA 传
送时,必须在将 DST0标志置 “0” 后将 DEN0标志置“0” (详细内容请参照“14.5.5 通过软件强制结束 ”)。
备注
这是将软件触发用于 DMA 启动源的例子。
如果不发送 ACK而只进行UART的连续接收,就能将UART 接收结束中断 (INTSR0)设定为 DMA启动源进行数据
接收。
R01UH0629CJ0120 Rev.1.20
2019.06.28
524
R7F0C903-908
14.5.4
第 14 章 DMA 控制器
通过 DWAITn 位保留 DMA 传送
如果开始 DMA 传送,就在指令执行过程中进行传送。因此,此时 CPU 停止运行并且延迟 2 个时钟。如果
这种情况会影响设备系统的正常运行,就能通过将 DWAITn 位置 “1”,保留 DMA 传送。对于在保留期间发生
的传送触发所对应的 DMA 传送,在解除保留后执行该 DMA 传送。但是,各通道只能保留一个传送触发,因此
同一个通道即使在保留期间发生了 2 次或者更多次的传送触发,在解除保留后也只执行一次 DMA 传送。
以 P10 引脚输出 10 个时钟 (工作频率)宽度的脉冲为例,如果在中途开始 DMA 传送,就增加到 12 个时
钟。此时,能通过将 DWAITn 位置 “1” 来保留 DMA 传送。
在将 DWAITn 位置 “1” 后需要经过 2 个时钟,然后保留 DMA 传送。
图 14-10
通过 DWAITn 位保留 DMA 传送的设定例子
ᔶခDMAՖ䘷
ѱぁᓅ
DWAITn = 1
ㅿᖻ2Ѡᰬ䫕
P10 = 1
ㅿᖻ9Ѡᰬ䫕
P10 = 0
DWAITn = 0
注意
要在使用 2 个或者更多通道的 DMA 过程中保留 DMA 传送时,必须保留全部通道的 DMA 传送(DWAIT0=DWAIT1=
DWAIT2=DWAIT3=1)。如果在保留其中一个 DMA 传送期间执行另一个通道的 DMA 传送,就可能无法保留。
备注 1. n:DMA 通道号 (n=0、 1)
2. 1 个时钟:1/fCLK (fCLK:CPU 时钟)
R01UH0629CJ0120 Rev.1.20
2019.06.28
525
R7F0C903-908
14.5.5
第 14 章 DMA 控制器
通过软件强制结束
在通过软件将 DSTn 位置 “0” 后最多需要经过 2 个时钟,然后停止 DMA 传送并且 DSTn 位变为 “0”。因此,
当不等待 DMAn 中断 (INTDMAn)的发生而通过软件强制结束 DMA 传送时,必须进行以下某种处理。
< 当使用 1 个通道的 DMA 时 >
•
在通过软件将 DSTn 位置 “0” (当通过字节操作指令进行写操作时, DRCn=80H)后,通过轮询确认
DSTn 位已变为 “0”,然后将 DENn位置 “0” (当通过字节操作指令进行写操作时, DRCn=00H)。
•
在通过软件将 DSTn 位置 “0” (当通过字节操作指令进行写操作时, DRCn=80H)后经过 2 个时钟,然
后将 DENn 位置 “0” (当通过字节操作指令进行写操作时, DRCn=00H)。
< 当使用 2 个通道的 DMA 时 >
•
要在使用 2 个通道的 DMA 过程中通过软件强制结束 DMA 传送 (DSTn=0)时,通过将要使用的 2 个通
道的 DWAITn 位置 “1” 来保留 DMA 传送,然后将 DSTn 位清 “0”。此后,通过将 2 个通道的 DWAITn 位
清 “0” 来解除保留,然后将DENn 位清 “0”。
图 14-11
DMA 传送的强制结束 (1/2)
ׁ1
ׁ2
DSTn = 0
DSTn = 0
No
ㅿᖻ2Ѡᰬ䫕
DSTn = 0 ?
Yes
DENn = 0
DENn = 0
备注 1. n:DMA 通道号 (n=0、 1)
2. 1 个时钟:1/fCLK (fCLK:CPU 时钟)
R01UH0629CJ0120 Rev.1.20
2019.06.28
526
R7F0C903-908
第 14 章 DMA 控制器
图 14-11
DMA 传送的强制结束 (2/2)
ׁ3
• ൞ֵ⭞2Ѡ䙐䚉ᰬθެѣ1Ѡ䙐䚉
ᕰ㔉ᶕⲺ↛僚
• ൞ֵ⭞2Ѡ䙐䚉ᰬθ2Ѡ䙐䚉䜳
ᕰ㔉ᶕⲺ↛僚
DWAIT0 = 1
DWAIT0 = 1
DWAIT1 = 1
DWAIT1 = 1
DSTn = 0
DST0 = 0
DST1 = 0
DWAIT0 = 0
DWAIT1 = 0
DWAIT0 = 0
DWAIT1 = 0
DENn = 0
DEN0 = 0
DEN1 = 0
注意
在例 3 中,将 DWAITn 位置 “1” 后不需要等待 2 个时钟。因为在从 DSTn 位清 “0” 到 DENn 位清 “0” 的期间已经至
少经过了 2 个时钟,所以在将 DSTn 位清 “0” 后不需要等待 2 个时钟。
备注 1. n:DMA 通道号 (n=0、 1)
2. 1 个时钟:1/fCLK (fCLK:CPU 时钟)
R01UH0629CJ0120 Rev.1.20
2019.06.28
527
R7F0C903-908
14.6
(1)
第 14 章 DMA 控制器
DMA 控制器的注意事项
DMA 的优先级
在 DMA 传送过程中,即使发生其他 DMA 通道的请求,也保留该通道的请求。在 DMA 传送结束后开始被保
留的 DMA 传送。但是,当多个 DMA 请求同时发生时,优先级为 DMA 通道 0 > DMA 通道 1 > DMA 通道 2 >
DMA 通道 3。
当 DMA 请求和中断请求同时发生时,优先 DMA 传送,然后执行中断处理。
(2)
DMA 应答时间
DMA 传送的应答时间如下所示。
表 14-3
DMA 传送的应答时间
最短时间
3 个时钟
应答时间
注
最长时间
10
个时钟注
当从内部 RAM 执行指令时,最长时间为 16 个时钟。
注意 1. 以上的应答时间不包括 DMA 传送的 2 个时钟。
2. 在执行 DMA 保留指令 (参照 14.6(4))时,各条件的最长应答时间加上在其条件下保留指令的执行时间。
3. 最长应答时间 +1 个时钟内的同一个通道的连续传送触发可能被忽视,因此不能设定。
备注
(3)
1 个时钟:1/fCLK (fCLK:CPU 时钟)
待机模式中的运行
待机模式中的 DMA 控制器的运行如下所示。
表 14-4
待机模式中的 DMA 运行
DMA 运行
状态
HALT 模式
通常运行
STOP 模式
停止运行
当 DMA 传送和 STOP 指令发生竞争时, DMA 传送可能会遭到破坏,因此必须在执行 STOP 指
令前停止 DMA。
R01UH0629CJ0120 Rev.1.20
2019.06.28
528
R7F0C903-908
(4)
第 14 章 DMA 控制器
DMA 保留指令
即使发生 DMA 请求,也会在紧随着以下指令之后保留 DMA 传送。
•
CALL
!addr16
•
CALL
$!addr20
•
CALL
!!addr20
•
CALL
rp
•
CALLT
[addr5]
•
BRK
•
MOV
•
MOV
PSW, A
•
MOV1
PSW.bit, CY
•
SET1
PSW.bit
•
CLR1
PSW.bit
•
POP
PSW
•
BTCLR
PSW.bit, $addr20
•
EI
•
DI
•
IF0L、IF0H、IF1L、IF1H、IF2L、IF2H、MK0L、MK0H、MK1L、MK1H、MK2L、MK2H、PR00L、
PSW, #byte
PR00H、PR01L、PR01H、PR02L、PR02H、PR10L、PR10H、PR11L、PR11H、PR12L、PR12H 和 PSW
的各寄存器的写指令
•
(5)
存取数据闪存的指令
指定通用寄存器区内或者内部 RAM 区外的地址时的运行
在 DMA 传送过程中,DMA RAM 地址寄存器 n(DRAn)所示的地址进行递增。当该地址进入通用寄存器
区内或者超过内部 RAM 区时,会出现以下情况。
●
从 SFR 传送到RAM 的模式
破坏该地址的数据。
●
从 RAM传送到SFR 的模式
将不定的数据传送到 SFR。
以上 2 种情况都可能导致误动作或者系统的损坏,因此必须确保地址在通用寄存器区以外的内部 RAM 区
内。
FFF00H
FFEFFH
FFEE0H
FFEDFH
䙐⭞ᇺᆎಞ
䜞RAM
R01UH0629CJ0120 Rev.1.20
2019.06.28
㜳䘑㺂DMAՖ䘷Ⲻ॰ต
529
R7F0C903-908
(6)
第 14 章 DMA 控制器
存取数据闪存空间时的运行
如果要在 1 条 DMA 传送指令之后存取数据闪存空间,就需要在此指令之间插入 3 个时钟的等待。
指令 1
DMA 传送
指令 2 ← 等待 3 个时钟。
MOV A, !DataFlash 空间
R01UH0629CJ0120 Rev.1.20
2019.06.28
530
R7F0C903-908
第 15 章 中断功能
第 15 章
中断功能
中断功能是指在程序执行过程中将处理程序切换为其他所需处理程序的一种功能。当转移目标处理结束
时,返回到原来中止的执行程序。
中断源的个数因产品而不同。
可屏蔽中断
15.1
外部
6
内部
26
中断功能的种类
中断功能有以下 2 种。
(1)
可屏蔽中断
这是接受屏蔽控制的中断。通过设定优先级指定标志寄存器(PR00L、PR00H、PR01L、PR01H、PR02L、
PR02H、PR10L、PR10H、PR11L、PR11H、PR12L、PR12H),能将可屏蔽中断的优先级分成四组。高优先级
的中断能对低优先级中断进行多重中断处理。如果同时发生相同优先级的多个中断请求,就根据向量中断处理
的默认优先级进行处理。有关默认优先级,请参照表 15-1。
产生待机解除信号,解除 STOP 模式、 HALT 模式和 SNOOZE 模式。
可屏蔽中断分为外部中断请求和内部中断请求。
(2)
软件中断
这是通过执行 BRK 指令而产生的向量中断。即使在禁止中断的状态下也接受软件中断,而且软件中断不受
中断优先级控制。
15.2
中断源和结构
中断源除了有可屏蔽中断和软件中断以外还有最多 7 种复位源 (参照表 15-1)。当发生复位或者各种中断
请求而进行转移时,因为保存程序起始地址的向量码各为 2 字节,所以中断的转移目标地址为 00000H ~ 0FFFFH 的
64K 地址。
R01UH0629CJ0120 Rev.1.20
2019.06.28
531
R7F0C903-908
第 15 章 中断功能
表 15-1
中断源一览表 (1/2)
中断源
内部 /
外部
向量表
地址
基本结构
类型注 2
内部
00004H
(A)
中断
处理
默认
优先级注 1
可屏蔽
0
INTWDTI
看门狗定时器的间隔注 3
(上溢时间的 75%+1/2fIL)
1
INTLVI
电压检测注 4
2
INTP0
引脚输入边沿的检测
3
INTP1
0000AH
○
4
INTP2
0000CH
○
5
INTP3
0000EH
○
6
INTP4
00010H
○
7
INTP5
00012H
○
8
INTST2/
UART2 发送的传送结束或者缓冲器空中断 /
INTCSI20/
CSI20 的传送结束或者缓冲器空中断 /
INTIIC20
IIC20 的传送结束
9
INTSR2
UART2 接收的传送结束
00016H
○
10
INTSRE2
发生 UART2 接收的通信错误
00018H
○
11
INTDMA0
DMA0 的传送结束
0001AH
○
12
INTDMA1
DMA1 的传送结束
0001CH
○
13
INTST0/
INTCSI00/
INTIIC00
UART0 发送的传送结束或者缓冲器空中断 /
CSI00 的传送结束或者缓冲器空中断 /
IIC00 的传送结束
0001EH
○
14
INTSR0
UART0 接收的传送结束
00020H
○
15
INTSRE0
发生 UART0 接收的通信错误
00022H
○
INTTM01H
定时器通道 01 的计数结束或者捕捉结束
(高 8 位定时器工作时)
16
INTST1
UART1 发送的传送结束或者缓冲器空中断
00024H
○
17
INTSR1/
INTCSI11/
INTIIC11
UART1 接收的传送结束 /
CSI11 的传送结束或者缓冲器空中断 /
IIC11 的传送结束
00026H
○
18
INTSRE1
发生 UART1 接收的通信错误
00028H
○
INTTM03H
定时器通道 03 的计数结束或者捕捉结束
(高 8 位定时器工作时)
19
INTIICA0
IICA0 通信结束
0002AH
○
20
INTTM00
定时器通道 00 的计数结束或者捕捉结束
0002CH
○
21
INTTM01
定时器通道 01 的计数结束或者捕捉结束
(16 位 / 低 8 位定时器工作时)
0002EH
○
22
INTTM02
定时器通道 02 的计数结束或者捕捉结束
00030H
○
23
INTTM03
定时器通道 03 的计数结束或者捕捉结束
(16 位 / 低 8 位定时器工作时)
00032H
○
注
名称
触发
00006H
外部
内部
00008H
00014H
○
○
(B)
(A)
○
○
○
○
1. 在发生多个可屏蔽中断时,默认优先级决定优先顺序。 0 表示最高优先级, 31 表示最低优先级。
2. 基本构成类型 (A) ~ (D) 分别对应图 15-1 的 (A) ~ (D)。
3. 这是将选项字节 (000C0H)的 bit7 (WDTINT)置 “1” 的情况。
4. 这是将电压检测电平寄存器 (LVIS)的 bit7 (LVIMD)置 “0” 的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
532
R7F0C903-908
第 15 章 中断功能
表 15-1
中断源
中断
处理
默认
优先级注 1
可屏蔽
24
INTAD
25
INTIT
26
INTTM04
27
注
中断源一览表 (2/2)
名称
触发
A/D 转换结束
内部 /
外部
向量表
地址
基本结构
类型注 2
内部
00034H
(A)
○
12 位间隔定时器的间隔信号检测
00038H
○
定时器通道 04 的计数结束或者捕捉结束
00042H
○
INTTM05
定时器通道 05 的计数结束或者捕捉结束
00044H
○
28
INTTM06
定时器通道 06 的计数结束或者捕捉结束
00046H
○
29
INTTM07
定时器通道 07 的计数结束或者捕捉结束
00048H
○
30
INTMD
除法运算结束 / 乘加运算结果发生上溢
0005EH
○
31
INTFL
保留注 3
00062H
软件
—
BRK
复位
—
RESET
POR
上电复位
○
LVD
电压检测注 4
○
WDT
看门狗定时器的上溢
○
TRAP
非法指令的执行注 5
○
IAW
非法存储器的存取
○
RPE
RAM 奇偶校验错误
○
○
BRK 指令的执行
—
0007EH
(D)
○
RESET 引脚的输入
—
00000H
—
○
1. 在发生多个可屏蔽中断时,默认优先级决定优先顺序。 0 表示最高优先级, 31 表示最低优先级。
2. 基本构成类型 (A) ~ (D) 分别对应图 15-1 的 (A) ~ (D)。
3. 用于闪存自编程库或者数据闪存库。
4. 这是将电压检测电平寄存器 (LVIS)的 bit7 (LVIMD)置 “1” 的情况。
5. 在执行指令码 FFH 时发生。
在通过在线仿真器或者片上调试仿真器进行仿真时,不会因执行非法指令而产生复位。
R01UH0629CJ0120 Rev.1.20
2019.06.28
533
R7F0C903-908
第 15 章 中断功能
图 15-1
中断功能的基本结构
(A) 内部可屏蔽中断
䜞ᙱ㓵
MK
ѣᯣ䈭≸
IF
IE
PR1
PR0
Վݾ㓝
⭫䐥
ISP1
ISP0
ੇ䠅㺞൦൶
ਇ⭕⭫䐥
ᖻᵰ䀙䲚ؗਭ
IF:
中断请求标志
IE:
中断允许标志
ISP0: 服务优先级标志 0
ISP1: 服务优先级标志 1
MK: 中断屏蔽标志
PR0: 优先级指定标志 0
PR1: 优先级指定标志 1
备注
n=0 ~ 5
(B) 软件中断
䜞ᙱ㓵
ѣᯣ䈭≸
R01UH0629CJ0120 Rev.1.20
2019.06.28
ੇ䠅㺞൦൶
ਇ⭕⭫䐥
534
R7F0C903-908
15.3
第 15 章 中断功能
控制中断功能的寄存器
通过以下 6 种寄存器控制中断功能。
•
中断请求标志寄存器 (IF0L、 IF0H、 IF1L、 IF1H、 IF2L、 IF2H)
•
中断屏蔽标志寄存器 (MK0L、 MK0H、 MK1L、 MK1H、 MK2L、 MK2H)
•
优先级指定标志寄存器(PR00L、PR00H、PR01L、PR01H、PR02L、PR02H、PR10L、PR10H、PR11L、
PR11H、 PR12L、 PR12H)
•
外部中断上升沿允许寄存器 (EGP0)
•
•
外部中断下降沿允许寄存器 (EGN0)
程序状态字 (PSW)
各中断请求源对应的中断请求标志、中断屏蔽标志和优先级指定标志的名称如表 15-2 所示。
表 15-2
中断请求源对应的各种标志 (1/3)
中断请求标志
中断源
中断屏蔽标志
寄存器
IF0L
优先级指定标志
寄存器
INTWDTI
WDTIIF
INTLVI
LVIIF
LVIMK
LVIPR0、 LVIPR1
INTP0
PIF0
PMK0
PPR00、 PPR10
○
INTP1
PIF1
PMK1
PPR01、 PPR11
○
INTP2
PIF2
PMK2
PPR02、 PPR12
○
INTP3
PIF3
PMK3
PPR03、 PPR13
○
INTP4
PIF4
PMK4
PPR04、 PPR14
○
INTP5
PIF5
PMK5
PPR05、 PPR15
○
R01UH0629CJ0120 Rev.1.20
2019.06.28
WDTIMK
MK0L
寄存器
WDTIPR0、 WDTIPR1
PR00L、
PR10L
○
○
535
R7F0C903-908
第 15 章 中断功能
表 15-2
中断请求标志
中断源
中断请求源对应的各种标志 (2/3)
中断屏蔽标志
寄存器
IF0H
优先级指定标志
寄存器
寄存器
STIF2 注 1
INTCSI20 注 1
CSIIF20 注 1
CSIMK20 注 1
INTIIC20 注 1
IICIF20 注 1
IICMK20 注 1
IICPR020、
INTSR2
SRIF2
SRMK2
SRPR02、 SRPR12
INTSRE2
SREIF2
SREMK2
SREPR02、 SREPR12
○
INTDMA0
DMAIF0
DMAMK0
DMAPR00、 DMAPR10
○
INTDMA1
DMAIF1
DMAMK1
DMAPR01、 DMAPR11
○
INTST0 注 2
STIF0 注 2
STMK0 注 2
STPR00、 STPR10 注 2
○
INTCSI00 注 2
CSIIF00 注 2
CSIMK00 注 2
INTIIC00 注 2
IICIF00 注 2
IICMK00 注 2
IICPR000、
INTSR0
SRIF0
SRMK0
SRPR00、 SRPR10
INTSRE0 注 3
SREIF0 注 3
SREMK0 注 3
SREPR00、
INTTM01H 注 3
TMIF01H 注 3
TMMK01H 注 3
TMPR001H、TMPR101H 注 3
注
STMK2 注 1
MK0H
INTST2 注 1
STPR02、
STPR12 注 1
CSIPR020、
CSIPR120 注 1
IICPR120 注 1
CSIPR000、
CSIPR100 注 2
IICPR100 注 2
SREPR10 注 3
PR00H、
PR10H
○
○
○
○
○
○
○
○
○
1. 如果发生 INTST2、INTCSI20 或者 INTIIC20 的中断源,IF0H 寄存器的 bit0 就被置 “1”。MK0H、PR00H、PR10H
寄存器的 bit0 对应这 3 个中断源。
2. 如果发生 INTST0、INTCSI00 或者 INTIIC00 的中断源,IF0H 寄存器的 bit5 就被置 “1”。MK0H、PR00H、PR10H
寄存器的 bit5 对应这 3 个中断源。
3. 因为 UART0 接收的错误中断和 TAU0 的通道 1 (高 8 位定时器工作时)的中断复用中断请求源对应的各种标志,
所以不能同时使用。在不使用 UATR0 接收的错误中断(EOC01=0)时,可同时使用 UART0、TAU0 的通道 1(高
8 位定时器工作时)。如果发生 INTSRE0 或者 INTTM01H 的中断源, IF0H 寄存器的 bit7 就被置 “1”。 MK0H、
PR00H、 PR10H 寄存器的 bit7 对应这 2 个中断源。
R01UH0629CJ0120 Rev.1.20
2019.06.28
536
R7F0C903-908
第 15 章 中断功能
表 15-2
中断请求源对应的各种标志 (3/3)
中断请求标志
中断源
中断屏蔽标志
寄存器
寄存器
STIF1
INTSR1 注 1
SRIF1 注 1
SRMK1 注 1
INTCSI11 注 1
CSIIF11 注 1
CSIMK11 注 1
INTIIC11 注 1
IICIF11 注 1
IICMK11 注 1
INTSRE1 注 2
SREIF1 注 2
SREMK1 注 2
SREPR01、
INTTM03H 注 2
TMIF03H 注 2
TMMK03H 注 2
TMPR003H、TMPR103H 注 2
○
INTIICA0
IICAIF0
IICAMK0
IICAPR00、 IICAPR10
○
INTTM00
TMIF00
TMMK00
TMPR000、 TMPR100
○
INTTM01
TMIF01
TMMK01
TMPR001、 TMPR101
○
INTTM02
TMIF02
TMMK02
TMPR002、 TMPR102
○
INTTM03
TMIF03
TMMK03
TMPR003、 TMPR103
○
INTAD
ADIF
INTIT
ITIF
INTTM05
TMIF05
INTTM06
TMIF06
TMMK06
TMPR006、 TMPR106
INTTM07
TMIF07
TMMK07
TMPR007、 TMPR107
INTMD
MDIF
INTFL
FLIF
IF1H
STMK1
ADMK
MK1L
寄存器
INTST1
注
IF1L
优先级指定标志
SRPR01、
IF2H
TMMK05
MDMK
FLMK
SRPR11 注 1
CSIPR011、
IICPR011、
MK1H
ITMK
IF2L
STPR01、 STPR11
CSIPR111 注 1
MK2H
○
○
○
IICPR111 注 1
○
SREPR11 注 2
○
ADPR0、 ADPR1
ITPR0、 ITPR1
MK2L
PR01L、
PR11L
TMPR005、 TMPR105
MDPR0、 MDPR1
FLPR0、 FLPR1
PR01H、
PR11H
○
PR02L、
PR12L
○
○
○
○
PR02H、
PR12H
○
○
1. 如果发生 INTSR1、INTCSI11 或者 INTIIC11 的中断源,就将 IF1L 寄存器的 bit1 置 “1”。MK1L、PR01L、PR11L
寄存器的 bit1 对应这 3 个中断源。
2. 因为 UART1 接收的错误中断和 TAU0 的通道 3 (高 8 位定时器工作时)的中断共用中断请求源对应的各种标志,
所以不能同时使用。当不使用 UART1 接收的错误中断 (EOC03=0)时,能同时使用 UART1 和 TAU0 的通道 3
(高 8 位定时器工作时)。如果发生 INTSRE1 或者 INTTM03H 的中断源,就将 IF1L 寄存器的 bit2 置 “1”。MK1L、
PR01L、 PR11L 寄存器的 bit2 对应这 2 个中断源。
R01UH0629CJ0120 Rev.1.20
2019.06.28
537
R7F0C903-908
15.3.1
第 15 章 中断功能
中断请求标志寄存器 (IF0L、 IF0H、 IF1L、 IF1H、 IF2L、 IF2H)
通过发生对应的中断请求或者执行指令,将中断请求标志置 “1”。通过接受中断请求或者产生复位信号或者
执行指令,将中断请求标志清 “0”。
在接受中断时,首先自动清除中断请求标志,然后进入中断程序。
通过 1 位或者 8 位存储器操作指令设定 IF0L、IF0H、IF1L、IF1H、IF2L、IF2H 寄存器。当将 IF0L 寄存器
和 IF0H 寄存器、 IF1L 寄存器和 IF1H 寄存器以及 IF2L 寄存器和 IF2H 寄存器一起用作 IF0、 IF1、 IF2 的 16 位
寄存器时,通过 16 位存储器操作指令进行设定。
在产生复位信号后,这些寄存器的值变为 “00H”。
备注
当执行写此寄存器的指令时,指令执行时钟数增加 2 个时钟。
图 15-2
中断请求标志寄存器 (IF0L、 IF0H、 IF1L、 IF1H、 IF2L、 IF2H)的格式 (1/2)
地址:FFFE0H
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
IF0L
PIF5
PIF4
PIF3
PIF2
PIF1
PIF0
LVIIF
WDTIIF
5
4
3
2
1
0
STIF0
DMAIF1
DMAIF0
SREIF2
SRIF2
地址:FFFE1H
符号
IF0H
R/W
复位后:00H
7
6
SREIF0
SRIF0
TMIF01H
地址:FFFE2H
STIF2
CSIIF00
CSIIF20
IICIF00
IICIF20
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
IF1L
TMIF03
TMIF02
TMIF01
TMIF00
IICAIF0
SREIF1
SRIF1
STIF1
TMIF03H
CSIIF11
IICIF11
地址:FFFE3H
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
IF1H
0
0
0
0
0
ITIF
0
ADIF
地址:FFFD0H
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
IF2L
0
0
0
0
0
TMIF07
TMIF06
TMIF05
R01UH0629CJ0120 Rev.1.20
2019.06.28
538
R7F0C903-908
第 15 章 中断功能
图 15-2
中断请求标志寄存器 (IF0L、 IF0H、 IF1L、 IF1H、 IF2L、 IF2H)的格式 (2/2)
地址:FFFD1H
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
IF2H
FLIF
0
MDIF
0
0
0
0
0
XXIFX
中断请求标志
0
不产生中断请求信号。
1
产生中断请求,处于中断请求状态。
注意 1. 分配的寄存器和位因产品而不同。有关各产品分配的寄存器和位,请参照表 15-2。必须给未分配的位设定初始值。
2. 在操作中断请求标志寄存器的标志时,必须使用位存储器操作指令 (CLR1)。当使用 C 语言描述时,编译后的汇
编程序需要变为位存储器操作指令(CLR1),因此必须使用类似 “IF0L.0=0;” 或者 “_asm("clr1 IF0L, 0");” 的位操作
指令。
如果在 C 语言中使用类似于 “IF0L &= 0xfe;” 的 8 位存储器操作指令描述的情况下进行编译,就变为 3 条指令的汇编
程序。
mov a, IF0L
and a, #0FEH
mov IF0L, a
此时,即使在 “mov a, IF0L” 与 “mov IF0L, a” 之间将同一中断请求标志寄存器 (IF0L)的其他位的请求标志置 “1”,
该标志也会被 “mov IF0L, a” 清 “0”。因此,在 C语言中使用 8位存储器操作指令时,必须注意。
15.3.2
中断屏蔽标志寄存器 (MK0L、 MK0H、 MK1L、 MK1H、 MK2L、 MK2H)
中断屏蔽标志设定允许或者禁止对应的可屏蔽中断处理。
通过 1 位或者 8 位存储器操作指令设定 MK0L、 MK0H、 MK1L、 MK1H、 MK2L、 MK2H 寄存器。当将
MK0L 寄存器和 MK0H 寄存器、 MK1L 寄存器和 MK1H 寄存器以及 MK2L 寄存器和 MK2H 寄存器一起用作
MK0、 MK1、 MK2 的 16 位寄存器时,通过 16 位存储器操作指令进行设定。
在产生复位信号后,这些寄存器的值变为 “FFH”。
备注
当执行写此寄存器的指令时,指令执行时钟数增加 2 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
539
R7F0C903-908
第 15 章 中断功能
图 15-3
中断屏蔽标志寄存器 (MK0L、 MK0H、 MK1L、 MK1H、 MK2L、 MK2H)的格式
地址:FFFE4H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
MK0L
PMK5
PMK4
PMK3
PMK2
PMK1
PMK0
LVIMK
WDTIMK
地址:FFFE5H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
MK0H
SREMK0
SRMK0
STMK0
DMAMK1
DMAMK0
SREMK2
SRMK2
STMK2
TMMK01H
地址:FFFE6H
CSIMK00
CSIMK20
IICMK00
IICMK20
R/W
复位后:FFH
符号
7
6
5
4
3
MK1L
TMMK03
TMMK02
TMMK01
TMMK00
IICAMK0
2
1
0
SREMK1
SRMK1
STMK1
TMMK03H
CSIMK11
IICMK11
地址:FFFE7H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
MK1H
0
0
0
0
0
ITMK
0
ADMK
地址:FFFD4H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
MK2L
0
0
0
0
0
TMMK07
TMMK06
TMMK05
地址:FFFD5H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
MK2H
FLMK
0
MDMK
0
0
0
0
0
XXMKX
注意
中断处理的控制
0
允许中断处理。
1
禁止中断处理。
分配的寄存器和位因产品而不同。有关各产品分配的寄存器和位,请参照表 15-2。必须给未分配的位设定初始值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
540
R7F0C903-908
15.3.3
第 15 章 中断功能
优先级指定标志寄存器(PR00L、PR00H、PR01L、PR01H、PR02L、PR02H、
PR10L、 PR10H、 PR11L、 PR11H、 PR12L、 PR12H)
优先级指定标志寄存器设定对应的可屏蔽中断优先级。
通过组合 PR0xy 寄存器和 PR1xy 寄存器来设定优先级 (xy=0L、 0H、 1L、 1H、 2L、 2H)。
通过 1 位或者 8 位存储器操作指令设定 PR00L、PR00H、PR01L、PR01H、PR02L、PR02H、PR10L、PR10H、
PR11L、PR11H、PR12L、PR12H 寄存器。当将 PR00L 寄存器和 PR00H 寄存器、PR01L 寄存器和 PR01H 寄存
器、PR02L 寄存器和 PR02H 寄存器、PR10L 寄存器和 PR10H 寄存器、PR11L 寄存器和 PR11H 寄存器以及 PR12L
寄存器和 PR12H 寄存器一起用作 PR00、PR01、PR02、PR10、PR11、PR12 的 16 位寄存器时,通过 16 位存储
器操作指令进行设定。
在产生复位信号后,这些寄存器的值变为 “FFH”。
备注
当执行写此寄存器的指令时,指令执行时钟数增加 2 个时钟。
图 15-4
优先级指定标志寄存器 (PR00L、 PR00H、 PR01L、 PR01H、 PR02L、 PR02H、 PR10L、
PR10H、 PR11L、 PR11H、 PR12L、 PR12H)的格式 (1/2)
地址:FFFE8H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR00L
PPR05
PPR04
PPR03
PPR02
PPR01
PPR00
LVIPR0
WDTIPR0
地址:FFFECH
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR10L
PPR15
PPR14
PPR13
PPR12
PPR11
PPR10
LVIPR1
WDTIPR1
地址:FFFE9H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR00H
SREPR00
SRPR00
STPR00
DMAPR01
DMAPR00
SREPR02
SRPR02
STPR02
TMPR001H
地址:FFFEDH
CSIPR000
CSIPR020
IICPR000
IICPR020
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR10H
SREPR10
SRPR10
STPR10
DMAPR11
DMAPR10
SREPR12
SRPR12
STPR12
TMPR101H
地址:FFFEAH
CSIPR100
CSIPR120
IICPR100
IICPR120
R/W
复位后:FFH
符号
7
6
5
4
3
PR01L
TMPR003
TMPR002
TMPR001
TMPR000
IICAPR00
2
1
0
SREPR01
SRPR01
STPR01
TMPR003H
CSIPR011
IICPR011
R01UH0629CJ0120 Rev.1.20
2019.06.28
541
R7F0C903-908
图 15-4
第 15 章 中断功能
优先级指定标志寄存器 (PR00L、 PR00H、 PR01L、 PR01H、 PR02L、 PR02H、 PR10L、
PR10H、 PR11L、 PR11H、 PR12L、 PR12H)的格式 (2/2)
地址:FFFEEH
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR11L
TMPR103
TMPR102
TMPR101
TMPR100
IICAPR10
SREPR11
SRPR11
STPR11
TMPR103H
CSIPR111
IICPR111
地址:FFFEBH
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR01H
1
1
1
1
1
ITPR0
1
ADPR0
地址:FFFEFH
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR11H
1
1
1
1
1
ITPR1
1
ADPR1
地址:FFFD8H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR02L
1
1
1
1
1
TMPR007
TMPR006
TMPR005
地址:FFFDCH
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR12L
1
1
1
1
1
TMPR107
TMPR106
TMPR105
地址:FFFD9H
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR02H
FLPR0
1
MDPR0
1
1
1
1
1
地址:FFFDDH
R/W
复位后:FFH
符号
7
6
5
4
3
2
1
0
PR12H
FLPR1
1
MDPR1
1
1
1
1
1
XXPR1X
XXPR0X
0
0
指定优先级 0 (高优先级)。
0
1
指定优先级 1。
1
0
指定优先级 2。
1
1
指定优先级 3 (低优先级)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
优先级的选择
542
R7F0C903-908
15.3.4
第 15 章 中断功能
外部中断上升沿允许寄存器 (EGP0)、外部中断下降沿允许寄存器 (EGN0)
这些寄存器设定 INTP0 ~ INTP5 的有效边沿。
通过 1 位或者 8 位存储器操作指令设定 EGP0 寄存器和 EGN0 寄存器。
在产生复位信号后,这些寄存器的值变为 “00H”。
图 15-5
外部中断上升沿允许寄存器 (EGP0)和外部中断下降沿允许寄存器 (EGN0)的格式
地址:FFF38H
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
EGP0
0
0
EGP5
EGP4
EGP3
EGP2
EGP1
EGP0
地址:FFF39H
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
EGN0
0
0
EGN5
EGN4
EGN3
EGN2
EGN1
EGN0
EGPn
EGNn
0
0
禁止检测边沿。
0
1
下降沿
1
0
上升沿
1
1
上升和下降的双边沿
INTPn 引脚的有效边沿选择 (n=0 ~ 5)
对应 EGPn 位和 EGNn 位的端口如表 15-3 所示。
表 15-3
对应 EGPn 位和 EGNn 位的中断请求信号
检测允许位
注意
中断请求信号
EGP0
EGN0
INTP0
○
EGP1
EGN1
INTP1
○
EGP2
EGN2
INTP2
○
EGP3
EGN3
INTP3
○
EGP4
EGN4
INTP4
○
EGP5
EGN5
INTP5
○
如果将外部中断功能使用的输入端口切换到输出模式,就可能检测到有效边沿而产生 INTPn 中断。
当切换到输出模式时,必须在禁止检测边沿后 (EGPn、 EGNn=0、 0)将端口模式寄存器 (PMxx)置 “0”。
备注 1. 有关边沿检测的端口,请参照 “2.1 端口功能 ”。
2. n=0 ~ 5
R01UH0629CJ0120 Rev.1.20
2019.06.28
543
R7F0C903-908
15.3.5
第 15 章 中断功能
程序状态字 (PSW)
程序状态字是保存指令执行结果和中断请求当前状态的寄存器,映射设定允许或者禁止可屏蔽中断的 IE 标
志以及控制多重中断处理的 ISP0 标志和 ISP1 标志。
除了能以 8 位为单位读写 PSW 以外,还能利用位操作指令和专用指令(EI 和 DI)操作 PSW。在接受向量
中断请求及执行 BRK 指令时,自动将 PSW 的内容压栈,并且将 IE 标志恢复为 “0”。在接受可屏蔽中断请求时,
如果接受的中断优先级指定标志寄存器的内容不为 “00”,就将其减 1 的值传送到 ISP0 标志和 ISP1 标志。 PSW
的内容也能通过 PUSH PSW 指令进行压栈,通过 RETI、 RETB、 POP PSW 指令进行退栈。
在产生复位信号后, PSW 的值变为 “06H”。
图 15-6
PSW
7
6
5
4
IE
Z
RBS1
AC
3
2
RBS0 ISP1
程序状态字的结构
གྷփ
1
ISP0
CY
06H
⭞ӄ䙐ᑮⲺԚᢝ㺂Ⱦ
ISP1
ISP0
0
0
0
1
↙൞༺⨼ⲺѣᯣՎݾ㓝
ݷ䇮Վݾ㓝0ⲺѣᯣȾ
↙൞༺⨼Վݾ㓝1ᡌ㘻Վݾ㓝0Ⲻѣᯣ
ݷ䇮Վݾ㓝0Њ1ⲺѣᯣȾ
↙൞༺⨼Վݾ㓝2Ⲻѣᯣ
1
0
1
1
ݷ䇮Վݾ㓝0Њ2ⲺѣᯣȾ
↙൞༺⨼Վݾ㓝3Ⲻѣᯣ
ݷ䇮ޞ䜞ѣᯣȾ
ㅿᖻѣᯣ
ѣᯣ䈭≸Ⲻݷ䇮⾷↘
⾷↘
ݷ䇮
R01UH0629CJ0120 Rev.1.20
2019.06.28
544
R7F0C903-908
15.4
第 15 章 中断功能
中断处理的操作
15.4.1
可屏蔽中断请求的接受
如果中断请求标志被置 “1” 并且该中断请求的屏蔽 (MK)标志已被清 “0”,就进入能接受可屏蔽中断请求
的状态,在允许中断的状态 (IE 标志已被置 “1”)下接受向量中断请求。但是,在处理优先级高的中断请求的
过程中,不接受被指定的低优先级的中断请求。
从产生可屏蔽中断请求到进行向量中断处理的时间如表 15-4 所示。
有关中断请求的接受时序,请参照图 15-8 和图 15-9。
表 15-4
从产生可屏蔽中断请求到处理的时间
最长时间注
最短时间
处理时间
9 个时钟
注
从内部 RAM 区执行指令时除外。
备注
1 个时钟:1/fCLK (fCLK:CPU 时钟)
16 个时钟
如果同时发生多个可屏蔽中断请求,就从优先级指定标志所指定的高优先级的请求开始接受。如果优先级
指定标志所指定的优先级相同,就从默认优先级高的请求开始接受。
被保留的中断请求在可接受的状态时被接受。
中断请求的接受算法如图 15-7 所示。
如果接受可屏蔽中断请求,就按照程序状态字 (PSW)、程序计数器 (PC)的顺序将内容压栈,将 IE 标
志复位为 “0”,并且将接受的中断优先级指定标志的内容传送到 ISP1 标志和 ISP0 标志。将各中断请求决定的向
量表中的数据装入 PC 并且进行转移。
能使用 RETI 指令从中断返回。
R01UH0629CJ0120 Rev.1.20
2019.06.28
545
R7F0C903-908
第 15 章 中断功能
图 15-7
接受中断请求的处理算法
ᔶခ
(ӝ⭕ѣᯣ䈭≸)
ؓ⮏ѣᯣ䈭≸
(xxPR1ȽxxPR0)
ŏ(ISP1ȽISP0)
(儎Վݾ㓝)
(քՎݾ㓝)
ؓ⮏ѣᯣ䈭≸
Վݾ㓝儎ӄ
ੂᰬӝ⭕ⲺެԌ
ѣᯣ䈭≸"
ؓ⮏ѣᯣ䈭≸
൞ੂՎݾ㓝ѣ
唎䇚Վݾ㓝⌞
儎ӄੂᰬӝ⭕Ⲻ
ެԌѣᯣ䈭≸"
ؓ⮏ѣᯣ䈭≸
ؓ⮏ѣᯣ䈭≸
ੇ䠅ѣᯣ༺⨼
xxIF:
中断请求标志
xxMK:
中断屏蔽标志
xxPR0:
优先级指定标志 0
xxPR1:
优先级指定标志 1
IE:
可屏蔽中断请求的接受控制标志 (1= 允许、 0= 禁止)
ISP0、 ISP1: 表示正在处理的中断优先级的标志 (参照图 15-6)
注
有关默认优先级,请参照 “ 表 15-1 中断源一览表 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
546
R7F0C903-908
第 15 章 中断功能
图 15-8
中断请求的接受时序 (最短时间)
6Ѡᰬ䫕
C P U༺⨼
Ԛ
ؓᆎPSWૂPCθ
ѣᯣ༺⨼ぁᓅ
䐩〱ࡦѣᯣ༺⨼ぁᓅȾ
Ԛ
xxIF
9Ѡᰬ䫕
备注
1 个时钟:1/fCLK (fCLK:CPU 时钟)
图 15-9
中断请求的接受时序 (最长时间)
8Ѡᰬ䫕
CPU༺⨼
Ԛ
ѣᯣࢃⲺԚ
6Ѡᰬ䫕
ؓᆎPSWૂPCθ
ѣᯣ༺⨼ぁᓅ
䐩〱ࡦѣᯣ༺⨼ぁᓅȾ
xxIF
16Ѡᰬ䫕
备注
1 个时钟:1/fCLK (fCLK:CPU 时钟)
R01UH0629CJ0120 Rev.1.20
2019.06.28
547
R7F0C903-908
15.4.2
第 15 章 中断功能
软件中断请求的接受
通过执行 BRK 指令接受软件中断请求,不能禁止软件中断。
如果接受软件中断请求,就按照程序状态字 (PSW)、程序计数器 (PC)的顺序将内容压栈,将 IE 标志
复位为 “0”,并且将向量表 (0007EH、 0007FH)的内容装入 PC 进行转移。
能使用 RETB 指令从软件中断返回。
注意
不能使用 RETI 指令从软件中断返回。
15.4.3
多重中断处理
在中断处理过程中接受了另一个中断请求的情况称为多重中断。
除非中断请求为接受允许状态 (IE=1),否则不会发生多重中断。在接受中断请求时,中断请求为接受被
禁止状态 (IE=0)。因此,如果要允许多重中断,就需要在中断处理过程中用 EI 指令将 IE 标志置 “1”,进入允
许中断的状态。
另外,即使在允许中断的状态下也可能不允许多重中断,由中断优先级进行控制。中断优先级有默认优先
级和可编程优先级,通过可编程优先级控制多重中断。
在允许中断的状态下,如果产生的中断请求的优先级高于正在处理的中断优先级,就作为多重中断进行接
受。如果产生的中断请求的优先级等于或者低于正在处理的中断优先级,就不作为多重中断进行接受。但是,
如果在处理优先级 0 的中断过程中将 IE 标志置 “1”,就允许优先级 0 的其他中断。
保留因中断被禁止或者优先级低而不允许多重中断的中断请求,在当前的中断处理结束后至少执行一条主
处理的指令,然后接受被保留的中断请求。
在中断处理过程中能发生多重中断的中断请求的关系和多重中断的例子如表 15-5 和图 15-10 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
548
R7F0C903-908
第 15 章 中断功能
表 15-5
在中断处理过程中能发生多重中断的中断请求的关系
可屏蔽中断请求
多重中断请求
正在处理的中断
可屏蔽中断
ISP1=0
优先级 0
优先级 1
优先级 2
优先级 3
软件中
(PR=00)
(PR=01)
(PR=10)
(PR=11)
断请求
IE=1
IE=0
IE=1
IE=0
IE=1
IE=0
IE=1
IE=0
○
×
×
×
×
×
×
×
○
○
×
○
×
×
×
×
×
○
○
×
○
×
○
×
×
×
○
○
×
○
×
○
×
○
×
○
○
×
○
×
○
×
○
×
○
ISP0=0
ISP1=0
ISP0=1
ISP1=1
ISP0=0
ISP1=1
ISP0=1
软件中断
备注 1. ○:能发生多重中断。
2. ×:不能发生多重中断。
3. ISP0、 ISP1 和 IE 是 PSW 中的标志。
ISP1=0、 ISP0=0:正在处理优先级 1 或者优先级 0 的中断。
ISP1=0、 ISP0=1:正在处理优先级 2 的中断。
ISP1=1、 ISP0=0:正在处理优先级 3 的中断。
ISP1=1、 ISP0=1:等待接受中断 (允许全部中断)。
IE=0:禁止接受中断请求。
IE=1:允许接受中断请求。
4. PR 是 PR00L、PR00H、PR01L、PR01H、PR02L、PR02H、PR10L、PR10H、PR11L、PR11H、PR12L、PR12H
寄存器中的标志。
PR=00:通过 xxPR1x=0、 xxPR0x=0 指定优先级 0 (高优先级)。
PR=01:通过 xxPR1x=0、 xxPR0x=1 指定优先级 1。
PR=10:通过 xxPR1x=1、 xxPR0x=0 指定优先级 2。
PR=11:通过 xxPR1x=1、 xxPR0x=1 指定优先级 3 (低优先级)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
549
R7F0C903-908
第 15 章 中断功能
图 15-10
多重中断的例子 (1/2)
例 1. 发生 2 次多重中断的例子
ѱ༺⨼
INTxx ༺⨼
IE = 0
EI
INTyy ༺⨼
IE = 0
IE = 0
EI
INTxx
(PR = 11)
INTzz ༺⨼
EI
INTyy
(PR = 10)
INTzz
(PR = 01)
RETI
IE = 1
IE = 1
RETI
RETI
IE = 1
在处理中断 INTxx 的过程中接受 INTyy 和 INTzz 的 2 个中断请求,发生多重中断。必须在接受各中断请求
之前发行 EI 指令,使中断请求处于允许接受的状态。
例 2. 因控制优先级而不发生多重中断的例子
ѱ༺⨼
EI
INTxx ༺⨼
INTyy ༺⨼
IE = 0
EI
INTxx
(PR = 10)
INTyy
(PR = 11)
RETI
IE = 1
ᢝ㺂1ᶗԚ
IE = 0
RETI
IE = 1
在处理中断 INTxx 的过程中,发生的中断请求 INTyy 因中断优先级低于 INTxx 而不被接受,所以不发生多
重中断。保留 INTyy 请求,在执行一条主处理的指令后接受被保留的 INTyy 请求。
PR=00: 通过 xxPR1x=0、 xxPR0x=0 指定优先级 0 (高优先级)。
PR=01: 通过 xxPR1x=0、 xxPR0x=1 指定优先级 1。
PR=10: 通过 xxPR1x=1、 xxPR0x=0 指定优先级 2。
PR=11: 通过 xxPR1x=1、 xxPR0x=1 指定优先级 3 (低优先级)。
IE=0: 禁止接受中断请求。
IE=1: 允许接受中断请求。
R01UH0629CJ0120 Rev.1.20
2019.06.28
550
R7F0C903-908
第 15 章 中断功能
图 15-10
多重中断的例子 (2/2)
例 3. 因不允许中断而不发生多重中断的例子
ѱ༺⨼
INTxx ༺⨼
INTyy ༺⨼
IE = 0
EI
INTxx
(PR = 11)
INTyy
(PR = 00)
RETI
IE = 1
IE = 0
ᢝ㺂1ᶗԚ
RETI
IE = 1
在处理中断 INTxx 的过程中,因不允许中断 (未发行 EI 指令)而不接受中断请求 INTyy,所以不发生多
重中断。保留 INTyy 请求,在执行一条主处理的指令后接受被保留的 INTyy 请求。
PR=00: 通过 xxPR1x=0、 xxPR0x=0 指定优先级 0 (高优先级)。
PR=01: 通过 xxPR1x=0、 xxPR0x=1 指定优先级 1。
PR=10: 通过 xxPR1x=1、 xxPR0x=0 指定优先级 2。
PR=11: 通过 xxPR1x=1、 xxPR0x=1 指定优先级 3 (低优先级)。
IE=0: 禁止接受中断请求。
IE=1: 允许接受中断请求。
R01UH0629CJ0120 Rev.1.20
2019.06.28
551
R7F0C903-908
第 15 章 中断功能
15.4.4 中断请求的保留
有些指令,即使在执行指令的过程中发生了中断请求,也可能将中断请求保留到下一条指令执行结束为
止。这些指令 (中断请求保留指令)如下所示。
•
MOV PSW, #byte
•
MOV PSW, A
•
MOV1 PSW. bit, CY
•
SET1 PSW. bit
•
CLR1 PSW. bit
•
RETB
•
RETI
•
POP PSW
•
BTCLR PSW. bit, $addr20
•
EI
•
DI
•
SKC
•
SKNC
•
SKZ
•
SKNZ
•
SKH
•
SKNH
•
IF0L、IF0H、IF1L、IF1H、IF2L、IF2H、MK0L、MK0H、MK1L、MK1H、MK2L、MK2H、PR00L、
PR00H、PR01L、PR01H、PR02L、PR02H、PR10L、PR10H、PR11L、PR11H、PR12L 和 PR12H 的各
寄存器的写指令
中断请求的保留时序如图 15-11 所示。
图 15-11
CPU ༺⨼
Ԛ N
中断请求的保留
ԚM
ؓᆎPSWૂPCθ
䐩〱ࡦѣᯣ༺⨼ぁᓅȾ
ѣᯣ༺⨼ぁᓅ
xxIF
备注 1. 指令 N:中断请求的保留指令
2. 指令 M:中断请求保留指令以外的指令
R01UH0629CJ0120 Rev.1.20
2019.06.28
552
R7F0C903-908
第 16 章 待机功能
第 16 章
16.1
待机功能
待机功能
待机功能是进一步降低系统工作电流的功能,有以下 3 种模式。
(1)
HALT 模式
通过执行 HALT 指令进入 HALT 模式。HALT 模式是停止 CPU 运行时钟的模式。在设定 HALT 模式前,如
果高速系统时钟振荡电路或者高速内部振荡器正在振荡,各时钟就继续振荡。虽然此模式无法让工作电流降到
STOP 模式的程度,但是在想要通过中断请求立即重新开始处理或者想要频繁地进行间歇运行时是一种有效的
模式。
(2)
STOP 模式
通过执行 STOP 指令进入 STOP 模式。STOP 模式是停止高速系统时钟振荡电路和高速内部振荡器的振荡并
且停止整个系统的模式。能大幅度地减小 CPU 的工作电流。
因为 STOP 模式能通过中断请求来解除,所以也能进行间歇运行。但是,在 X1 时钟的情况下,因为在解除
STOP 模式时需要确保振荡稳定的等待时间,所以如果一定要通过中断请求立即开始处理,就必须选择 HALT 模
式。
(3)
SNOOZE 模式
通过 CSIp 或者 UARTq 的数据接收以及由定时器触发信号(中断请求信号(INTIT))产生的 A/D 转换请求,
解除 STOP 模式,并且在 CPU 不运行的状态下进行 CSIp 或者 UARTq 的数据接收以及 A/D 转换。只有在选择
高速内部振荡器作为 CPU/ 外围硬件时钟 (fCLK)时才能设定 SNOOZE 模式。
在任何一种模式中,寄存器、标志和数据存储器全部保持设定为待机模式前的内容,并且还保持输入 / 输出
端口的输出锁存器和输出缓冲器的状态。
注意 1. 只有在 CPU 以主系统时钟运行时才能使用 STOP 模式和 HALT 模式。
2. 在转移到STOP模式时,必须在停止以主系统时钟运行的外围硬件后执行STOP指令(SNOOZE模式设定单元除外)。
3. 在 SNOOZE 模式中使用 CSIp、UARTq 或者 A/D 转换器时,必须在转移到 STOP 模式前设定串行待机控制寄存器
0 (SSC0)和 A/D 转换器模式寄存器 2 (ADM2)。详细内容请参照 “11.3 控制串行阵列单元的寄存器 ” 和 “10.3
控制 A/D 转换器的寄存器 ”。
4. 为了减小 A/D 转换器的工作电流,必须将 A/D 转换器模式寄存器 0 (ADM0)的 bit7 (ADCS)和 bit0 (ADCE)
清 “0”,在停止 A/D 转换运行后执行 STOP 指令。
5. 能通过选项字节选择在 HALT 模式或者 STOP 模式中是继续还是停止低速内部振荡器的振荡。详细内容请参照 “ 第
22 章 选项字节 ”。
备注
P=00、 q=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
553
R7F0C903-908
16.2
第 16 章 待机功能
控制待机功能的寄存器
控制待机功能的寄存器如下所示:
•
副系统时钟提供模式控制寄存器 (OSMC)
•
振荡稳定时间计数器的状态寄存器 (OSTC)
•
振荡稳定时间选择寄存器 (OSTS)
有关上述寄存器的详细内容,请参照 “第 5章 时钟发生电路”。有关控制SNOOZE模式功能的寄存器,请参照“第 10
备注
章 A/D转换器”和 “第 11 章 串行阵列单元”。
16.3
待机功能的运行
16.3.1
(1)
HALT 模式
HALT 模式
通过执行 HALT 指令设定为 HALT 模式。无论设定前的 CPU 时钟是高速系统时钟还是高速内部振荡器时
钟,都能设定。
HALT 模式中的运行状态如下所示。
注意
当中断屏蔽标志为 “0” (允许中断处理)并且中断请求标志为“1” (产生中断请求信号)时,中断请求信号用于解除
HALT模式。因此,即使在此情况下执行HALT 指令,也不转移到HALT 模式。
R01UH0629CJ0120 Rev.1.20
2019.06.28
554
R7F0C903-908
第 16 章 待机功能
表 16-1
HALT 模式中的运行状态
在 CPU 以主系统时钟运行的过程中执行 HALT 指令的情况
HALT 模式的设定
项目
CPU 以高速内部振荡器时钟
(fIH)运行
系统时钟
停止给 CPU 提供时钟。
主系统时钟
CPU 以 X1 时钟
(fX)运行
CPU 以外部主系统时钟
(fEX)运行
fIH
继续运行 (不能停止)。
禁止运行。
fX
禁止运行。
继续运行 (不能停止)。
不能运行。
不能运行。
继续运行 (不能停止)。
fEX
fIL
通过选项字节 (000C0H)的 bit0 (WDSTBYON)和 bit4 (WDTON)以及副系统时钟提
供模式控制寄存器 (OSMC)的 WUTMMCK0 位进行设定。
• WUTMMCK0=1:振荡
• WUTMMCK0=0 并且 WDTON=0:停止
• WUTMMCK0=0、 WDTON=1 并且 WDSTBYON=1:振荡
• WUTMMCK0=0、 WDTON=1 并且 WDSTBYON=0:停止
CPU
停止运行。
代码闪存
数据闪存
RAM
停止运行 (在执行 DMA 时,能运行)。
端口 (锁存器)
保持设定为 HALT 模式前的状态。
定时器阵列单元
能运行。
12 位间隔定时器
看门狗定时器
参照 “ 第 9 章 看门狗定时器 ”。
时钟输出 / 蜂鸣器输出
能运行。
A/D 转换器
串行阵列单元 (SAU)
串行接口 (IICA)
乘除器和乘加器
DMA 控制器
上电复位功能
电压检测功能
外部中断
CRC 运算
功能
高速 CRC
通用 CRC
RAM 奇偶校验功能
在 RAM 区的运算中执行 DMA 时,能运行。
在执行 DMA 时,能运行。
RAM 保护功能
SFR 保护功能
非法存储器存取检测功能
备注
停止运行:在转移到 HALT模式时自动停止运行。
禁止运行:在转移到 HALT模式前停止运行。
fIH:高速内部振荡器时钟
fIL:低速内部振荡器时钟
fX:X1时钟
fEX:外部主系统时钟
R01UH0629CJ0120 Rev.1.20
2019.06.28
555
R7F0C903-908
(2)
第 16 章 待机功能
HALT 模式的解除
能通过以下 2 种方法解除 HALT 模式。
(a)
通过未屏蔽的中断请求进行的解除
如果发生未屏蔽的中断请求,就解除 HALT 模式。然后,如果处于允许接受中断的状态,就进行向量中断
的处理。如果处于禁止接受中断的状态,就执行下一个地址的指令。
图 16-1
通过中断请求解除 HALT 模式
ѣᯣ䈭≸
HALTԚ
ᖻᵰ䀙䲚ؗਭ⌞1
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
儎䙕㌱㔕ᰬ䫕ᡌ㘻
儎䙕䜞ᥥ㦗ಞᰬ䫕
注
ㅿᖻ ⌞2
HALT⁗ᕅ
䙐ᑮ䘆㺂
ᥥ㦗
1. 有关待机解除信号的详细内容,请参照图 15-1。
2. HALT 模式解除等待时间
• 进行向量中断处理的情况
主系统时钟:15 ~ 16 个时钟
• 不进行向量中断处理的情况
主系统时钟:9 ~ 10 个时钟
备注
虚线表示接受解除了待机模式的中断请求的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
556
R7F0C903-908
(b)
第 16 章 待机功能
通过产生复位信号进行的解除
通过产生复位信号来解除 HALT 模式。然后,和通常的复位相同,在转移到复位向量地址后执行程序。
图 16-2
通过复位解除 HALT 模式
(1) CPU 时钟为高速系统时钟的情况
HALTԚ
གྷփؗਭ
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
HALT⁗ᕅ
⌞
↘ڒ
ᥥ㦗
ᥥ㦗
儎䙕䜞ᥥ㦗ಞᰬ䫕
གྷփ
ᵕ䰪
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
ᥥ㦗
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
(2) CPU 时钟为高速内部振荡器时钟的情况
HALTԚ
གྷփؗਭ
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
(儎䙕㌱㔕ᰬ䫕)
儎䙕㌱㔕ᰬ䫕
(X1ᥥ㦗)
HALT⁗ᕅ
ᥥ㦗
གྷփ
ᵕ䰪
↘ڒ
ᥥ㦗
⌞
↘ڒ
ᥥ㦗
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
ᥥ㦗
ᥥ㦗どᇐᰬ䰪
(䙐䗽OSTCᇺᆎಞ⺤䇚)
䙐䗽䖥Ԭ䇴ᇐᔶခX1ᥥ㦗Ⱦ
注
有关复位处理时间,请参照“第 17 章 复位功能”。有关上电复位 (POR)电路和电压检测 (LVD)电路的复位处理
时间,请参照“第18 章 上电复位电路”。
16.3.2
(1)
STOP 模式
STOP 模式的设定和运行状态
通过执行 STOP 指令设定为 STOP 模式。只有在设定前的 CPU 时钟为主系统时钟的情况下才能设定。
注意
当中断屏蔽标志为 “0” (允许中断处理)并且中断请求标志为“1” (产生中断请求信号)时,中断请求信号用于解除
STOP模式。因此,如果在此情况下执行 STOP指令,就在一旦进入STOP模式后立即被解除。在执行STOP 指令并
且经过 STOP模式解除时间后返回到运行模式。
STOP 模式中的运行状态如下所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
557
R7F0C903-908
第 16 章 待机功能
表 16-2
STOP 模式中的运行状态
在 CPU 以主系统时钟运行的过程中执行 STOP 指令的情况
STOP 模式的设定
CPU 以高速内部振荡器时钟
项目
(fIH)运行
CPU 以 X1 时钟 (fX)运行
CPU 以外部主系统时钟
(fEX)运行
停止给 CPU 提供时钟。
系统时钟
主系统时钟
fIH
停止
fX
fEX
fIL
通过选项字节 (000C0H)的 bit0 (WDSTBYON)和 bit4 (WDTON)以及副系统时钟提
供模式控制寄存器 (OSMC)的 WUTMMCK0 位进行设定。
•
•
•
•
CPU
WUTMMCK0=1:振荡
WUTMMCK0=0 并且 WDTON=0:停止
WUTMMCK0=0、 WDTON=1 并且 WDSTBYON=1:振荡
WUTMMCK0=0、 WDTON=1 并且 WDSTBYON=0:停止
停止运行。
代码闪存
数据闪存
RAM
端口 (锁存器)
保持设定为 STOP 模式前的状态。
定时器阵列单元
禁止运行。
12 位间隔定时器
能运行。
看门狗定时器
参照 “ 第 9 章 看门狗定时器 ”。
时钟输出 / 蜂鸣器输出
禁止运行。
A/D 转换器
能进行唤醒 (转移到 SNOOZE 模式)。
串行阵列单元 (SAU)
只有 CSIp 和 UARTq 才能进行唤醒 (转移到 SNOOZE 模式)。
除了 CSIp 和 UARTq 以外,禁止运行。
串行阵列单元 (IICA)
能通过地址匹配进行唤醒。
乘除器和乘加器
禁止运行。
DMA 控制器
上电复位功能
能运行。
电压检测功能
外部中断
CRC 运算
高速 CRC
功能
通用 CRC
停止运行。
RAM 奇偶校验功能
RAM 保护功能
SFR 保护功能
非法存储器存取检测功能
备注 1. 停止运行:在转移到 STOP 模式时自动停止运行。
禁止运行:在转移到 STOP 模式前停止运行。
fIH:高速内部振荡器时钟
fIL: 低速内部振荡器时钟
fX: X1 时钟
fEX:外部主系统时钟
2. p=00、 q=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
558
R7F0C903-908
(2)
第 16 章 待机功能
STOP 模式的解除
能通过以下 2 种方法解除 STOP 模式。
(a)
通过未屏蔽的中断请求进行的解除
如果发生未屏蔽的中断请求,就解除 STOP 模式。在经过振荡稳定时间后,如果处于允许接受中断的状态,
就进行向量中断的处理。如果处于禁止接受中断的状态,就执行下一个地址的指令。
图 16-3
通过中断请求解除 STOP 模式 (1/2)
(1) CPU 时钟为高速内部振荡器时钟的情况
ѣᯣ䈭≸
STOPԚ
ᖻᵰ䀙䲚ؗਭ⌞1
STOP⁗ᕅ䀙䲚ᰬ䰪⌞2
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
STOP⁗ᕅ
ᥥ㦗
↘ڒᥥ㦗
儎䙕䜞ᥥ㦗ಞᰬ䫕
↘ڒᨆבᰬ䫕
ㅿᖻ
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
ᥥ㦗
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
注
1. 有关待机解除信号的详细内容,请参照图 15-1。
2. STOP 模式解除时间
停止提供时钟:18μs ~ 65μs
等待
• 进行向量中断处理的情况:
7 个时钟
• 不进行向量中断处理的情况:
1 个时钟
备注 1. 时钟停止提供的时间因温度条件和 STOP 模式期间而变。
2. 虚线表示接受解除了待机模式的中断请求的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
559
R7F0C903-908
第 16 章 待机功能
图 16-3
通过中断请求解除 STOP 模式 (2/2)
(2) CPU 时钟为高速系统时钟 (X1振荡)的情况
ѣᯣ䈭≸
STOPԚ
ᖻᵰ䀙䲚ؗਭ ⌞1
STOP⁗ᕅ䀙䲚ᰬ䰪⌞2
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
(儎䙕㌱㔕ᰬ䫕)
STOP ⁗ᕅ
ᥥ㦗
↘ڒᥥ㦗
儎䙕㌱㔕ᰬ䫕
( X1ᥥ㦗)
注
ㅿᖻ
↘ڒᨆבᰬ䫕
䙐ᑮ䘆㺂
(儎䙕㌱㔕ᰬ䫕)
ᥥ㦗
1. 有关待机解除信号的详细内容,请参照图 15-1。
2. STOP 模式解除时间
停止提供时钟:18μs ~ “65μs 和振荡稳定时间 (通过 OSTS 进行设定)中较长的时间 ”
等待
• 进行向量中断处理的情况:
10 ~ 11 个时钟
• 不进行向量中断处理的情况:
4 ~ 5 个时钟
(3) CPU 时钟为高速系统时钟 (外部时钟输入)的情况
ѣᯣ䈭≸
STOPԚ
ᖻᵰ䀙䲚ؗਭ ⌞ 1
STOP⁗ᕅ䀙䲚ᰬ䰪 ⌞2
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
(儎䙕㌱㔕ᰬ䫕)
儎䙕㌱㔕ᰬ䫕
(ཌ䜞ᰬ䫕䗉)ޛ
注
ᥥ㦗
STOP ⁗ᕅ
↘ڒᥥ㦗
↘ڒᨆבᰬ䫕
䙐ᑮ䘆㺂
(儎䙕㌱㔕ᰬ䫕)
ㅿᖻ
ᥥ㦗
1. 有关待机解除信号的详细内容,请参照图 15-1。
2. STOP 模式解除时间
停止提供时钟:18μs ~ 65μs
等待
注意
• 进行向量中断处理的情况:
7 个时钟
• 不进行向量中断处理的情况:
1 个时钟
在 CPU 以高速系统时钟 (X1 振荡)运行并且要缩短 STOP 模式解除后的振荡稳定时间时,必须在执行 STOP 指令
前暂时将 CPU时钟切换为高速内部振荡器时钟。
备注 1. 时钟停止提供的时间因温度条件和 STOP 模式期间而变。
2. 虚线表示接受解除了待机模式的中断请求的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
560
R7F0C903-908
(b)
第 16 章 待机功能
通过产生复位信号进行的解除
通过产生复位信号来解除 STOP 模式。然后,和通常的复位相同,在转移到复位向量地址后执行程序。
图 16-4
通过复位解除 STOP 模式
(1) CPU 时钟为高速内部振荡器时钟的情况
STOPԚ
གྷփؗਭ
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
CPUⲺ⣬ᘷ
ᥥ㦗
儎䙕䜞ᥥ㦗ಞᰬ䫕
STOP ⁗ᕅ
གྷփ
ᵕ䰪
↘ڒᥥ㦗
↘ڒ
ᥥ㦗
⌞
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
ᥥ㦗
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
(2) CPU 时钟为高速系统时钟的情况
STOPԚ
གྷփؗਭ
CPUⲺ⣬ᘷ
䙐ᑮ䘆㺂
(儎䙕㌱㔕ᰬ䫕)
STOP ⁗ᕅ
གྷփ
ᵕ䰪
ᥥ㦗
↘ڒᥥ㦗
↘ڒ
ᥥ㦗
儎䙕㌱㔕ᰬ䫕
(X1ᥥ㦗)
⌞
↘ڒ
ᥥ㦗
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
ᥥ㦗
ᥥ㦗どᇐᰬ䰪
(䙐䗽OSTCᇺᆎಞ⺤䇚)
䙐䗽䖥Ԭ䇴ᇐᔶခX1ᥥ㦗Ⱦ
注
有关复位处理时间,请参照“第 17 章 复位功能”。有关上电复位 (POR)电路和电压检测 (LVD)电路的复位处理
时间,请参照“第18 章 上电复位电路”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
561
R7F0C903-908
16.3.3
(1)
第 16 章 待机功能
SNOOZE 模式
SNOOZE 模式的设定和运行状态
能给 CSIp、 UARTq 或者 A/D 转换器设定 SNOOZE 模式,并且只有在设定前的 CPU 时钟为高速内部振荡
器时钟的情况下才能设定。
要在 SNOOZE 模式中使用 CSIp 或者 UARTq 时,必须在即将要转移到 STOP 模式前将串行待机控制寄存
器 0 (SSC0)的 SWC0 位置 “1”。详细内容请参照 “11.3 控制串行阵列单元的寄存器 ”。
要在 SNOOZE 模式中使用 A/D 转换器时,必须在即将要转移到 STOP 模式前将 A/D 转换器模式寄存器 2
(ADM2)的 AWC 位置 “1”。详细内容请参照 “10.3 控制 A/D 转换器的寄存器 ”。
p=00、 q=0
备注
在进行 SNOOZE 模式的转移时,只在以下的时间内变为等待状态。
STOP 模式 →SNOOZE 模式的转移时间:18μs ~ 65μs
STOP模式 →SNOOZE模式的转移时间因温度条件和STOP模式期间而变。
备注
SNOOZE 模式 → 通常运行的转移时间:
•
进行向量中断处理的情况:
HS (高速主)模式:
“4.99~ 9.44μs”+7 个时钟
LS (低速主)模式:
“1.10~ 5.08μs”+7 个时钟
LV (低电压主)模式: “16.58 ~ 25.40μs”+7 个时钟
•
不进行向量中断处理的情况:
HS (高速主)模式:
LS (低速主)模式:
“4.99~ 9.44μs”+1 个时钟
“1.10~ 5.08μs”+1 个时钟
LV (低电压主)模式: “16.58 ~ 25.40μs”+1 个时钟
SNOOZE 模式中的运行状态如下所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
562
R7F0C903-908
第 16 章 待机功能
表 16-3
STOP 模式的设定
SNOOZE 模式中的运行状态
在 STOP 模式中输入 CSIp、 UARTq 的数据接收信号和
A/D 转换器的定时器触发信号的情况
项目
CPU 以高速内部振荡器时钟 (fIH)运行
停止给 CPU 提供时钟。
系统时钟
主系统时钟
fIH
开始运行。
fX
停止
fEX
fIL
通过选项字节 (000C0H)的 bit0 (WDSTBYON)和 bit4 (WDTON)以及副系统时钟提
供模式控制寄存器 (OSMC)的 WUTMMCK0 位进行设定。
•
•
•
•
CPU
WUTMMCK0=1:振荡
WUTMMCK0=0 并且 WDTON=0:停止
WUTMMCK0=0、 WDTON=1 并且 WDSTBYON=1:振荡
WUTMMCK0=0、 WDTON=1 并且 WDSTBYON=0:停止
停止运行。
代码闪存
数据闪存
RAM
停止运行 (在执行 DMA 时,能运行)。
端口 (锁存器)
保持 STOP 模式中的状态。
定时器阵列单元
禁止运行。
12 位间隔定时器
能运行。
看门狗定时器
参照 “ 第 9 章 看门狗定时器 ”。
时钟输出 / 蜂鸣器输出
禁止运行。
A/D 转换器
能运行。
串行阵列单元 (SAU)
只有 CSIp 和 UARTq 才能运行。
除了 CSIp 和 UARTq 以外,禁止运行。
串行阵列单元 (IICA)
禁止运行。
乘除器和乘加器
DMA 控制器
上电复位功能
能运行。
电压检测功能
外部中断
CRC 运算
高速 CRC
功能
通用 CRC
禁止运行。
RAM 奇偶校验功能
RAM 保护功能
SFR 保护功能
非法存储器存取检测功能
备注 1. 停止运行:在转移到 STOP 模式时自动停止运行。
禁止运行:在转移到 STOP 模式前停止运行。
fIH:高速内部振荡器时钟
fIL: 低速内部振荡器时钟
fX: X1 时钟
fEX:外部主系统时钟
2. p=00、 q=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
563
R7F0C903-908
(2)
第 16 章 待机功能
在 SNOOZE 模式中产生中断请求信号时的时序图
图 16-5
STOPԚ
在 SNOOZE 模式中产生中断请求的情况
䀜ਇỶ⎁
H
ѣᯣ䈭≸
ᖻᵰ䀙䲚ؗਭ⌞1
L
CPUⲺ⣬ᘷ
儎䙕䜞ᥥ㦗ಞ
ᰬ䫕
䙐ᑮ䘆㺂⌞4
(儎䙕䜞
ᥥ㦗ಞᰬ䫕)
STOP⁗ᕅ
ᥥ㦗
↘ڒᥥ㦗
⌞2
SNOOZE⁗ᕅ
(A/D䖢ᦘȽUART/CSI)
䙐ᑮ䘆㺂⌞5
⌞3
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
ᥥ㦗
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
1. 有关待机解除信号的详细内容,请参照图 15-1。
注
2. STOP 模式 →SNOOZE 模式的转移时间
3. SNOOZE 模式 → 通常运行的转移时间
4. 必须在即将要转移到 STOP 模式前设定为允许 SNOOZE 模式 (AWC=1/SWC=1)。
5. 必须在返回到通常运行后立即设定为解除 SNOOZE 模式 (AWC=0/SWC=0)。
(3)
在 SNOOZE 模式中不产生中断请求信号时的时序图
图 16-6
STOPԚ
在 SNOOZE 模式中不产生中断请求的情况
䀜ਇỶ⎁
ᖻᵰ䀙䲚ؗਭ⌞1
L
CPUⲺ⣬ᘷ
儎䙕䜞ᥥ㦗ಞ
ᰬ䫕
䙐ᑮ䘆㺂⌞3
(儎䙕䜞
ᥥ㦗ಞᰬ䫕)
STOP⁗ᕅ
ᥥ㦗
↘ڒᥥ㦗
⌞2
SNOOZE⁗ᕅ
(A/D䖢ᦘȽUART/CSI)
ᥥ㦗
STOP⁗ᕅ
(SNOOZE⁗ᕅⲺ䀜ਇㅿᖻ)
↘ڒᥥ㦗
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
注
1. 有关待机解除信号的详细内容,请参照图 15-1。
2. STOP 模式 →SNOOZE 模式的转移时间
3. 必须在即将要转移到 STOP 模式前设定为允许 SNOOZE 模式 (AWC=1/SWC=1)。
备注
有关 SNOOZE模式功能的详细内容,请参照“第 10 章 A/D 转换器”和 “第11 章 串行阵列单元”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
564
R7F0C903-908
第 17 章 复位功能
第 17 章
复位功能
以下 7 种方法产生复位信号。
(1) 通过 RESET 引脚输入外部复位。
(2) 通过看门狗定时器的程序失控检测产生内部复位。
(3) 通过上电复位 (POR)电路的电源电压和检测电压的比较产生内部复位。
(4) 通过电压检测电路 (LVD)的电源电压和检测电压的比较产生内部复位。
(5) 因执行非法指令而产生内部复位注。
(6) 因 RAM奇偶校验错误而产生内部复位。
(7) 因存取非法存储器而产生内部复位。
内部复位和外部复位相同,在产生复位信号后,从写在地址 00000H 和 00001H 中的地址开始执行程序。
当给 RESET 引脚输入低电平,或者看门狗定时器检测到程序失控,或者检测到 POR 电路和 LVD 电路的电
压,或者执行非法指令注,或者发生 RAM 奇偶检验错误,或者存取非法存储器时,产生复位并且各硬件变为如
表 17-1 所示的状态。
注
当执行指令码 FFH 时,发生非法指令错误。
在通过在线仿真器或者片上调试仿真器进行仿真时,不会因执行非法指令而产生复位。
注意 1. 在进行外部复位时,必须至少给 RESET 引脚输入 10μs 的低电平。
如果在电源电压上升时进行外部复位,就必须在给 RESET 引脚输入低电平后接通电源,而且在 “27.4 AC 特性 ”
所示的工作电压范围内至少保持 10μs 的低电平,然后输入高电平。
2. 在复位信号发生期间,停止 X1 时钟、高速内部振荡器时钟和低速内部振荡器时钟的振荡。外部主系统时钟的输入
无效。
3. 如果发生复位,就对各 SFR 和 2nd SFR 进行初始化,因此端口引脚变为以下状态:
• P40:在外部复位或者 POR 复位的期间为高阻抗。在其他复位期间以及接受复位后为高电平 (连接内部上拉电
阻)。
• P40 以外的端口:在复位期间以及接受复位后为高阻抗。
备注
VPOR:POR 电源电压上升检测电压
VLVD:LVD 检测电压
R01UH0629CJ0120 Rev.1.20
2019.06.28
565
注意
R01UH0629CJ0120 Rev.1.20
2019.06.28
⭫ুỶ⎁⭫䐥Ⲻགྷփؗਭ
р⭫གྷփ⭫䐥Ⲻགྷփؗਭ
RESET
RESFᇺᆎಞⲺ䈱ؗਭ
ᆎ䶔⌋ᆎ۞ಞӝ⭕Ⲻགྷփؗਭ
㖤փ
䲚
㖤փ
䲚
WDTRF
㖤փ
䲚
RPERF
㖤փ
IAWRF
䲚
㖤փ
LVIRF
䲚
གྷփؗਭ
LVIM/LVISᇺᆎಞⲺགྷփؗਭ
图 17-1
RAMཽڬṗ僂䭏䈥ӝ⭕Ⲻགྷփؗਭ
ᢝ㺂䶔⌋Ԛӝ⭕Ⲻགྷփؗਭ
ⵁ䰞⤍ᇐᰬಞⲺགྷփؗਭ
TRAP
གྷփḽᘍᇺᆎಞ
(RESF)
䜞ᙱ㓵
R7F0C903-908
第 17 章 复位功能
复位功能的框图
LVD 电路的内部复位不会对 LVD 电路进行复位。
备注 1. LVIM:电压检测寄存器
2. LVIS:电压检测电平寄存器
566
R7F0C903-908
17.1
第 17 章 复位功能
复位时序
当给 RESET 引脚输入低电平时,产生复位。然后,如果给 RESET 引输入高电平就解除复位状态,并且在
复位处理结束后以高速内部振荡器时钟开始执行程序。
图 17-2
RESET 输入的复位时序
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
儎䙕䜞ᥥ㦗ಞᰬ䫕
䙐䗽䖥Ԭ䇴ᇐᔶခX1ᥥ㦗Ⱦ
儎䙕㌱㔕ᰬ䫕
(䘿X1ᥥ㦗Ⲻ߫)
CPUⲺ⣬ᘷ
གྷփᵕ䰪
(↘ڒᥥ㦗)
䙐ᑮ䘆㺂
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
䀙䲚ཌ䜞གྷփᰬⲺགྷփ༺⨼ᰬ䰪⌞1
RESET
䜞གྷփؗਭ
ᔬ䘕
Hi-Z⌞2
ㄥਙᕋ㝐
对于因看门狗定时器的上溢、非法指令的执行、RAM 奇偶校验错误的检测或者非法存储器存取的检测而产
生的复位,自动解除复位状态,在复位处理结束后以高速内部振荡器时钟开始执行程序。
图 17-3
因看门狗定时器的上溢、非法指令的执行、 RAM 奇偶校验错误的检测
或者非法存储器存取的检测而产生的复位时序
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
儎䙕䜞ᥥ㦗ಞᰬ䫕
䙐䗽䖥Ԭ䇴ᇐᔶခX1ᥥ㦗Ⱦ
儎䙕㌱㔕ᰬ䫕
(䘿X1ᥥ㦗Ⲻ߫)
CPUⲺ⣬ᘷ
ⵁ䰞⤍ᇐᰬಞⲺрⓘ
䶔⌋ԚⲺᢝ㺂
RAMཽڬṗ僂䭏䈥ⲺỶ⎁
䶔⌋ᆎ۞ಞᆎⲺỶ⎁
䙐ᑮ䘆㺂
གྷփᵕ䰪(↘ڒᥥ㦗)
གྷփ༺⨼
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)
0.0511ms(TYP.)Ƚ
0.0701ms(MAX.)
䜞གྷփؗਭ
ㄥਙᕋ㝐
R01UH0629CJ0120 Rev.1.20
2019.06.28
Hi-Z⌞2
567
R7F0C903-908
注
第 17 章 复位功能
1. 解除外部复位时的复位处理时间:
解除 POR 后的第 1 次:
0.672ms(TYP.)、 0.832ms(MAX.) (使用 LVD 的情况)
0.399ms(TYP.)、 0.519ms(MAX.) (不使用 LVD 的情况)
解除 POR 后的第 2 次以后:
0.531ms(TYP.)、 0.675ms(MAX.) (使用 LVD 的情况)
0.259ms(TYP.)、 0.362ms(MAX.) (不使用 LVD 的情况)
当电源电压上升时,在解除外部复位时的复位处理时间之前需要电压稳定等待时间0.99ms(TYP.)、2.30ms(MAX.)。
2. 端口引脚 P40 变为以下状态:
• 在外部复位或者 POR 复位的期间为高阻抗。
• 在其他复位期间以及接受复位后为高电平 (连接内部上拉电阻)。
对于由 POR 电路和 LVD 电路的电压检测产生的复位,如果在复位后满足 VDD ≥ VPOR 或者 VDD ≥ VLVD,
就解除复位状态,并且在复位处理后以高速内部振荡器时钟开始执行程序。详细内容请参照 “ 第 18 章 上电复
位电路 ” 和 “ 第 19 章 电压检测电路 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
568
R7F0C903-908
17.2
第 17 章 复位功能
复位期间的运行状态
复位期间的运行状态和接受复位后的各硬件状态分别如表 17-1 和表 17-2 所示。
表 17-1
复位期间的运行状态
项目
复位期间
停止给 CPU 提供时钟。
系统时钟
主系统时钟
fIH
停止运行。
fX
停止运行 (X1 引脚和 X2 引脚处于输入端口模式)。
fEX
时钟输入无效 (引脚处于输入端口模式)。
fIL
停止运行。
CPU
停止运行。
代码闪存
停止运行。
数据闪存
停止运行。
RAM
停止运行。
端口 (锁存器)
高阻抗注
定时器阵列单元
停止运行。
12 位间隔定时器
看门狗定时器
时钟输出 / 蜂鸣器输出
A/D 转换器
串行阵列单元 (SAU)
串行接口 (IICA)
乘除器和乘加器
DMA 控制器
上电复位功能
能进行检测运行。
电压检测功能
在 LVD 复位时,能运行。在其他复位时,停止运行。
外部中断
停止运行。
CRC 运算
功能
高速 CRC
通用 CRC
RAM 奇偶校验功能
RAM 保护功能
SFR 保护功能
非法存储器存取检测功能
注
端口引脚 P40 变为以下状态:
• P40:在外部复位或者 POR 复位的期间为高阻抗。在其他复位期间为高电平 (连接内部上拉电阻)。
备注
fIH:
高速内部振荡器时钟
fX:
X1振荡时钟
fEX: 外部主系统时钟
fIL:
低速内部振荡器时钟
R01UH0629CJ0120 Rev.1.20
2019.06.28
569
R7F0C903-908
第 17 章 复位功能
表 17-2
接受复位后的各硬件状态
接受复位后的状态注
硬件
程序计数器 (PC)
设定复位向量表 (00000H、 00001H)的内容。
堆栈指针 (SP)
不定
程序状态字 (PSW)
06H
RAM
数据存储器
不定
通用寄存器
不定
注
在复位信号发生期间和振荡稳定等待期间的各硬件状态中,只有 PC 的内容不定,而其他的硬件状态保持复位后的
状态。
备注
有关特殊功能寄存器 (SFR:Special Function Register)的接受复位后的状态,请参照 “3.1.4 特殊功能寄存器
(SFR:Special Function Register)的区域 ” 和 “3.1.5 扩展特殊功能寄存器 (2nd SFR:2nd Special Function
Register)的区域 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
570
R7F0C903-908
17.3
第 17 章 复位功能
确认复位源的寄存器
17.3.1
复位控制标志寄存器 (RESF)
RL78 微控制器存在多种内部复位发生源。复位控制标志寄存器 (RESF)保存发生复位请求的复位源。
能通过 8 位存储器操作指令读 RESF 寄存器。
通过 RESET 的输入、上电复位(POR)电路的复位和 RESF 寄存器的读取,清除 TRAP、WDTRF、RPERF、
IAWRF、 LVIRF 标志。
图 17-4
复位控制标志寄存器 (RESF)的格式
复位后:不定值注 1
地址:FFFA8H
R
符号
7
6
5
4
3
2
1
0
RESF
TRAP
0
0
WDTRF
0
RPERF
IAWRF
LVIRF
TRAP
执行非法指令产生的内部复位请求注 2
0
没有产生内部复位请求或者清除了 RESF 寄存器。
1
产生内部复位请求。
WDTRF
看门狗定时器 (WDT)产生的内部复位请求
0
没有产生内部复位请求或者清除了 RESF 寄存器。
1
产生内部复位请求。
RPERF
RAM 奇偶校验错误产生的内部复位请求
0
没有产生内部复位请求或者清除了 RESF 寄存器。
1
产生内部复位请求。
IAWRF
存取非法存储器产生的内部复位请求
0
没有产生内部复位请求或者清除了 RESF 寄存器。
1
产生内部复位请求。
LVIRF
注
电压检测电路 (LVD)产生的内部复位请求
0
没有产生内部复位请求或者清除了 RESF 寄存器。
1
产生内部复位请求。
1. 因复位源而不同。请参照表 17-3。
2. 当执行指令码 FFH 时,发生非法指令错误。
在通过在线仿真器或者片上调试仿真器进行仿真时,不会因执行非法指令而产生复位。
注意 1. 不能通过位存储器操作指令读数据。
2. 在允许产生 RAM 奇偶校验错误复位 (RPERDIS=0)的情况下,当存取数据时,必须对 “ 所用 RAM 区 ” 进行初始
化;当从 RAM 区执行指令时,必须对 “ 所用 RAM 区 +10 字节 ” 的区域进行初始化。
通过产生复位,进入允许产生 RAM 奇偶校验错误复位 (RPERDIS=0)的状态。详细内容请参照 “20.3.3 RAM 奇
偶校验错误检测功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
571
R7F0C903-908
第 17 章 复位功能
发生复位请求时的 RESF 寄存器状态如表 17-3 所示。
表 17-3
复位源
标志
TRAP
发生复位请求时的 RESF 寄存器状态
RESET
POR 产生
输入
的复位
清 “0”
清 “0”
WDTRF
RPERF
执行非法
指令产生的
复位
WDT 产生的
复位
置 “1”
保持
保持
置 “1”
RAM 奇偶
存取非法
校验错误
存储器产生
产生的复位
的复位
保持
保持
保持
IAWRF
LVIRF
LVD 产生的
复位
保持
置 “1”
保持
置 “1”
保持
置 “1”
如果通过 8 位存储器操作指令读 RESF 寄存器,就自动清除此寄存器。
复位源的确认步骤如图 17-5 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
572
R7F0C903-908
第 17 章 复位功能
图 17-5
复位源的确认步骤
གྷփ
䈱RESFᇺᆎಞ(䲚RESFᇺᆎಞ)θ
ሼRESFⲺؓٲᆎࡦԱᝅⲺRAMȾ
䈱RESFᇺᆎಞ
RESFᇺᆎಞⲺ
TRAP = 1?
Yes
No
RESFᇺᆎಞⲺ
WDTRF = 1?
ഖᢝ㺂䶔⌋Ԛ
㙂ӝ⭕䜞གྷփ䈭≸
Yes
⭧ⵁ䰞⤍ᇐᰬಞ
ӝ⭕䜞གྷփ䈭≸
No
RESFᇺᆎಞⲺ
RPERF = 1?
Yes
ഖRAMཽڬṗ僂䭏䈥
㙂ӝ⭕䜞གྷփ䈭≸
No
RESFᇺᆎಞⲺ
IAWRF = 1?
Yes
ഖᆎ䶔⌋ᆎ۞ಞ
㙂ӝ⭕䜞གྷփ䈭≸
No
RESFᇺᆎಞⲺ
LVIRF = 1?
No
Yes
⭧⭫ুỶ⎁⭫䐥
ӝ⭕䜞གྷփ䈭≸
ӝ⭕р⭫གྷփཌ䜞གྷփ
上述流程是确认步骤的例子。
R01UH0629CJ0120 Rev.1.20
2019.06.28
573
R7F0C903-908
第 18 章 上电复位电路
第 18 章
18.1
上电复位电路
上电复位电路的功能
上电复位电路 (POR)有以下功能。
•
在接通电源时产生内部复位信号。
如果电源电压 (VDD)超过检测电压 (VPOR),就解除复位。但是,必须在电源电压达到 “27.4 AC
特性 ” 所示的工作电压范围前,通过电压检测电路或者外部复位保持复位状态。
•
将电源电压 (VDD)和检测电压 (VPDR)进行比较。当 VDD < VPDR 时,产生内部复位信号。但是,
当电源电压下降时,必须在电源电压低于 “27.4 AC 特性 ” 所示的工作电压范围前,转移到 STOP 模式,
或者通过电压检测电路或外部复位置为复位状态。在重新开始运行时,必须确认电源电压是否恢复到
工作电压范围。
注意
当上电复位电路产生内部复位信号时,将复位控制标志寄存器 (RESF)清为 “00H”。
备注 1. RL78 微控制器内置多个产生内部复位信号的硬件。当由看门狗定时器 (WDT)、电压检测 (LVD)电路、非法指
令的执行、RAM 奇偶校验错误或者非法存储器的存取而产生内部复位信号时,用于表示复位源的标志分配在 RESF
寄存器;当由 WDT、 LVD、非法指令的执行、 RAM 奇偶校验错误或者非法存储器的存取而产生内部复位信号时,
不将 RESF 寄存器清为 “00H” 而将标志置 “1”。有关 RESF 寄存器的详细内容,请参照 “ 第 17 章 复位功能 ”。
2. VPOR:POR 电源电压上升检测电压
VPDR:POR 电源电压下降检测电压
详细内容请参照 “27.6.3 POR 电路特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
574
R7F0C903-908
18.2
第 18 章 上电复位电路
上电复位电路的结构
上电复位电路的框图如图 18-1 所示。
图 18-1
上电复位电路的框图
VDD
VDD
+
䜞གྷփؗਭ
–
ะ⭫ুⓆ
18.3
上电复位电路的运行
上电复位电路和电压检测电路的内部复位信号的产生时序如下所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
575
R7F0C903-908
第 18 章 上电复位电路
图 18-2
上电复位电路和电压检测电路的内部复位信号的产生时序 (1/3)
(1) 使用 RESET 引脚的外部复位输入的情况
⭫Ⓠ⭫ু(VDD)
⌞4
⌞4
ᐛ֒⭫ু㤹പс䲆
VPOR=1.51 V (TYP.)
VPDR=1.50 V (TYP.)
0V
RESETᕋ㝐
㠩ቇ10μs
ㅿᖻᥥ㦗㋴ᓜどᇐ⌞1Ⱦ
ㅿᖻᥥ㦗㋴ᓜどᇐ⌞1Ⱦ
儎䙕䜞ᥥ㦗ಞ
ᰬ䫕 (fIH)
䙐䗽䖥Ԭ䇴ᇐ
ᔶခᥥ㦗Ⱦ
䙐䗽䖥Ԭ䇴ᇐ
ᔶခᥥ㦗Ⱦ
儎䙕㌱㔕ᰬ䫕 (fMX)
(䘿X1ᥥ㦗Ⲻ߫)
䀙䲚ཌ䜞གྷփᰬ
Ⲻགྷփ༺⨼ᰬ䰪⌞3
CPU
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)⌞2
↘ڒ䘆㺂
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)⌞2
གྷփᵕ䰪
(↘ڒᥥ㦗)
↘ڒ䘆㺂
䀙䲚ཌ䜞གྷփᰬ
Ⲻགྷփ༺⨼ᰬ䰪⌞3
⭫ুどᇐㅿᖻᰬ䰪
0.99ms (TYP.)Ƚ2.30ms (MAX.)
䜞གྷփؗਭ
注
1. 内部复位处理时间包含高速内部振荡器时钟的振荡精度稳定等待时间。
2. 能选择高速内部振荡器时钟或者高速系统时钟作为 CPU 时钟。在使用 X1 时钟的情况下,必须在通过振荡稳定时
间计数器的状态寄存器 (OSTC)确认振荡稳定时间后进行切换。
3. 到开始通常运行的时间除了达到 VPOR(1.51V(TYP.)) 后的 “ 电压稳定等待时间 ” 以外,还需要 RESET 信号变为高
电平 (1)后的如下的 “ 外部复位解除时的复位处理时间 ” (POR 解除后的第 1 次)。外部复位解除时的复位处理
时间如下所示。
POR 解除后的第 1 次:
0.672ms(TYP.)、 0.832ms(MAX.) (使用 LVD 时)
0.399ms(TYP.)、 0.519ms(MAX.) (LVD OFF 时)
POR 解除后的第 2 次以后 (包括第 2 次)的外部复位解除时的复位处理时间如下所示。
POR 解除后的第 2 次以后 (包括第 2 次):0.531ms(TYP.)、 0.675ms(MAX.) (使用 LVD 时)
0.259ms(TYP.)、 0.362ms(MAX.) (LVD OFF 时)
4. 当电源电压上升时,必须在电源电压达到 “27.4 AC 特性 ” 所示的工作电压范围前,通过外部复位保持复位状态;
当电源电压下降时,必须在电源电压低于工作电压范围前,转移到 STOP 模式,或者通过电压检测电路或外部复位
置为复位状态。在重新开始运行时,必须确认电源电压是否恢复到工作电压范围。
备注
VPOR:POR 电源电压上升检测电压
VPDR:POR 电源电压下降检测电压
注意
在 LVD 为 OFF 时,必须使用 RESET 引脚的外部复位。详细内容请参照 “ 第 19 章 电压检测电路 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
576
R7F0C903-908
第 18 章 上电复位电路
图 18-2
上电复位电路和电压检测电路的内部复位信号的产生时序 (2/3)
(2)LVD 为中断 & 复位模式的情况 (选项字节 000C1H 的 LVIMDS1、 LVIMDS0=1、 0)
⭫Ⓠ⭫ু(VDD)
⌞3
VLVDH
VLVDL
ᐛ֒⭫ু㤹പс䲆
VPOR=1.51 V (TYP.)
VPDR=1.50 V (TYP.)
0V
⌞1
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
⌞1
ㅿᖻᥥ㦗㋴ᓜどᇐȾ
儎䙕䜞ᥥ㦗ಞ
ᰬ䫕 (fIH)
䙐䗽䖥Ԭ䇴ᇐᔶခᥥ㦗Ⱦ
䙐䗽䖥Ԭ䇴ᇐᔶခᥥ㦗Ⱦ
儎䙕㌱㔕ᰬ䫕 (fMX)
(䘿X1ᥥ㦗Ⲻ߫)
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)⌞ 2
CPU ↘ڒ䘆㺂
གྷփᵕ䰪
(↘ڒᥥ㦗)
LVDགྷփ༺⨼ᰬ䰪 ⌞ 4
⭫ুどᇐㅿᖻᰬ䰪+PORགྷփ༺⨼ᰬ䰪
1.64ms (TYP.)Ƚ3.10ms (MAX.)
䙐ᑮ䘆㺂
(儎䙕䜞ᥥ㦗ಞᰬ䫕)⌞ 2
↘ڒ䘆㺂
LVDགྷփ༺⨼ᰬ䰪⌞ 4
⭫ুどᇐㅿᖻᰬ䰪+PORགྷփ༺⨼ᰬ䰪
1.64ms (TYP.)Ƚ3.10ms (MAX.)
䜞གྷփؗਭ
INTLVI
注
1. 内部复位处理时间包含高速内部振荡器时钟的振荡精度稳定等待时间。
2. 能选择高速内部振荡器时钟或者高速系统时钟作为 CPU 时钟。在使用 X1 时钟的情况下,必须在通过振荡稳定时
间计数器的状态寄存器 (OSTC)确认振荡稳定时间后进行切换。
3. 在产生中断请求信号 (INTLVI)后,自动将电压检测电平寄存器 (LVIS)的 LVILV 位和 LVIMD 位置 “1”。因此,
必须考虑可能出现电源电压在不低于低电压检测电压 (VLVDL)的状态下恢复到高电压检测电压 (VLVDH)或者更
高的情况,在产生 INTLVI 后按照 “ 图 19-8 工作电压的确认 / 复位的设定步骤 ” 和 “ 图 19-9 中断 & 复位模式的初
始设定步骤 ” 进行设定。
4. 到开始通常运行为止的时间除了达到 VPOR (1.51V(TYP.))后的 “ 电压稳定等待时间 +POR 复位处理时间 ” 以外,
在达到 LVD 检测电平 (VLVDH)后还需要以下的 “LVD 复位处理时间 ”。
LVD 复位处理时间:0ms ~ 0.0701ms(MAX.)
备注
VLVDH、 VLVDL:LVD 检测电压
VPOR:
POR 电源电压上升检测电压
VPDR:
POR 电源电压下降检测电压
R01UH0629CJ0120 Rev.1.20
2019.06.28
577
R7F0C903-908
第 18 章 上电复位电路
图 18-2
上电复位电路和电压检测电路的内部复位信号的产生时序 (3/3)
(3) LVD 复位模式的情况 (选项字节 000C1H 的 LVIMDS1、 LVIMDS0=1、 1)
⭫Ⓠ⭫ু(VDD)
VLVD
ᐛ֒⭫ু㤹പс䲆
VPOR=1.51 V (TYP.)
VPDR=1.50 V (TYP.)
0V
ㅿᖻᥥ㦗㋴ᓜどᇐ⌞1Ⱦ
ㅿᖻᥥ㦗㋴ᓜどᇐ⌞1Ⱦ
儎䙕䜞ᥥ㦗ಞ
ᰬ䫕 (fIH)
䙐䗽䖥Ԭ䇴ᇐ
ᔶခᥥ㦗Ⱦ
䙐䗽䖥Ԭ䇴ᇐ
ᔶခᥥ㦗Ⱦ
儎䙕㌱㔕ᰬ䫕 (fMX)
(䘿X1ᥥ㦗Ⲻ߫)
䙐ᑮ䘆㺂
䙐ᑮ䘆㺂
གྷփᵕ䰪
གྷփᵕ䰪
(儎䙕䜞ᥥ㦗ಞᰬ䫕)⌞2 (↘ڒᥥ㦗) (儎䙕䜞ᥥ㦗ಞᰬ䫕)⌞2 (↘ڒᥥ㦗)
CPU ↘ڒ䘆㺂
LVDགྷփ༺⨼ᰬ䰪⌞3
⭫ুどᇐㅿᖻᰬ䰪+PORགྷփ༺⨼ᰬ䰪
1.64ms (TYP.)Ƚ3.10ms (MAX.)
LVDགྷփ༺⨼ᰬ䰪⌞4
䜞གྷփؗਭ
注
1. 内部复位处理时间包含高速内部振荡器时钟的振荡精度稳定等待时间。
2. 能选择高速内部振荡器时钟或者高速系统时钟作为 CPU 时钟。在使用 X1 时钟的情况下,必须在通过振荡稳定时
间计数器的状态寄存器 (OSTC)确认振荡稳定时间后进行切换。
3. 到开始通常运行为止的时间除了达到 VPOR (1.51V(TYP.))后的 “ 电压稳定等待时间 +POR 复位处理时间 ” 以外,
在达到 LVD 检测电平 (VLVD)后还需要以下的 “LVD 复位处理时间 ”。
LVD 复位处理时间:0ms ~ 0.0701ms(MAX.)
4. 在电源电压下降时,如果只在发生电压检测电路(LVD)的内部复位后恢复电源电压,就在达到 LVD 检测电平(VLVD)
后需要以下的 “LVD 复位处理时间 ”。
LVD 复位处理时间:0.0511ms(TYP.)、 0.0701ms(MAX.)
备注 1. VLVDH、 VLVDL:LVD 检测电压
VPOR:
POR 电源上升检测电压
VPDR:
POR 电源下降检测电压
2. 当选择 LVD 中断模式 (选项字节 000C1H 的 LVIMD1、 LVIMD0=0、 1)时,从接通电源到开始通常运行的时间和
“ 图 18-2 (3) LVD 复位模式的情况 ” 的 “ 注 3” 的时间相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
578
R7F0C903-908
第 19 章 电压检测电路
第 19 章
19.1
电压检测电路
电压检测电路的功能
电压检测电路通过选项字节 (000C1H)设定运行模式和检测电压 (VLVDH、 VLVDL、 VLVD)。电压检测
(LVD)电路有以下功能。
•
将电源电压 (VDD)和检测电压 (VLVDH、 VLVDL、 VLVD)进行比较,产生内部复位或者内部中断
信号。
•
电源电压的检测电压(VLVDH、VLVDL、VLVD)能通过选项字节选择14种检测电平(参照“第22章 选
项字节”)。
•
也能在 STOP 模式中运行。
•
当电源电压上升时,必须在电源电压达到 “27.4 AC 特性 ” 所示的工作电压范围前,通过电压检测电路
或者外部复位保持复位状态;当电源电压下降时,必须在电源电压低于工作电压范围前,转移到 STOP
模式,或者通过电压检测电路或外部复位置为复位状态。工作电压范围取决于用户选项字节(000C2H/
010C2H)的设定。
(a)
中断 & 复位模式 (选项字节的 LVIMDS1、 LVIMDS0=1、 0)
通过选项字节 000C1H 选择 2 个检测电压 (VLVDH、 VLVDL),高电压检测电平 (VLVDH)用于解除复位
或者产生中断,低电压检测电平 (VLVDL)用于产生复位。
(b)
复位模式 (选项字节的 LVIMDS1、 LVIMDS0=1、 1)
将选项字节 000C1H 选择的 1 个检测电压 (VLVD)用于产生或者解除复位。
(c)
中断模式 (选项字节的 LVIMDS1、 LVIMDS0=0、 1)
将选项字节 000C1H 选择的 1 个检测电压 (VLVD)用于解除复位或者产生中断。
在各模式中,产生以下的中断信号和内部复位信号。
中断 & 复位模式
复位模式
中断模式
(LVIMDS1、 LVIMDS0=1、 0)
(LVIMDS1、 LVIMDS0=1、 1)
(LVIMDS1、 LVIMDS0=0、 1)
在电源电压下降时,当检测到 VDD < 当检测到VDD≥VLVD时,解除内部复位; 在发生复位后,LVD 的内部复位状态继
VLVDH 时,产生中断请求信号;当检测 当检测到VDD <VLVD 时,产生内部复位。 续保持到 VDD ≥ VLVD 为止。当检测到
到 VDD < VLVDL 时,产生内部复位;
VDD ≥ VLVD 时,解除 LVD 的内部复位。
当检测到VDD≥VLVDH时,解除内部复位。
在解除 LVD 的内部复位后,如果检测到
VDD < VLVD 或者 VDD ≥ VLVD,就产生
中断请求信号 (INTLVI)。
在电压检测电路运行时,能通过读电压检测标志 (LVIF:电压检测寄存器 (LVIM)的 bit0)来确认电源
电压是大于等于检测电压还是小于检测电压。
如果发生复位,就将复位控制标志寄存器 (RESF)的 bit0 (LVIRF)置 “1”。有关 RESF 寄存器的详细内
容,请参照 “ 第 17 章 复位功能 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
579
R7F0C903-908
19.2
第 19 章 电压检测电路
电压检测电路的结构
电压检测电路的框图如图 19-1 所示。
图 19-1
电压检测电路的框图
VDD
VDD
N-ch
⭫ুỶ⎁
⭫ᒩ䘿
⭫䐥
䜞གྷփؗਭ
⭫
䐥
+
VLVDH
VLVDL/VLVD
䘿
ಞ
䘿亯ᆍ㢸(000C1H)Ⲻ
LVIS1ȽLVIS0
INTLVI
ะ⭫ুⓆ
LVIF LVIOMSK LVISEN
䘿亯ᆍ㢸(000C1H)Ⲻ
VPOC2ȽVPOC1ȽVPOC0
⭫ুỶ⎁
ᇺᆎಞ (LVIM)
LVIMD LVILV
⭫ুỶ⎁⭫ᒩ
ᇺᆎಞ (LVIS)
䜞ᙱ㓵
R01UH0629CJ0120 Rev.1.20
2019.06.28
580
R7F0C903-908
19.3
第 19 章 电压检测电路
控制电压检测电路的寄存器
通过以下寄存器控制电压检测电路。
•
电压检测寄存器 (LVIM)
•
电压检测电平寄存器 (LVIS)
19.3.1
电压检测寄存器 (LVIM)
此寄存器设定允许或者禁止改写电压检测电平寄存器 (LVIS),并且确认 LVD 输出的屏蔽状态。
通过 1 位或者 8 位存储器操作指令设定 LVIM 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 19-2
复位后:00H 注 1
地址:FFFA9H
电压检测寄存器 (LVIM)的格式
R/W 注 2
符号
7
6
5
4
3
2
1
0
LVIM
LVISEN 注 3
0
0
0
0
0
LVIOMSK
LVIF
LVISEN 注 3
电压检测电平寄存器 (LVIS)的允许 / 禁止改写的设定
0
禁止改写 LVIS 寄存器 (LVIOMSK=0 (LVD 输出屏蔽无效))。
1
允许改写 LVIS 寄存器 (LVIOMSK=1 (LVD 输出屏蔽有效))。
LVIOMSK
LVD 输出的屏蔽状态标志
0
LVD 输出屏蔽无效。
1
LVD 输出屏蔽有效注 4。
LVIF
注
电压检测标志
0
电源电压 (VDD)≥检测电压 (VLVD)或者 LVD 为 OFF。
1
电源电压 (VDD)<检测电压 (VLVD)
1. 复位值因复位源而变。
在 LVD 发生复位时,不对 LVIM 寄存器的值进行复位而保持原来的值;在其他复位时,将 LVISEN 清 “0”。
2. bit0 和 bit1 是只读位。
3. 只有在选择中断 & 复位模式 (选项字节的 LVIMDS1 位和 LVIMDS0 位分别为 “1” 和 “0”)时才能设定,在其他模式
中不能更改初始值。
4. 只有在选择中断 & 复位模式 (选项字节的 LVIMDS1 位和 LVIMDS0 位分别为 “1” 和 “0”)时, LVIOMSK 位才在以
下期间自动变为 “1”,屏蔽 LVD 产生的复位或者中断。
• LVISEN=1 的期间
• 从发生 LVD 中断开始到 LVD 检测电压稳定为止的等待时间
• 从更改 LVILV 位的值到 LVD 检测电压稳定为止的等待时间
R01UH0629CJ0120 Rev.1.20
2019.06.28
581
R7F0C903-908
19.3.2
第 19 章 电压检测电路
电压检测电平寄存器 (LVIS)
这是设定电压检测电平的寄存器。
通过 1 位或者 8 位存储器操作指令设定 LVIS 寄存器。
在产生复位信号后,此寄存器的值变为 “00H/01H/81H” 注 1。
图 19-3
电压检测电平寄存器 (LVIS)的格式
复位后:00H/01H/81H 注 1
地址:FFFAAH
R/W
符号
7
6
5
4
3
2
1
0
LVIS
LVIMD
0
0
0
0
0
0
LVILV
LVIMD 注 2
电压检测的运行模式
0
中断模式
1
复位模式
LVILV 注 2
注
LVD 检测电平
0
高电压检测电平 (VLVDH)
1
低电压检测电平 (VLVDL 或者 VLVD)
1. 复位值因复位源和选项字节的设定而变。
在发生 LVD 复位时,不将此寄存器清为 “00H”。
在发生 LVD 以外的复位时,此寄存器的值如下:
• 选项字节的 LVIMDS1、 LVIMDS0=1、 0 时:00H
• 选项字节的 LVIMDS1、 LVIMDS0=1、 1 时:81H
• 选项字节的 LVIMDS1、 LVIMDS0=0、 1 时:01H
2. 只有在选择中断 & 复位模式 (选项字节的 LVIMDS1 位和 LVIMDS0 位分别为 “1” 和 “0”)时才能写 “0”。在其他情
况下不能设定。在中断 & 复位模式中,通过产生复位或者中断自动进行值的替换。
注意 1. 要改写 LVIS 寄存器时,必须按照图 19-8 和图 19-9 的步骤进行。
2. 通过选项字节000C1H选择LVD的运行模式和各模式的检测电压(VLVDH、VLVDL、VLVD)。用户选项字节(000C1H/
010C1H)的格式如图 19-4 所示。有关选项字节的详细内容,请参照 “ 第 22 章 选项字节 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
582
R7F0C903-908
第 19 章 电压检测电路
图 19-4
用户选项字节 (000C1H/010C1H)的格式 (1/2)
地址:000C1H/010C1H 注
•
7
6
5
4
3
2
1
0
VPOC2
VPOC1
VPOC0
1
LVIS1
LVIS0
LVIMDS1
LVIMDS0
LVD 的设定 (中断 & 复位模式)
检测电压
VLVDH
VLVDL
上升 下降 下降
1.77V 1.73V 1.63V
选项字节的设定值
VPOC2
VPOC1
VPOC0
0
0
0
LVIS1
LVIS0
1
0
1.88V 1.84V
0
1
2.92V 2.86V
0
0
1
0
0
1
1.98V 1.94V 1.84V
0
1
2.09V 2.04V
3.13V 3.06V
2.61V 2.55V 2.45V
1
0
2.71V 2.65V
3.75V 3.67V
2.92V 2.86V 2.75V
1
1
3.02V 2.96V
4.06V 3.98V
—
•
0
0
0
1
0
0
1
0
0
1
0
0
1
0
禁止设定上述以外的值。
LVD 的设定 (复位模式)
检测电压
VLVD
选项字节的设定值
VPOC2
VPOC1
VPOC0
LVIS1
LVIS0
0
0
0
1
1
上升
1.67V
下降
1.63V
1.77V
1.73V
0
0
1
0
1.88V
1.84V
0
1
1
1
1.98V
1.94V
0
1
1
0
2.09V
2.04V
0
1
0
1
2.50V
2.45V
1
0
1
1
2.61V
2.55V
1
0
1
0
2.71V
2.65V
1
0
0
1
2.81V
2.75V
1
1
1
1
2.92V
2.86V
1
1
1
0
3.02V
2.96V
1
1
0
1
3.13V
3.06V
0
1
0
0
3.75V
3.67V
1
0
0
0
4.06V
3.98V
1
1
0
0
—
注
0
1
模式设定
LVIMDS1
LVIMDS0
模式设定
LVIMDS1
LVIMDS0
1
1
禁止设定上述以外的值。
在引导交换时, 000C1H 被 010C1H 替换,因此必须给 010C1H 设定和 000C1H 相同的值。
备注 1. 有关 LVD 电路的详细内容,请参照 “ 第 19 章 电压检测电路 ”。
2. 检测电压是 TYP. 值。详细内容请参照 “27.6.4 LVD 电路特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
583
R7F0C903-908
第 19 章 电压检测电路
图 19-4
用户选项字节 (000C1H/010C1H)的格式 (2/2)
地址:000C1H/010C1H 注
•
7
6
5
4
3
2
1
0
VPOC2
VPOC1
VPOC0
1
LVIS1
LVIS0
LVIMDS1
LVIMDS0
LVD 的设定 (中断模式)
检测电压
VLVD
选项字节的设定值
VPOC2
VPOC1
VPOC0
LVIS1
LVIS0
0
0
0
1
1
上升
下降
1.67V
1.63V
1.77V
1.73V
0
0
1
0
1.88V
1.84V
0
1
1
1
1.98V
1.94V
0
1
1
0
2.09V
2.04V
0
1
0
1
2.50V
2.45V
1
0
1
1
2.61V
2.55V
1
0
1
0
2.71V
2.65V
1
0
0
1
2.81V
2.75V
1
1
1
1
2.92V
2.86V
1
1
1
0
3.02V
2.96V
1
1
0
1
3.13V
3.06V
0
1
0
0
3.75V
3.67V
1
0
0
0
4.06V
3.98V
1
1
0
0
—
•
LVIMDS1
LVIMDS0
0
1
禁止设定上述以外的值。
LVD 为 OFF (使用 RESET 引脚的外部复位)
检测电压
VLVD
上升
下降
—
—
选项字节的设定值
VPOC2
VPOC1
VPOC0
LVIS1
LVIS0
1
×
×
×
×
—
注
模式设定
模式设定
LVIMDS1
LVIMDS0
×
1
禁止设定上述以外的值。
在引导交换时, 000C1H 被 010C1H 替换,因此必须给 010C1H 设定和 000C1H 相同的值。
注意 1. 必须给 bit4 写 “1”。
2. 当电源电压上升时,必须在电源电压达到 “27.4 AC 特性 ” 所示的工作电压范围前,通过电压检测电路或者外部复
位保持复位状态;当电源电压下降时,必须在电源电压低于工作电压范围前,转移到 STOP 模式,或者通过电压检
测电路或外部复位置为复位状态。工作电压范围取决于用户选项字节 (000C2H/010C2H)的设定。
备注 1. ×:忽略
2. 有关 LVD 电路的详细内容,请参照 “ 第 19 章 电压检测电路 ”。
3. 检测电压是 TYP. 值。详细内容请参照 “27.6.4 LVD 电路特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
584
R7F0C903-908
19.4
19.4.1
第 19 章 电压检测电路
电压检测电路的运行
用作复位模式时的设定
通过选项字节000C1H 设定运行模式 (复位模式 (LVIMDS1、 LVIMDS0=1、 1))和检测电压 (VLVD)。
如果设定复位模式,就在以下初始设定的状态下开始运行。
•
将电压检测寄存器 (LVIM)的 bit7 (LVISEN)置 “0” (禁止改写电压检测电平寄存器 (LVIS))。
•
将电压检测电平寄存器 (LVIS)的初始值置 “81H”。
bit7 (LVIMD)为 “1” (复位模式)。
bit0 (LVILV)为 “1” (电压检测电平:VLVD)。
● LVD 复位模式的运行
当接通电源时,复位模式 (选项字节的 LVIMDS1、 LVIMDS0=1、 1)在电源电压 (VDD)超过电压检
测电平 (VLVD)前保持 LVD 的内部复位状态。如果电源电压 (VDD)超过电压检测电平 (VLVD),
就解除内部复位。
当电源电压下降时,如果电源电压 (VDD)低于电压检测电平 (VLVD),就产生 LVD 的内部复位。
LVD 复位模式的内部复位信号的产生时序如图 19-5 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
585
R7F0C903-908
第 19 章 电压检测电路
图 19-5
内部复位信号的产生时序 (选项字节的 LVIMDS1、 LVIMDS0=1、 1)
⭫Ⓠ⭫ু (VDD)
VLVD
ᐛ֒⭫ু㤹പс䲆
VPOR = 1.51 V (TYP.)
VPDR = 1.50 V (TYP.)
ᰬ䰪
䲚
LVIFḽᘍ
LVIMDḽᘍ
H
у䲚
LVILVḽᘍ
H
у䲚
䲚
LVIRFḽᘍ
(RESFᇺᆎಞ)
LVDགྷփؗਭ
䙐䗽䖥Ԭ䲚Ⱦ
PORགྷփؗਭ
䜞གྷփؗਭ
备注
VPOR:POR 电源电压上升检测电压
VPDR:POR 电源电压下降检测电压
R01UH0629CJ0120 Rev.1.20
2019.06.28
586
R7F0C903-908
19.4.2
第 19 章 电压检测电路
用作中断模式时的设定
通过选项字节000C1H 设定运行模式 (中断模式 (LVIMDS1、 LVIMDS0=0、 1))和检测电压 (VLVD)。
如果设定中断模式,就在以下初始设定的状态下开始运行。
•
将电压检测寄存器 (LVIM)的 bit7 (LVISEN)置 “0” (禁止改写电压检测电平寄存器 (LVIS))。
•
将电压检测电平寄存器 (LVIS)的初始值置 “01H”。
bit7 (LVIMD)为 “0” (中断模式)。
bit0 (LVILV)为 “1” (电压检测电平:VLVD)。
● LVD 中断模式的运行
在产生复位后,中断模式 (选项字节的 LVIMDS1、 LVIMDS0=0、 1)在电源电压 (VDD)超过电压检
测电平 (VLVD)前保持 LVD 的内部复位状态。如果电源电压 (VDD)超过电压检测电平 (VLVD),
就解除内部复位。
在解除 LVD 的内部复位后,如果电源电压 (VDD)超过电压检测电平 (VLVD),就产生 LVD 的中断
请求信号 (INTLVI)。
当电源电压下降时,必须在电源电压低于 “27.4 AC 特性 ” 所示的工作电压范围前,转移到 STOP 模式,
或者通过外部复位置为复位状态。在重新开始运行时,必须确认电源电压是否恢复到工作电压范围。
LVD 中断模式的中断请求信号的产生时序如图 19-6 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
587
R7F0C903-908
第 19 章 电压检测电路
图 19-6
中断信号的产生时序 (选项字节的 LVIMDS1、 LVIMDS0=0、 1)
⭫Ⓠ⭫ু (VDD)
⌞2
⌞2
VLVD
ᐛ֒⭫ু㤹പс䲆
VPOR = 1.51 V (TYP.)
VPDR = 1.50 V (TYP.)
ᰬ䰪
LVIMKḽᘍ
H ⌞1
(ኅ㭳ѣᯣ)
(䙐䗽䖥Ԭ䇴ᇐ)
䙐䗽䖥Ԭ䲚Ⱦ
䲚
LVIFḽᘍ
LVIMDḽᘍ
LVILVḽᘍ
H
INTLVI
LVIIFḽᘍ
LVDགྷփؗਭ
PORགྷփؗਭ
䜞གྷփؗਭ
注
1. 在产生复位信号后, LVIMK 标志变为 “1”。
2. 当电源电压下降时,必须在电源电压低于 “27.4 AC 特性 ” 所示的工作电压范围前,转移到 STOP 模式,或者通过
外部复位置为复位状态。在重新开始运行时,必须确认电源电压是否恢复到工作电压范围。
备注
VPOR:POR 电源电压上升检测电压
VPDR:POR 电源电压下降检测电压
R01UH0629CJ0120 Rev.1.20
2019.06.28
588
R7F0C903-908
19.4.3
第 19 章 电压检测电路
用作中断 & 复位模式时的设定
通过选项字节 000C1H 设定运行模式(中断 & 复位模式(LVIMDS1、LVIMDS0=1、0))和检测电压(VLVDH、
VLVDL)。
如果设定中断 & 复位模式,就在以下初始设定的状态下开始运行。
•
将电压检测寄存器 (LVIM)的 bit7 (LVISEN)置 “0” (禁止改写电压检测电平寄存器 (LVIS))。
•
将电压检测电平寄存器 (LVIS)的初始值置 “00H”。
bit7 (LVIMD)为 “0” (中断模式)。
bit0 (LVILV)为 “0” (高电压检测电平:VLVDH)。
● LVD 中断&复位模式的运行
当接通电源时,中断 &复位模式 (选项字节的 LVIMDS1、 LVIMDS0=1、 0)在电源电压 (VDD)超过
高电压检测电平 (VLVDH)前保持 LVD的内部复位状态。如果电源电压 (VDD)超过高电压检测电平
(VLVDH),就解除内部复位。
当电源电压下降时,如果电源电压 (VDD)低于高电压检测电平 (VLVDH),就产生 LVD 的中断请求
信号 (INTLVI)并且能进行任意的压栈处理。此后,如果电源电压 (VDD)低于低电压检测电平
(VLVDL),就产生 LVD 的内部复位。但是,在发生 INTLVI 后,即使电源电压 (VDD)在不低于低电
压检测电压(VLVDL)的状态下恢复到高电压检测电压(VLVDH)或者更高,也不产生中断请求信号。
当使用 LVD 中断 & 复位模式时,必须按照 “ 图 19-8 工作电压的确认 / 复位的设定步骤 ” 和 “ 图 19-9 中
断 &复位模式的初始设定步骤 ” 所示的流程图的步骤进行设定。
LVD 中断 & 复位模式的内部复位信号和中断信号的产生时序如图 19-7 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
589
R7F0C903-908
第 19 章 电压检测电路
图 19-7
复位 & 中断信号的产生时序 (选项字节的 LVIMDS1、 LVIMDS0=1、 0) (1/2)
ྸ᷒൞䀙䲚ኅ㭳⋗ᴿӝ⭕གྷփθ
ቧ㜳࡚ᯣѰᚘགྷࡦVDDŐVLVDHȾ൞
ሼLVIMDփ“0”䖢〱ࡦ↙ᑮ䘆㺂Ⱦ
⭫Ⓠ⭫ু (VDD)
VLVDH
VLVDL
ᐛ֒⭫ু㤹പс䲆
VPOR = 1.51 V (TYP.)
VPDR = 1.50 V (TYP.)
ᰬ䰪
LVIMKḽᘍ
(䙐䗽䖥Ԭ䇴ᇐ)
H
⌞1
䙐䗽䖥Ԭ䲚Ⱦ
䙐ᑮ䘆㺂
䘆㺂⣬ᘷ
གྷփ
䙐ᑮ䘆㺂
ুḾ༺⨼
䙐䗽䖥Ԭ䲚Ⱦ
䙐䗽䖥Ԭㅿᖻどᇐ(400μsᡌ㘻5Ѡᰬ䫕(fIL))⌞3Ⱦ
གྷփ
䙐ᑮ䘆㺂
གྷփ
ুḾ༺⨼
䲚
LVIF ḽᘍ
LVISENḽᘍ
(䙐䗽䖥Ԭ䇴ᇐ)
LVIOMSKḽᘍ
LVIMDḽᘍ
䙐䗽䖥Ԭ
䲚⌞3Ⱦ
LVILV ḽᘍ
䙐䗽䖥Ԭ䲚⌞2Ⱦ
LVIRFḽᘍ
䲚
LVDགྷփؗਭ
PORགྷփؗਭ
䜞གྷփؗਭ
INTLVI
LVIIFḽᘍ
R01UH0629CJ0120 Rev.1.20
2019.06.28
590
R7F0C903-908
注
第 19 章 电压检测电路
1. 在产生复位信号后, LVIMK 标志变为 “1”。
2. 当使用中断 & 复位模式时,必须在发生中断后按照 “ 图 19-8 工作电压的确认 / 复位的设定步骤 ” 进行设定。
3. 当使用中断 & 复位模式时,必须在解除复位后按照 “ 图 19-9 中断 & 复位模式的初始设定步骤 ” 进行设定。
备注
VPOR:POR 电源电压上升检测电压
VPDR:POR 电源电压下降检测电压
R01UH0629CJ0120 Rev.1.20
2019.06.28
591
R7F0C903-908
第 19 章 电压检测电路
图 19-7
中断 & 复位信号的产生时序 (选项字节的 LVIMDS1、 LVIMDS0=1、 0)(2/2)
൞䀙䲚ኅ㭳VDDψVLVDHᰬθ
ഖѰLVIMD=1(གྷփ⁗ᕅ)θ
ᡶԛӝ⭕གྷփȾ
⭫Ⓠ⭫ু (VDD)
VLVDH
VLVDL
ᐛ֒⭫ু㤹പс䲆
VPOR = 1.51 V (TYP.)
VPDR = 1.50 V (TYP.)
ᰬ䰪
LVIMKḽᘍ
(䙐䗽䖥Ԭ䇴ᇐ)
H
⌞1
䙐䗽䖥Ԭ䲚Ⱦ
䙐䗽䖥Ԭ䲚Ⱦ
䙐䗽䖥Ԭㅿᖻどᇐ(400μsᡌ㘻5Ѡᰬ䫕(fIL))⌞3Ⱦ
䘆㺂⣬ᘷ
གྷփ
䙐ᑮ䘆㺂
ুḾ༺⨼
གྷփ
䙐ᑮ䘆㺂
གྷփ
ুḾ༺⨼
䲚
LVIF ḽᘍ
LVISEN ḽᘍ
(䙐䗽䖥Ԭ䇴ᇐ)
LVIOMSKḽᘍ
LVIMDḽᘍ
䙐䗽䖥Ԭ
⌞3
䲚Ⱦ
LVILVḽᘍ
LVIRFḽᘍ
䙐䗽䖥Ԭ
⌞2
䲚Ⱦ
䲚
LVDགྷփؗਭ
PORགྷփؗਭ
䜞གྷփؗਭ
INTLVI
LVIIFḽᘍ
R01UH0629CJ0120 Rev.1.20
2019.06.28
592
R7F0C903-908
注
第 19 章 电压检测电路
1. 在产生复位信号后, LVIMK 标志变为 “1”。
2. 当使用中断 & 复位模式时,必须在发生中断后按照 “ 图 19-8 工作电压的确认 / 复位的设定步骤 ” 进行设定。
3. 当使用中断 & 复位模式时,必须在解除复位后按照 “ 图 19-9 中断 & 复位模式的初始设定步骤 ” 进行设定。
备注
VPOR:POR 电源电压上升检测电压
VPDR:POR 电源电压下降检测电压
图 19-8
工作电压的确认 / 复位的设定步骤
INTLVIⲺਇ⭕
ুḾ༺⨼
䘑㺂ᡶ䴶ⲺুḾ༺⨼Ⱦ
LVISEN = 1
ሼLVISENփ㖤“1”θኅ㭳⭫ুỶ⎁(LVIOMSK=1)Ⱦ
LVILV = 0
ሼLVILVփ㖤“0”θ䇴ᇐѰ儎⭫ুỶ⎁⭫ᒩ(VLVDH)Ⱦ
LVISEN = 0
ሼLVISENփ㖤“0”θݷ䇮Ỷ⎁⭫ুȾ
No
LVIOMSK = 0
Yes
Yes
ਇ⭕LVDགྷփ
ᖉLVD⭫䐥⋗ᴿӝ⭕䜞གྷփᰬθ㜳࡚ᯣѰᐨᚘགྷ
ࡦVDDŐVLVDHȾ
No
ӝ⭕LVDⲺ䜞གྷփ
R01UH0629CJ0120 Rev.1.20
2019.06.28
LVISEN = 1
ሼLVISENփ㖤“1”θኅ㭳⭫ুỶ⎁(LVIOMSK=1)Ⱦ
LVIMD = 0
ሼLVIMDփ㖤“0”θ䇴ᇐѰѣᯣ⁗ᕅȾ
LVISEN = 0
ሼLVISENփ㖤“0”θݷ䇮Ỷ⎁⭫ুȾ
䙐ᑮ䘆㺂
593
R7F0C903-908
第 19 章 电压检测电路
如果设定中断 & 复位模式(LVIMDS1、LVIMDS0=1、0),就在解除 LVD 复位(LVIRF=1)后需要 400μs
或者 5 个 fIL 时钟的电压检测稳定等待时间。必须在等待电压检测稳定后将 LVIMD 位清 “0” 进行初始化。在电
压检测稳定等待时间的计数过程中以及在改写 LVIMD 位时,必须将 LVISEN 位置 “1”,屏蔽 LVD 产生的复位
或者中断的产生。
中断 & 复位模式的初始设定步骤如图 19-9 所示。
图 19-9
中断 & 复位模式的初始设定步骤
⭫Ⓠ⭫ুрॽ
⺤䇚གྷփⓆ
৸➝“ഴ17-5 གྷփⓆⲺ⺤䇚↛僚”Ⱦ
LVIRF = 1 ?
⺤䇚LVD⭫䐥ӝ⭕Ⲻ䜞གྷփȾ
No
Yes
LVISEN = 1
⭫ুỶ⎁どᇐㅿᖻᰬ䰪
ሼLVISENփ㖤“1”θኅ㭳⭫ুỶ⎁
(LVIOMSK=1)Ⱦ
䙐䗽䖥Ԭ䘑㺂400μsᡌ㘻5ѠfILᰬ䫕Ⲻ䇗ᮦȾ
LVIMD = 0
ሼLVIMDփ㖤“0”θ䇴ᇐѰѣᯣ⁗ᕅȾ
LVISEN = 0
ሼLVISENփ㖤“0”θݷ䇮Ỷ⎁⭫ুȾ
䙐ᑮ䘆㺂
备注
fIL:低速内部振荡器时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
594
R7F0C903-908
19.5
(1)
第 19 章 电压检测电路
电压检测电路的注意事项
有关接通电源时的电压波动
对于电源电压(VDD)在 LVD 检测电压附近发生一定时间波动的系统,有可能重复进入复位状态和复位解
除状态。能通过以下的处理,任意设定解除复位到单片机开始运行的时间。
<处理>
在解除复位后,必须通过使用定时器的软件计数器,在等待各系统不同的电源电压波动时间后进行端口等
的初始设定。
图 19-10
LVD 检测电压附近的电源电压波动不超过 50ms 时的软件处理例子
གྷփ
ࡓခौ༺⨼Ś
䇴ᇐᇐᰬಞ䱫ࡍঋݹ
(⎁䠅50ms)
৸➝“ഴ17-5 གྷփⓆⲺ⺤䇚↛僚”Ⱦ
ׁfCLK = 儎䙕䜞ᥥ㦗ಞᰬ䫕(4.04MHz(MAX.))
ⓆφfMCK = (4.04MHz(MAX.))/28θ
ٽ䇴∊䖹 = ٲ789ᰬθཝ㓜Ѱ50msȾ
ᇐᰬಞᔶခ䘆㺂(TSmn = 1)Ⱦ
䲚WDT
⌞
No
㔅䗽50ms?
(TMIFmn = 1?)
Yes
ࡓခौ༺⨼ś
注
如果在此期间再次发生复位,就不转移到初始化处理②。
备注
m=0、 1, n=0 ~ 7
R01UH0629CJ0120 Rev.1.20
2019.06.28
ㄥਙⲺࡓခ䇴ᇐ
䇴ᇐ㌱㔕ᰬ䫕Ⲻ࠼仇∊ȽᇐᰬಞȽA/D䖢ᦘಞㅿȾ
595
R7F0C903-908
(2)
第 19 章 电压检测电路
从产生 LVD 复位源到产生或者解除 LVD 复位的延迟
从满足电源电压 (VDD)< LVD 检测电压 (VLVD)到产生 LVD 复位为止会发生延迟。同样,从 LVD 检
测电压 (VLVD)≤电源电压 (VDD)到解除 LVD 复位为止也会发生延迟 (参照图 19-11)。
图 19-11
从产生 LVD 复位源到产生或者解除 LVD 复位的延迟
⭫Ⓠ⭫ু (VDD)
VLVD
ᰬ䰪
Ś
Ś
LVDགྷփؗਭ
①:检测延迟 (300μs (MAX.))
(3)
有关将 LVD 置为 OFF 时接通电源的情况
当将 LVD 置为 OFF 时,必须使用 RESET 引脚的外部复位。
在进行外部复位时,必须至少给 RESET 引脚输入 10μs 的低电平。如果在电源电压上升时进行外部复位,
就必须在给 RESET 引脚输入低电平后接通电源,而且在 “27.4 AC 特性 ” 所示的工作电压范围内至少保持 10μs
的低电平,然后输入高电平。
(4)
有关将 LVD 置为 OFF 并且设定为 LVD 中断模式时电源电压下降的情况
在将 LVD 置为 OFF 并且设定为 LVD 中断模式的情况下,如果电源电压下降,就必须在电源电压低于 “27.4
AC 特性 ” 所示的工作电压范围前,转移到 STOP 模式,或者通过外部复位置为复位状态。在重新开始运行时,
必须确认电源电压是否恢复到工作电压范围。
R01UH0629CJ0120 Rev.1.20
2019.06.28
596
R7F0C903-908
第 20 章 安全功能
第 20 章
20.1
安全功能
安全功能的概要
为了对应 IEC60730 和 IEC61508 安全标准,本产品内置以下安全功能。
此安全功能的目的是通过单片机的自诊断,在检测到故障时安全地停止工作。
(1)
闪存 CRC 运算功能 (高速 CRC、通用 CRC)
通过 CRC 运算检测闪存的数据错误。
能根据不同的用途和使用条件,分别使用以下 2 个 CRC。
(2)
•
“ 高速 CRC”… 在初始化程序中,能停止 CPU的运行并且高速检查整个代码闪存区。
•
“ 通用 CRC”… 在 CPU 运行中,不限于代码闪存区而能用于多用途的检查。
RAM 奇偶校验错误检测功能
在读 RAM 数据时,检测奇偶校验错误。
(3)
RAM 保护功能
防止因 CPU 失控而改写 RAM 数据。
(4)
SFR 保护功能
防止因 CPU 失控而改写 SFR。
(5)
非法存储器存取检测功能
检测对非法存储区 (没有存储器的区域或者限制存取的区域)的非法存取。
(6)
频率检测功能
能使用定时器阵列单元进行 CPU/ 外围硬件时钟频率的自检。
(7)
A/D 测试功能
能通过 A/D 转换器的正 (+)基准电压、负 (–)基准电压、模拟输入通道 (ANI)和内部基准电压的 A/
D 转换进行 A/D 转换器的自检。
备注
有关对应 IEC60730 安全标准的安全功能的使用例子,请参照《RL78 MCU 系列的 IEC60730/60335 自检库应用说
明》(R01AN1062、 R01AN1296)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
597
R7F0C903-908
20.2
第 20 章 安全功能
安全功能使用的寄存器
安全功能的各功能使用以下寄存器。
寄存器名
安全功能的各功能
• 闪存 CRC 控制寄存器 (CRC0CTL)
• 闪存 CRC 运算结果寄存器 (PGCRCL)
闪存 CRC 运算功能
(高速 CRC)
• CRC 输入寄存器 (CRCIN)
• CRC 数据寄存器 (CRCD)
(通用 CRC)
• RAM 奇偶校验错误控制寄存器 (RPECTL)
RAM 奇偶校验错误检测功能
• 非法存储器存取检测控制寄存器 (IAWCTL)
RAM 保护功能
CRC 运算功能
SFR 保护功能
非法存储器存取检测功能
• 定时器输入选择寄存器 0 (TIS0)
频率检测功能
• A/D 测试寄存器 (ADTES)
A/D 测试功能
有关各寄存器的内容,在 “20.3 安全功能的运行 ” 中进行说明。
20.3
安全功能的运行
20.3.1
闪存 CRC 运算功能 (高速 CRC)
IEC60730 标准要求确认闪存中的数据,并且建议 CRC 为确认手段。此高速 CRC 能在初始设定 (初始化)
程序中检查整个代码闪存区。只能通过 RAM 内的程序以主系统时钟的 HALT 模式执行高速 CRC。
高速 CRC 停止 CPU 的运行并且通过 1 个时钟从闪存读 32 位数据进行运算。因此,其特点是完成检查的时
间较短。
CRC 生成多项式对应 CRC-16-CCITT 的 “X16+X12+X5+1”。
以 bit31→bit0 的 MSB 优先进行运算。
注意
在片上调式时,因为配置监视程序,所以 CRC 的运算结果不同。
备注
因为通用 CRC 为 LSB 优先,所以运算结果不同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
598
R7F0C903-908
20.3.1.1
第 20 章 安全功能
闪存 CRC 控制寄存器 (CRC0CTL)
这是设定高速 CRC 运算器的运行控制和运算范围的寄存器。
通过 1 位或者 8 位存储器操作指令设定 CRC0CTL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-1
地址:F02F0H
闪存 CRC 控制寄存器 (CRC0CTL)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
CRC0CTL
CRC0EN
0
FEA5
FEA4
FEA3
FEA2
FEA1
FEA0
CRC0EN
高速 CRC 运算器的运行控制
0
停止运行。
1
通过执行 HALT 指令开始运算。
FEA5
0
0
0
FEA4
0
0
0
FEA3
0
0
0
FEA2
0
0
0
FEA1
0
0
1
FEA0
0
1
0
上述以外
备注
高速 CRC 的运算范围
00000H ~ 03FFBH (16K–4 字节)
00000H ~ 07FFBH (32K–4 字节)
00000H ~ 0BFFBH (48K–4 字节)
禁止设定。
必须事先将用于比较的 CRC 运算结果期待值存入闪存的最后 4 字节,因此运算范围为减去 4 字节的范围。
20.3.1.2
闪存 CRC 运算结果寄存器 (PGCRCL)
这是保存高速 CRC 运算结果的寄存器。
通过 16 位存储器操作指令设定 PGCRCL 寄存器。
在产生复位信号后,此寄存器的值变为 “0000H”。
图 20-2
地址:F02F2H
闪存 CRC 运算结果寄存器 (PGCRCL)的格式
复位后:0000H
R/W
符号
15
14
13
12
11
10
9
8
PGCRCL
PGCRC15
PGCRC14
PGCRC13
PGCRC12
PGCRC11
PGCRC10
PGCRC9
PGCRC8
7
6
5
4
3
2
1
0
PGCRC7
PGCRC6
PGCRC5
PGCRC4
PGCRC3
PGCRC2
PGCRC1
PGCRC0
PGCRC15 ~ 0
0000H ~ FFFFH
注意
高速 CRC 的运算结果
保存高速 CRC 的运算结果。
只有在 CRC0EN (CRC0CTL 寄存器的 bit7)位为 “1” 时才能写 PGCRCL 寄存器。
闪存 CRC 运算功能 (高速 CRC)的流程图如图 20-3 所示。
R01UH0629CJ0120 Rev.1.20
2019.06.28
599
R7F0C903-908
第 20 章 安全功能
<操作流程>
图 20-3
闪存 CRC 运算功能 (高速 CRC)的流程图
ӁݾሼCRC䘆㇍㔉᷒Ⲻᵕᖻؓٲᆎࡦ
ᴶքⲺ4ᆍ㢸Ⱦ
ᔶခ
䇴ᇐFEA5ЊFEA0փ
䇴ᇐCRC䘆㇍㤹പȾ
ѰҼ൞RAMᢝ㺂θ
ሼHALTԚૂRETԚགྷࡦRAMȾ
ሯRETԚⲺ10ᆍ㢸䘑㺂ࡓခौȾ
ሼHALTԚૂRETԚགྷࡦ
RAMθ䘑㺂10ᆍ㢸Ⲻࡓခौ
䇴ᇐኅ㭳ޞ䜞ѣᯣȾ
ޞ䜞xxMKx = 1
ݷ䇮CRC䘆㇍Ⱦ
CRC0EN = 1
䘑㺂CRC䘆㇍㔉᷒ᇺᆎಞⲺࡓခौȾ
PGCRCL = 0000H
ᢝ㺂CALLԚ
䈹⭞㻡གྷࡦRAMⲺHALTԚⲺ൦൶Ⱦ
ᢝ㺂HALTԚ
䙐䗽ᢝ㺂HALTԚᔶခCRC䘆㇍Ⱦ
CRC䘆㇍㔉ᶕ
No
Yes
ᢝ㺂RETԚ
ྸ᷒䘆㇍㔉ᶕθቧ䀙䲚HALT⁗ᕅȾ
䙐䗽RETԚθԄRAMⲺᢝ㺂Ԛ䘊ഔȾ
CRC0EN = 0
⾷↘CRC䘆㇍Ⱦ
䈱PGCRCLٲ
䈱CRC䘆㇍㔉᷒Ⱦ
ૂӁؓݾᆎⲺᵕᖻ∊ٲ䖹Ⱦ
ૂCRCᵕᖻ∊ٲ䖹
уੂ
ੂ
ᔸᑮ㔉ᶕ
↙ᑮ㔉ᶕ
注意 1. 只以代码闪存为 CRC 运算的对象。
2. 必须将 CRC 运算的期待值保存在代码闪存中的运算范围后的区域。
3. 通过在 RAM 区执行 HALT 指令, CRC 运算变为有效。
必须在 RAM 区执行 HALT 指令。
CRC 运算的期待值能使用综合开发环境 “CubeSuite+” 进行计算。详细内容请参照 《CubeSuite+ Development
Environment User’s Manual》。
R01UH0629CJ0120 Rev.1.20
2019.06.28
600
R7F0C903-908
20.3.2
第 20 章 安全功能
CRC 运算功能 (通用 CRC)
为了必须保证运行过程中的安全, IEC61508 标准要求即使在 CPU 运行中也需要确认数据。
此通用 CRC 能在 CPU 运行中作为外围功能进行 CRC 运算。通用 CRC 不限于代码闪存区而能用于多用途
的检查。通过软件(用户程序)指定要确认的数据。HALT 模式中的 CRC 运算功能只能在 DMA 传送过程中使用。
在主系统时钟运行模式中,能使用 CRC 运算功能。
CRC 生成多项式使用 CRC-16-CCITT 的 “X16+X12+X5+1”。因为考虑到是以 LSB 优先进行的通信,所以在将
输入数据的位序颠倒后进行计算。例如,从LSB发送数据“12345678H”的情况,按照“78H”、“56H”、“34H”、“12H”
的顺序给 CRCIN 寄存器写值,从 CRCD 寄存器得到 “08F6H” 的值。这是针对颠倒了数据 “12345678H” 的位序
后的以下位序进行 CRC 运算的结果。
CRCIN 设定数据
位表示数据
78H
56H
34H
12H
0111 1000
0101 0110
0011 0100
0001 0010
位倒序
0001 1110
位倒序数据
0110 1010
0010 1100
0100 1000
用多项式进行运算。
0110 1111 0001 0000
结果数据
位倒序
CRCD 数据
← 取得的结果
0000 1000 1111 0110
(08F6H)
注意
在执行程序的过程中,因为调式程序将软件断点的设定行改写为断点指令,所以如果在 CRC 运算的对象区设定软件
断点, CRC 的运算结果就不同。
20.3.2.1
CRC 输入寄存器 (CRCIN)
这是设定通用 CRC 的 CRC 计算数据的 8 位寄存器。
能设定的范围为 “00H ~ FFH”。
通过 8 位存储器操作指令设定 CRCIN 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-4
地址:FFFACH
符号
复位后:00H
7
6
CRC 输入寄存器 (CRCIN)的格式
R/W
5
4
3
2
1
0
CRCIN
bit7 ~ 0
00H ~ FFH
R01UH0629CJ0120 Rev.1.20
2019.06.28
功能
数据输入
601
R7F0C903-908
20.3.2.2
第 20 章 安全功能
CRC 数据寄存器 (CRCD)
这是保存通用 CRC 运算结果的寄存器。
能设定的范围为 “0000H ~ FFFFH”。
在写 CRCIN 寄存器后经过 1 个 CPU/ 外围硬件时钟 (fCLK),将 CRC 运算结果保存到 CRCD 寄存器。
通过 16 位存储器操作指令设定 CRCD 寄存器。
在产生复位信号后,此寄存器的值变为 “0000H”。
图 20-5
地址:F02FAH
符号
15
CRC 数据寄存器 (CRCD)的格式
R/W
复位后:0000H
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
CRCD
注意 1. 要读 CRCD 寄存器的写入值时,必须在写 CRCIN 寄存器前读 CRCD 寄存器。
2. 如果 CRCD 寄存器的写操作与运算结果的保存发生竞争,就忽视写操作。
<操作流程>
图 20-6
CRC 运算功能 (通用 CRC)的流程图
ᔶခ
ᇐ䎭ခ൦൶ૂ㔉ᶕ൦൶
ሼ䎭ခ൦൶ૂ㔉ᶕ൦൶ؓᆎࡦ䙐⭞ᇺᆎಞȾ
㔏CRCDᇺᆎಞߏ“0000H”
䘑㺂CRCDᇺᆎಞⲺࡓခौȾ
䈱ᮦᦤ
ሼᮦᦤؓᆎࡦCRCINᇺᆎಞ
䈱ᓊ൦൶Ⲻ8փᮦᦤȾ
䇗㇍8փᮦᦤⲺCRCȾ
൦൶+1
ᴶ൦൶?
Yes
No
ㅿᖻ1Ѡᰬ䫕(fCLK)
䈱CRCDᇺᆎಞ
㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
CRC㔉᷒Ⱦ
ૂ༽Ⲻᵕᖻ∊ٲ䖹θ
⺤䇚ੂٲȾ
602
R7F0C903-908
20.3.3
第 20 章 安全功能
RAM 奇偶校验错误检测功能
IEC60730 标准要求确认 RAM 数据。因此,本产品的 RAM 每 8 位附加 1 位奇偶校验位。RAM 奇偶校验错
误检测功能在写数据时附加奇偶校验位,而在读数据时检查奇偶校验位,并且能在发生奇偶校验错误时产生复
位。
20.3.3.1
RAM 奇偶校验错误控制寄存器 (RPECTL)
此寄存器控制奇偶校验的错误确认位和因奇偶校验错误而产生复位。
通过 1 位或者 8 位存储器操作指令设定 RPECTL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-7
地址:F00F5H
RAM 奇偶校验错误控制寄存器 (RPECTL)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
RPECTL
RPERDIS
0
0
0
0
0
0
RPEF
RPERDIS
奇偶校验错误复位的屏蔽标志
0
允许产生奇偶校验错误复位。
1
禁止产生奇偶校验错误复位。
RPEF
注意
奇偶校验错误状态标志
0
没有发生奇偶校验错误。
1
发生奇偶校验错误。
在写数据时附加奇偶校验位,而在读数据时检查奇偶校验位。
因此,当允许产生RAM奇偶校验错误复位 (RPERDIS=0)时,必须在存取数据时并且在读数据前对“所用RAM区”
进行初始化。
因为 RL78为流水线运行,所以CPU进行预读,有可能因读所用 RAM 区前的未初始化 RAM 区而发生RAM 奇偶校验
错误。因此,当允许产生RAM 奇偶校验错误复位(RPERDIS=0)时,必须在从RAM 区执行指令时对 “所用 RAM 区
+10字节 ”的区域进行初始化;当允许产生RAM 奇偶校验错误复位(RPERDIS=0)并且使用自编程功能时,必须在
改写前对 “要改写的 RAM 区 +10字节 ”的区域进行初始化。
备注 1. 初始状态为允许产生奇偶校验错误复位 (RPERDIS=0)。
2. 即使设定为禁止产生奇偶校验错误复位 (RPERDIS=1),也在发生奇偶校验错误时将 RPEF 标志置 “1”。如果在
RPEF 位为 “1” 的状态下设定为允许产生奇偶检验错误复位 (RPERDIS=0),就在将 RPERDIS 清 “0” 时产生奇偶
校验错误复位。
3. 因 RAM 奇偶校验错误而将 RPECTL 寄存器的 RPEF 标志置 “1”,通过写 “0” 或者全部复位源将 RPEF 标志清 “0”。
当 RPEF 标志为 “1” 时,即使读未发生奇偶校验错误的 RAM, RPEF 标志也保持 “1” 的状态。
4. RAM 奇偶校验检测的范围不包括通用寄存器。
R01UH0629CJ0120 Rev.1.20
2019.06.28
603
R7F0C903-908
第 20 章 安全功能
图 20-8
RAM 奇偶校验的流程
ཽڬṗ僂ᔶခ
RPERF = 1⌞
Yes
No
RPERDIS = 1
⾷↘ཽڬṗ僂䭏䈥ⲺགྷփȾ
RAMཽڬṗ僂
䈱RAMȾ
RAMཽڬṗ僂
ਇ⭕ཽڬ
ṗ僂䭏䈥
No
RPEF = 1
Yes
Yes
RPERDIS = 0
ਇ⭕䜞གྷփ
注
⺤䇚ཽڬṗ僂䭏䈥
Ⲻਇ⭕Ⱦ
No
ݷ䇮ཽڬṗ僂䭏䈥
ⲺགྷփȾ
䙐ᑮ䘆㺂
RAM᭻䳒༺⨼
有关 RAM 奇偶错误的内部复位的确认,请参照 “ 第 17 章 复位功能 ”。
20.3.4
RAM 保护功能
为了必须保证运行过程中的安全,IEC61508 标准要求即使 CPU 失控也需要保护存储在 RAM 的重要数据。
此 RAM 保护功能用于保护被指定的 RAM 空间的数据。
如果设定为 RAM 保护功能,指定空间的 RAM 写操作就无效,但是能正常读取。
20.3.4.1
非法存储器存取检测控制寄存器 (IAWCTL)
此寄存器控制是否允许检测非法存储器的存取以及控制 RAM/SFR 保护功能。
RAM 保护功能使用 GRAM1 位和 GRAM0 位。
通过 8 位存储器操作指令设定 IAWCTL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-9
地址:F0078H
注
非法存储器存取检测控制寄存器 (IAWCTL)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
IAWCTL
IAWEN
0
GRAM1
GRAM0
0
GPORT
GINT
GCSC
GRAM1
GRAM0
0
0
无效。能写 RAM。
0
1
RAM 起始地址开始的 128 字节
1
0
RAM 起始地址开始的 256 字节
1
1
RAM 起始地址开始的 512 字节
RAM 保护空间注
RAM 的起始地址因产品内置的 RAM 容量而变。
R01UH0629CJ0120 Rev.1.20
2019.06.28
604
R7F0C903-908
20.3.5
第 20 章 安全功能
SFR 保护功能
为了必须保证运行过程中的安全,IEC61508标准要求即使CPU失控也需要保护重要的SFR,使其免遭改写。
SFR 保护功能用于保护端口功能、中断功能、时钟控制功能、电压检测电路和 RAM 奇偶校验错误检测功
能的控制寄存器的数据。
如果设定为 SFR 保护功能,被保护的 SFR 的写操作就无效,但是能正常读取。
20.3.5.1
非法存储器存取检测控制寄存器 (IAWCTL)
此寄存器控制是否允许检测非法存储器的存取以及控制 RAM/SFR 保护功能。
SFR 保护功能使用 GPORT 位、 GINT 位和 GCSC 位。
通过 8 位存储器操作指令设定 IAWCTL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-10
地址:F0078H
非法存储器存取检测控制寄存器 (IAWCTL)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
IAWCTL
IAWEN
0
GRAM1
GRAM0
0
GPORT
GINT
GCSC
GPORT
端口功能的控制寄存器的保护
0
无效。能读写端口功能的控制寄存器。
1
有效。端口功能的控制寄存器的写操作无效,能读。
[ 被保护的 SFR] PMxx、 PUxx、 PIMxx、 POMxx、 PMCxx、 ADPC、 PIOR 注
GINT
中断功能的寄存器的保护
0
无效。能读写中断功能的控制寄存器。
1
有效。中断功能的控制寄存器的写操作无效,能读。
[ 被保护的 SFR] IFxx、 MKxx、 PRxx、 EGPx、 EGNx
GCSC
时钟控制功能、电压检测电路和 RAM 奇偶校验错误检测功能的控制寄存器的保护
0
无效。能读写时钟控制功能、电压检测电路和 RAM 奇偶校验错误检测功能的控制寄存器。
1
有效。时钟控制功能、电压检测电路和 RAM 奇偶校验错误检测功能的控制寄存器的写操作无
效,能读。
[ 被保护的 SFR] CMC、 CSC、 OSTS、 CKC、 PERx、 OSMC、 LVIM、 LVIS、 RPECTL
注
不保护 Pxx (端口寄存器)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
605
R7F0C903-908
20.3.6
第 20 章 安全功能
非法存储器存取检测功能
IEC60730 标准要求需要确认 CPU 和中断是否正常运行。
非法存储器存取检测功能在存取被规定的非法存取检测空间时产生复位。
非法存取检测空间为图 20-11 中记载为 “NG” 的范围。
图 20-11
非法存取检测空间
㜳ੜᆎ
䈱
ߏ
Ԛ
(ᢝ㺂)
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ (SFR)
256ᆍ㢸
FFF00H
FFEFFH
FFEE0H
FFEDFH
NG
䙐⭞ᇺᆎಞ
32ᆍ㢸
OK
RAM⌞
OK
zzzzzH
䮒܅॰
OK
NG
NG
ᮦᦤ䰠ᆎ
F1000H
F0FFFH
OK
ؓ⮏॰
F0800H
F07FFH
OK
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ
(2nd SFR)
2Kᆍ㢸
NG
F0000H
EFFFFH
OK
EF000H
EEFFFH
ؓ⮏॰
NG
NG
NG
yyyyyH
xxxxxH
OK
OK
ԙ⸷䰠ᆎ⌞
00000H
注
各产品的代码闪存、 RAM 和检测最低位地址如下所示:
产品
代码闪存
(00000H ~ xxxxxH)
RAM
(zzzzzH ~ FFEFFH)
R7F0C906B2DFP-C
R7F0C903B2DFP-C
16384×8 位
(00000H ~ 03FFFH)
R7F0C907B2DFP-C
R7F0C904B2DFP-C
32768×8 位
(00000H ~ 07FFFH)
R7F0C908B2DFP-C
R7F0C905B2DFP-C
49152×8 位
(00000H ~ 0BFFFH)
2048×8 位
(FF700H ~ FFEFFH)
2048×8 位
(FF700H ~ FFEFFH)
3072×8 位
(FF300H ~ FFEFFH)
R01UH0629CJ0120 Rev.1.20
2019.06.28
读 / 取指令 (执行)时
的检测最低位地址
(yyyyyH)
10000H
10000H
10000H
606
R7F0C903-908
20.3.6.1
第 20 章 安全功能
非法存储器存取检测控制寄存器 (IAWCTL)
此寄存器控制是否允许检测非法存储器的存取以及控制 RAM/SFR 保护功能。
非法存储器存取检测功能使用 IAWEN 位。
通过 8 位存储器操作指令设定 IAWCTL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-12
地址:F0078H
非法存储器存取检测控制寄存器 (IAWCTL)的格式
复位后:00H
R/W
符号
7
6
5
4
3
2
1
0
IAWCTL
IAWEN
0
GRAM1
GRAM0
0
GPORT
GINT
GCSC
IAWEN 注
非法存储器存取的检测控制
0
非法存储器存取的检测无效。
1
非法存储器存取的检测有效。
注
IAWEN 位只有写 “1” 的操作有效, IAWEN 位为 “1” 后的写 “0” 的操作无效。
备注
当选项字节 (000C0H)的 WDTON 位为 “1” (允许看门狗定时器运行)时,即使 IAWEN 位为 “0”,非法存储器存
取检测功能也有效。
R01UH0629CJ0120 Rev.1.20
2019.06.28
607
R7F0C903-908
20.3.7
第 20 章 安全功能
频率检测功能
IEC60730 标准要求确认振荡频率是否正常。
频率检测功能可使用 CPU/ 外围硬件的时钟频率 (fCLK),并且能通过测量定时器阵列单元 0 (TAU0)的
通道 5 输入脉冲,判断 2 个时钟的比率关系是否正确。
但是,如果其中 1 个时钟或者 2 个时钟完全停止振荡,就不能判断 2 个时钟的比率关系。
<要比较的时钟>
① CPU/ 外围硬件的时钟频率 (fCLK):
•
高速内部振荡器时钟 (fIH)
•
高速系统时钟 (fMX)
② 定时器阵列单元 0 的通道5 输入:
•
通道 5 的定时器输入 (TI05)
•
低速内部振荡器时钟 (fIL:15kHz (TYP.))
图 20-13
儎䙕䜞ᥥ㦗ಞᰬ䫕(fIH)
频率检测功能的结构
䘿
ಞ
ICLK
儎䙕㌱㔕ᰬ䫕(fMX)
ķ
TI05
䘿
ಞ
ք䙕䜞ᥥ㦗ಞᰬ䫕
(15kHz (TYP.))
IIL
ĸ
ᇐᰬಞ䱫ࡍঋݹ0
(TAU0)Ⲻ䙐䚉5
ⵁ䰞⤍ᇐᰬಞ(WDT)
当输入脉冲间隔的测量结果为异常值时,能判断为 “ 时钟频率异常 ”。
有关输入脉冲间隔的测量方法,请参照 “6.8.4 作为输入脉冲间隔测量的运行 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
608
R7F0C903-908
20.3.7.1
第 20 章 安全功能
定时器输入选择寄存器 0 (TIS0)
TIS0 寄存器选择定时器阵列单元 0 (TAU0)的通道 5 的定时器输入。
通过 8 位存储器操作指令设定 TIS0 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-14
地址:F0074H
复位后:00H
定时器输入选择寄存器 0 (TIS0)的格式
R/W
符号
7
6
5
4
3
2
1
0
TIS0
0
0
0
0
0
TIS02
TIS01
TIS00
TIS02
TIS01
TIS00
0
x
x
定时器输入引脚 (TI05)的输入信号
1
0
0
低速内部振荡器时钟 (fIL)
上述以外
备注
通道 5 使用的定时器输入的选择
禁止设定。
x:忽略
20.3.8
A/D 测试功能
IEC60730 标准要求进行 A/D 转换器的测试。此 A/D 测试功能通过对 A/D 转换器的正 (+)基准电压、负
(–)基准电压、模拟输入通道 (ANI)和内部基准电压进行 A/D 转换,确认 A/D 转换器是否正常运行。有关详
细的确认方法,请参照 《安全功能 (A/D 测试)的应用说明》(R01AN0955)。
能通过以下步骤确认模拟多路转换器:
① 通过 ADTES 寄存器选择 ANIx 引脚作为 A/D 转换对象 (ADTES1、 ADTES0=0、 0)。
② 对 ANIx 引脚进行 A/D 转换 (转换结果 1-1)。
③ 通过 ADTES 寄存器选择 A/D 转换器的负(–)基准电压作为 A/D 转换对象(ADTES1、ADTES0=1、0)。
④ 对 A/D 转换器的负 (–)基准电压进行 A/D 转换 (转换结果 2-1)。
⑤ 通过 ADTES 寄存器选择 ANIx 引脚作为 A/D 转换对象 (ADTES1、 ADTES0=0、 0)。
⑥ 对 ANIx 引脚进行 A/D 转换 (转换结果 1-2)。
⑦ 通过 ADTES 寄存器选择 A/D 转换器的正(+)基准电压作为 A/D 转换对象(ADTES1、ADTES0=1、1)。
⑧ 对 A/D 转换器的正 (+)基准电压进行 A/D 转换 (转换结果 2-2)。
⑨ 通过 ADTES 寄存器选择 ANIx 引脚作为 A/D 转换对象 (ADTES1、 ADTES0=0、 0)。
⑩ 对 ANIx 引脚进行 A/D 转换 (转换结果 1-3)。
确认 “ 转换结果 1-1”、 “ 转换结果 1-2” 和 “ 转换结果 1-3” 相同。
确认 “ 转换结果 2-1” 的 A/D 转换结果全部为 “0” 并且 “ 转换结果 2-2” 的 A/D 转换结果全部为 “1”。
通过以上步骤,能选择模拟多路转换器以及确认布线没有断线。
备注 1. 在①~⑩的转换过程中,如果模拟输入电压可变,就必须采用其他方法来确认模拟多路转换器。
2. 转换结果含有误差,因此必须在比较转换结果时要适当考虑误差。
R01UH0629CJ0120 Rev.1.20
2019.06.28
609
R7F0C903-908
第 20 章 安全功能
图 20-15
A/D 测试功能的结构
• ADISS
• ADS4Њ0
ANI0/AVREFP
ANI1/AVREFM
ANIxx
• ADTES1ȽADTES0
ANIxx
䜞ะ⭫ু
(1.45V)⌞
A/D䖢ᦘಞ
↙(+)ะ⭫ু
VDD
• ADREFP1ȽADREFP0
A/D䖢ᦘಞ
A/D䖢ᦘಞ
䍕(–)ะ⭫ু
VSS
• ADREFM
注
只有在 HS (高速主)模式中才能选择。
R01UH0629CJ0120 Rev.1.20
2019.06.28
610
R7F0C903-908
20.3.8.1
第 20 章 安全功能
A/D 测试寄存器 (ADTES)
此寄存器选择 A/D 转换器的正 (+)基准电压、负 (–)基准电压、模拟输入通道 (ANIxx)和内部基准
电压 (1.45V)作为 A/D 转换对象。
当用作 A/D 测试功能时,进行以下的设定:
•
在测量零刻度时,选择负 (–)基准电压作为 A/D转换对象。
•
在测量满刻度时,选择正 (+)基准电压作为 A/D 转换对象。
通过 8 位存储器操作指令设定 ADTES 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-16
地址:F0013H
复位后:00H
A/D 测试寄存器 (ADTES)的格式
R/W
符号
7
6
5
4
3
2
1
0
ADTES
0
0
0
0
0
0
ADTES1
ADTES0
ADTES1
ADTES0
0
0
ANIxx/ 内部基准电压
(1.45V)注
A/D 转换对象
(由模拟输入通道指定寄存器 (ADS)进行设定)
1
0
1
1
负 (–)基准电压
(通过 ADM2 寄存器的 ADREFM 位进行选择)
正 (+)基准电压
(通过 ADM2 寄存器的 ADREFP1 位和 ADREFP0 位进行选择)注
上述以外
注
禁止设定。
只有在 HS (高速主)模式中才能选择内部基准电压 (1.45V)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
611
R7F0C903-908
20.3.8.2
第 20 章 安全功能
模拟输入通道指定寄存器 (ADS)
此寄存器指定 A/D 转换的模拟电压的输入通道。
要通过A/D测试功能测量ANIxx或者内部基准电压(1.45V)时,必须将A/D测试寄存器(ADTES)置“00H”。
通过 1 位或者 8 位存储器操作指令设定 ADS 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 20-17
地址:FFF31H
模拟输入通道指定寄存器 (ADS)的格式
R/W
复位后:00H
符号
7
6
5
4
3
2
1
0
ADS
ADISS
0
0
ADS4
ADS3
ADS2
ADS1
ADS0
○选项模式 (ADMD=0)
ADISS
ADS4
ADS3
ADS2
ADS1
ADS0
模拟输入通道
0
0
0
0
0
0
ANI0
P20/ANI0/AVREFP 引脚
0
0
0
0
0
1
ANI1
P21/ANI1/AVREFM 引脚
0
0
0
0
1
0
ANI2
P22/ANI2 引脚
0
0
0
0
1
1
ANI3
P23/ANI3 引脚
0
1
0
0
0
0
ANI16
P01/ANI16 引脚
0
1
0
0
0
1
ANI17
P00/ANI17 引脚
0
1
0
0
1
0
ANI18
P147/ANI18 引脚
0
1
0
0
1
1
ANI19
P120/ANI19 引脚
1
0
0
0
0
1
—
上述以外
输入源
内部基准电压 (1.45V)注
禁止设定。
只有在 HS (高速主)模式中才能选择。
注
注意 1. 必须将 bit5 和 bit6 位置 “0”。
2
对于由 ADPC 寄存器和 PMC 寄存器设定为模拟输入的端口,必须通过端口模式寄存器 0、 2、 12、 14 (PM0、
PM2、 PM12、 PM14)将其设定为输入模式。
3. 对于由 A/D 端口配置寄存器 (ADPC)设定为数字输入 / 输出的引脚,不能通过 ADS 寄存器进行设定。
4. 对于由端口模式控制寄存器 0、12、14(PMC0、PMC12、PMC14)设定为数字输入 / 输出的引脚,不能通过 ADS
寄存器进行设定。
5. 要改写 ADISS 位时,必须在转换停止状态 (ADCS=0、 ADCE=0)下进行。
6. 当将 AVREFP 用作 A/D 转换器的正 (+)基准电压时,不能选择 ANI0 作为 A/D 转换通道。
7. 当将 AVREFM 用作 A/D 转换器的负 (–)基准电压时,不能选择 ANI1 作为 A/D 转换通道。
8. 在将 ADISS 位置 “1” 的情况下,不能将内部基准电压(1.45V)用作正(+)基准电压。另外,在将 ADISS 位置 “1”
后,不能使用第 1 次的转换结果。有关详细设定流程,请参照 “10.7.4 选择内部基准电压时的设定(以软件触发模
式、单次转换模式为例) ”。
9. 要转移到 STOP 模式时,不能将 ADISS 位置 “1”。如果将 ADISS 位置 “1”,就加上 “27.3.2 电源电流特性 ” 所示的
A/D 转换器基准电压电流 (IADREF)的电流值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
612
R7F0C903-908
第 21 章 稳压器
第 21 章
21.1
稳压器
稳压器的概要
本产品内置使器件内部恒压工作的电路。为了使稳压器的输出电压稳定,必须通过电容器 (0.47 ~ 1μF)将
REGC 引脚连接 VSS。另外,为了稳定内部电压,必须使用特性好的电容器。
REGC
VSS
注意
必须尽量缩短上图虚线部分的布线。
稳压器的输出电压如表 21-1 所示。
表 21-1
模式
LV (低电压主)模式
稳压器的输出电压条件
输出电压
条件
1.8V
—
LS (低速主)模式
HS (高速主)模式
注
1.8V
STOP 模式
2.1V
上述以外 (包含片上调试期间)注
在片上调试期间转移到 STOP 模式时,稳压器的输出电压保持 2.1V (不变为 1.8V)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
613
R7F0C903-908
第 22 章 选项字节
第 22 章
22.1
选项字节
选项字节的功能
本产品的闪存 000C0H ~ 000C3H 为选项字节区。
选项字节由用户选项字节 (000C0H ~ 000C2H)和片上调试选项字节 (000C3H)构成。
在接通电源或者复位启动时,自动参照选项字节进行指定功能的设定。在使用本产品时,必须通过选项字
节进行以下功能的设定。对于没有配置功能的位,不能更改初始值。
要在自编程过程中使用引导交换功能时,因为 000C0H ~ 000C3H 被 010C0H ~ 010C3H 替换,所以必须给
010C0H ~ 010C3H 设定和 000C0H ~ 000C3H 相同的值。
注意
与是否使用各功能无关,必须设定选项字节。
22.1.1
(1)
用户选项字节 (000C0H ~ 000C2H/010C0H ~ 010C2H)
000C0H/010C0H
○ 看门狗定时器的运行
•
•
允许或者禁止计数器的运行。
在 HALT/STOP模式中允许或者停止计数器的运行。
○ 看门狗定时器的上溢时间的设定
○ 看门狗定时器的窗口打开期间的设定
○ 看门狗定时器的间隔中断的设定
•
注意
(2)
使用或者不使用间隔中断。
在引导交换时, 000C0H 被 010C0H 替换,因此必须给 010C0H 设定和 000C0H 相同的值。
000C1H/010C1H
○ LVD 运行模式的设定
•
中断 & 复位模式
•
复位模式
•
中断模式
•
LVD 为 OFF (使用 RESET引脚的外部复位输入)。
○ LVD 检测电平 (VLVDH、 VLVDL、 VLVD)的设定
注意 1. 当电源电压上升时,必须在电源电压达到 “27.4 AC 特性 ” 所示的工作电压范围前,通过电压检测电路或者外部复
位保持复位状态;当电源电压下降时,必须在电源电压低于工作电压范围前,转移到 STOP 模式,或者通过电压检
测电路或外部复位置为复位状态。工作电压范围取决于用户选项字节 (000C2H/010C2H)的设定。
2. 在引导交换时, 000C1H 被 010C1H 替换,因此必须给 010C1H 设定和 000C1H 相同的值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
614
R7F0C903-908
(3)
第 22 章 选项字节
000C2H/010C2H
○ 闪存运行模式的设定
根据所用主系统时钟频率 (fMAIN)和电源电压 (VDD)进行设定。
•
LV (低电压主)模式
•
LS (低速主)模式
•
HS (高速主)模式
○ 高速内部振荡器的频率设定
•
注意
从 24MHz、 16MHz、 12MHz、 8MHz、 6MHz、 4MHz、 3MHz、 2MHz、 1MHz(TYP.)中选择。
在引导交换时, 000C2H 被 010C2H 替换,因此必须给 010C2H 设定和 000C2H 相同的值。
22.1.2
片上调试选项字节 (000C3H/010C3H)
○ 片上调试运行的控制
•
禁止或者允许片上调试运行。
○ 安全 ID 验证失败时闪存数据的处理
•
注意
是否在片上调试安全 ID验证失败时擦除闪存的数据。
在引导交换时, 000C3H 被 010C3H 替换,因此必须给 010C3H 设定和 000C3H 相同的值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
615
R7F0C903-908
22.2
第 22 章 选项字节
用户选项字节的格式
图 22-1
用户选项字节 (000C0H/010C0H)的格式
地址:000C0H/010C0H 注 1
7
6
5
4
3
2
1
0
WDTINT
WINDOW1
WINDOW0
WDTON
WDCS2
WDCS1
WDCS0
WDSTBYON
WDTINT
看门狗定时器间隔中断的使用 / 不使用
0
不使用间隔中断。
1
在达到上溢时间的 75%+1/2fIL 时,产生间隔中断。
WINDOW1 WINDOW0
看门狗定时器的窗口打开期间注 2
0
0
禁止设定。
0
1
50%
1
0
75% 注 3
1
1
100%
WDTON
看门狗定时器的计数器运行控制
0
禁止计数器的运行 (解除复位后停止计数)。
1
允许计数器的运行 (解除复位后开始计数)。
WDCS1
WDCS0
0
0
0
26/fIL (3.71ms)
0
0
1
27/fIL (7.42ms)
0
1
0
28/fIL (14.84ms)
0
1
1
29/fIL (29.68ms)
1
0
0
211/fIL (118.72ms)
1
0
1
213/fIL (474.89ms)
1
1
0
214/fIL (949.79ms)
1
1
1
216/fIL (3799.18ms)
WDSTBYON
注
看门狗定时器的上溢时间
WDCS2
(fIL=17.25kHz(MAX.) 的情况)
看门狗定时器的计数器运行控制 (HALT/STOP 模式)
0
在 HALT/STOP 模式中,停止计数器的运行注 2。
1
在 HALT/STOP 模式中,允许计数器的运行。
1. 在引导交换时, 000C0H 被 010C0H 替换,因此必须给 010C0H 设定和 000C0H 相同的值。
2. 当 WDSTBYON 位为 “0” 时,与 WINDOW1 位和 WINDOW0 位的值无关,窗口打开期间为 100%。
3. 在将窗口打开期间设定为 75% 时,如果进行看门狗定时器的计数器清除 (给 WDTE 写 “ACH”),就必须在下表所
示的计数器清除禁止期间外的时序进行看门狗定时器的间隔中断请求标志 (WDTIIF)确认等。
R01UH0629CJ0120 Rev.1.20
2019.06.28
616
R7F0C903-908
WDCS2
备注
第 22 章 选项字节
WDCS1
WDCS0
看门狗定时器的上溢时间
将窗口打开期间设定为 75% 时的
(fIL=17.25kHz(MAX.) 的情况)
计数器清除禁止期间
0
0
0
26/fIL (3.71ms)
1.85 ~ 2.51ms
0
0
1
3.71 ~ 5.02ms
0
1
0
0
1
1
1
0
0
27/fIL (7.42ms)
28/fIL (14.84ms)
29/fIL (29.68ms)
211/fIL (118.72ms)
213/fIL (474.89ms)
214/fIL (949.79ms)
216/fIL (3799.18ms)
1
0
1
1
1
0
1
1
1
7.42 ~ 10.04ms
14.84 ~ 20.08ms
56.36 ~ 80.32ms
237.44 ~ 321.26ms
474.89 ~ 642.51ms
1899.59 ~ 2570.04ms
fIL:低速内部振荡器的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
617
R7F0C903-908
第 22 章 选项字节
图 22-2
用户选项字节 (000C1H/010C1H)的格式 (1/2)
地址:000C1H/010C1H 注
•
7
6
5
4
3
2
1
0
VPOC2
VPOC1
VPOC0
1
LVIS1
LVIS0
LVIMDS1
LVIMDS0
LVD 的设定 (中断 & 复位模式)
检测电压
VLVDH
VLVDL
上升 下降 下降
1.77V 1.73V 1.63V
选项字节的设定值
VPOC2
VPOC1
VPOC0
0
0
0
LVIS1
LVIS0
1
0
1.88V 1.84V
0
1
2.92V 2.86V
0
0
1
0
0
1
1.98V 1.94V 1.84V
0
1
2.09V 2.04V
3.13V 3.06V
2.61V 2.55V 2.45V
1
0
2.71V 2.65V
3.75V 3.67V
2.92V 2.86V 2.75V
1
1
3.02V 2.96V
4.06V 3.98V
—
•
0
0
0
1
0
0
1
0
0
1
0
0
1
0
禁止设定上述以外的值。
LVD 的设定 (复位模式)
检测电压
VLVD
选项字节的设定值
VPOC2
VPOC1
VPOC0
LVIS1
LVIS0
0
0
0
1
1
上升
1.67V
下降
1.63V
1.77V
1.73V
0
0
1
0
1.88V
1.84V
0
1
1
1
1.98V
1.94V
0
1
1
0
2.09V
2.04V
0
1
0
1
2.50V
2.45V
1
0
1
1
2.61V
2.55V
1
0
1
0
2.71V
2.65V
1
0
0
1
2.81V
2.75V
1
1
1
1
2.92V
2.86V
1
1
1
0
3.02V
2.96V
1
1
0
1
3.13V
3.06V
0
1
0
0
3.75V
3.67V
1
0
0
0
4.06V
3.98V
1
1
0
0
—
注
0
1
模式设定
LVIMDS1
LVIMDS0
模式设定
LVIMDS1
LVIMDS0
1
1
禁止设定上述以外的值。
在引导交换时, 000C1H 被 010C1H 替换,因此必须给 010C1H 设定和 000C1H 相同的值。
备注 1. 有关 LVD 电路的详细内容,请参照 “ 第 19 章 电压检测电路 ”。
2. 检测电压是 TYP. 值。详细内容请参照 “27.6.4 LVD 电路特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
618
R7F0C903-908
第 22 章 选项字节
图 22-2
用户选项字节 (000C1H/010C1H)的格式 (2/2)
地址:000C1H/010C1H 注
•
7
6
5
4
3
2
1
0
VPOC2
VPOC1
VPOC0
1
LVIS1
LVIS0
LVIMDS1
LVIMDS0
LVD 的设定 (中断模式)
检测电压
VLVD
选项字节的设定值
VPOC2
VPOC1
VPOC0
LVIS1
LVIS0
0
0
0
1
1
上升
下降
1.67V
1.63V
1.77V
1.73V
0
0
1
0
1.88V
1.84V
0
1
1
1
1.98V
1.94V
0
1
1
0
2.09V
2.04V
0
1
0
1
2.50V
2.45V
1
0
1
1
2.61V
2.55V
1
0
1
0
2.71V
2.65V
1
0
0
1
2.81V
2.75V
1
1
1
1
2.92V
2.86V
1
1
1
0
3.02V
2.96V
1
1
0
1
3.13V
3.06V
0
1
0
0
3.75V
3.67V
1
0
0
0
4.06V
3.98V
1
1
0
0
—
•
LVIMDS1
LVIMDS0
0
1
禁止设定上述以外的值。
LVD 为 OFF 时的设定 (使用 RESET 引脚的外部复位输入)
检测电压
VLVDH
上升
下降
―
―
选项字节的设定值
VPOC2
VPOC1
VPOC0
LVIS1
LVIS0
1
×
×
×
×
—
注
模式设定
模式设定
LVIMDS1
LVIMDS0
×
1
禁止设定上述以外的值。
在引导交换时, 000C1H 被 010C1H 替换,因此必须给 010C1H 设定和 000C1H 相同的值。
注意 1. 必须给 bit4 写 “1”。
2. 当电源电压上升时,必须在电源电压达到 “27.4 AC 特性 ” 所示的工作电压范围前,通过电压检测电路或者外部复
位保持复位状态;当电源电压下降时,必须在电源电压低于工作电压范围前,转移到 STOP 模式,或者通过电压检
测电路或外部复位置为复位状态。工作电压范围取决于用户选项字节 (000C2H/010C2H)的设定。
备注 1. ×:忽略
2. 有关 LVD 电路的详细内容,请参照 “ 第 19 章 电压检测电路 ”。
3. 检测电压是 TYP. 值。详细内容请参照 “27.6.4 LVD 电路特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
619
R7F0C903-908
第 22 章 选项字节
图 22-3
用户选项字节 (000C2H/010C2H)的格式
地址:000C2H/010C2H 注
7
6
5
4
3
2
1
0
CMODE1
CMODE0
1
0
FRQSEL3
FRQSEL2
FRQSEL1
FRQSEL0
CMODE1
CMODE0
0
0
LV (低电压主)模式
1MHz ~ 4MHz
1.6V ~ 5.5V
1
0
LS (低速主)模式
1MHz ~ 8MHz
1.8V ~ 5.5V
1
1
HS (高速主)模式
1MHz ~ 16MHz
2.4V ~ 5.5V
1MHz ~ 24MHz
2.7V ~ 5.5V
闪存运行模式的设定
工作频率范围 (fMAIN) 工作电压范围 (VDD)
上述以外
禁止设定。
FRQSEL3
FRQSEL2
FRQSEL1
FRQSEL0
高速内部振荡器的时钟频率
0
0
0
0
24MHz
1
0
0
1
16MHz
0
0
0
1
12MHz
1
0
1
0
8MHz
0
0
1
0
6MHz
1
0
1
1
4MHz
0
0
1
1
3MHz
1
1
0
0
2MHz
1
1
0
1
1MHz
上述以外
注
禁止设定。
在引导交换时, 000C2H 被 010C2H 替换,因此必须给 010C2H 设定和 000C2H 相同的值。
注意 1. 必须给 bit5 和 bit4 写 “10B”。
2. 工作频率范围和工作电压范围因闪存的各运行模式而不同。详细内容请参照 “27.4 AC 特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
620
R7F0C903-908
22.3
第 22 章 选项字节
片上调试选项字节的格式
片上调试选项字节的格式如下所示。
图 22-4
片上调试选项字节 (000C3H/010C3H)的格式
地址:000C3H/010C3H 注
7
6
5
4
3
2
1
0
OCDENSET
0
0
0
0
1
0
OCDERSD
OCDENSET OCDERSD
片上调试运行的控制
0
0
禁止片上调试运行。
0
1
禁止设定。
1
0
允许片上调试运行。
在片上调试安全 ID 验证失败时,擦除闪存的数据。
1
1
允许片上调试运行。
在片上调试安全 ID 验证失败时,不擦除闪存的数据。
注
在引导交换时, 000C3H 被 010C3H 替换,因此必须给 010C3H 设定和 000C3H 相同的值。
注意
只有 bit7 和 bit0 (OCDENSET 和 OCDERSD)才能指定值。
必须给 bit6~ 1写“000010B”。
备注
bit3 ~ 1 的值在使用片上调试功能时被改写,因此在设定后变为不定值。
但是,在设定时必须给 bit3 ~ 1 设定初始值 (0、 1、 0)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
621
R7F0C903-908
22.4
第 22 章 选项字节
选项字节的设定
用户选项字节和片上调试选项字节除了在源程序中记述以外,还能通过链接选项进行设定。此时,即使在
如下的源程序中有记述也优先链接选项的设定。
选项字节设定的软件记述例子如下所示。
OPT
CSEG
OPT_BYTE
DB
36H
; 不使用看门狗定时器的间隔中断。
; 允许看门狗定时器运行。
; 看门狗定时器的窗口打开期间为 50%。
; 看门狗定时器的上溢时间为 29/fIL。
; 在 HALT/STOP 模式中,停止看门狗定时器的运行。
DB
1AH
; VLVDL 选择 1.63V。
; VLVDH 选择上升 1.77V、下降 1.73V。
DB
2DH
; 选择 LV (低电压主)模式作为闪存运行模式。
; 选择中断 & 复位模式作为 LVD 运行模式。
; 选择高速内部振荡器的时钟频率 1MHz。
DB
85H
; 允许片上调试运行,在安全 ID 验证失败时不擦除闪存的数据。
要在自编程过程中使用引导交换功能时,因为 000C0H ~ 000C3H 被 010C0H ~ 010C3H 替换,所以必须按
照以下方式给 010C0H ~ 010C3H 设定和 000C0H ~ 000C3H 相同的值。
OPT2
CSEG
AT
DB
010C0H
36H
; 不使用看门狗定时器的间隔中断。
; 允许看门狗定时器运行。
; 看门狗定时器的窗口打开期间为 50%。
; 看门狗定时器的上溢时间为 29/fIL。
; 在 HALT/STOP 模式中,停止看门狗定时器的运行。
DB
1AH
; VLVDL 选择 1.63V。
; VLVDH 选择上升 1.77V、下降 1.73V。
; 选择中断 & 复位模式作为 LVD 运行模式。
DB
2DH
; 选择 LV (低电压主)模式作为闪存运行模式。
DB
85H
; 允许片上调试运行,在安全 ID 验证失败时不擦除闪存的数据。
; 选择高速内部振荡器的时钟频率 1MHz。
注意
当通过汇编语言指定选项字节时,CSEG 伪指令的重定位属性名必须使用 OPT_BYTE。为了使用引导交换功能而给
010C0H ~ 010C3H 指定选项字节时,必须使用重定位属性 AT 来指定绝对地址。
R01UH0629CJ0120 Rev.1.20
2019.06.28
622
R7F0C903-908
第 23 章 闪存
第 23 章
闪存
RL78 微控制器内置在安装于电路板的状态下可进行编程、擦除和重新编程的闪存。闪存有可执行程序的
“ 代码闪存 ” 和数据保存区的 “ 数据闪存 ”。
FFFFFH
⢯⇀ࣕ㜳ᇺᆎಞ(SFR)
256 ᆍ㢸
FFF00H
FFEFFH
䙐⭞ᇺᆎಞ
32 ᆍ㢸
FFEE0H
FFEDFH
RAM
2Kૂ3Kᆍ㢸
䮒܅॰
ؓ⮏॰
F17FFH
ᮦᦤ䰠ᆎ
2Kᆍ㢸⌞
F1000H
F0FFFH
ؓ⮏॰
F0800H
F07FFH
ᢟኋ⢯⇀ࣕ㜳ᇺᆎಞ(2nd SFR)
2Kᆍ㢸
F0000H
EFFFFH
ؓ⮏॰
ԙ⸷䰠ᆎ
16Њ48Kᆍ㢸
00000H
在 R7F0C903B2、 R7F0C904B2、 R7F0C905B2 产品时,此区域为保留区。
注
闪存的编程方法如下:
能使用闪存编程器或者外部器件 (UART 通信)对代码闪存进行串行编程或者通过自编程改写代码闪存。
•
使用闪存编程器的串行编程 (参照 23.1)
能使用专用闪存编程器进行板上或者板外编程。
•
使用外部器件 (UART 通信)的串行编程 (参照 23.2)
•
能通过和外部器件 (单片机或者 ASIC)的 UART 通信进行板上编程。
自编程 (参照 23.6)
能让用户应用程序利用闪存自编程库进行代码闪存的自改写。
在用户程序执行过程中,能使用数据闪存库对数据闪存进行改写 (后台操作)。有关数据闪存的存取和编
程,请参照 “23.8 数据闪存 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
623
R7F0C903-908
23.1
第 23 章 闪存
使用闪存编程器的串行编程
能使用以下的专用闪存编程器对 RL78 微控制器的内部闪存进行数据编程。
•
PG-FP5、 FL-PR5
•
E1 片上调试仿真器
能使用专用闪存编程器进行板上或者板外编程。
(1)
板上编程
在将 RL78 微控制器安装到目标系统后改写闪存的内容。必须在目标系统上安装连接专用闪存编程器的连
接器。
(2)
板外编程
在将 RL78 微控制器安装到目标系统前使用专用编程适配器 (FA 系列)等进行闪存编程。
备注
FL-PR5 和 FA 系列是 Naito Densei Machida Mfg. Co., Ltd 的产品。
表 23-1
本产品和专用闪存编程器的连线表
引脚号
专用闪存编程器的连接引脚
32 引脚
引脚名
LQFP
(7×7)
TOOL0/P40
1
复位信号
RESET
2
VDD 电压生成 /
电源监视
VDD
8
VSS
7
REGC 注
6
VDD
8
信号名
PG-FP5、
FL-PR5
E1 片上
调试仿真器
输入 / 输出
引脚功能
—
TOOL0
输入 / 输出
发送 / 接收信号
SI/RxD
—
输入 / 输出
发送 / 接收信号
—
RESET
输出
/RESET
—
输出
VDD
输入 / 输出
—
GND
FLMD1
EMVDD
—
注
必须通过电容器 (0.47 ~ 1μF)将 REGC 引脚接地。
备注
在使用闪存编程器进行编程时,此表中未记载的引脚可以开路。
R01UH0629CJ0120 Rev.1.20
2019.06.28
接地
TOOL0 引脚
驱动电源
624
R7F0C903-908
23.1.1
第 23 章 闪存
编程环境
RL78 微控制器闪存的编程环境如下所示。
图 23-1
闪存的编程环境
PG-FP5ȽFL-PR5
E1
RS-232C
VDD
USB
RESET
VSS
щ⭞䰠ᆎ㕌ぁಞ
TOOL0 (щ⭞ঋ㓵 UART)
RL78ᗤಞ
ѱᵰ
需要控制专用闪存编程器的主机。
专用闪存编程器和 RL78 微控制器的接口使用 TOOL0 引脚,通过专用的单线 UART 进行编程和擦除。
23.1.2
通信方式
专用闪存编程器和 RL78 微控制器的通信使用 RL78 微控制器的 TOOL0 引脚,通过专用的单线 UART 进行
串行通信。
传送速率:1M、 500k、 250k、 115.2kbps
图 23-2
PG-FP5ȽFL-PR5
E1
和专用闪存编程器的通信
VDD
VDD
EMVDD
VDD
GND
щ⭞䰠ᆎ㕌ぁಞ
注
VSS/REGC⌞3
RESET⌞1Ƚ
/RESET⌞2
RESET
TOOL0⌞ 1
SI/RxD⌞ 2
TOOL0
RL78ᗤಞ
1. 这是使用 E1 片上调试仿真器的情况。
2. 这是使用 PG-FP5 或者 FL-PR5 的情况。
3. 必须通过电容器 (0.47 ~ 1μF)将 REGC 引脚接地。
R01UH0629CJ0120 Rev.1.20
2019.06.28
625
R7F0C903-908
第 23 章 闪存
专用闪存编程器对 RL78 微控制器生成以下信号。详细内容请参照 PG-FP5、FL-PR5 或者 E1 片上调试仿真
器的手册。
表 23-2
引脚连接一览表
RL78 微控制器
专用闪存编程器
信号名
输入 / 输出
引脚功能
引脚名
VDD
输入 / 输出
VDD 电压生成 / 电压监视
VDD
GND
—
接地
VSS、 REGC 注
TOOL0 引脚驱动电源
VDD
复位信号
RESET
PG-FP5、 FL-PR5
E1 片上调试仿真器
FLMD1
EMVDD
—
/RESET
—
输出
—
RESET
输出
—
TOOL0
输入 / 输出
发送 / 接收信号
SI/RxD
—
输入 / 输出
发送 / 接收信号
TOOL0
必须通过电容器 (0.47 ~ 1μF)将 REGC 引脚接地。
注
23.2
使用外部器件 (内置 UART)的串行编程
能使用 RL78 微控制器和连接 UART 的外部器件 (单片机或者 ASIC)对内部闪存进行数据的板上编程。
有关用户闪存编程器的开发,请参照 RL78 微控制器 (RL78 协议 A)编程器的应用说明 (R01AN0815)。
23.2.1
编程环境
RL78 微控制器闪存的编程环境如下所示。
图 23-3
闪存的编程环境
VDD
VSS
RESET
ཌ䜞ಞԬ
(ঋ⡽ᵰᡌ㘻ASICㅿ)
UART (TOOLTxDȽTOOLRxD)
RL78ᗤಞ
TOOL0
外部器件对 RL78 微控制器进行板上编程和擦除,但是不能进行板外编程。
R01UH0629CJ0120 Rev.1.20
2019.06.28
626
R7F0C903-908
23.2.2
第 23 章 闪存
通信方式
外部器件和 RL78 微控制器的通信使用 RL78 微控制器的 TOOLTxD 引脚和 TOOLRxD 引脚,通过专用的
UART 进行串行通信。
传送速率:1M、 500k、 250k、 115.2kbps
图 23-4
和外部器件的通信
VDD
VDD
VSS/REGC⌞
GND
RESET
RESETOUT
ཌ䜞ಞԬ
(ঋ⡽ᵰᡌ㘻ASICㅿ)
RxD
TOOLTxD
TxD
TOOLRxD
PORT
注
RL78ᗤಞ
TOOL0
必须通过电容器 (0.47 ~ 1μF)将 REGC 引脚接地。
外部器件对 RL78 微控制器生成以下信号。
表 23-3
引脚连接一览表
RL78 微控制器
外部器件
注
信号名
输入 / 输出
引脚功能
引脚名
VDD
输入 / 输出
VDD 电压生成 / 电压监视
VDD
GND
—
接地
VSS、 REGC 注
RESETOUT
输出
复位信号输出
RESET
RxD
输入
接收信号
TOOLTxD
TxD
输出
发送信号
TOOLRxD
PORT
输出
模式信号
TOOL0
必须通过电容器 (0.47 ~ 1μF)将 REGC 引脚接地。
R01UH0629CJ0120 Rev.1.20
2019.06.28
627
R7F0C903-908
23.3
第 23 章 闪存
电路板上的引脚处理
要使用闪存编程器进行板上编程时,必须在目标系统上设置连接专用闪存编程器的连接器,并且在电路板
上设置从通常运行模式到闪存编程模式的切换功能。
如果转移到闪存编程模式,闪存编程时未使用的全部引脚就保持刚复位后的相同状态。因此,如果外部器
件不允许刚复位后的状态,就需要进行引脚处理。
备注
有关闪存编程模式,请参照 “23.4.2 闪存编程模式 ”。
23.3.1
P40/TOOL0 引脚
在闪存编程模式中,必须在外部通过 1kΩ 电阻将此引脚上拉并且连接到专用闪存编程器。
当此引脚用作端口引脚时,必须按照以下方法使用此引脚。
用作输入引脚:在解除外部复位时的 tHD 期间,不能输入低电平。但是,在通过下拉使用此引脚时,使用
的电阻必须至少为 500kΩ。
用作输出引脚:在通过下拉使用此引脚时,使用的电阻必须至少为 500kΩ。
备注 1. tHD:这是在进入闪存编程模式时解除外部复位或者内部复位后保持 TOOL0 引脚低电平的时间。请参照 “27.10 闪
存编程模式的转移时序 ”。
2. 因为 RL78 微控制器和专用闪存编程器的通信使用单线 UART(TOOL0 引脚),所以不使用 SAU 引脚和 IICA 引脚。
23.3.2
RESET 引脚
如果在电路板上将专用闪存编程器和外部器件的复位信号连接到与复位信号生成电路相连的 RESET 引脚,
就会发生信号冲突。为了避免此信号冲突,必须隔离与复位信号生成电路的连接。
在闪存编程模式的期间,如果从用户系统输入复位信号,就不能进行正常的编程,因此除了专用闪存编程
器和外部器件的复位信号以外,不能输入其他复位信号。
图 23-5
信号冲突 (RESET 引脚)
RL78ᗤಞ
䗉ޛᕋ㝐
ؗਭߨシ
䘔щ⭞䰠ᆎ㕌ぁಞⲺᕋ㝐
ެԌಞԬ
䗉࠰ᕋ㝐
൞䰠ᆎ㕌ぁ⁗ᕅѣθഖѰެԌಞԬ䗉࠰Ⲻؗਭૂ
щ⭞䰠ᆎ㕌ぁಞ䘷࠰Ⲻؗਭਇ⭕ߨシθᡶԛᗻ亱
䳊⿱ެԌಞԬⲺؗਭȾ
R01UH0629CJ0120 Rev.1.20
2019.06.28
628
R7F0C903-908
23.3.3
第 23 章 闪存
端口引脚
如果转移到闪存编程模式,闪存编程时未使用的全部引脚就保持刚复位后的相同状态。因此,如果连接各
端口的外部器件不允许刚复位后的端口状态,就需要通过电阻将引脚连接 VDD 或者 VSS 进行引脚处理。
23.3.4
REGC 引脚
和通常运行模式相同,必须通过特性好的电容器 (0.47 ~ 1μF)将 REGC 引脚连接 GND。另外,为了稳
定内部电压,必须使用特性好的电容器。
23.3.5
X1 引脚和 X2 引脚
X1、 X2 的连接方法必须和通常运行模式相同。
备注
在闪存编程模式中,使用高速内部振荡器时钟 (fIH)。
23.3.6
电源
当使用闪存编程器输出的电源时,必须将 VDD 引脚连接闪存编程器的 VDD,并且将 VSS 引脚连接闪存编程
器的 GND。
当使用电路板上的电源时,必须按照通常运行模式进行连接。
但是,在使用闪存编程器进行编程时,即使使用电路板上的电源,也必须将 VDD 引脚和 VSS 引脚分别连接
闪存编程器的 VDD 和 GND,以便通过闪存编程器监视电压。
23.4
23.4.1
串行编程方法
串行编程的步骤
通过串行编程进行代码闪存改写的流程如下所示。
图 23-6
代码闪存的操作步骤
ᔶခ
TOOL0ᕋ㝐ૂRESETᕋ㝐Ⲻ
䖢〱ࡦ䰠ᆎ㕌ぁ⁗ᕅ
ԙ⸷䰠ᆎⲺᬃ֒
㔉ᶕ ?
No
Yes
㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
629
R7F0C903-908
23.4.2
第 23 章 闪存
闪存编程模式
在通过串行编程改写代码闪存的内容时,必须设定为闪存编程模式。要转移到闪存编程模式时,必须按照
以下方法进行。
<使用专用闪存编程器进行串行编程的情况>
将 RL78 微控制器和专用闪存编程器连接。通过和专用闪存编程器的通信,自动转移到闪存编程模式。
<使用外部器件 (UART 通信)进行串行编程的情况>
在将 TOOL0 引脚置为低电平后解除复位 (参照表 23-4),然后按照图 23-7 所示的①~④的步骤转移到闪
存编程模式。详细内容请参照 RL78 微控制器 (RL78 协议 A)编程器的应用说明 (R01AN0815)。
表 23-4
解除复位时的 TOOL0 引脚和运行模式的关系
TOOL0
运行模式
VDD
通常运行模式
0V
闪存编程模式
图 23-7
Ś
闪存编程模式的进入
ś
ŝ
Ŝ
RESET
723μs+tHD
༺⨼ᰬ䰪
䇴ᇐ⁗ᕅⲺ1ᆍ㢸ᮦᦤ
TOOL0
tSU
tSUINIT
① 给 TOOL0 引脚输入低电平。
② 解除外部复位 (在此之前需要解除 POR和 LVD的复位)。
③ 解除 TOOL0 引脚的低电平。
④ 通过 UART 接收来完成波特率的设定。
备注
tSUINIT:在此区间,必须在解除外部复位后的 100ms 之内完成初始设定的通信。
tSU:
这是从将 TOOL0引脚置为低电平到解除外部复位为止的时间。
tHD:
这是在解除外部复位或者内部复位后保持 TOOL0引脚低电平的时间 (闪存固件处理时间除外)。
详细内容请参照 “27.10 闪存编程模式的转移时序 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
630
R7F0C903-908
第 23 章 闪存
闪存编程模式有宽电压模式和全速模式共 2 种编程模式。根据编程时提供给单片机的电源电压值以及进入闪
存编程模式时的用户选项字节的设定信息,决定模式的选择。
在使用专用闪存编程器进行串行编程时,通过 GUI 进行的电压设定自动选择模式。
表 23-5
进入闪存编程模式时的选项字节的设定
电源电压 (VDD)
2.7V ≤ VDD ≤ 5.5V
2.4V ≤ VDD < 2.7V
1.8V ≤ VDD < 2.4V
编程模式和可进行编程、擦除或者校验的电压
闪存运行模式
闪存的改写模式
工作频率
空白状态
全速模式
HS (高速主)模式
1MHz ~ 24MHz
全速模式
LS (低速主)模式
1MHz ~ 8MHz
宽电压模式
LV (低电压主)模式
1MHz ~ 4MHz
宽电压模式
空白状态
全速模式
HS (高速主)模式
1MHz ~ 16MHz
全速模式
LS (低速主)模式
1MHz ~ 8MHz
宽电压模式
LV (低电压主)模式
1MHz ~ 4MHz
宽电压模式
空白状态
宽电压模式
LS (低速主)模式
1MHz ~ 8MHz
宽电压模式
LV (低电压主)模式
1MHz ~ 4MHz
宽电压模式
备注 1. 在同时使用宽电压模式和全速模式的情况下进行编程、擦除或者校验时,没有任何限制事项。
2. 有关通信命令的详细内容,请参照 “23.4.4 通信命令 ”。
23.4.3
通信方式
RL78 微控制器的通信方式如下所示。
表 23-6
Standard 设定注 1
通信方式
单线 UART
Port
UART
Speed 注 2
115200bps、
(使用闪存编程器
250000bps、
或者外部器件)
500000bps、
1Mbps
专用 UART
通信方式
UART
(使用外部器件)
115200bps、
使用的引脚
Frequency
Muitiply Rate
—
—
TOOL0
—
—
TOOLTxD、
TOOLRxD
250000bps、
500000bps、
1Mbps
注
1. 这是与闪存编程器 GUI Standard 设定相关的设定项目。
2. 除了波特率误差以外,信号波形的失真等还会影响 UART 通信,因此必须在评估后使用。
R01UH0629CJ0120 Rev.1.20
2019.06.28
631
R7F0C903-908
23.4.4
第 23 章 闪存
通信命令
RL78 微控制器通过表 23-7 所示的命令进行串行编程。从专用闪存编程器或者外部器件发送到 RL78 微控
制器的信号称为 “ 命令 ”,进行该命令对应的各种功能处理。详细内容请参照 RL78 微控制器 (RL78 协议 A)
编程器的应用说明 (R01AN0815)。
表 23-7
分类
闪存控制命令
命令名称
功能
校验
Verify
将指定闪存区的内容和从编程器发送的数据进行比较。
擦除
Block Erase
擦除指定的闪存区。
空白检查
Block Blank Check
检查指定块的闪存擦除状态。
编程
Programming
将数据写到指定的闪存区注。
信息取得
Silicon Signature
取得 RL78 微控制器的信息 (例如:产品名、闪存结构、用于编程
的固件版本等)。
安全
其他
注
Checksum
取得指定区域的校验和。
Security Set
设定安全信息。
Security Get
取得安全信息。
Security Release
解除禁止编程的设定。
Reset
用于通信的同步检测。
Baud Rate Set
设定选择 UART 时的波特率。
必须确认编程区中还没有进行数据编程。因为在设定禁止块擦除后无法进行擦除,所以在数据没有被擦除时,不能
进行数据编程。
能通过执行 “Silicon Signature” 命令来获取产品信息 (产品名、固件版本等)。
特征数据一览表和特征数据的例子分别如表 23-8 和表 23-9 所示。
表 23-8
特征数据一览表
字段名
内容
发送字节数
器件代码
分配给器件的序列号
3 字节
器件名
器件名 (ASCII 码)
10 字节
代码闪存区的结束地址
3 字节
代码闪存区的结束地址
(从地址的低位开始发送。
例:00000H ~ 0BFFFH (48KB) →FFH、 BFH、 00H)
数据闪存区的结束地址
数据闪存区的结束地址
3 字节
(从地址的低位开始发送。
例:F1000H ~ F17FFH (2KB) →FFH、 17H、 0FH)
固件版本
用于编程的固件版本信息
3 字节
(从版本的高位开始发送。例:Ver.1.23→01H、 02H、 03H)
R01UH0629CJ0120 Rev.1.20
2019.06.28
632
R7F0C903-908
第 23 章 闪存
表 23-9
字段名
特征数据的例子
内容
发送字节数
RL78 协议 A
器件代码
数据 (十六进制)
10
3 字节
00
06
R7F0C908
器件名
52 = “R”
10 字节
37 = “7”
46 = “F”
30 = “0”
43 = “C”
39 = “9”
30 = “0”
38 = “8”
20 = “ ”
20 = “ ”
代码闪存区的结束地址
FF
3 字节
代码闪存区
BF
00000H ~ 0BFFFH (48KB)
00
数据闪存区的结束地址
FF
3 字节
数据闪存区
17
F1000H ~ F17FFH (2KB)
0F
Ver.1.23
固件版本
23.5
01 02 03
3 字节
使用 PG-FP5 时的各命令处理时间 (参考值)
在将 PG-FP5 用作专用闪存编程器时,各命令处理时间 (参考值)如下所示:
表 23-10
使用 PG-FP5 时的各命令处理时间 (参考值)
代码闪存
16K
32K
48K
64K
96K
128K
192K
256K
384K
512K
字节
字节
字节
字节
字节
字节
字节
字节
字节
字节
擦除
1s
1s
1s
1.5s
1.5s
2s
2s
2.5s
3s
4s
编程
1.5s
1.5s
2s
2.5s
3s
3.5s
5s
6s
8.5s
11s
校验
1.5s
1.5s
2s
2s
3s
3.5s
4.5s
5.5s
8s
10.5s
擦除后的编程
1.5s
2s
2.5s
3s
4s
4.5s
6.5s
8s
11s
14.5s
PG-FP5 的命令
备注
命令处理时间 (参考值)是 TYP. 值,条件如下:
Port:
TOOL0 (单线 UART)
Speed:1000000bps
Mode: 全速模式 (闪存运行模式:HS (高速主)模式)
R01UH0629CJ0120 Rev.1.20
2019.06.28
633
R7F0C903-908
23.6
第 23 章 闪存
自编程
RL78 微控制器支持自编程功能,能通过用户程序改写代码闪存。因为此功能可让用户应用程序利用闪存自
编程库来改写写代闪存,所以能在现场进行程序升级等。
注意 1. 为了在自编程过程中禁止中断,必须和通常运行模式相同,在通过 DI 指令将 IE 标志清 “0” 的状态下执行闪存自编
程库。在允许中断的情况下,必须在通过 EI 指令将 IE 标志置 “1” 的状态下将接受中断的中断屏蔽标志清 “0”,然后
执行闪存自编程库。
2. 在自编程过程中,需要使高速内部振荡器振荡。当高速内部振荡器处于停止状态时,必须使高速内部振荡器时钟运
行 (HIOSTOP=0),并且在经过 30μs 后执行闪存自编程库。
备注 1. 有关自编程功能的详细内容,请参照 《RL78 Family Flash Self Programming Library Type01 User’s Manual》
(R01US0050)。
2. 有关自编程的执行处理时间,请参照闪存自编程库工具附属的使用时的注意点。
自编程功能有宽电压模式和全速模式共 2 种闪存编程模式。
必须根据选项字节 000C2H 的 CMODE1 位和 CMODE0 位设定的闪存运行模式进行以下任意模式的设定。
当设定为 HS (高速主)模式时,必须设定全速模式;当设定为 LS (低速主)模式或者 LV (低电压主)
模式时,必须设定宽电压模式。
在执行本公司提供的闪存自编程库的 “FSL_Init” 函数时,如果参数 “fsl_flash_voltage_u08” 为 “00H”,就设
定为全速模式。否则,就设定为宽电压模式。
备注
在同时使用宽电压模式和全速模式的情况下进行编程、擦除或者校验时,没有任何限制事项。
R01UH0629CJ0120 Rev.1.20
2019.06.28
634
R7F0C903-908
23.6.1
第 23 章 闪存
自编程的步骤
利用闪存自编程库改写闪存的流程如下所示。
图 23-8
自编程流程 (改写闪存)
ԙ⸷䰠ᆎⲺᔶခ
䰠ᆎ⧥ູⲺࡓခौ
䇴ᇐ䰠ᆎኅ㭳ネਙ
ᬜ䲚
㕌ぁ
ṗ僂
• ⾷↘ᆎ䰠ᆎ
• ⾷↘䖢〱ࡦSTOP⁗ᕅ
• ⾷↘↘ڒᰬ䫕
ᗍ䰠ᆎؗᚥ
䇴ᇐ䰠ᆎؗᚥ
ީ䰣䰠ᆎ⧥ູ
㔉ᶕ
R01UH0629CJ0120 Rev.1.20
2019.06.28
635
R7F0C903-908
23.6.2
第 23 章 闪存
引导交换功能
在通过自编程改写引导区的过程中,如果因瞬间断电等导致改写失败,引导区的数据就会遭到破坏,以致
复位时无法重新启动程序并且无法重新编程。
为了避免此问题,提供了引导交换功能。
在擦除引导区的引导簇 0 注前,能事先通过自编程对引导簇 1 进行新的引导程序的编程。如果对引导簇 1 的
编程正常结束,就能通过 RL78 微控制器内部固件的设定信息功能进行引导簇 1 和引导簇 0 的交换,将引导簇 1 设
定为引导区。此后,对原区域的引导簇 0 进行擦除和编程。
从而,即使在改写区域的过程中发生瞬间断电,也能在下一次复位启动时从交换对象的引导簇 1 进行引导,
正常启动程序。
引导簇是 4K 字节的区域,通过引导交换功能进行引导簇 0 和引导簇 1 的置换。
注
图 23-9
引导交换功能
XXXXXH
ሯᕋሲ㈽1
䘑㺂㠠㕌ぁȾ
⭞ᡭぁᓅ
⭞ᡭぁᓅ
䙐䗽രԬᢝ㺂
ᕋሲӚᦘȾ
⭞ᡭぁᓅ
ሯᕋሲ㈽0
䘑㺂㠠㕌ぁȾ
⭞ᡭぁᓅ
02000H
01000H
00000H
⭞ᡭぁᓅ
᯦Ⲻᕋሲぁᓅ
(ᕋሲ㈽1)
ᕋሲぁᓅ
(ᕋሲ㈽0)
᯦Ⲻ⭞ᡭぁᓅ
(ᕋሲ㈽0)
ᕋሲぁᓅ
(ᕋሲ㈽0)
ᕋሲぁᓅ
(ᕋሲ㈽0)
᯦Ⲻᕋሲぁᓅ
(ᕋሲ㈽1)
᯦Ⲻᕋሲぁᓅ
(ᕋሲ㈽1)
ᕋሲ
ᕋሲ
ᕋሲ
ᕋሲ
在此图的例子中,
引导簇 0:引导交换前的引导区
引导簇 1:引导交换后的引导区
R01UH0629CJ0120 Rev.1.20
2019.06.28
636
R7F0C903-908
第 23 章 闪存
图 23-10
引导交换的执行例子
ඍਭ
ඍ4 ᬜ䲚
ᕋሲ㈽1
ᕋሲ㈽0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
⭞ᡭぁᓅ
⭞ᡭぁᓅ
⭞ᡭぁᓅ
⭞ᡭぁᓅ
ᕋሲぁᓅ
01000H
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
00000H
ඍ5 ᬜ䲚
7
6
5
4
3
2
1
0
⭞ᡭぁᓅ
⭞ᡭぁᓅ
⭞ᡭぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ඍ6 ᬜ䲚
7
6
5
4
3
2
1
0
⭞ᡭぁᓅ
⭞ᡭぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ඍ7 ᬜ䲚
7
6
5
4
3
2
1
0
⭞ᡭぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
Ԅᕋሲ㈽0䘑㺂ᕋሲȾ
ඍ4Њ7 㕌ぁ
7
6
5
4
3
2
1
0
ᕋሲӚᦘ
᯦Ⲻᕋሲぁᓅ
7
6
5
4
3
2
1
0
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ඍ4 ᬜ䲚
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
01000H
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
00000H
7
6
5
4
3
2
1
0
ᕋሲぁᓅ
ᕋሲぁᓅ
ᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
ඍ5 ᬜ䲚
7
6
5
4
3
2
1
0
ᕋሲぁᓅ
ᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
Ԅᕋሲ㈽1䘑㺂ᕋሲȾ
ඍ6 ᬜ䲚
7
6
5
4
3
2
1
0
ᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
R01UH0629CJ0120 Rev.1.20
2019.06.28
ඍ7 ᬜ䲚
7
6
5
4
3
2
1
0
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
ඍ4Њ7 㕌ぁ
7
6
5
4
3
2
1
0
᯦Ⲻ⭞ᡭぁᓅ
᯦Ⲻ⭞ᡭぁᓅ
᯦Ⲻ⭞ᡭぁᓅ
᯦Ⲻ⭞ᡭぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
᯦Ⲻᕋሲぁᓅ
01000H
00000H
637
R7F0C903-908
23.6.3
第 23 章 闪存
闪存屏蔽窗口功能
闪存屏蔽窗口功能作为自编程时的一个安全功能,只在自编程时禁止对指定的窗口范围以外的区域进行编
程和擦除。
能通过指定起始块和结束块来设定窗口范围。能在串行编程和自编程时设定或者更改窗口范围的指定。
在自编程时,禁止对窗口范围以外的区域进行编程和擦除。但是,在串行编程时,也能对指定窗口范围以
外的区域进行编程和擦除。
图 23-11 闪存屏蔽窗口的设定例子
(对象设备:R7F0C908,起始块:04H,结束块:06H)
0BFFFH
㜳⭞Ⲻ㕌ぁᯯ⌋
ඍ2FH
ඍ2EH
䰠ᆎኅ㭳㤹പ
01C00H
01BFFH
ネਙ㤹പ
ȖφѨ㺂㕌ぁ
hφ㠠㕌ぁ
ඍ06H
(㔉ᶕඍ)
ȖφѨ㺂㕌ぁ
Ȗφ㠠㕌ぁ
ඍ05H
䰠ᆎ॰
01000H
00FFFH
ඍ04H
(䎭ခඍ)
ඍ03H
ඍ02H
ȖφѨ㺂㕌ぁ
hφ㠠㕌ぁ
䰠ᆎኅ㭳㤹പ
ඍ01H
00000H
ඍ00H
注意 1. 如果引导簇 0 的禁止改写区和闪存屏蔽窗口范围重叠,就优先禁止改写引导簇 0。
2. 只能对代码闪存设定闪存屏蔽窗口 (不支持数据闪存)。
表 23-11
编程条件
自编程
串行编程
闪存屏蔽窗口功能的设定 / 更改方法和命令的关系
窗口范围的设定 / 更改方法
执行的命令
块擦除
通过闪存自编程库指定窗口的 只能擦除窗口范围内的块。
只能对窗口范围以内的区域进
起始块和结束块。
行编程。
通过专用闪存编程器的 GUI 等 也能擦除窗口范围以外的块。 也能对窗口范围以外的区域进
指定窗口的起始块和结束块。
备注
编程
行编程。
要在串行编程过程中禁止编程和擦除时,请参照 “23.7 安全设定 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
638
R7F0C903-908
23.7
第 23 章 闪存
安全设定
RL78 微控制器支持安全功能,此安全功能禁止改写代码闪存中的用户程序,能防止他人更改程序。
能通过使用 Security Set 命令进行以下的操作。
•
禁止块擦除
在串行编程时,禁止执行代码闪存中的块擦除命令。但是,在自编程时能进行块擦除。
•
禁止编程
在串行编程时,禁止对代码闪存中的全部块执行编程命令。但是,在自编程时能进行编程。
在设定禁止编程后, Security Release 命令的解除在复位后有效。
•
禁止改写引导簇 0
禁止对代码闪存中的引导簇 0 (00000H~ 00FFFH)执行块擦除命令和编程命令。
出厂时的初始状态为允许块擦除、编程以及改写引导簇 0。能在串行编程和自编程时进行安全功能的设定,
并且能同时组合使用各种安全功能的设定。
RL78 微控制器的安全功能有效和擦除、编程命令的关系如表 23-12 所示。
注意
闪存编程器的安全功能不支持自编程。
备注
要在自编程过程中禁止编程和擦除时,使用闪存屏蔽窗口功能 (详细内容请参照 23.6.3)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
639
R7F0C903-908
第 23 章 闪存
表 23-12
(1)
安全功能有效和命令的关系
串行编程
执行的命令
有效的安全
块擦除
编程
禁止块擦除。
不能进行块擦除。
能进行编程注。
禁止编程。
能进行块擦除。
不能进行编程。
禁止改写引导簇 0。
不能擦除引导簇 0。
不能进行引导簇 0 的编程。
注
必须确认编程区中还没有进行数据编程。因为在设定禁止块擦除后无法进行擦除,所以在数据没有被擦除时,不能
进行数据编程。
(2)
自编程
执行的命令
有效的安全
禁止块擦除。
块擦除
编程
能进行块擦除。
能进行编程。
不能擦除引导簇 0。
不能进行引导簇 0 的编程。
禁止编程。
禁止改写引导簇 0。
备注
要在自编程过程中禁止编程和擦除时,使用闪存屏蔽窗口功能 (详细内容请参照 23.6.3)。
表 23-13
(1)
各编程模式中的安全设定方法
串行编程
安全
禁止块擦除。
安全设定方法
如何使安全设定无效
通过专用闪存编程器的GUI等进行设定。 在设定后无法置为无效。
禁止编程。
通过专用闪存编程器的GUI等进行设定。
禁止改写引导簇 0。
在设定后无法置为无效。
注意
只有在没有设定为 “ 禁止块擦除 ” 或者 “ 禁止改写引导簇 0” 并且代码闪存区和数据闪存区为空白时才能解除 “ 禁止
编程 ” 的设定。
(2)
自编程
安全
禁止块擦除。
禁止编程。
安全设定方法
通过闪存自编程库进行设定。
如何使安全设定无效
在设定后无法置为无效。
在自编程时无法置为无效(在串行编程
时通过专用闪存编程器的 GUI 等进行设
定)。
禁止改写引导簇 0。
R01UH0629CJ0120 Rev.1.20
2019.06.28
在设定后无法置为无效。
640
R7F0C903-908
23.8
第 23 章 闪存
数据闪存
23.8.1
数据闪存的概要
数据闪存的概要如下:
能使用数据闪存库,通过用户程序改写数据闪存。详细内容请参照 《RL78 Family Data Flash Library
•
User’s Manual》。
•
能通过专用闪存编程器或者外部器件的串行编程改写数据闪存。
•
以 1K 字节为 1 块对数据闪存进行块擦除。
•
只能以 8 位为单位存取数据闪存。
•
能通过 CPU 指令直接读数据闪存。
•
在改写数据闪存的过程中,能从代码闪存执行指令 (支持后台操作 (BGO))。
•
数据闪存是数据专用区域,因此禁止从数据闪存执行指令。
•
在改写代码闪存的过程中 (自编程的情况),禁止存取数据闪存。
•
在改写数据闪存的过程中,禁止操作 DFLCTL寄存器。
•
在改写数据闪存的过程中,禁止转移到STOP 模式。
注意 1. 在解除复位后,数据闪存处于停止状态。在使用数据闪存时,必须设定数据闪存控制寄存器 (DFLCTL)。
2. 在改写数据闪存的过程中,需要使高速内部振荡器振荡。当高速内部振荡器处于停止状态时,必须使高速内部振荡
器时钟运行 (HIOSTOP=0),并且在经过 30μs 后执行数据闪存库。
备注
有关通过用户程序改写代码闪存的详细内容,请参照 “23.6 自编程 ”。
23.8.2
控制数据闪存的寄存器
23.8.2.1
数据闪存控制寄存器 (DFLCTL)
此寄存器设定允许或者禁止存取数据闪存。
通过 1 位或者 8 位存储器操作指令设定 DFLCTL 寄存器。
在产生复位信号后,此寄存器的值变为 “00H”。
图 23-12
地址:F0090H
复位后:00H
数据闪存控制寄存器的格式 (DFLCTL)
R/W
符号
7
6
5
4
3
2
1
0
DFLCTL
0
0
0
0
0
0
0
DFLEN
DFLEN
注意
数据闪存的存取控制
0
禁止存取数据闪存。
1
允许存取数据闪存。
在改写数据闪存的过程中,禁止操作 DFLCTL 寄存器。
R01UH0629CJ0120 Rev.1.20
2019.06.28
641
R7F0C903-908
23.8.3
第 23 章 闪存
数据闪存的存取步骤
在解除复位后,数据闪存处于停止状态。要存取数据闪存时,必须按照以下步骤进行初始设定。
① 将数据闪存控制寄存器 (DFLCTL)的 bit0 (DFLEN)置 “1”。
② 通过软件定时器等来等待准备时间。
准备时间因主时钟的各闪存运行模式而不同。
<各闪存运行模式的准备时间>
•
HS (高速主)模式:
5μs
•
•
LS (低速主)模式: 720ns
LV (低电压主)模式: 10μs
③ 在等待准备时间后,能存取数据闪存。
注意 1. 在准备时间内,禁止存取数据闪存。
2. 禁止在准备时间内转移到 STOP 模式。要在准备时间内转移到 STOP 模式时,必须在将 DFLEN 位置 “0” 后执行
STOP 指令。
3. 在改写数据闪存的过程中,需要使高速内部振荡器振荡。当高速内部振荡器处于停止状态时,必须使高速内部振荡
器时钟运行 (HIOSTOP=0),并且在经过 30μs 后执行数据闪存库。
在初始设定后,能通过 CPU 指令读数据闪存,或者通过数据闪存库读或者改写数据闪存。
但是,如果在存取数据闪存时 DMA 控制器运行,就必须按照以下的任意一个步骤进行处理:
(A) 保留或者强制结束 DMA 传送。
在读数据闪存前,必须保留正在使用的全部通道的 DMA 传送。但是,必须在将 DWAITn 位置 “1” 后至
少间隔 3 个时钟 (fCLK),然后读数据闪存。在读数据闪存后,必须将 DWAITn 位置 “0”,解除传送的
保留。
或者,在读数据闪存前,必须按照 “14.5.5 通过软件强制结束 ” 的步骤强制结束 DMA 传送,在读数据
闪存后重新开始 DMA传送。
(B) 使用库进行数据闪存的存取。
必须使用最新的数据闪存库进行数据闪存的存取。
(C) 插入 NOP。
必须在数据闪存的读指令之前插入 NOP 指令。
<例>
MOVW
NOP
HL, !addr16
; 读 RAM。
; 在数据闪存的读指令之前插入 NOP 指令。
MOV
A, [DE]
; 读数据闪存。
但是,当使用 C 语言等高级语言时,编译程序可能对 1 个代码生成 2 条指令。此时,因为不在数据闪存的
读指令之前插入 NOP 指令,所以必须通过 (A) 或者 (B) 读数据闪存。
备注 1. n:DMA 通道号 (n=0、 1)
2. fCLK:CPU/ 外围硬件的时钟频率
R01UH0629CJ0120 Rev.1.20
2019.06.28
642
R7F0C903-908
第 24 章 片上调试功能
第 24 章
24.1
片上调试功能
和 E1 片上调试仿真器的连接
当 RL78 微控制器通过对应片上调试的 E1 片上调试仿真器与主机进行通信时,使用 VDD、RESET、TOOL0、
VSS 引脚。通过使用 TOOL0 引脚的单线 UART 进行串行通信。
注意
RL78 微控制器内置用于开发和评估的片上调试功能。如果使用片上调试功能,就可能会超过闪存的保证改写次数而无
法保证产品的可靠性,因此批量生产的产品不能使用片上调试功能。对于使用片上调试功能的产品,不作为投诉受
理对象。
图 24-1
和 E1 片上调试仿真器的连接例子
E1ⴤḽ䘔ಞ
RL78ᗤಞ
VDD
VDD
VDD
VDD
GND
GND
VSS
VDD
GND
1k
TOOL0
TOOL0
Reset_out
RESET
VDD
Reset_out
Reset_in
注
10k
1k
⌞2
གྷփ⭫䐥
གྷփؗਭ
⌞1
1. 在串行编程时,虚线部分不需要连接。
2. 如果目标系统的复位电路没有缓冲器而只通过电阻和电容器生成复位信号,就不需要此上拉电阻。
注意
这是假设复位信号的输出为 N 沟道漏极开路缓冲器 (输出电阻不大于 100Ω)的电路例子。
R01UH0629CJ0120 Rev.1.20
2019.06.28
643
R7F0C903-908
24.2
第 24 章 片上调试功能
片上调试安全 ID
为了防止他人读取存储器的内容, RL78 微控制器在闪存的 000C3H 中提供了片上调试运行控制位 (参照
“ 第 22 章 选项字节 ”),并且在 000C4H ~ 000CDH 中提供了片上调试安全 ID 设定区。
在自编程时使用引导交换功能的情况下,因为 000C3H 和 000C4H ~ 000CDH 分别被 010C3H 和 010C4H ~
010CDH 替换,所以必须事先给 010C3H 和 010C4H ~ 010CDH 设定相同的值。
表 24-1
片上调试安全 ID 码
地址
000C4H ~ 000CDH
片上调试安全 ID
任意 10 字节的 ID
码注
010C4H ~ 010CDH
不能设定 “FFFFFFFFFFFFFFFFFFFFH”。
注
24.3
用户资源的确保
为了实现 RL78 微控制器与 E1 片上调试仿真器的通信或者实现各种调试功能,需要事先确保存储空间。当
使用本公司的汇编程序和编译程序时,也能通过链接选项进行设定。
(1)
存储空间的确保
图 24-2 的灰色部分表示的区域保存用于调试的监控程序,是不能保存用户程序或者数据的空间。要使用片上
调试功能时,需要确保不使用此空间的区域,而且不能在用户程序中改写此空间。
R01UH0629CJ0120 Rev.1.20
2019.06.28
644
R7F0C903-908
第 24 章 片上调试功能
图 24-2
保存调试监控程序的存储空间
ԙ⸷䰠ᆎ
䜞RAM
ֵ⭞⾷↘॰
SFR॰
⌞1
(512ᆍ㢸ᡌ㘻
256ᆍ㢸⌞2)
⭞ӄ䈹䈋ⲺḾ॰
(4ᆍ㢸)⌞4
䜞RAM॰
䮒܅॰
ԙ⸷
䰠ᆎ॰
φ⭞ӄ䈹䈋Ⲻ॰ต
01000H
000D8H
000CEH
000C4H
䈹䈋ⴇ॰
(10ᆍ㢸)
ᆿޞID॰
(10ᆍ㢸)
⡽р䈹䈋䘿亯ᆍ㢸॰
(1ᆍ㢸)
000C3H
00002H
䈹䈋ⴇ॰
(2ᆍ㢸)
00000H
注
⌞3
1. 如下所示,地址因产品而不同。
产品名 (代码闪存容量)
注 1 的地址
R7F0C903、 R7F0C906
03FFFH
R7F0C904、 R7F0C907
07FFFH
R7F0C905、 R7F0C908
0BFFFH
2. 在不使用实时 RAM 监控 (RRM)功能和动态存储器修改 (DMM)功能时,为 256 字节。
3. 在调试时,复位向量被改写为监控程序的分配地址。
4. 此区域分配在堆栈区之后,因此用于调试的堆栈区地址随着堆栈的增减而变。即,对于使用的堆栈区,额外占用 4
字节。在自编程时,额外占用 12 字节。
R01UH0629CJ0120 Rev.1.20
2019.06.28
645
R7F0C903-908
第 25 章 十进制校正 (BCD)电路
第 25 章
25.1
十进制校正 (BCD)电路
十进制校正电路的功能
能以 BCD 码 (二 - 十进制)计算 BCD 码 (二 - 十进制)和 BCD 码 (二 - 十进制)相加减的结果。
在执行以 A 寄存器为操作数的加减运算指令后,通过加减 BCD 校正结果寄存器 (BCDADJ)的值,计算
十进制的校正运算结果。
25.2
十进制校正电路使用的寄存器
十进制校正电路使用以下寄存器:
•
BCD 校正结果寄存器 (BCDADJ)
25.2.1
BCD 校正结果寄存器 (BCDADJ)
通过以 A 寄存器为操作数的加减运算指令,将用于计算 BCD 码加减运算结果的校正值保存到 BCDADJ 寄
存器。
BCDADJ 寄存器的读取值因读时的 A 寄存器、 CY 标志和 AC 标志的值而变。
通过 8 位存储器操作指令读 BCDADJ 寄存器。
在产生复位信号后,此寄存器的值变为不定值。
图 25-1
地址:F00FEH
符号
复位后:不定值
7
6
BCD 校正结果寄存器 (BCDADJ)的格式
R
5
4
3
2
1
0
BCDADJ
R01UH0629CJ0120 Rev.1.20
2019.06.28
646
R7F0C903-908
25.3
第 25 章 十进制校正 (BCD)电路
十进制校正电路的运行
十进制校正电路的基本运行如下所示。
(1)
加法
以 BCD 码值计算 BCD 码值加上 BCD 码值的结果
① 将要相加的 BCD 码值 (被加数)保存到 A 寄存器。
② 以二进制将 A 寄存器的值和第 2 个操作数的值 (另一个要相加的 BCD 码值,加数)相加,二进制的运
算结果保存在 A 寄存器,校正值保存在 BCD 校正结果寄存器 (BCDADJ)。
③ 以二进制将 A 寄存器的值 (二进制的加法运算结果)和 BCDADJ寄存器的值 (校正值)相加进行十进
制校正运算,校正结果保存在 A 寄存器和 CY 标志。
注意
BCDADJ 寄存器的读取值因读时的 A 寄存器、 CY 标志和 AC 标志的值而变。因此,必须在②的指令后不执行其他
指令而执行③的指令。要在允许中断的状态下进行 BCD 校正时,需要在中断函数中进行 A 寄存器的压栈和退栈。
通过 RETI 指令恢复 PSW (CY 标志、 AC 标志)。
例子如下所示。
例1
99+89=188
BCDADJ
A 寄存器
CY 标志
AC 标志
; ①
99H
—
—
—
指令
寄存器
MOV
A,
#99H
ADD
A,
#89H
; ②
22H
1
1
66H
ADD
A,
!BCDADJ
; ③
88H
1
0
—
A 寄存器
CY 标志
AC 标志
; ①
85H
—
—
—
例2
85+15=100
指令
BCDADJ
寄存器
MOV
A,
#85H
ADD
A,
#15H
; ②
9AH
0
0
66H
ADD
A,
!BCDADJ
; ③
00H
1
1
—
A 寄存器
CY 标志
AC 标志
; ①
80H
—
—
—
例3
80+80=160
指令
BCDADJ
寄存器
MOV
A,
#80H
ADD
A,
#80H
; ②
00H
1
0
60H
ADD
A,
!BCDADJ
; ③
60H
1
0
—
R01UH0629CJ0120 Rev.1.20
2019.06.28
647
R7F0C903-908
(2)
减法
第 25 章 十进制校正 (BCD)电路
以 BCD 码值计算 BCD 码值减去 BCD 码值的结果
① 将要减去的BCD 码值 (被减数)保存到 A 寄存器。
② 以二进制将 A 寄存器的值减去第 2 个操作数的值 (要减去的 BCD 码值,减数),二进制的运算结果保
存在 A 寄存器,校正值保存在 BCD 校正结果寄存器 (BCDADJ)。
③ 以二进制将 A 寄存器的值 (二进制的减法运算结果)减去 BCDADJ 寄存器的值 (校正值)进行十进制
校正运算,校正结果保存在 A 寄存器和 CY 标志。
BCDADJ 寄存器的读取值因读时的 A 寄存器、 CY 标志和 AC 标志的值而变。因此,必须在②的指令后不执行其他
注意
指令而执行③的指令。要在允许中断的状态下进行 BCD 校正时,需要在中断函数中进行 A 寄存器的压栈和退栈。
通过 RETI 指令恢复 PSW (CY 标志、 AC 标志)。
例子如下所示。
91–52=39
例
指令
BCDADJ
A 寄存器
CY 标志
AC 标志
—
—
—
寄存器
MOV
A,
#91H
; ①
91H
SUB
A,
#52H
; ②
3FH
0
1
06H
SUB
A,
!BCDADJ
; ③
39H
0
0
—
R01UH0629CJ0120 Rev.1.20
2019.06.28
648
R7F0C903-908
第 26 章 指令集的概要
第 26 章
指令集的概要
RL78 微控制器的指令集表示在一览表中。有关各指令的详细动作和机器码(指令码),请参照《RL78 Family
User’s Manual Software》(R01US0015E)。
26.1
凡例
26.1.1
操作数的表现形式和记述方法
根据指令操作数的表现形式所对应的记述方法,在各指令的操作数栏中记述了操作数 (详细内容请参照汇
编程序规格)。在记述方法中存在多个内容时,选择其中一个。大写字母以及 #、!、!!、 $、 $!、[ ] 和 ES: 的符
号为关键字,应按照原样记述。符号的说明如下:
• #:
指定立即数。
• !:
指定 16 位绝对地址。
• !!:
指定 20 位绝对地址。
• $:
指定 8 位相对地址。
• $!:
指定 16 位相对地址。
• [ ]:
指定间接地址。
• ES:: 指定扩展地址。
对于立即数,记述适当的数值或者标号。在使用标号时,必须记述 #、 !、 !!、 $、 $!、 [ ] 和 ES: 的符号。
对于操作数的寄存器记述形式 r 和 rp,能使用功能名 (X、 A、 C 等)或者绝对名 (表 26-1 中括号内的名
称,如 R0、 R1、 R2 等)进行记述。
表 26-1
操作数的表现形式和记述方法
表现形式
r
记述方法
X(R0)、 A(R1)、 C(R2)、 B(R3)、 E(R4)、 D(R5)、 L(R6)、 H(R7)
rp
AX(RP0)、 BC(RP1)、 DE(RP2)、 HL(RP3)
sfr
特殊功能寄存器的符号 (SFR 符号) FFF00H ~ FFFFFH
sfrp
特殊功能寄存器的符号 (可进行 16 位操作的 SFR 符号,只限于偶数地址注) FFF00H ~ FFFFFH
saddr
FFE20H ~ FFF1FH
立即数或者标号
saddrp
FFE20H ~ FFF1FH
立即数或者标号 (只限于偶数地址注)
addr20
00000H ~ FFFFFH
立即数或者标号
addr16
0000H ~ FFFFH
立即数或者标号 (在 16 位数据时,只限于偶数地址注)
addr5
0080H ~ 00BFH
立即数或者标号 (只限于偶数地址注)
word
16 位立即数或者标号
byte
8 位立即数或者标号
bit
3 位立即数或者标号
RBn
RB0 ~ RB3
注
当指定奇数地址时, bit0 为 “0”。
备注
能用符号将特殊功能寄存器记述为操作数 sfr。有关特殊功能寄存器的符号,请参照 “ 表 3-5 SFR 一览表 ”。
能用符号将扩展特殊功能寄存器记述为操作数!addr16。有关扩展特殊功能寄存器的符号,请参照“表3-6 扩展SFR
(2nd SFR)一览表 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
649
R7F0C903-908
26.1.2
第 26 章 指令集的概要
操作栏的说明
在各指令的操作栏中,用以下符号表示指令执行时的动作。
表 26-2
操作栏的符号
符号
功能
A
A 寄存器:8 位累加器
X
X 寄存器
B
B 寄存器
C
C 寄存器
D
D 寄存器
E
E 寄存器
H
H 寄存器
L
L 寄存器
ES
ES 寄存器
CS
CS 寄存器
AX
AX 寄存器对:16 位累加器
BC
BC 寄存器对
DE
DE 寄存器对
HL
HL 寄存器对
PC
程序计数器
SP
堆栈指针
PSW
程序状态字
CY
进位标志
AC
辅助进位标志
Z
零标志
RBS
寄存器组选择标志
IE
中断请求允许标志
()
() 内的地址或者寄存器的内容所示的存储器内容
XH、 XL
16 位寄存器:XH= 高 8 位、 XL= 低 8 位
XS、 XH、 XL
20 位寄存器:XS (bit19 ~ 16)、 XH (bit15 ~ 8)、 XL (bit7 ~ 0)
∧
逻辑与 (AND)
∨
逻辑或者 (OR)
∨
异或 (exclusive OR)
—
数据取反
addr5
16 位立即数 (只限于偶数地址 0080H ~ 00BFH)
addr16
16 位立即数
addr20
20 位立即数
jdisp8
带符号的 8 位数据 (位移量)
jdisp16
带符号的 16 位数据 (位移量)
R01UH0629CJ0120 Rev.1.20
2019.06.28
650
R7F0C903-908
26.1.3
第 26 章 指令集的概要
标志栏的说明
在各指令的标志栏中,用以下符号表示指令执行时的标志变化。
表 26-3
标志栏的符号
符号
标志的变化
(空白)
0
无变化。
1
置 “1”。
×
根据结果置位或者复位。
R
恢复以前保存的值。
26.1.4
清 “0”。
PREFIX 指令
ES: 所示的指令以 PREFIX 指令码为前缀,将能存取的数据区从 F0000H ~ FFFFFH 的 64K 字节空间扩展为
附加 ES 寄存器值的 00000H ~ FFFFFH 的 1M 字节空间。将 PREFIX 指令码置于对象指令的前头,只有紧接在
PREFIX 指令码后的 1 条指令作为附加了 ES 寄存器值的地址进行执行。
在 PREFIX 指令码和紧随其后的 1 条指令之间,不接受中断和 DMA 传送。
表 26-4
指令
PREFIX 指令码的使用例子
指令码
1
2
3
4
MOV !addr16, #byte
CFH
MOV ES:!addr16, #byte
11H
CFH
MOV A, [HL]
8BH
—
—
—
—
MOV A, ES:[HL]
11H
8BH
—
—
—
注意
!addr16
#byte
5
!addr16
—
#byte
在执行 PREFIX 指令前,必须事先通过 MOV ES, A 等设定 ES 寄存器的值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
651
R7F0C903-908
26.2
第 26 章 指令集的概要
操作一览表
表 26-5
指
令
群
操作一览表 (1/17)
时钟
助记符
字节
标志
注1
注2
操作
r, #byte
2
1
—
r←byte
位
PSW, #byte
3
3
—
PSW←byte
数
CS, #byte
3
1
—
CS←byte
据
ES, #byte
2
1
—
ES←byte
!addr16, #byte
4
1
—
(addr16)←byte
ES:!addr16, #byte
5
2
—
(ES, addr16)←byte
saddr, #byte
3
1
—
(saddr)←byte
sfr, #byte
3
1
—
sfr←byte
[DE+byte], #byte
3
1
—
(DE+byte)←byte
ES:[DE+byte], #byte
4
2
—
((ES, DE)+byte)←byte
[HL+byte], #byte
3
1
—
(HL+byte)←byte
ES:[HL+byte], #byte
4
2
—
((ES, HL)+byte)←byte
[SP+byte], #byte
3
1
—
(SP+byte)←byte
word[B], #byte
4
1
—
(B+word)←byte
ES:word[B], #byte
5
2
—
((ES, B)+word)←byte
word[C], #byte
4
1
—
(C+word)←byte
ES:word[C], #byte
5
2
—
((ES, C)+word)←byte
word[BC], #byte
4
1
—
(BC+word)←byte
ES:word[BC], #byte
5
2
—
((ES, BC)+word)←byte
8
MOV
操作数
传
送
注
A, r
注3
1
1
—
A←r
r, A
注3
1
1
—
r←A
A, PSW
2
1
—
A←PSW
PSW, A
2
3
—
PSW←A
A, CS
2
1
—
A←CS
CS, A
2
1
—
CS←A
A, ES
2
1
—
A←ES
ES, A
2
1
—
ES←A
A, !addr16
3
1
4
A←(addr16)
A, ES:!addr16
4
2
5
A←(ES, addr16)
!addr16, A
3
1
—
(addr16)←A
ES:!addr16, A
4
2
—
(ES, addr16)←A
A, saddr
2
1
—
A←(saddr)
saddr, A
2
1
—
(saddr)←A
Z
AC
CY
×
×
×
×
×
×
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
652
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (2/17)
时钟
助记符
字节
标志
注1
注2
操作
A, sfr
2
1
—
A←sfr
位
sfr, A
2
1
—
sfr←A
数
A, [DE]
1
1
4
A←(DE)
据
[DE], A
1
1
—
(DE)←A
A, ES:[DE]
2
2
5
A←(ES, DE)
ES:[DE], A
2
2
—
(ES, DE)←A
A, [HL]
1
1
4
A←(HL)
[HL], A
1
1
—
(HL)←A
A, ES:[HL]
2
2
5
A←(ES, HL)
ES:[HL], A
2
2
—
(ES, HL)←A
A, [DE+byte]
2
1
4
A←(DE + byte)
[DE+byte], A
2
1
—
(DE+byte)←A
A, ES:[DE+byte]
3
2
5
A←((ES, DE)+byte)
ES:[DE+byte], A
3
2
—
((ES, DE)+byte)←A
A, [HL+byte]
2
1
4
A←(HL+byte)
[HL+byte], A
2
1
—
(HL+byte)←A
A, ES:[HL+byte]
3
2
5
A←((ES, HL)+byte)
ES:[HL+byte], A
3
2
—
((ES, HL)+byte)←A
A, [SP+byte]
2
1
—
A←(SP+byte)
[SP+byte], A
2
1
—
(SP+byte)←A
A, word[B]
3
1
4
A←(B+word)
word[B], A
3
1
—
(B+word)←A
A, ES:word[B]
4
2
5
A←((ES, B)+word)
ES:word[B], A
4
2
—
((ES, B)+word)←A
A, word[C]
3
1
4
A←(C+word)
word[C], A
3
1
—
(C+word)←A
A, ES:word[C]
4
2
5
A←((ES, C)+word)
ES:word[C], A
4
2
—
((ES, C)+word)←A
A, word[BC]
3
1
4
A←(BC+word)
word[BC], A
3
1
—
(BC+word)←A
A, ES:word[BC]
4
2
5
A←((ES, BC)+word)
ES:word[BC], A
4
2
—
((ES, BC)+word)←A
8
传
送
注
MOV
操作数
Z
AC
CY
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
653
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (3/17)
时钟
助记符
字节
标志
注1
注2
操作
A, [HL+B]
2
1
4
A←(HL+B)
位
[HL+B], A
2
1
—
(HL+B)←A
数
A, ES:[HL+B]
3
2
5
A←((ES, HL)+B)
据
ES:[HL+B], A
3
2
—
((ES, HL)+B)←A
A, [HL+C]
2
1
4
A←(HL+C)
[HL+C], A
2
1
—
(HL+C)←A
A, ES:[HL+C]
3
2
5
A←((ES, HL)+C)
ES:[HL+C], A
3
2
—
((ES, HL) + C) ← A
X, !addr16
3
1
4
X←(addr16)
X, ES:!addr16
4
2
5
X←(ES, addr16)
X, saddr
2
1
—
X←(saddr)
B, !addr16
3
1
4
B←(addr16)
B, ES:!addr16
4
2
5
B←(ES, addr16)
B, saddr
2
1
—
B←(saddr)
C, !addr16
3
1
4
C←(addr16)
C, ES:!addr16
4
2
5
C←(ES, addr16)
C, saddr
2
1
—
C←(saddr)
3
1
—
ES←(saddr)
1 (r=X)
1
—
A↔r
8
MOV
操作数
传
送
ES, saddr
XCH
A, r
注3
Z
AC
CY
2 (r=X
以外 )
注
A, !addr16
4
2
—
A↔(addr16)
A, ES:!addr16
5
3
—
A↔(ES, addr16)
A, saddr
3
2
—
A↔(saddr)
A, sfr
3
2
—
A↔sfr
A, [DE]
2
2
—
A↔(DE)
A, ES:[DE]
3
3
—
A↔ (ES, DE)
A, [HL]
2
2
—
A↔ (HL)
A, ES:[HL]
3
3
—
A↔(ES, HL)
A, [DE+byte]
3
2
—
A↔(DE+byte)
A, ES:[DE+byte]
4
3
—
A↔((ES, DE)+byte)
A, [HL+byte]
3
2
—
A↔(HL+byte)
A, ES:[HL+byte]
4
3
—
A↔((ES, HL)+byte)
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
654
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (4/17)
时钟
助记符
字节
标志
注1
注2
操作
Z
AC
CY
A, [HL+B]
2
2
—
A↔(HL+B)
位
A, ES:[HL+B]
3
3
—
A↔((ES, HL)+B)
数
A, [HL+C]
2
2
—
A↔(HL+C)
据
A, ES:[HL+C]
3
3
—
A↔((ES, HL)+C)
A
1
1
—
A←01H
X
1
1
—
X←01H
B
1
1
—
B←01H
C
1
1
—
C←01H
!addr16
3
1
—
(addr16)←01H
ES:!addr16
4
2
—
(ES, addr16)←01H
saddr
2
1
—
(saddr)←01H
A
1
1
—
A←00H
X
1
1
—
X←00H
B
1
1
—
B←00H
C
1
1
—
C←00H
!addr16
3
1
—
(addr16)←00H
ES:!addr16
4
2
—
(ES, addr16)←00H
saddr
2
1
—
(saddr)←00H
[HL+byte], X
3
1
—
(HL+byte)←X
×
×
ES:[HL+byte], X
4
2
—
(ES, HL+byte)←X
×
×
rp, #word
3
1
—
rp←word
位
saddrp, #word
4
1
—
(saddrp)←word
数
sfrp, #word
4
1
—
sfrp←word
8
传
送
XCH
操作数
ONEB
CLRB
MOVS
16
据
传
送
注
MOVW
AX, rp
注3
1
1
—
AX←rp
rp, AX
注3
1
1
—
rp←AX
AX, !addr16
3
1
4
AX←(addr16)
!addr16, AX
3
1
—
(addr16)←AX
AX, ES:!addr16
4
2
5
AX←(ES, addr16)
ES:!addr16, AX
4
2
—
(ES, addr16)←AX
AX, saddrp
2
1
—
AX←(saddrp)
saddrp, AX
2
1
—
(saddrp)←AX
AX, sfrp
2
1
—
AX←sfrp
sfrp, AX
2
1
—
sfrp←AX
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. rp=AX 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
655
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (5/17)
时钟
助记符
字节
标志
注1
注2
操作
AX, [DE]
1
1
4
AX←(DE)
位
[DE], AX
1
1
—
(DE)←AX
数
AX, ES:[DE]
2
2
5
AX←(ES, DE)
据
ES:[DE], AX
2
2
—
(ES, DE)←AX
AX, [HL]
1
1
4
AX←(HL)
[HL], AX
1
1
—
(HL)←AX
AX, ES:[HL]
2
2
5
AX←(ES, HL)
ES:[HL], AX
2
2
—
(ES, HL)←AX
AX, [DE+byte]
2
1
4
AX←(DE+byte)
[DE+byte], AX
2
1
—
(DE+byte)←AX
AX, ES:[DE+byte]
3
2
5
AX←((ES, DE)+byte)
ES:[DE+byte], AX
3
2
—
((ES, DE)+byte)←AX
AX, [HL+byte]
2
1
4
AX←(HL+byte)
[HL+byte], AX
2
1
—
(HL+byte)←AX
AX, ES:[HL+byte]
3
2
5
AX←((ES, HL)+byte)
ES:[HL+byte], AX
3
2
—
((ES, HL)+byte)←AX
AX, [SP+byte]
2
1
—
AX←(SP+byte)
[SP+byte], AX
2
1
—
(SP+byte)←AX
AX, word[B]
3
1
4
AX←(B+word)
word[B], AX
3
1
—
(B+word)←AX
AX, ES:word[B]
4
2
5
AX←((ES, B)+word)
ES:word[B], AX
4
2
—
((ES, B)+word)←AX
AX, word[C]
3
1
4
AX←(C+word)
word[C], AX
3
1
—
(C+word)←AX
AX, ES:word[C]
4
2
5
AX←((ES, C)+word)
ES:word[C], AX
4
2
—
((ES, C)+word)←AX
AX, word[BC]
3
1
4
AX←(BC+word)
word[BC], AX
3
1
—
(BC+word)←AX
AX, ES:word[BC]
4
2
5
AX←((ES, BC)+word)
ES:word[BC], AX
4
2
—
((ES, BC)+word)←AX
16
传
送
注
MOVW
操作数
Z
AC
CY
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
656
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (6/17)
时钟
助记符
字节
标志
注1
注2
操作
BC, !addr16
3
1
4
BC←(addr16)
位
BC, ES:!addr16
4
2
5
BC←(ES, addr16)
数
DE, !addr16
3
1
4
DE←(addr16)
据
DE, ES:!addr16
4
2
5
DE←(ES, addr16)
HL, !addr16
3
1
4
HL←(addr16)
HL, ES:!addr16
4
2
5
HL←(ES, addr16)
BC, saddrp
2
1
—
BC←(saddrp)
DE, saddrp
2
1
—
DE←(saddrp)
2
1
—
HL←(saddrp)
1
1
—
AX↔rp
16
MOVW
操作数
传
送
HL, saddrp
Z
AC
CY
XCHW
AX, rp
ONEW
AX
1
1
—
AX←0001H
BC
1
1
—
BC←0001H
AX
1
1
—
AX←0000H
BC
1
1
—
BC←0000H
A, #byte
2
1
—
A, CY←A+byte
×
×
×
位
saddr, #byte
3
2
—
(saddr), CY←(saddr)+byte
×
×
×
运
A, r
2
1
—
A, CY←A+r
×
×
×
算
r, A
2
1
—
r, CY←r+A
×
×
×
A, !addr16
3
1
4
A, CY←A+(addr16)
×
×
×
A, ES:!addr16
4
2
5
A, CY←A+(ES, addr16)
×
×
×
A, saddr
2
1
—
A, CY←A+(saddr)
×
×
×
A, [HL]
1
1
4
A, CY←A+(HL)
×
×
×
A, ES:[HL]
2
2
5
A, CY←A+(ES, HL)
×
×
×
A, [HL+byte]
2
1
4
A, CY←A+ (HL+byte)
×
×
×
A, ES:[HL+byte]
3
2
5
A, CY←A+((ES, HL)+byte)
×
×
×
A, [HL+B]
2
1
4
A, CY←A+(HL+B)
×
×
×
A, ES:[HL+B]
3
2
5
A, CY←A+((ES, HL)+B)
×
×
×
A, [HL+C]
2
1
4
A, CY←A+(HL+C)
×
×
×
A, ES:[HL+C]
3
2
5
A, CY←A+((ES, HL)+C)
×
×
×
CLRW
8
注
ADD
注3
注4
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. rp=AX 除外。
4. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
657
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
8
操作一览表 (7/17)
时钟
助记符
ADDC
位
操作数
字节
A, #byte
saddr, #byte
标志
操作
Z
AC
CY
A, CY←A+byte+CY
×
×
×
—
(saddr), CY←(saddr)+byte+CY
×
×
×
1
—
A, CY←A+r+CY
×
×
×
注1
注2
2
1
—
3
2
2
运
A, r
算
r, A
2
1
—
r, CY←r+A+CY
×
×
×
A, !addr16
3
1
4
A, CY←A+(addr16)+CY
×
×
×
A, ES:!addr16
4
2
5
A, CY←A+(ES, addr16)+CY
×
×
×
A, saddr
2
1
—
A, CY←A+(saddr)+CY
×
×
×
A, [HL]
1
1
4
A, CY←A+(HL)+CY
×
×
×
A, ES:[HL]
2
2
5
A, CY←A+(ES, HL)+CY
×
×
×
A, [HL+byte]
2
1
4
A, CY←A+(HL+byte)+CY
×
×
×
A, ES:[HL+byte]
3
2
5
A, CY←A+((ES, HL)+byte)+CY
×
×
×
A, [HL+B]
2
1
4
A, CY←A+(HL+B) +CY
×
×
×
A, ES:[HL+B]
3
2
5
A, CY ← A+((ES, HL)+B)+CY
×
×
×
A, [HL+C]
2
1
4
A, CY←A+(HL+C)+CY
×
×
×
A, ES:[HL+C]
3
2
5
A, CY←A+((ES, HL)+C)+CY
×
×
×
A, #byte
2
1
—
A, CY←A–byte
×
×
×
saddr, #byte
3
2
—
(saddr), CY←(saddr)–byte
×
×
×
2
1
—
A, CY←A–r
×
×
×
r, A
2
1
—
r, CY←r–A
×
×
×
A, !addr16
3
1
4
A, CY←A–(addr16)
×
×
×
A, ES:!addr16
4
2
5
A, CY←A–(ES, addr16)
×
×
×
A, saddr
2
1
—
A, CY←A–(saddr)
×
×
×
A, [HL]
1
1
4
A, CY←A–(HL)
×
×
×
A, ES:[HL]
2
2
5
A, CY←A–(ES, HL)
×
×
×
A, [HL+byte]
2
1
4
A, CY←A–(HL+byte)
×
×
×
A, ES:[HL+byte]
3
2
5
A, CY←A–((ES, HL)+byte)
×
×
×
A, [HL+B]
2
1
4
A, CY←A–(HL+B)
×
×
×
A, ES:[HL+B]
3
2
5
A, CY←A–((ES, HL)+B)
×
×
×
A, [HL+C]
2
1
4
A, CY←A–(HL+C)
×
×
×
A, ES:[HL+C]
3
2
5
A, CY←A–((ES, HL)+C)
×
×
×
SUB
A, r
注
注3
注3
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
658
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
8
操作一览表 (8/17)
时钟
助记符
SUBC
位
操作数
字节
A, #byte
saddr, #byte
标志
操作
Z
AC
CY
A, CY←A–byte–CY
×
×
×
—
(saddr), CY←(saddr)–byte–CY
×
×
×
1
—
A, CY←A–r–CY
×
×
×
注1
注2
2
1
—
3
2
2
运
A, r
算
r, A
2
1
—
r, CY←r–A–CY
×
×
×
A, !addr16
3
1
4
A, CY←A–(addr16)–CY
×
×
×
A, ES:!addr16
4
2
5
A, CY←A–(ES, addr16)–CY
×
×
×
A, saddr
2
1
—
A, CY←A–(saddr)–CY
×
×
×
A, [HL]
1
1
4
A, CY←A–(HL)–CY
×
×
×
A, ES:[HL]
2
2
5
A, CY←A–(ES, HL)–CY
×
×
×
A, [HL+byte]
2
1
4
A, CY←A–(HL+byte)–CY
×
×
×
A, ES:[HL+byte]
3
2
5
A, CY←A–((ES, HL)+byte)–CY
×
×
×
A, [HL+B]
2
1
4
A, CY←A–(HL+B)–CY
×
×
×
A, ES:[HL+B]
3
2
5
A, CY←A–((ES, HL)+B)–CY
×
×
×
A, [HL+C]
2
1
4
A, CY←A–(HL+C)–CY
×
×
×
A, ES:[HL+C]
3
2
5
A, CY←A–((ES:HL)+C)–CY
×
×
×
A, #byte
2
1
—
A←A∧byte
×
saddr, #byte
3
2
—
(saddr)←(saddr)∧byte
×
2
1
—
A←A∧r
×
r, A
2
1
—
r←r∧A
×
A, !addr16
3
1
4
A←A∧(addr16)
×
A, ES:!addr16
4
2
5
A←A∧(ES:addr16)
×
A, saddr
2
1
—
A←A∧(saddr)
×
A, [HL]
1
1
4
A←A∧(HL)
×
A, ES:[HL]
2
2
5
A←A∧(ES:HL)
×
A, [HL+byte]
2
1
4
A←A∧(HL+byte)
×
A, ES:[HL+byte]
3
2
5
A←A∧((ES:HL)+byte)
×
A, [HL+B]
2
1
4
A←A∧(HL+B)
×
A, ES:[HL+B]
3
2
5
A←A∧((ES:HL)+B)
×
A, [HL+C]
2
1
4
A←A∧(HL+C)
×
A, ES:[HL+C]
3
2
5
A←A∧((ES:HL)+C)
×
AND
A, r
注
注3
注3
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
659
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
8
操作一览表 (9/17)
时钟
助记符
OR
位
操作数
字节
A, #byte
saddr, #byte
标志
操作
Z
注1
注2
2
1
—
A←A∨byte
×
3
2
—
(saddr)←(saddr)∨byte
×
2
1
—
A←A∨r
×
运
A, r
算
r, A
2
1
—
r←r∨A
×
A, !addr16
3
1
4
A←A∨(addr16)
×
A, ES:!addr16
4
2
5
A←A∨(ES:addr16)
×
A, saddr
2
1
—
A←A∨(saddr)
×
A, [HL]
1
1
4
A←A∨(HL)
×
A, ES:[HL]
2
2
5
A←A∨(ES:HL)
×
A, [HL+byte]
2
1
4
A←A∨(HL+byte)
×
A, ES:[HL+byte]
3
2
5
A←A∨((ES:HL)+byte)
×
A, [HL+B]
2
1
4
A←A∨(HL+B)
×
A, ES:[HL+B]
3
2
5
A←A∨((ES:HL)+B)
×
A, [HL+C]
2
1
4
A←A∨(HL+C)
×
A, ES:[HL+C]
3
2
5
A←A∨((ES:HL)+C)
×
A, #byte
2
1
—
A←A∨byte
×
saddr, #byte
3
2
—
(saddr)←(saddr)∨byte
×
2
1
—
A←A∨r
×
r, A
2
1
—
r←r∨A
×
A, !addr16
3
1
4
A←A∨(addr16)
×
A, ES:!addr16
4
2
5
A←A∨(ES:addr16)
×
A, saddr
2
1
—
A←A∨(saddr)
×
A, [HL]
1
1
4
A←A∨(HL)
×
A, ES:[HL]
2
2
5
A←A∨(ES:HL)
×
A, [HL+byte]
2
1
4
A←A∨(HL+byte)
×
A, ES:[HL+byte]
3
2
5
A←A∨((ES:HL)+byte)
×
A, [HL+B]
2
1
4
A←A∨(HL+B)
×
A, ES:[HL+B]
3
2
5
A←A∨((ES:HL)+B)
×
A, [HL+C]
2
1
4
A←A∨(HL+C)
×
A, ES:[HL+C]
3
2
5
A←A∨((ES:HL)+C)
×
XOR
A, r
注
注3
注3
AC
CY
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
660
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (10/17)
时钟
助记符
字节
标志
注1
注2
操作
Z
AC
CY
A, #byte
2
1
—
A–byte
×
×
×
位
!addr16, #byte
4
1
4
(addr16)–byte
×
×
×
运
ES:!addr16, #byte
5
2
5
(ES:addr16)–byte
×
×
×
算
saddr, #byte
3
1
—
(saddr)–byte
×
×
×
2
1
—
A–r
×
×
×
r, A
2
1
—
r–A
×
×
×
A, !addr16
3
1
4
A–(addr16)
×
×
×
A, ES:!addr16
4
2
5
A–(ES:addr16)
×
×
×
A, saddr
2
1
—
A–(saddr)
×
×
×
A, [HL]
1
1
4
A–(HL)
×
×
×
A, ES:[HL]
2
2
5
A–(ES:HL)
×
×
×
A, [HL+byte]
2
1
4
A–(HL+byte)
×
×
×
A, ES:[HL+byte]
3
2
5
A–((ES:HL)+byte)
×
×
×
A, [HL+B]
2
1
4
A–(HL+B)
×
×
×
A, ES:[HL+B]
3
2
5
A–((ES:HL)+B)
×
×
×
A, [HL+C]
2
1
4
A–(HL+C)
×
×
×
A, ES:[HL+C]
3
2
5
A–((ES:HL)+C)
×
×
×
A
1
1
—
A–00H
×
0
0
X
1
1
—
X–00H
×
0
0
B
1
1
—
B–00H
×
0
0
C
1
1
—
C–00H
×
0
0
!addr16
3
1
4
(addr16)–00H
×
0
0
ES:!addr16
4
2
5
(ES:addr16)–00H
×
0
0
saddr
2
1
—
(saddr)–00H
×
0
0
X, [HL+byte]
3
1
4
X–(HL+byte)
×
×
×
X, ES:[HL+byte]
4
2
5
X–((ES:HL)+byte)
×
×
×
8
CMP
操作数
A, r
CMP0
CMPS
注
注3
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. r=A 除外。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
661
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (11/17)
时钟
助记符
字节
标志
注1
注2
操作
Z
AC
CY
AX, #word
3
1
—
AX, CY←AX+word
×
×
×
位
AX, AX
1
1
—
AX, CY←AX+AX
×
×
×
运
AX, BC
1
1
—
AX, CY←AX+BC
×
×
×
算
AX, DE
1
1
—
AX, CY←AX+DE
×
×
×
AX, HL
1
1
—
AX, CY←AX+HL
×
×
×
AX, !addr16
3
1
4
AX, CY←AX+(addr16)
×
×
×
AX, ES:!addr16
4
2
5
AX, CY←AX+(ES:addr16)
×
×
×
AX, saddrp
2
1
—
AX, CY←AX+(saddrp)
×
×
×
AX, [HL+byte]
3
1
4
AX, CY←AX+(HL+byte)
×
×
×
AX, ES: [HL+byte]
4
2
5
AX, CY←AX+((ES:HL)+byte)
×
×
×
AX, #word
3
1
—
AX, CY←AX–word
×
×
×
AX, BC
1
1
—
AX, CY←AX–BC
×
×
×
AX, DE
1
1
—
AX, CY←AX–DE
×
×
×
AX, HL
1
1
—
AX, CY←AX–HL
×
×
×
AX, !addr16
3
1
4
AX, CY←AX–(addr16)
×
×
×
AX, ES:!addr16
4
2
5
AX, CY←AX–(ES:addr16)
×
×
×
AX, saddrp
2
1
—
AX, CY←AX–(saddrp)
×
×
×
AX, [HL+byte]
3
1
4
AX, CY←AX–(HL+byte)
×
×
×
AX, ES: [HL+byte]
4
2
5
AX, CY←AX–((ES:HL)+byte)
×
×
×
AX, #word
3
1
—
AX–word
×
×
×
AX, BC
1
1
—
AX–BC
×
×
×
AX, DE
1
1
—
AX–DE
×
×
×
AX, HL
1
1
—
AX–HL
×
×
×
AX, !addr16
3
1
4
AX–(addr16)
×
×
×
AX, ES:!addr16
4
2
5
AX–(ES:addr16)
×
×
×
AX, saddrp
2
1
—
AX–(saddrp)
×
×
×
AX, [HL+byte]
3
1
4
AX–(HL+byte)
×
×
×
AX, ES: [HL+byte]
4
2
5
AX–((ES:HL)+byte)
×
×
×
X
1
1
—
AX←A×X
16
ADDW
操作数
SUBW
CMPW
乘
注
MULU
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
662
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
递
操作一览表 (12/17)
时钟
助记符
INC
增
/
递
减
DEC
INCW
DECW
操作数
字节
标志
注1
注2
操作
Z
AC
r
1
1
—
r←r+1
×
×
!addr16
3
2
—
(addr16)←(addr16)+1
×
×
ES:!addr16
4
3
—
(ES, addr16)←(ES, addr16)+1
×
×
saddr
2
2
—
(saddr)←(saddr)+1
×
×
[HL+byte]
3
2
—
(HL+byte)←(HL+byte)+1
×
×
ES: [HL+byte]
4
3
—
((ES:HL)+byte)←((ES:HL)+byte)+1
×
×
r
1
1
—
r←r–1
×
×
!addr16
3
2
—
(addr16)←(addr16)–1
×
×
ES:!addr16
4
3
—
(ES, addr16)←(ES, addr16)–1
×
×
saddr
2
2
—
(saddr)←(saddr)–1
×
×
[HL+byte]
3
2
—
(HL+byte)←(HL+byte)–1
×
×
ES: [HL+byte]
4
3
—
((ES:HL)+byte)←((ES:HL)+byte)–1
×
×
rp
1
1
—
rp←rp+1
!addr16
3
2
—
(addr16)←(addr16)+1
ES:!addr16
4
3
—
(ES, addr16)←(ES, addr16)+1
saddrp
2
2
—
(saddrp)←(saddrp)+1
[HL+byte]
3
2
—
(HL+byte)←(HL+byte)+1
ES: [HL+byte]
4
3
—
((ES:HL)+byte)←((ES:HL)+byte)+1
rp
1
1
—
rp←rp–1
!addr16
3
2
—
(addr16)←(addr16)–1
ES:!addr16
4
3
—
(ES, addr16)←(ES, addr16)–1
saddrp
2
2
—
(saddrp)←(saddrp)–1
[HL+byte]
3
2
—
(HL+byte)←(HL+byte)–1
ES: [HL+byte]
4
3
—
((ES:HL)+byte)←((ES:HL)+byte)–1
CY
移
SHR
A, cnt
2
1
—
(CY←A0, Am–1←Am, A7←0)×cnt
×
位
SHRW
AX, cnt
2
1
—
(CY←AX0, AXm–1←AXm, AX15←0)×cnt
×
SHL
A, cnt
2
1
—
(CY←A7, Am←Am–1, A0←0)×cnt
×
B, cnt
2
1
—
(CY←B7, Bm←Bm–1, B0←0)×cnt
×
C, cnt
2
1
—
(CY←C7, Cm←Cm–1, C0←0)×cnt
×
AX, cnt
2
1
—
(CY←AX15, AXm←AXm–1, AX0←0)×cnt
×
BC, cnt
2
1
—
(CY←BC15, BCm←BCm–1, BC0←0)×cnt
×
SAR
A, cnt
2
1
—
(CY←A0, Am–1←Am, A7←A7)×cnt
×
SARW
AX, cnt
2
1
—
(CY←AX0, AXm–1←AXm, AX15←AX15)×cnt
×
SHLW
注
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注 1. 时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
2. cnt 是位的移位个数。
R01UH0629CJ0120 Rev.1.20
2019.06.28
663
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (13/17)
时钟
助记符
操作数
字节
标志
注1
注2
操作
Z
AC
CY
循
ROR
A, 1
2
1
—
(CY, A7←A0, Am–1←Am)×1
×
环
ROL
A, 1
2
1
—
(CY, A0←A7, Am+1←Am)×1
×
RORC
A, 1
2
1
—
(CY←A0, A7←CY, Am–1←Am)×1
×
ROLC
A, 1
2
1
—
(CY←A7, A0←CY, Am+1←Am)×1
×
ROLWC
AX, 1
2
1
—
(CY←AX15, AX0←CY, AXm+1←AXm)×1
×
BC, 1
2
1
—
(CY←BC15, BC0←CY, BCm+1← BCm)×1
×
CY, A.bit
2
1
—
CY←A.bit
×
操
A.bit, CY
2
1
—
A.bit←CY
作
CY, PSW.bit
3
1
—
CY←PSW.bit
PSW.bit, CY
3
4
—
PSW.bit←CY
CY, saddr.bit
3
1
—
CY←(saddr).bit
saddr.bit, CY
3
2
—
(saddr).bit←CY
CY, sfr.bit
3
1
—
CY←sfr.bit
sfr.bit, CY
3
2
—
sfr.bit←CY
CY, [HL].bit
2
1
4
CY←(HL).bit
[HL].bit, CY
2
2
—
(HL).bit←CY
CY, ES:[HL].bit
3
2
5
CY←(ES, HL).bit
ES:[HL].bit, CY
3
3
—
(ES, HL).bit←CY
CY, A.bit
2
1
—
CY←CY∧A.bit
×
CY, PSW.bit
3
1
—
CY←CY∧PSW.bit
×
CY, saddr.bit
3
1
—
CY←CY∧(saddr).bit
×
CY, sfr.bit
3
1
—
CY←CY∧sfr.bit
×
CY, [HL].bit
2
1
4
CY←CY∧(HL).bit
×
CY, ES:[HL].bit
3
2
5
CY←CY∧(ES, HL).bit
×
CY, A.bit
2
1
—
CY←CY∨A.bit
×
CY, PSW.bit
3
1
—
CY←CY∨PSW.bit
×
CY, saddr.bit
3
1
—
CY←CY∨(saddr).bit
×
CY, sfr.bit
3
1
—
CY←CY∨sfr.bit
×
CY, [HL].bit
2
1
4
CY←CY∨(HL).bit
×
CY, ES:[HL].bit
3
2
5
CY←CY∨(ES, HL).bit
×
位
MOV1
AND1
OR1
注
×
×
×
×
×
×
×
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
664
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (14/17)
时钟
助记符
字节
标志
注1
注2
操作
Z
AC
CY
CY, A.bit
2
1
—
CY←CY∨A.bit
×
操
CY, PSW.bit
3
1
—
CY←CY∨PSW.bit
×
作
CY, saddr.bit
3
1
—
CY←CY∨(saddr).bit
×
CY, sfr.bit
3
1
—
CY←CY∨sfr.bit
×
CY, [HL].bit
2
1
4
CY←CY∨(HL).bit
×
CY, ES:[HL].bit
3
2
5
CY←CY∨(ES, HL).bit
×
A.bit
2
1
—
A.bit←1
PSW.bit
3
4
—
PSW.bit←1
!addr16.bit
4
2
—
(addr16).bit←1
ES:!addr16.bit
5
3
—
(ES, addr16).bit←1
saddr.bit
3
2
—
(saddr).bit←1
sfr.bit
3
2
—
sfr.bit←1
[HL].bit
2
2
—
(HL).bit←1
ES:[HL].bit
3
3
—
(ES, HL).bit←1
A.bit
2
1
—
A.bit←0
PSW.bit
3
4
—
PSW.bit←0
!addr16.bit
4
2
—
(addr16).bit←0
ES:!addr16.bit
5
3
—
(ES, addr16).bit←0
saddr.bit
3
2
—
(saddr.bit)←0
sfr.bit
3
2
—
sfr.bit←0
[HL].bit
2
2
—
(HL).bit←0
ES:[HL].bit
3
3
—
(ES, HL).bit←0
SET1
CY
2
1
—
CY←1
1
CLR1
CY
2
1
—
CY←0
0
NOT1
CY
2
1
—
CY←CY
×
位
XOR1
操作数
SET1
CLR1
注
×
×
×
×
×
×
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
665
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
调
操作一览表 (15/17)
时钟
助记符
CALL
操作数
rp
字节
2
标志
注1
注2
3
—
操作
Z
AC
CY
R
R
R
R
R
R
(SP–2)←(PC+2)S,(SP–3)←(PC+2)H,
(SP–4)←(PC+2)L, PC←CS, rp,
SP←SP–4
用
/
返
$!addr20
3
3
—
回
(SP–2)←(PC+3)S,(SP–3)←(PC+3)H,
(SP–4)←(PC+3)L,
PC←PC+3+jdisp16,
SP←SP–4
!addr16
3
3
—
(SP–2)←(PC+3)S,(SP–3)←(PC+3)H,
(SP–4)←(PC+3)L, PC←0000,
addr16,
SP←SP–4
!!addr20
4
3
—
(SP–2)←(PC+4)S,(SP–3)←(PC+4)H,
(SP–4)←(PC+4)L, PC←addr20,
SP←SP–4
CALLT
[addr5]
2
5
—
(SP–2)←(PC+2)S, (SP–3)←(PC+2)H,
(SP–4)←(PC+2)L , PCS←0000,
PCH←(0000, addr5+1),
PCL←(0000, addr5),
SP←SP–4
BRK
—
2
5
—
(SP–1)←PSW,(SP–2)←(PC+2)S,
(SP–3)←(PC+2)H,(SP–4)←(PC+2)L,
PCS←0000,
PCH←(0007FH),PCL←(0007EH),
SP←SP–4, IE←0
RET
—
1
6
—
RETI
—
2
6
—
PCL←(SP), PCH←(SP+1),
PCS←(SP+2), SP←SP+4
PCL←(SP), PCH←(SP+1),
PCS←(SP+2), PSW←(SP+3),
SP←SP+4
RETB
—
2
6
—
PCL←(SP), PCH←(SP+1),
PCS←(SP+2), PSW←(SP+3),
SP←SP+4
注
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
666
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (16/17)
时钟
助记符
字节
标志
注1
注2
操作
PSW
2
1
—
(SP–1)←PSW, (SP–2)←00H,
SP←SP–2
rp
1
1
—
(SP–1)←rpH, (SP–2)←rpL,
SP←SP–2
PSW
2
3
—
PSW←(SP+1), SP←SP+2
rp
1
1
—
rpL←(SP), rpH←(SP+1), SP←SP+2
SP, #word
4
1
—
SP←word
SP, AX
2
1
—
SP←AX
AX, SP
2
1
—
AX←SP
HL, SP
3
1
—
HL←SP
BC, SP
3
1
—
BC←SP
DE, SP
3
1
—
DE←SP
ADDW
SP, #byte
2
1
—
SP←SP+byte
SUBW
SP, #byte
2
1
—
SP←SP–byte
BR
AX
2
3
—
PC←CS, AX
条
$addr20
2
3
—
PC←PC+2+jdisp8
件
$!addr20
3
3
—
PC←PC+3+jdisp16
转
!addr16
3
3
—
PC←0000, addr16
!!addr20
4
3
—
PC←addr20
—
PC←PC+2+jdisp8 if CY=1
堆
PUSH
操作数
栈
操
作
POP
MOVW
无
移
条
BC
$addr20
2
2/4 注 3
件
BNC
$addr20
2
2/4 注 3
—
PC←PC+2+jdisp8 if CY=0
转
BZ
$addr20
2
2/4 注 3
—
PC←PC+2+jdisp8 if Z=1
移
BNZ
$addr20
2
2/4 注 3
—
PC←PC+2+jdisp8 if Z=0
BH
$addr20
3
2/4 注3
—
PC←PC+3+jdisp8 if (Z∨CY)=0
BNH
$addr20
3
2/4 注3
—
PC←PC+3+jdisp8 if (Z∨CY)=1
BT
saddr.bit, $addr20
4
3/5 注3
—
PC←PC+4+jdisp8 if (saddr).bit=1
sfr.bit, $addr20
4
3/5 注3
—
PC←PC+4+jdisp8 if sfr.bit=1
A.bit, $addr20
3
3/5 注3
—
PC←PC+3+disp8 if A.bit=1
PSW.bit, $addr20
4
3/5 注 3
—
PC←PC+4+jdisp8 if PSW.bit=1
[HL].bit, $addr20
3
3/5 注3
6/7
PC←PC+3+jdisp8 if (HL).bit=1
ES:[HL].bit,
4
4/6 注3
7/8
PC←PC+4+jdisp8
$addr20
注
Z
AC
CY
R
R
R
if (ES, HL).bit=1
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. 表示 “ 条件不成立时 / 条件成立时 ” 的时钟数。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
667
R7F0C903-908
第 26 章 指令集的概要
表 26-5
指
令
集
操作一览表 (17/17)
时钟
助记符
字节
标志
操作
注1
注2
—
PC←PC+4+jdisp8 if (saddr).bit=0
saddr.bit, $addr20
4
3/5 注3
件
sfr.bit, $addr20
4
3/5 注3
—
PC←PC+4+jdisp8 if sfr.bit=0
转
A.bit, $addr20
3
3/5 注3
—
PC←PC+3+jdisp8 if A.bit=0
移
PSW.bit, $addr20
4
3/5 注3
—
PC←PC+4+jdisp8 if PSW.bit=0
[HL].bit, $addr20
3
3/5 注3
6/7
PC←PC+3+jdisp8 if (HL).bit=0
ES:[HL].bit,
4
4/6 注3
7/8
PC←PC+4+jdisp8 if (ES, HL).bit=0
saddr.bit, $addr20
4
3/5 注3
—
PC←PC+4+jdisp8 if (saddr).bit=1
sfr.bit, $addr20
4
3/5 注3
条
BF
操作数
Z
AC
CY
×
×
×
$addr20
BTCLR
then reset (saddr).bit
—
PC←PC+4+jdisp8 if sfr.bit=1
then reset sfr.bit
A.bit, $addr20
3
3/5 注3
PSW.bit, $addr20
4
3/5 注3
—
PC←PC+3+jdisp8 if A.bit=1
then reset A.bit
—
PC←PC+4+jdisp8 if PSW.bit=1
then reset PSW.bit
[HL].bit, $addr20
3
3/5 注3
ES:[HL].bit,
4
4/6 注3
—
PC←PC+3+jdisp8 if (HL).bit=1
then reset (HL).bit
—
$addr20
PC←PC+4+jdisp8 if (ES, HL).bit=1
then reset (ES, HL).bit
条
SKC
—
2
1
—
Next instruction skip if CY=1
件
SKNC
—
2
1
—
Next instruction skip if CY=0
跳
SKZ
—
2
1
—
Next instruction skip if Z=1
转
SKNZ
—
2
1
—
Next instruction skip if Z=0
SKH
—
2
1
—
Next instruction skip if (Z∨CY)=0
SKNH
—
2
1
—
Next instruction skip if (Z∨CY)=1
2
1
—
RBS[1:0]←n
C
SEL 注 4
RBn
P
NOP
—
1
1
—
No Operation
U
EI
—
3
4
—
IE←1 (Enable Interrupt)
控
DI
—
3
4
—
IE←0 (Disable Interrupt)
HALT
—
2
3
—
Set HALT Mode
STOP
—
2
3
—
Set STOP Mode
制
注
1. 这是存取内部 RAM 区、 SFR 区、扩展 SFR 区时或者不存取数据时的 CPU 时钟 (fCLK)数。
2. 这是存取代码闪存区以及通过 8 位指令存取数据闪存区时的 CPU 时钟 (fCLK)数。
3. 表示 “ 条件不成立时 / 条件成立时 ” 的时钟数。
4. n 为寄存器组号 (n=0 ~ 3)。
备注
时钟数是在内部 ROM (闪存)区有程序的情况。当从内部 RAM 区取指令时,最大为 2 倍 +3 个时钟。
R01UH0629CJ0120 Rev.1.20
2019.06.28
668
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
第 27 章
电特性 (TA=–40 ~ +85°C)
注意 1. RL78 微控制器内置用于开发和评估的片上调试功能。如果使用片上调试功能,就可能会超过闪存的保证改写次数
而无法保证产品的可靠性,因此批量生产的产品不能使用片上调试功能。对于使用片上调试功能的产品,不作为投
诉受理对象。
2. 配置的引脚因产品而不同。请参照 “2.1 端口功能 ” ~ “2.2.1 各产品配置的功能 ”。
27.1
绝对最大额定值
绝对最大额定值 (TA=25°C) (1/2)
项目
符号
电源电压
VDD
REGC 引脚的
VIREGC
条件
REGC
单位
–0.5 ~ +6.5
V
–0.3 ~ +2.8 并且
V
–0.3 ~ VDD+0.3 注 1
输入电压
输入电压
额定值
VI1
P00、P01、P10 ~ P17、P30、P31、P40、
–0.3 ~ VDD+0.3 注 2
V
–0.3 ~ +6.5
V
–0.3 ~ VDD+0.3 注 2
V
P50、 P51、 P70、 P120、 P147
VI2
P60 ~ P62 (N 沟道漏极开路)
VI3
P20 ~ P23、 P121、 P122、 P137、
EXCLK、 RESET
输出电压
模拟输入电压
VO1
P00、P01、P10 ~ P17、P30、P31、P40、
P50、 P51、 P60 ~ P62、 P70、 P120、
P147
–0.3 ~ VDD+0.3 注 2
V
VO2
P20 ~ P23
–0.3 ~ VDD+0.3 注 2
V
VAI1
ANI16 ~ ANI19
–0.3 ~ VDD+0.3 并且
V
–0.3 ~ AVREF(+)+0.3 注 2、 3
VAI2
ANI0 ~ ANI3
–0.3 ~ VDD+0.3 并且
–0.3 ~ AVREF(+)
注
V
+0.3 注 2、 3
1. 必须通过电容器(0.47 ~ 1μF)将 REGC 引脚连接 VSS。此值是规定 REGC 引脚的绝对最大额定值,使用时不能
外加电压。
2. 不超过 6.5V。
3. A/D 转换对象的引脚不能超过 AVREF(+)+0.3。
注意
即使是各项目中的 1 个项目瞬间超过绝对最大额定值,也可能降低产品的质量。绝对最大额定值是可能给产品带来
物理性损伤的额定值,必须在不超过额定值的状态下使用产品。
备注 1. 在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
2. AVREF(+):A/D 转换器的正 (+)基准电压
3. 将 VSS 作为基准电压。
R01UH0629CJ0120 Rev.1.20
2019.06.28
669
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
绝对最大额定值 (TA=25°C) (2/2)
项目
高电平输出电流
符号
IOH1
条件
1 个引脚
额定值
单位
–40
mA
P00、 P01、 P40、 P120
–70
mA
P10 ~ P17、P30、P31、P50、P51、P70、
P147
–100
mA
P20 ~ P23
–0.5
mA
–2
mA
40
mA
P00、 P01、 P40、 P120
70
mA
P10 ~ P17、 P30、 P31、 P50、 P51、
100
mA
1
mA
5
mA
–40 ~ +85
°C
–65 ~ +150
°C
P00、 P01、 P10 ~ P17、 P30、 P31、
P40、P50、P51、P62、P70、P120、P147
引脚合计
–170mA
IOH2
1 个引脚
引脚合计
低电平输出电流
IOL1
1 个引脚
P00、 P01、 P10 ~ P17、 P30、 P31、
P40、P50、P51、P60 ~ P62、P70、P120、
P147
引脚合计
170mA
P60 ~ P62、 P70、 P147
IOL2
1 个引脚
P20 ~ P23
引脚合计
工作环境温度
TA
通常运行时
闪存编程时
保存温度
注意
Tstg
即使是各项目中的 1 个项目瞬间超过绝对最大额定值,也可能降低产品的质量。绝对最大额定值是可能给产品带来
物理性损伤的额定值,必须在不超过额定值的状态下使用产品。
备注
在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
670
R7F0C903-908
27.2
第 27 章 电特性 (TA=–40 ~ +85°C)
振荡电路特性
27.2.1
X1 振荡电路特性
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
X1 时钟振荡频率
注
谐振器
(fX)注
陶瓷谐振器 / 晶体谐振器
条件
MIN.
TYP.
MAX.
单位
MHz
2.7V ≤ VDD ≤ 5.5V
1.0
20.0
2.4V ≤ VDD < 2.7V
1.0
16.0
1.8V ≤ VDD < 2.4V
1.0
8.0
1.6V ≤ VDD < 1.8V
1.0
4.0
只表示振荡电路的频率容许范围,指令执行时间请参照 AC 特性。
请委托谐振器厂商给予安装电路后的评估,并且在确认振荡特性后使用。
在解除复位后,通过高速内部振荡器时钟启动 CPU,因此用户必须通过振荡稳定时间计数器的状态寄存器(OSTC)
注意
确认 X1 时钟的振荡稳定时间,并且必须充分对所用谐振器进行振荡稳定时间的评估,然后决定 OSTC 寄存器和振
荡稳定时间选择寄存器 (OSTS)的振荡稳定时间。
备注
在使用 X1 振荡电路时,请参照 “5.4 系统时钟振荡电路 ”。
27.2.2
内部振荡器特性
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
谐振器
符号
MAX.
单位
1
24
MHz
1.8V ≤ VDD ≤ 5.5V
–1.0
+1.0
%
1.6V ≤ VDD < 1.8V
–5.0
+5.0
%
1.8V ≤ VDD ≤ 5.5V
–1.5
+1.5
%
1.6V ≤ VDD < 1.8V
–5.5
+5.5
%
条件
高速内部振荡器的时钟频率注 1、 2 fIH
–20 ~ +85°C
高速内部振荡器的时钟频率精度
–40 ~ –20°C
低速内部振荡器的时钟频率
TYP.
15
fIL
低速内部振荡器的时钟频率精度
注
MIN.
–15
kHz
+15
%
1. 通过选项字节 (000C2H/010C2H)的 bit0 ~ 3 和 HOCODIV 寄存器的 bit0 ~ 2 选择高速内部振荡器的频率。
2. 只表示振荡电路的特性,指令执行时间请参照 AC 特性。
R01UH0629CJ0120 Rev.1.20
2019.06.28
671
R7F0C903-908
27.3
第 27 章 电特性 (TA=–40 ~ +85°C)
DC 特性
27.3.1
引脚特性
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (1/5)
项目
高电平输出电流注 1
符号
IOH1
MIN.
条件
TYP.
P00、 P01、 P10 ~ P17、 1.6V ≤ VDD ≤ 5.5V
MAX.
单位
–10.0 注 2
mA
P30、 P31、 P40、 P50、
P51、 P70、 P120、 P147
1 个引脚
P00、 P01、 P40、 P120
4.0V ≤ VDD ≤ 5.5V
–28.0
mA
合计
2.7V ≤ VDD < 4.0V
–10.0
mA
1.8V ≤ VDD < 2.7V
–5.0
mA
1.6V ≤ VDD < 1.8V
–2.5
mA
P10 ~ P17、 P30、 P31、 4.0V ≤ VDD ≤ 5.5V
–80.0
mA
P50、 P51、 P70、 P147
2.7V ≤ VDD < 4.0V
–19.0
mA
1.8V ≤ VDD < 2.7V
–10.0
mA
1.6V ≤ VDD < 1.8V
–5.0
mA
1.6V ≤ VDD ≤ 5.5V
–108.0
mA
P20 ~ P23 1 个引脚
1.6V ≤ VDD ≤ 5.5V
–0.1 注 2
mA
全部引脚合计
1.6V ≤ VDD ≤ 5.5V
–0.3
mA
(占空比≤ 70% 时注 3)
合计
(占空比≤ 70% 时注 3)
全部引脚合计
(占空比≤ 70% 时注 3)
IOH2
(占空比≤ 70% 时注 3)
注
1. 这是即使电流从 VDD 引脚流到输出引脚也保证器件工作的电流值。
2. 不能超过合计的电流值。
3. 这是 “ 占空比≤ 70% 条件 ” 的输出电流值。
改为占空比> 70% 的输出电流值能用以下的计算式进行计算 (将占空比改为 n% 的情况)。
• 引脚合计的输出电流 = (IOH × 0.7) / (n × 0.01)
<计算例子> IOH = –10.0mA、 n =80%
引脚合计的输出电流 = (–10.0 × 0.7) / (80 × 0.01) ≈ –8.7mA
各引脚的电流不会因占空比而变,而且不会流过绝对最大额定值以上的电流。
注意
在 N 沟道漏极开路模式中, P00、 P10 ~ P15、 P17、 P50 不输出高电平。
备注
在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
672
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (2/5)
项目
低电平输出电流注 1
符号
IOL1
MIN.
条件
TYP.
P00、 P01、 P10 ~ P17、
MAX.
单位
20.0 注2
mA
15.0 注2
mA
P30、 P31、 P40、 P50、
P51、 P70、 P120、 P147
1 个引脚
P60 ~ P62 1 个引脚
P00、 P01、 P40、 P120
4.0V ≤ VDD ≤ 5.5V
56.0
mA
合计
2.7V ≤ VDD < 4.0V
15.0
mA
1.8V ≤ VDD < 2.7V
9.0
mA
1.6V ≤ VDD < 1.8V
4.5
mA
P10 ~ P17、 P30、 P31、 4.0V ≤ VDD ≤ 5.5V
80.0
mA
P50、 P51、 P60 ~ P62、
2.7V ≤ VDD < 4.0V
35.0
mA
1.8V ≤ VDD < 2.7V
20.0
mA
1.6V ≤ VDD < 1.8V
10.0
mA
136.0
mA
0.4 注 2
mA
1.2
mA
(占空比≤ 70% 时注 3)
P70、 P147 合计
(占空比≤ 70% 时注 3)
全部引脚合计
(占空比≤ 70%
IOL2
时注 3)
P20 ~ P23 1 个引脚
1.6V ≤ VDD ≤ 5.5V
全部引脚合计
(占空比≤ 70%
注
时注 3)
1. 这是即使电流从输出引脚流到 VSS 引脚也保证器件工作的电流值。
2. 不能超过合计的电流值。
3. 这是 “ 占空比≤ 70% 条件 ” 的输出电流值。
改为占空比> 70% 的输出电流值能用以下的计算式进行计算 (将占空比改为 n% 的情况)。
• 引脚合计的输出电流 = (IOL × 0.7) / (n × 0.01)
<计算例子> IOL= 10.0mA、 n = 80%
引脚合计的输出电流 = (10.0 × 0.7) / (80 × 0.01) ≈ 8.7mA
各引脚的电流不会因占空比而变,而且不会流过绝对最大额定值以上的电流。
备注
在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
673
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (3/5)
项目
高电平输入电压
符号
MIN.
条件
VIH1
P00、 P01、 P10 ~ P17、 通常的输入缓冲器
P30、 P31、 P40、 P50、
P51、 P70、 P120、 P147
VIH2
P01、 P10、 P11、
P13 ~ P17
TTL 输入缓冲器
TYP.
MAX.
单位
0.8VDD
VDD
V
2.2
VDD
V
2.0
VDD
V
1.5
VDD
V
4.0V ≤ VDD ≤ 5.5V
TTL 输入缓冲器
3.3V ≤ VDD < 4.0V
TTL 输入缓冲器
1.6V ≤ VDD < 3.3V
低电平输入电压
VIH3
P20 ~ P23
0.7VDD
VDD
V
VIH4
P60 ~ P62
0.7VDD
6.0
V
VIH5
P137、 EXCLK、 RESET
0.8VDD
VDD
V
VIL1
P00、 P01、 P10 ~ P17、 通常的输入缓冲器
0
0.2VDD
V
0
0.8
V
0
0.5
V
0
0.32
V
P30、 P31、 P40、 P50、
P57、 P70、 P120、 P147
VIL2
P01、 P10、 P11、
TTL 输入缓冲器
P13 ~ P17
4.0V ≤ VDD ≤ 5.5V
TTL 输入缓冲器
3.3V ≤ VDD < 4.0V
TTL 输入缓冲器
1.6V ≤ VDD < 3.3V
VIL3
P20 ~ P23
0
0.3VDD
V
VIL4
P60 ~ P62
0
0.3VDD
V
VIL5
P137、 EXCLK、 RESET
0
0.2VDD
V
注意
即使在 N 沟道漏极开路模式中, P00、 P10 ~ P15、 P17 的 VIH 最大值 (MAX.)也为 VDD。
备注
在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
674
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (4/5)
项目
高电平输出电压
低电平输出电压
符号
VOH1
MIN.
条件
TYP.
MAX.
单位
P00、 P01、 P10 ~ P17、 4.0V ≤ VDD ≤ 5.5V、 VDD–1.5
P30、 P31、 P40、 P50、 IOH1=–10.0mA
V
P51、 P120、 P147
4.0V ≤ VDD ≤ 5.5V、 VDD–0.7
IOH1=–3.0mA
V
2.7V ≤ VDD ≤ 5.5V、 VDD–0.6
IOH1=–2.0mA
V
1.8V ≤ VDD ≤ 5.5V、 VDD–0.5
IOH1=–1.5mA
V
1.6V ≤ VDD ≤ 5.5V、 VDD–0.5
IOH1=–1.0mA
V
1.6V ≤ VDD ≤ 5.5V、 VDD–0.5
IOH2=–100μA
V
VOH2
P20 ~ P23
VOL1
P00、 P01、 P10 ~ P17、 4.0V ≤ VDD ≤ 5.5V、
P30、 P31、 P40、 P50、 IOL1=20.0mA
1.3
V
P51、 P70、 P120、 P147 4.0V ≤ V ≤ 5.5V、
DD
IOL1=8.5mA
0.7
V
2.7V ≤ VDD ≤ 5.5V、
IOL1=3.0mA
0.6
V
2.7V ≤ VDD ≤ 5.5V、
IOL1=1.5mA
0.4
V
1.8V ≤ VDD ≤ 5.5V、
IOL1=0.6mA
0.4
V
1.6V ≤ VDD ≤ 5.5V、
IOL1=0.3mA
0.4
V
VOL2
P20 ~ P23
1.6V ≤ VDD ≤ 5.5V、
IOL2=400μA
0.4
V
VOL3
P60 ~ P62
4.0V ≤ VDD ≤ 5.5V、
IOL3=15.0mA
2.0
V
4.0V ≤ VDD ≤ 5.5V、
IOL3=5.0mA
0.4
V
2.7V ≤ VDD ≤ 5.5V、
IOL3=3.0mA
0.4
V
1.8V ≤ VDD ≤ 5.5V、
IOL3=2.0mA
0.4
V
1.6V ≤ VDD ≤ 5.5V、
IOL3=1.0mA
0.4
V
注意
在 N 沟道漏极开路模式中, P00、 P10 ~ P15、 P17、 P50 不输出高电平。
备注
在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
675
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (5/5)
项目
高电平输入漏电流
符号
ILIH1
MIN.
条件
P00、 P01、 P10 ~ P17、
TYP. MAX. 单位
VI=VDD
1
μA
1
μA
1
μA
10
μA
VI=VSS
–1
μA
–1
μA
–1
μA
–10
μA
100
kΩ
P30、P31、P40、P50、P51、
P60 ~ P62、 P70、 120、 147
ILIH2
P20 ~ P23、 P137、 RESET
VI=VDD
ILIH3
X1、 X2、 EXCLK
VI=VDD 输入端口和
外部时钟输入时
连接谐振器时
低电平输入漏电流
ILIL1
P00、 P01、 P10 ~ P17、
P30、P31、P40、P50、P51、
P60 ~ P62、 P70、 120、 147
ILIL2
P20 ~ P23、 P137、 RESET
VI=VSS
ILIL3
X1、 X2、 EXCLK
VI=VSS 输入端口和
外部时钟输入时
连接谐振器时
内部上拉电阻
RU
P00、 P01、 P10 ~ P17、
VI=VSS,输入端口时
10
20
P30、P31、P40、P50、P51、
P70、 P120、 P147
备注
在没有特别指定的情况下,复用引脚的特性和端口引脚的特性相同。
R01UH0629CJ0120 Rev.1.20
2019.06.28
676
R7F0C903-908
27.3.2
第 27 章 电特性 (TA=–40 ~ +85°C)
电源电流特性
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (1/2)
项目
电源电流注 1
TYP.
MAX.
单位
基本 VDD=5.0V
3.7
5.5
mA
运行 VDD=3.0V
3.7
5.5
基本 VDD=5.0V
运行 VDD=3.0V
2.7
4.0
2.7
4.0
通常 VDD=3.0V
1.2
1.8
运行 VDD=2.0V
1.2
1.8
通常 VDD=3.0V
1.2
1.7
模式注 4
运行 VDD=2.0V
1.2
1.7
HS (高速主) fMX=20MHz 注 2、
VDD=5.0V
模式注 4
通常 输入方波
3.0
4.6
运行 连接谐振器
3.2
4.8
fMX=20MHz 注 2、
VDD=3.0V
通常 输入方波
3.0
4.6
符号
IDD1
运行模式
HS (高速主)
fIH=24MHz 注 3
模式注 4
fIH=16MHz 注 3
LS (低速主)
fIH=8MHz 注 3
模式注 4
LV(低电压主)
LS (低速主)
模式注 4
注
MIN.
条件
fIH=4MHz 注 3
运行 连接谐振器
3.2
4.8
fMX=10MHz 注 2、
通常 输入方波
1.9
2.7
VDD=5.0V
运行 连接谐振器
1.9
2.7
fMX=10MHz 注 2、
VDD=3.0V
通常 输入方波
1.9
2.7
运行 连接谐振器
1.9
2.7
fMX=8MHz 注 2、
VDD=3.0V
通常 输入方波
1.1
1.7
运行 连接谐振器
1.1
1.7
fMX=8MHz 注 2、
通常 输入方波
1.1
1.7
VDD=2.0V
运行 连接谐振器
1.1
1.7
mA
mA
mA
mA
1. 这是流过 VDD 的总电流,包含输入引脚固定为 VDD 或者 VSS 状态的输入漏电流。 MAX. 值包含外围工作电流。但
是,不包含流到 A/D 转换器、LVD 电路、I/O 端口以及内部上拉或者下拉电阻的电流,也不包含改写数据闪存时的
电流。
2. 这是高速内部振荡器停止振荡的情况。
3. 这是高速系统时钟停止振荡的情况。
4. 工作电压范围、 CPU 工作频率和运行模式的关系如下所示:
HS (高速主)模式: 2.7V ≤ VDD ≤ 5.5V@1MHz ~ 24MHz
2.4V ≤ VDD ≤ 5.5V@1MHz ~ 16MHz
LS (低速主)模式: 1.8V ≤ VDD ≤ 5.5V@1MHz ~ 8MHz
LV (低电压主)模式:1.6V ≤ VDD ≤ 5.5V@1MHz ~ 4MHz
备注 1. fMX:高速系统时钟频率 (X1 时钟振荡频率或者外部主系统时钟频率)
2. fIH:高速内部振荡器的时钟频率
3. TYP. 值的温度条件是 TA=25°C。
R01UH0629CJ0120 Rev.1.20
2019.06.28
677
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V) (2/2)
项目
符号
电源电流注 1 IDD2 注 2 HALT
模式
单位
mA
0.44
1.28
VDD=3.0V
0.44
1.28
fIH=16MHz 注 4
VDD=5.0V
0.40
1.00
VDD=3.0V
0.40
1.00
VDD=3.0V
260
530
模式注 6
VDD=2.0V
260
530
LV(低电压主) fIH=4MHz 注 4
VDD=3.0V
420
640
模式注 6
VDD=2.0V
420
640
HS (高速主) fMX=20MHz 注 3、
VDD=5.0V
模式注 6
输入方波
0.28
1.00
连接谐振器
0.45
1.17
fMX=20MHz 注 3、
VDD=3.0V
输入方波
0.28
1.00
连接谐振器
0.45
1.17
fMX=10MHz 注 3、
输入方波
0.19
0.60
VDD=5.0V
fIH=8MHz 注 4
连接谐振器
0.26
0.67
fMX=10MHz 注 3、
输入方波
0.19
0.60
VDD=3.0V
连接谐振器
0.26
0.67
fMX=8MHz 注 3、
VDD=3.0V
输入方波
95
330
连接谐振器
145
380
输入方波
95
330
连接谐振器
145
380
TA=–40°C
0.18
0.50
TA=+25°C
0.23
0.50
TA=+50°C
0.30
1.10
TA=+70°C
0.46
1.90
TA=+85°C
0.75
3.30
模式注 6
fMX=8MHz 注 3、
VDD=2.0V
模式
MAX.
VDD=5.0V
LS (低速主)
IDD3 注 5 STOP
TYP.
HS (高速主) fIH=24MHz 注 4
模式注 6
LS (低速主)
注
MIN.
条件
μA
μA
mA
μA
μA
1. 这是流过 VDD 的总电流,包含输入引脚固定为 VDD 或者 VSS 状态的输入漏电流。 MAX. 值包含外围工作电流。但
是,不包含流到 A/D 转换器、LVD 电路、I/O 端口以及内部上拉或者下拉电阻的电流,也不包含改写数据闪存时的
电流。
2. 这是执行闪存中的 HALT 指令的情况。
3. 这是高速内部振荡器停止振荡的情况。
4. 这是高速系统时钟停止振荡的情况。
5. 不包含流到 12 位间隔定时器和看门狗定时器的电流。
6. 工作电压范围、 CPU 工作频率和运行模式的关系如下所示:
HS (高速主)模式: 2.7V ≤ VDD ≤ 5.5V@1MHz ~ 24MHz
2.4V ≤ VDD ≤ 5.5V@1MHz ~ 16MHz
LS (低速主)模式: 1.8V ≤ VDD ≤ 5.5V@1MHz ~ 8MHz
LV (低电压主)模式:1.6V ≤ VDD ≤ 5.5V@1MHz ~ 4MHz
备注 1. fMX:高速系统时钟频率 (X1 时钟振荡频率或者外部主系统时钟频率)
2. fIH:高速内部振荡器的时钟频率
3. STOP 模式以外的 TYP. 值的温度条件是 TA=25°C。
R01UH0629CJ0120 Rev.1.20
2019.06.28
678
R7F0C903-908
(1)
第 27 章 电特性 (TA=–40 ~ +85°C)
外围功能
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
条件
MIN.
TYP.
MAX.
单位
低速内部振荡器工作电流 IFIL 注 1
0.20
μA
12 位间隔定时器工作电流 IIT 注 1、 2、 3
0.02
μA
0.22
μA
看门狗定时器工作电流
IWDT 注 1、 2、 4 fIL=15kHz
A/D 转换器工作电流
IADC 注 1、 5
最高速转换时
标准模式,
AVREFP=VDD=5.0V
1.3
1.7
mA
低电压模式,
AVREFP=VDD=3.0V
0.5
0.7
mA
A/D 转换器基准电压电流
IADREF 注 1
75.0
μA
LVD 工作电流
ILVD 注 1、 6
0.08
μA
自编程工作电流
IFSP 注 1、 8
2.50
12.20
mA
BGO 电流
IBGO 注 1、 7
2.50
12.20
mA
SNOOZE 工作电流
ISNOZ 注 1
模式转移中注 9
0.50
0.60
mA
转换运行中,低电压模式
AVREFP=VDD=3.0V
1.20
1.44
0.70
0.84
ADC 运行
CSI/UART 运行
注
1. 这是流过 VDD 的电流。
2. 这是高速内部振荡器和高速系统时钟停止振荡的情况。
3. 这是只流到 12 位间隔定时器的电流(不包含低速内部振荡器的工作电流)。在运行模式或者 HALT 模式中 12 位间
隔定时器运行的情况下,RL78 微控制器的电流值为 IDD1 或者 IDD2 加上 IIT 的值。另外,当选择低速内部振荡器时,
必须加上 IFIL。
4. 这是只流到看门狗定时器的电流 (包含低速内部振荡器的工作电流)。在看门狗定时器运行的情况下, RL78 微控制
器的电流值为 IDD1 或者 IDD2 或者 IDD3 加上 IWDT 的值。
5. 这是只流到 A/D 转换器的电流。在运行模式或者 HALT 模式中 A/D 转换器运行的情况下,RL78 微控制器的电流值
为 IDD1 或者 IDD2 加上 IADC 的值。
6. 这是只流到 LVD 电路的电流。在 LVD 电路运行的情况下, RL78 微控制器的电流值为 IDD1 或者 IDD2 或者 IDD3 加
上 ILVD 的值。
7. 这是改写数据闪存时的电流。
9. 这是自编程时的电流。
10. 有关 SNOOZE 模式的转移时间,请参照 “16.3.3 SNOOZE 模式 ”。
备注 1. fIL:低速内部振荡器的时钟频率
2. fCLK:CPU/ 外围硬件的时钟频率
3. TYP. 值的温度条件是 TA=25°C。
R01UH0629CJ0120 Rev.1.20
2019.06.28
679
R7F0C903-908
27.4
第 27 章 电特性 (TA=–40 ~ +85°C)
AC 特性
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
指令周期 (最短指
令执行时间)
MAX.
单位
0.03125
1
μs
0.0625
1
μs
0.125
1
μs
LV(低电压主)模式 1.6V ≤ VDD ≤ 5.5V
0.25
1
μs
HS (高速主)模式 2.7V ≤ VDD ≤ 5.5V
0.03125
1
μs
2.4V ≤ VDD < 2.7V
0.0625
1
μs
LS (低速主)模式 1.8V ≤ VDD ≤ 5.5V
0.125
1
μs
LV(低电压主)模式 1.8V ≤ VDD ≤ 5.5V
0.25
1
μs
2.7V ≤ VDD ≤ 5.5V
1.0
20.0
MHz
2.4V ≤ VDD < 2.7V
1.0
16.0
MHz
1.8V ≤ VDD < 2.4V
1.0
8.0
MHz
1.6V ≤ VDD < 1.8V
1.0
4.0
MHz
2.7V ≤ VDD ≤ 5.5V
24
ns
2.4V ≤ VDD < 2.7V
30
ns
1.8V ≤ VDD < 2.4V
60
ns
1.6V ≤ VDD < 1.8V
120
ns
1/fMCK
+10
ns
符号
TCY
主系统时钟 HS (高速主)模式 2.7V ≤ VDD ≤ 5.5V
(fMAIN)
2.4V ≤ VDD < 2.7V
运行
LS (低速主)模式 1.8V ≤ VDD ≤ 5.5V
自编程时
外部系统时钟频率
外部系统时钟输入
的高低电平宽度
fEX
tEXH、
tEXL
TI00 ~ TI07 输入
的高低电平宽度
tTIH、
tTIL
TO00 ~ TO07
的输出频率
fTO
fPCL
12
MHz
2.7V ≤ VDD < 4.0V
8
MHz
1.8V ≤ VDD < 2.7V
4
MHz
1.6V ≤ VDD < 1.8V
2
MHz
1.8V ≤ VDD ≤ 5.5V
4
MHz
1.6V ≤ VDD < 1.8V
2
MHz
LV (低电压主)模式
1.6V ≤ VDD ≤ 5.5V
2
MHz
HS (高速主)模式
4.0V ≤ VDD ≤ 5.5V
16
MHz
2.7V ≤ VDD < 4.0V
8
MHz
1.8V ≤ VDD < 2.7V
4
MHz
1.6V ≤ VDD < 1.8V
2
MHz
1.8V ≤ VDD ≤ 5.5V
4
MHz
1.6V ≤ VDD < 1.8V
2
MHz
1.8V ≤ VDD ≤ 5.5V
4
MHz
1.6V ≤ VDD < 1.8V
2
MHz
LS (低速主)模式
LV (低电压主)模式
中断输入的高低
电平宽度
tINTH、 INTP0
tINTL
INTP1 ~ INTP5
RESET 的低电平
宽度
tRSL
备注
TYP.
4.0V ≤ VDD ≤ 5.5V
HS (高速主)模式
LS (低速主)模式
PCLBUZ0、
PCLBUZ1
的输出频率
MIN.
条件
1.6V ≤ VDD ≤ 5.5V
1
μs
1.6V ≤ VDD ≤ 5.5V
1
μs
10
μs
fMCK:定时器阵列单元的运行时钟频率
(这是定时器模式寄存器 mn (TMRmn)的CKSmn0 位和 CKSmn1位设定的运行时钟。
m:单元号 (m=0、 1) n:通道号 (n=0~ 7))
R01UH0629CJ0120 Rev.1.20
2019.06.28
680
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
主系统时钟运行时的最短指令执行时间
TCY vs VDD (HS (高速主)模式)
10
ઞᵕᰬ䰪 TCY[μs]
䘿儎䙕䜞ᥥ㦗ಞᰬ䫕Ⲻ߫
㠠㕌ぁⲺ߫
1.0
䘿儎䙕㌱㔕ᰬ䫕Ⲻ߫
0.1
0.0625
0.05
0.03125
0.01
0
1.0
2.0
3.0
2.4 2.7
⭫Ⓠ⭫ু
R01UH0629CJ0120 Rev.1.20
2019.06.28
4.0
5.0 5.5 6.0
VDD [V]
681
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
TCY vs VDD (LS (低速主)模式)
ઞᵕᰬ䰪 TCY [μs]
10
䘿儎䙕䜞ᥥ㦗ಞᰬ䫕Ⲻ߫
1.0
㠠㕌ぁⲺ߫
䘿儎䙕㌱㔕ᰬ䫕Ⲻ߫
0.125
0.1
0.01
0
1.0
2.0
1.8
3.0
4.0
5.0 5.5 6.0
⭫Ⓠ⭫ু VDD [V]
TCY vs VDD (LV (低电压主)模式)
ઞᵕᰬ䰪 TCY [μs]
10
1.0
䘿儎䙕䜞ᥥ㦗ಞᰬ䫕Ⲻ߫
㠠㕌ぁⲺ߫
䘿儎䙕㌱㔕ᰬ䫕Ⲻ߫
0.25
0.1
0.01
0
1.0
2.0
3.0
4.0
5.0 5.5 6.0
1.6 1.8
⭫Ⓠ⭫ু VDD [V]
R01UH0629CJ0120 Rev.1.20
2019.06.28
682
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
AC 时序测量点
VIH/VOH
VIH/VOH
⌟䞣⚍
VIL/VOL
VIL/VOL
外部系统时钟的时序
1/fEX
tEXL
tEXH
EXCLK
TI/TO 时序
tTIH
tTIL
TI00ЊTI07
1/fTO
TO00ЊTO07
中断请求的输入时序
tINTH
tINTL
INTP0ЊINTP5
RESET 的输入时序
tRSL
RESET
R01UH0629CJ0120 Rev.1.20
2019.06.28
683
R7F0C903-908
27.5
第 27 章 电特性 (TA=–40 ~ +85°C)
外围功能特性
AC 时序测量点
VIH/VOH
VIL/VOL
27.5.1
(1)
VIH/VOH
⌟䞣⚍
VIL/VOL
串行阵列单元
同电位的通信 (UART 模式)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
传送速率注 1
MAX.
MAX.
MIN.
MAX.
fMCK/6
fMCK/6
fMCK/6
bps
5.3
1.3
0.6
Mbps
fMCK/6
fMCK/6
fMCK/6
bps
5.3
1.3
0.6
Mbps
fMCK/6
fMCK/6
fMCK/6
bps
5.3
1.3
0.6
Mbps
—
fMCK/6
fMCK/6
bps
—
1.3
0.6
Mbps
2.4V ≤ VDD ≤ 5.5V
最大传送速率的理论值
fMCK=fCLK
MIN.
单位
注2
1.8V ≤ VDD ≤ 5.5V
最大传送速率的理论值
fMCK=fCLK 注 2
1.7V ≤ VDD ≤ 5.5V
最大传送速率的理论值
fMCK=fCLK 注 2
1.6V ≤ VDD ≤ 5.5V
最大传送速率的理论值
fMCK=fCLK
注
注2
1. SNOOZE 模式中的传送速率只为 4800bps。
2. CPU/ 外围硬件时钟 (fCLK)的最大工作频率如下所示:
HS (高速主)模式:
24MHz (2.7V ≤ VDD ≤ 5.5V)
16MHz (2.4V ≤ VDD ≤ 5.5V)
LS (低速主)模式:
8MHz (1.8V ≤ VDD ≤ 5.5V)
LV (低电压主)模式: 4MHz (1.6V ≤ VDD ≤ 5.5V)
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 RxDq 引脚选择为通常的输入缓冲器
并且将 TxDq 引脚选择为通常的输出模式。
R01UH0629CJ0120 Rev.1.20
2019.06.28
684
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
UART 模式的连接图 (同电位的通信)
Rx
TxDq
⭞ᡭ䇴༽
RL78ᗤಞ
Tx
RxDq
UART模式的位宽 (同电位的通信)(参考)
1Ֆ䘷䙕⦽
儎քփᇳ
⌘⢯⦽ᇯ䇮䈥ᐤ
TxDq
RxDq
备注 1. q:UART 号 (q=0 ~ 2) g:PIM、 POM 号 (g=0、 1)
2. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00 ~ 03、 10 ~ 13))
R01UH0629CJ0120 Rev.1.20
2019.06.28
685
R7F0C903-908
(2)
第 27 章 电特性 (TA=–40 ~ +85°C)
同电位的通信 (CSI 模式)(主控模式, SCKp…… 内部时钟输出,只对应 CSI00)
(TA=–40 ~ +85°C、 2.7V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主)
项目
符号
模式
条件
MIN.
SCKp 周期
电平宽度
SIp 准备时间
MAX.
MIN.
模式
MAX.
MIN.
单位
MAX.
62.5
250
500
ns
2.7V ≤ VDD ≤ 5.5V
83.3
250
500
ns
tKH1、 4.0V ≤ VDD ≤ 5.5V
tKL1
tKCY1/2
tKCY1/2
tKCY1/2
ns
–7
–50
–50
2.7V ≤ VDD ≤ 5.5V
tKCY1/2
tKCY1/2
tKCY1/2
–10
–50
–50
4.0V ≤ VDD ≤ 5.5V
23
110
110
ns
2.7V ≤ VDD ≤ 5.5V
33
110
110
ns
2.7V ≤ VDD ≤ 5.5V
10
10
10
ns
tSIK1
(对 SCKp↑)
注1
SIp 保持时间
模式
tKCY1 ≥ 2/fCLK 4.0V ≤ VDD ≤ 5.5V
tKCY1
时间
SCKp 高低
LS (低速主) LV (低电压主)
tKSI1
ns
(对 SCKp↑)
注2
SCKp↓→SOp tKSO1
C=20pF 注 4
10
10
10
ns
输出延迟时间
注3
注
1. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
2. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
3. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↑”。
4. C 是 SCKp、 SOp 输出线的负载电容。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚选择为通常的输入缓冲器并
且将 SOp 引脚和 SCKp 引脚选择为通常的输出模式。
备注 1. 此值只对应不使用 CSI00 的外围 I/O 重定向功能的情况。
2. p:CSI 号 (p=00) m:单元号 (m=0) n:通道号 (n=0) g:PIM、 POM 号 (g=1)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。 m:单元号、 n:通道号 (mn=00))
R01UH0629CJ0120 Rev.1.20
2019.06.28
686
R7F0C903-908
(3)
第 27 章 电特性 (TA=–40 ~ +85°C)
同电位的通信 (CSI 模式)(主控模式, SCKp…… 内部时钟输出)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
条件
HS (高速主)
模式
MIN.
SCKp 周期
时间
SCKp 高低
电平宽度
MAX.
LS (低速主) LV (低电压主)
模式
模式
单位
MIN. MAX.
MIN. MAX.
tKCY1 ≥ 4/fCLK 2.7V ≤ VDD ≤ 5.5V
125
500
1000
ns
2.4V ≤ VDD ≤ 5.5V
250
500
1000
ns
1.8V ≤ VDD ≤ 5.5V
500
500
1000
ns
1.7V ≤ VDD ≤ 5.5V
1000
1000
1000
ns
1.6V ≤ VDD ≤ 5.5V
—
1000
1000
ns
tKH1、 4.0V ≤ VDD ≤ 5.5V
tKL1
tKCY1/2
–12
tKCY1/2
–50
tKCY1/2
–50
ns
2.7V ≤ VDD ≤ 5.5V
tKCY1/2
–18
tKCY1/2
–50
tKCY1/2
–50
ns
2.4V ≤ VDD ≤ 5.5V
tKCY1/2
–38
tKCY1/2
–50
tKCY1/2
–50
ns
1.8V ≤ VDD ≤ 5.5V
tKCY1/2
–50
tKCY1/2
–50
tKCY1/2
–50
ns
1.7V ≤ VDD ≤ 5.5V
tKCY1/2
–100
tKCY1/2
–100
tKCY1/2
–100
ns
1.6V ≤ VDD ≤ 5.5V
—
tKCY1/2
–100
tKCY1/2
–100
ns
4.0V ≤ VDD ≤ 5.5V
44
110
110
ns
2.7V ≤ VDD ≤ 5.5V
44
110
110
ns
2.4V ≤ VDD ≤ 5.5V
75
110
110
ns
1.8V ≤ VDD ≤ 5.5V
110
110
110
ns
1.7V ≤ VDD ≤ 5.5V
220
220
220
ns
tKCY1
SIp 准备时间 tSIK1
(对 SCKp↑)
注1
1.6V ≤ VDD ≤ 5.5V
—
220
220
ns
1.7V ≤ VDD ≤ 5.5V
19
19
19
ns
注2
1.6V ≤ VDD ≤ 5.5V
—
19
19
ns
SCKp↓→SOp tKSO1
输出延迟时间
1.7V ≤ VDD ≤ 5.5V
C=30pF 注 4
25
25
25
ns
1.6V ≤ VDD ≤ 5.5V
C=30pF 注 4
—
25
25
ns
SIp 保持时间
(对 SCKp↑)
注3
注
tKSI1
1. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
2. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
3. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↑”。
4. C 是 SCKp、 SOp 输出线的负载电容。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚选择为通常的输入缓冲器并
且将 SOp 引脚和 SCKp 引脚选择为通常的输出模式。
备注 1. p:CSI 号 (p=00、 11、 20) m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
g:PIM、 POM 号 (g=0、 1、 5)
2. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00 ~ 03、 10 ~ 13))
R01UH0629CJ0120 Rev.1.20
2019.06.28
687
R7F0C903-908
(4)
第 27 章 电特性 (TA=–40 ~ +85°C)
同电位的通信 (CSI 模式)(从属模式, SCKp…… 外部时钟输入)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主) LS (低速主) LV (低电压主)
项目
符号
模式
条件
MIN.
SCKp 周期
MIN.
单位
MAX.
—
ns
fMCK ≤ 20MHz
6/fMCK
6/fMCK
6/fMCK
ns
2.7V ≤ VDD ≤ 5.5V 16MHz < fMCK
8/fMCK
—
—
ns
fMCK ≤ 16MHz
6/fMCK
6/fMCK
6/fMCK
ns
tKH2、 4.0V ≤ VDD ≤ 5.5V
tKL2
tKCY2/2
–7
6/fMCK
并且 500
6/fMCK
并且 750
6/fMCK
并且 1500
6/fMCK
并且 1500
tKCY2/2
–7
6/fMCK
并且 500
6/fMCK
并且 750
6/fMCK
并且 1500
6/fMCK
并且 1500
tKCY2/2
–7
ns
1.6V ≤ VDD ≤ 5.5V
6/fMCK
并且 500
6/fMCK
并且 750
6/fMCK
并且 1500
—
2.7V ≤ VDD ≤ 5.5V
tKCY2/2
–8
tKCY2/2
–8
tKCY2/2
–8
ns
1.8V ≤ VDD ≤ 5.5V
tKCY2/2
–18
tKCY2/2
–18
tKCY2/2
–18
ns
1.7V ≤ VDD ≤ 5.5V
tKCY2/2
–66
tKCY2/2
–66
tKCY2/2
–66
ns
1.6V ≤ VDD ≤ 5.5V
—
tKCY2/2
–66
tKCY2/2
–66
ns
2.7V ≤ VDD ≤ 5.5V
1/fMCK
+20
1/fMCK
+30
1/fMCK
+30
ns
1.8V ≤ VDD ≤ 5.5V
1/fMCK
+30
1/fMCK
+30
1/fMCK
+30
ns
1.7V ≤ VDD ≤ 5.5V
1/fMCK
+40
1/fMCK
+40
1/fMCK
+40
ns
1.6V ≤ VDD ≤ 5.5V
—
1/fMCK
+40
1/fMCK
+40
ns
1.8V ≤ VDD ≤ 5.5V
1/fMCK
+31
1/fMCK
+31
1/fMCK
+31
ns
1.7V ≤ VDD ≤ 5.5V
1/fMCK
+250
1/fMCK
+250
1/fMCK
+250
ns
1.6V ≤ VDD ≤ 5.5V
—
1/fMCK
+250
1/fMCK
+250
ns
1.7V ≤ VDD ≤ 5.5V
tSIK2
(对 SCKp↑)
注1
SIp 保持时间
MAX.
—
1.8V ≤ VDD ≤ 5.5V
SIp 准备时间
MIN.
8/fMCK
2.4V ≤ VDD ≤ 5.5V
电平宽度
MAX.
模式
4.0V ≤ VDD ≤ 5.5V 20MHz < fMCK
tKCY2
时间注 5
SCKp 高低
模式
tKSI2
(对 SCKp↑)
注2
SCKp↓→SOp tKSO2
输出延迟时间
C=30pF 注 4
注3
R01UH0629CJ0120 Rev.1.20
2019.06.28
ns
ns
ns
ns
2.7V ≤ VDD ≤ 5.5V
2/fMCK
+44
2/fMCK
+110
2/fMCK
+110
ns
2.4V ≤ VDD ≤ 5.5V
2/fMCK
+75
2/fMCK
+110
2/fMCK
+110
ns
1.8V ≤ VDD ≤ 5.5V
2/fMCK
+100
2/fMCK
+110
2/fMCK
+110
ns
1.7V ≤ VDD ≤ 5.5V
2/fMCK
+220
2/fMCK
+220
2/fMCK
+220
ns
1.6V ≤ VDD ≤ 5.5V
—
2/fMCK
+220
2/fMCK
+220
ns
688
R7F0C903-908
注
第 27 章 电特性 (TA=–40 ~ +85°C)
1. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
2. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
3. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↑”。
4. C 是 SOp 输出线的负载电容。
5. SNOOZE 模式中的传送速率为 MAX. 1Mbps。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚和 SCKp 引脚选择为通常的
输入缓冲器并且将 SOp 引脚选择为通常的输出模式。
备注 1. p:CSI 号 (p=00、 11、 20) m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
g:PIM、 POM 号 (g=0、 1、 5)
2. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00 ~ 03、 10 ~ 13))
R01UH0629CJ0120 Rev.1.20
2019.06.28
689
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
CSI模式的连接图 (同电位的通信)
SCK
SCKp
RL78ᗤಞ
SIp
SO
SOp
SI
⭞ᡭ䇴༽
CSI模式的串行传送时序 (同电位的通信)
(DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1的情况)
tKCY1, 2
tKL1, 2
tKH1, 2
SCKp
tSIK1, 2
SIp
tKSI1, 2
䗉ޛᮦᦤ
tKSO1, 2
䗉࠰ᮦᦤ
SOp
CSI模式的串行传送时序 (同电位的通信)
(DAPmn=0、 CKPmn=1 或者 DAPmn=1、 CKPmn=0的情况)
tKCY1, 2
tKH1, 2
tKL1, 2
SCKp
tSIK1, 2
SIp
tKSI1, 2
䗉ޛᮦᦤ
tKSO1, 2
SOp
䗉࠰ᮦᦤ
备注 1. p:CSI 号 (p=00、 11、 20)
2. m:单元号、 n:通道号 (mn=00 ~ 03、 10 ~ 13)
R01UH0629CJ0120 Rev.1.20
2019.06.28
690
R7F0C903-908
(5)
第 27 章 电特性 (TA=–40 ~ +85°C)
同电位的通信 (简易 I2C 模式) (1/2)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
SCLr 时钟频率
fSCL
2.7V ≤ VDD ≤ 5.5V、
MAX.
MIN.
MAX.
MIN.
单位
MAX.
1000 注 1
400 注 1
400 注 1
kHz
400 注 1
400 注 1
400 注 1
kHz
300 注 1
300 注 1
300 注 1
kHz
250 注 1
250 注 1
250 注 1
kHz
—
250 注 1
250 注 1
kHz
Cb=50pF、 Rb=2.7kΩ
1.8V ≤ VDD ≤ 5.5V、
Cb=100pF、 Rb=3kΩ
1.8V ≤ VDD < 2.7V、
Cb=100pF、 Rb=5kΩ
1.7V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
1.6V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
SCLr=“L” 的
tLOW
2.7V ≤ VDD ≤ 5.5V、
475
1150
1150
ns
1150
1150
1150
ns
1550
1550
1550
ns
1850
1850
1850
ns
—
1850
1850
ns
475
1150
1150
ns
1150
1150
1150
ns
1550
1550
1550
ns
1850
1850
1850
ns
—
1850
1850
ns
Cb=50pF、 Rb=2.7kΩ
保持时间
1.8V ≤ VDD ≤ 5.5V、
Cb=100pF、 Rb=3kΩ
1.8V ≤ VDD < 2.7V、
Cb=100pF、 Rb=5kΩ
1.7V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
1.6V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
SCLr=“H” 的
保持时间
tHIGH
2.7V ≤ VDD ≤ 5.5V、
Cb=50pF、 Rb=2.7kΩ
1.8V ≤ VDD ≤ 5.5V、
Cb=100pF、 Rb=3kΩ
1.8V ≤ VDD < 2.7V、
Cb=100pF、 Rb=5kΩ
1.7V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
1.6V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
R01UH0629CJ0120 Rev.1.20
2019.06.28
691
R7F0C903-908
(5)
第 27 章 电特性 (TA=–40 ~ +85°C)
同电位的通信 (简易 I2C 模式) (2/2)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
数据准备时间
(接收时)
MAX.
(发送时)
MAX.
MIN.
tSU:DAT 2.7V ≤ VDD ≤ 5.5V、
1/fMCK
1/fMCK
1/fMCK
Cb=50pF、 Rb=2.7kΩ
+85 注 2
+145 注 2
+145 注 2
1.8V ≤ VDD ≤ 5.5V、
1/fMCK
1/fMCK
1/fMCK
Cb=100pF、 Rb=3kΩ
+145 注 2
+145 注 2
+145 注 2
1.8V ≤ VDD < 2.7V、
1/fMCK
1/fMCK
1/fMCK
Cb=100pF、 Rb=5kΩ
+230 注 2
+230 注 2
+230 注 2
1.7V ≤ VDD < 1.8V、
1/fMCK
1/fMCK
1/fMCK
Cb=100pF、 Rb=5kΩ
+290 注 2
+290 注 2
+290 注 2
1.6V ≤ VDD < 1.8V、
—
Cb=100pF、 Rb=5kΩ
数据保持时间
MIN.
tHD:DAT 2.7V ≤ VDD ≤ 5.5V、
1/fMCK
1/fMCK
+290 注 2
+290 注 2
单位
MAX.
ns
ns
ns
ns
ns
0
305
0
305
0
305
ns
0
355
0
355
0
355
ns
0
405
0
405
0
405
ns
0
405
0
405
0
405
ns
0
405
0
405
ns
Cb=50pF、 Rb=2.7kΩ
1.8V ≤ VDD ≤ 5.5V、
Cb=100pF、 Rb=3kΩ
1.8V ≤ VDD < 2.7V、
Cb=100pF、 Rb=5kΩ
1.7V ≤ VDD < 1.8V、
Cb=100pF、 Rb=5kΩ
1.6V ≤ VDD < 1.8V、
—
Cb=100pF、 Rb=5kΩ
注
1. 并且必须至少设定为 fMCK/4。
2. fMCK 的设定值不能超过 SCLr=“L” 和 SCLr=“H” 的保持时间。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 h (POMh),将 SDAr 引脚选择为通常的输入缓冲器
和 N 沟道漏极开路输出 (VDD 耐压)模式,并且将 SCLr 引脚选择为通常的输出模式。
R01UH0629CJ0120 Rev.1.20
2019.06.28
692
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
简易 I2C 模式的连接图 (同电位的通信)
VDD
Rb
SDA
SDAr
⭞ᡭ䇴༽
RL78ᗤಞ
SCL
SCLr
简易 I2C 模式的串行传送时序 (同电位的通信)
1/fSCL
tLOW
tHIGH
SCLr
SDAr
tHD : DAT
tSU : DAT
备注 1. Rb[Ω]:通信线 (SDAr)的上拉电阻值 Cb[F]:通信线 (SCLr、 SDAr)的负载电容值
2. r:IIC 号 (r=00、 11、 20) g:PIM 号 (g=0、 1)
h:POM 号 (h=0、 1、 5)
3. fMCK:串行阵列单元的运行时钟频率
(这是 SMRmn 寄存器的 CKSmn 位设定的运行时钟。 m:单元号 (m=0、 1) n:通道号 (n=0 ~ 3)
mn=00 ~ 03、 10 ~ 13)
R01UH0629CJ0120 Rev.1.20
2019.06.28
693
R7F0C903-908
(6)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位 (1.8V、 2.5V、 3V)的通信 (UART 模式) (1/2)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
传送速率
接收 4.0V ≤ VDD ≤ 5.5V、
MAX.
MIN.
MAX.
MIN.
单位
MAX.
fMCK/6注1
fMCK/6 注1
fMCK/6注1
bps
5.3
1.3
0.6
Mbps
fMCK/6注1
fMCK/6 注1
fMCK/6注1
bps
5.3
1.3
0.6
Mbps
fMCK/6
注 1、 2
fMCK/6
fMCK/6
注 1、 2
bps
注 1、 2
5.3
1.3
0.6
Mbps
2.7V ≤ Vb ≤ 4.0V
最大传送速率的理论值
fMCK=fCLK
注3
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V
最大传送速率的理论值
fMCK=fCLK
注3
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V
最大传送速率的理论值
fMCK=fCLK
注
注3
1. SNOOZE 模式中的传送速率只为 4800bps。
2. 必须在 VDD ≥ Vb 的情况下使用。
3. CPU/ 外围硬件时钟 (fCLK)的最大工作频率如下所示:
HS (高速主)模式:
24MHz (2.7V ≤ VDD ≤ 5.5V)
16MHz (2.4V ≤ VDD ≤ 5.5V)
LS (低速主)模式:
8MHz (1.8V ≤ VDD ≤ 5.5V)
LV (低电压主)模式: 4MHz (1.6V ≤ VDD ≤ 5.5V)
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 RxDq 引脚选择为 TTL 输入缓冲器并
且将TxDq引脚选择为N沟道漏极开路输出(VDD 耐压)模式。VIH 和VIL 请参照选择为TTL输入缓冲器时的DC特性。
备注 1. Vb[V]:通信线的电压
2. q:UART 号 (q=0 ~ 2) g:PIM、 POM 号 (g=0、 1)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00 ~ 03、 10 ~ 13))
4. 当外围 I/O 重定向寄存器 (PIOR)的 bit1 (PIOR1)为 “1” 时,不能使用 UART2 进行不同电位的通信。
R01UH0629CJ0120 Rev.1.20
2019.06.28
694
R7F0C903-908
(6)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位 (1.8V、 2.5V、 3V)的通信 (UART 模式) (2/2)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
传送速率
发送 4.0V ≤ VDD ≤ 5.5V、
MAX.
MIN.
MAX.
MIN.
单位
MAX.
注1
注1
注1
bps
2.8 注 2
2.8 注 2
2.8 注 2
Mbps
注3
注3
注3
bps
1.2 注 4
1.2 注 4
1.2 注 4
Mbps
注 5、 6
注 5、 6
注 5、 6
bps
0.43 注 7
0.43 注 7
0.43 注 7
Mbps
2.7V ≤ Vb ≤ 4.0V
最大传送速率的理论值
Cb=50pF、 Rb=1.4kΩ、
Vb=2.7V
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V
最大传送速率的理论值
Cb=50pF、 Rb=2.7kΩ、
Vb=2.3V
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V
最大传送速率的理论值
Cb=50pF、 Rb=5.5kΩ、
Vb=1.6V
注
1. fMCK/6 和用以下计算式算出的最大传送速率中的较小的值为有效的最大传送速率。
4.0V ≤ VDD ≤ 5.5V、 2.7V ≤ Vb ≤ 4.0V 时的传送速率计算式:
1
最大传送速率 =
{–Cb×Rb×ln(1–
2.2
)}×3
Vb
1
波特率容许误差 (理论值) =
传送速率 ×2
(
[bps]
–{–Cb×Rb×ln(1–
1
传送速率
2.2
Vb
)}
×100
[%]
)× 传送位数
※ 此值为发送方和接收方的相对误差的理论值。
2. 作为例子,此值是满足条件栏中条件的计算值。有关用户条件下的最大传送速率,必须根据注 1 进行计算。
3. fMCK/6 和用以下计算式算出的最大传送速率中的较小的值为有效的最大传送速率。
2.7V ≤ VDD < 4.0V、 2.3V ≤ Vb ≤ 2.7V 时的传送速率计算式:
1
最大传送速率 =
{–Cb×Rb×ln(1–
2.0
)}×3
Vb
1
波特率容许误差 (理论值) =
传送速率 ×2
(
[bps]
– {–Cb×Rb×ln(1–
1
传送速率
2.0
Vb
)}
×100
[%]
)× 传送位数
※ 此值为发送方和接收方的相对误差的理论值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
695
R7F0C903-908
注
第 27 章 电特性 (TA=–40 ~ +85°C)
4. 作为例子,此值是满足条件栏中条件的计算值。有关用户条件下的最大传送速率,必须根据注 3 进行计算。
5. 必须在 VDD ≥ Vb 的情况下使用。
6. fMCK/6 和用以下计算式算出的最大传送速率中的较小的值为有效的最大传送速率。
1.8V ≤ VDD < 3.3V、 1.6V ≤ Vb ≤ 2.0V 时的传送速率计算式:
1
最大传送速率 =
{–Cb×Rb×ln(1–
1.5
)}×3
Vb
1
波特率容许误差 (理论值) =
传送速率 ×2
(
[bps]
– {–Cb×Rb×ln(1–
1
传送速率
1.5
Vb
)}
×100
[%]
)× 传送位数
※ 此值为发送方和接收方的相对误差的理论值。
7. 作为例子,此值是满足条件栏中条件的计算值。有关用户条件下的最大传送速率,必须根据注 6 进行计算。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 RxDq 引脚选择为 TTL 输入缓冲器并
且将TxDq引脚选择为N沟道漏极开路输出(VDD 耐压)模式。VIH 和VIL 请参照选择为TTL输入缓冲器时的DC特性。
UART 模式的连接图 (不同电位的通信)
Vb
Rb
TxDq
Rx
⭞ᡭ䇴༽
RL78ᗤಞ
RxDq
R01UH0629CJ0120 Rev.1.20
2019.06.28
Tx
696
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
UART 模式的位宽 (不同电位的通信)(参考)
1Ֆ䘷䙕⦽
քփᇳ
儎փᇳ
⌘⢯⦽ᇯ䇮䈥ᐤ
TxDq
1Ֆ䘷䙕⦽
儎քփᇳ
⌘⢯⦽ᇯ䇮䈥ᐤ
RxDq
备注 1. Rb[Ω]:通信线 (TxDq)的上拉电阻值 Cb[F]:通信线 (TxDq)的负载电容值 Vb[V]:通信线的电压
2. q:UART 号 (q=0 ~ 2) g:PIM、 POM 号 (g=0、 1)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00 ~ 03、 10 ~ 13))
4. 当外围 I/O 重定向寄存器 (PIOR)的 bit1 (PIOR1)为 “1” 时,不能使用 UART2 进行不同电位的通信。
R01UH0629CJ0120 Rev.1.20
2019.06.28
697
R7F0C903-908
(7)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位(2.5V、3V)的通信(CSI 模式)(主控模式,SCKp…… 内部时钟输出,只限于 CSI00)(1/2)
(TA=–40 ~ +85°C、 2.7V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主) LS (低速主) LV (低电压主)
项目
符号
模式
条件
MIN.
SCKp 周期
tKCY1
tKCY1 ≥ 2/fCLK 4.0V ≤ VDD ≤ 5.5V、
模式
MAX.
MIN.
模式
MAX.
MIN.
单位
MAX.
200
1150
1150
ns
300
1150
1150
ns
tKCY1/2
tKCY1/2
tKCY1/2
ns
–50
–50
–50
tKCY1/2
tKCY1/2
tKCY1/2
–120
–120
–120
tKCY1/2
tKCY1/2
tKCY1/2
–7
–50
–50
tKCY1/2
tKCY1/2
tKCY1/2
–10
–50
–50
58
479
479
ns
121
479
479
ns
10
10
10
ns
10
10
10
ns
2.7V ≤ Vb ≤ 4.0V、
时间
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
SCKp 高电平
tKH1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
宽度
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
ns
Cb=20pF、 Rb=2.7kΩ
SCKp 低电平
tKL1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
宽度
ns
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
ns
Cb=20pF、 Rb=2.7kΩ
SIp 准备时间
tSIK1
(对 SCKp↑)
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
注1
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
SIp 保持时间
tKSI1
(对 SCKp↑)
注1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
SCKp↓→SOp tKSO1
输出延迟时间
4.0V ≤ VDD ≤ 5.5V、
注1
Cb=20pF、 Rb=1.4kΩ
60
60
60
ns
130
130
130
ns
2.7V ≤ Vb ≤ 4.0V、
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
R01UH0629CJ0120 Rev.1.20
2019.06.28
698
R7F0C903-908
(7)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位(2.5V、3V)的通信(CSI 模式)(主控模式,SCKp…… 内部时钟输出,只限于 CSI00)(2/2)
(TA=–40 ~ +85°C、 2.7V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
SIp 准备时间
tSIK1
(对 SCKp↓)
4.0V ≤ VDD ≤ 5.5V、
MAX.
MIN.
MAX.
MIN.
单位
MAX.
23
110
110
ns
33
110
110
ns
10
10
10
ns
10
10
10
ns
2.7V ≤ Vb ≤ 4.0V、
注2
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
SIp 保持时间
tKSI1
(对 SCKp↓)
注2
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
SCKp↑→SOp tKSO1
4.0V ≤ VDD ≤ 5.5V、
输出延迟时间
2.7V ≤ Vb ≤ 4.0V、
注2
Cb=20pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
10
10
10
ns
10
10
10
ns
2.3V ≤ Vb ≤ 2.7V、
Cb=20pF、 Rb=2.7kΩ
注
1. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。
2. 这是 DAPmn=0、 CKPmn=1 或者 DAPmn=1、 CKPmn=0 的情况。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚选择为 TTL 输入缓冲器并且
将 SOp 引脚和 SCKp 引脚选择为 N 沟道漏极开路输出 (VDD 耐压)模式。 VIH 和 VIL 请参照选择为 TTL 输入缓冲
器时的 DC 特性。
备注 1. Rb[Ω]:通信线(SCKp、SOp)的上拉电阻值 Cb[F]:通信线(SCKp、SOp)的负载电容值 Vb[V]:通信线的电压
2. p:CSI 号 (p=00) m:单元号 (m=0) n:通道号 (n=0) g:PIM、 POM 号 (g=1)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。 m:单元号、 n:通道号 (mn=00))
4. 此值只对应不使用 CSI00 的外围 I/O 重定向功能的情况。
R01UH0629CJ0120 Rev.1.20
2019.06.28
699
R7F0C903-908
(8)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位 (1.8V、 2.5V、 3V)的通信 (CSI 模式)(主控模式, SCKp…… 内部时钟输出) (1/3)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主) LS (低速主) LV (低电压主)
项目
符号
条件
模式
MIN.
SCKp 周期
tKCY1
MAX.
模式
MIN.
MAX.
模式
MIN.
单位
MAX.
300
1150
1150
ns
500
1150
1150
ns
1150
1150
1150
ns
tKCY1/2
tKCY1/2
tKCY1/2
ns
–75
–75
–75
tKCY1/2
tKCY1/2
tKCY1/2
–170
–170
–170
1.8V ≤ VDD < 3.3V、
tKCY1/2
tKCY1/2
tKCY1/2
1.6V ≤ Vb ≤ 2.0V 注、
–458
–458
–458
tKCY1/2
tKCY1/2
tKCY1/2
–12
–50
–50
tKCY1/2
tKCY1/2
tKCY1/2
–18
–50
–50
1.8V ≤ VDD < 3.3V、
tKCY1/2
tKCY1/2
tKCY1/2
1.6V ≤ Vb ≤ 2.0V 注、
–50
–50
–50
tKCY1 ≥ 4/fCLK 4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
时间
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注、
Cb=30pF、 Rb=5.5kΩ
SCKp 高电平
tKH1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
宽度
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
ns
Cb=30pF、 Rb=2.7kΩ
ns
Cb=30pF、 Rb=5.5kΩ
SCKp 低电平
宽度
tKL1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
ns
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
ns
Cb=30pF、 Rb=2.7kΩ
ns
Cb=30pF、 Rb=5.5kΩ
注
注意
必须在 VDD ≥ Vb 的情况下使用。
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚选择为 TTL 输入缓冲器并且
将 SOp 引脚和 SCKp 引脚选择为 N 沟道漏极开路输出 (VDD 耐压)模式。 VIH 和 VIL 请参照选择为 TTL 输入缓冲
器时的 DC 特性。
R01UH0629CJ0120 Rev.1.20
2019.06.28
700
R7F0C903-908
(8)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位 (1.8V、 2.5V、 3V)的通信 (CSI 模式)(主控模式, SCKp…… 内部时钟输出) (2/3)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
SIp 准备时间
tSIK1
(对 SCKp↑)
4.0V ≤ VDD ≤ 5.5V、
MAX.
MIN.
MAX.
MIN.
单位
MAX.
81
479
479
ns
177
479
479
ns
479
479
479
ns
19
19
19
ns
19
19
19
ns
19
19
19
ns
2.7V ≤ Vb ≤ 4.0V、
注1
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
SIp 保持时间
tKSI1
(对 SCKp↑)
注1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
SCKp↓→SOp tKSO1
输出延迟时间
注1
4.0V ≤ VDD ≤ 5.5V、
100
100
100
ns
195
195
195
ns
483
483
483
ns
2.7V ≤ Vb ≤ 4.0V、
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
注
1. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。
2. 必须在 VDD ≥ Vb 的情况下使用。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚选择为 TTL 输入缓冲器并且
将 SOp 引脚和 SCKp 引脚选择为 N 沟道漏极开路输出 (VDD 耐压)模式。 VIH 和 VIL 请参照选择为 TTL 输入缓冲
器时的 DC 特性。
R01UH0629CJ0120 Rev.1.20
2019.06.28
701
R7F0C903-908
(8)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位 (1.8V、 2.5V、 3V)的通信 (CSI 模式)(主控模式, SCKp…… 内部时钟输出) (3/3)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
SIp 准备时间
tSIK1
(对 SCKp↓)
4.0V ≤ VDD ≤ 5.5V、
MAX.
MIN.
MAX.
MIN.
单位
MAX.
44
110
110
ns
44
110
110
ns
110
110
110
ns
19
19
19
ns
19
19
19
ns
19
19
19
ns
2.7V ≤ Vb ≤ 4.0V、
注1
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
SIp 保持时间
tKSI1
(对 SCKp↓)
注1
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
SCKp↑→SOp tKSO1
输出延迟时间
注1
4.0V ≤ VDD ≤ 5.5V、
25
25
25
ns
25
25
25
ns
25
25
25
ns
2.7V ≤ Vb ≤ 4.0V、
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
注
1. 这是 DAPmn=0、 CKPmn=1 或者 DAPmn=1、 CKPmn=0 的情况。
2. 必须在 VDD ≥ Vb 的情况下使用。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚选择为 TTL 输入缓冲器并且
将 SOp 引脚和 SCKp 引脚选择为 N 沟道漏极开路输出 (VDD 耐压)模式。 VIH 和 VIL 请参照选择为 TTL 输入缓冲
器时的 DC 特性。
R01UH0629CJ0120 Rev.1.20
2019.06.28
702
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
CSI 模式的连接图 (不同电位的通信)
ψѱϊ
Vb
Rb
SCKp
RL78ᗤಞ
Vb
Rb
SCK
SIp
SO
SOp
SI
⭞ᡭ䇴༽
备注 1. Rb[Ω]:通信线(SCKp、SOp)的上拉电阻值 Cb[F]:通信线(SCKp、SOp)的负载电容值 Vb[V]:通信线的电压
2. p:CSI 号 (p=00、 20) m:单元号、 n:通道号 (mn=00、 01、 02、 10、 12、 13)
g:PIM、 POM 号 (g=0、 1、 5)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。 m:单元号、 n:通道号 (mn=00))
4. CSI11 不能进行不同电位的通信。要进行不同电位的通信时,必须使用其他 CSI。
R01UH0629CJ0120 Rev.1.20
2019.06.28
703
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
CSI模式的串行传送时序:主控模式 (不同电位的通信)
(DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1的情况)
tKCY1
tKL1
tKH1
SCKp
tSIK1
SIp
tKSI1
䕧᭄ܹ
tKSO1
䕧ߎ᭄
SOp
CSI模式的串行传送时序:主控模式 (不同电位的通信)
(DAPmn=0、 CKPmn=1 或者 DAPmn=1、 CKPmn=0的情况)
tKCY1
tKL1
tKH1
SCKp
tSIK1
SIp
tKSI1
䕧᭄ܹ
tKSO1
SOp
䕧ߎ᭄
备注 1. p:CSI 号 (p=00、 20) m:单元号、 n:通道号 (mn=00、 01、 02、 10、 12、 13)
g:PIM、 POM 号 (g=0、 1、 5)
2. CSI11 不能进行不同电位的通信。要进行不同电位的通信时,必须使用其他 CSI。
R01UH0629CJ0120 Rev.1.20
2019.06.28
704
R7F0C903-908
(9)
第 27 章 电特性 (TA=–40 ~ +85°C)
不同电位 (1.8V、 2.5V、 3V)的通信 (CSI 模式)(从属模式, SCKp…… 外部时钟输入)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
SCKp 周期
tKCY2
时间注 1
电平宽度
20MHz < fMCK ≤ 24MHz 12/fMCK
—
—
ns
8MHz < fMCK ≤ 20MHz 10/fMCK
—
—
ns
4MHz < fMCK ≤ 8MHz
8/fMCK
16/fMCK
—
ns
fMCK ≤ 4MHz
6/fMCK
10/fMCK
10/fMCK
ns
20/fMCK
—
—
ns
20MHz < fMCK ≤ 24MHz 16/fMCK
—
—
ns
16MHz < fMCK ≤ 20MHz 14/fMCK
—
—
ns
8MHz < fMCK ≤ 16MHz 12/fMCK
—
—
ns
4MHz < fMCK ≤ 8MHz
8/fMCK
16/fMCK
—
ns
fMCK ≤ 4MHz
6/fMCK
10/fMCK
10/fMCK
ns
48/fMCK
—
—
ns
1.6V ≤ Vb ≤ 2.0V 注 2 20MHz < f
MCK ≤ 24MHz 36/fMCK
—
—
ns
16MHz < fMCK ≤ 20MHz 32/fMCK
—
—
ns
8MHz < fMCK ≤ 16MHz 26/fMCK
—
—
ns
4MHz < fMCK ≤ 8MHz
16/fMCK
16/fMCK
—
ns
fMCK ≤ 4MHz
10/fMCK
10/fMCK
10/fMCK
ns
tKH2、 4.0V ≤ VDD ≤ 5.5V、 2.7V ≤ Vb ≤ 4.0V
tKL2
tKCY2/2
tKCY2/2
tKCY2/2
ns
–12
–50
–50
2.7V ≤ VDD < 4.0V、 2.3V ≤ Vb ≤ 2.7V
tKCY2/2
tKCY2/2
tKCY2/2
–18
–50
–50
tKCY2/2
tKCY2/2
tKCY2/2
–50
–50
–50
1/fMCK
1/fMCK
1/fMCK
+20
+30
+30
1/fMCK
1/fMCK
1/fMCK
+20
+30
+30
1/fMCK
1/fMCK
1/fMCK
+30
+30
+30
1/fMCK
1/fMCK
1/fMCK
+31
+31
+31
tSIK2
4.0V ≤ VDD ≤ 5.5V、 2.7V ≤ Vb ≤ 4.0V
(对 SCKp↑)
注3
2.7V ≤ VDD < 4.0V、 2.3V ≤ Vb ≤ 2.7V
1.8V ≤ VDD < 3.3V、 1.6V ≤ Vb ≤ 2.0V 注 2
SIp 保持时间
MAX.
ns
1.8V ≤ VDD < 3.3V、 1.6V ≤ Vb ≤ 2.0V 注 2
SIp 准备时间
MIN.
—
1.8V ≤ VDD < 3.3V、 24MHz < fMCK
SCKp 高低
MAX.
—
2.7V ≤ VDD < 4.0V、 24MHz < fMCK
2.3V ≤ Vb ≤ 2.7V
MIN.
14/fMCK
4.0V ≤ VDD ≤ 5.5V、 24MHz < fMCK
2.7V ≤ Vb ≤ 4.0V
MAX.
单位
tKSI2
(对 SCKp↑)
ns
ns
ns
ns
ns
ns
注4
SCKp↓→SOp tKSO2
输出延迟时间
注5
4.0V ≤ VDD ≤ 5.5V、 2.7V ≤ Vb ≤ 4.0V、
Cb=30pF、 Rb=1.4kΩ
2.7V ≤ VDD < 4.0V、 2.3V ≤ Vb ≤ 2.7V、
Cb=30pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、 1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=30pF、 Rb=5.5kΩ
R01UH0629CJ0120 Rev.1.20
2019.06.28
2/fMCK
2/fMCK
2/fMCK
+120
+573
+573
2/fMCK
2/fMCK
2/fMCK
+214
+573
+573
2/fMCK
2/fMCK
2/fMCK
+573
+573
+573
ns
ns
ns
705
R7F0C903-908
注
第 27 章 电特性 (TA=–40 ~ +85°C)
1. SNOOZE 模式中的传送速率为 MAX. 1Mbps。
2. 必须在 VDD ≥ Vb 的情况下使用。
3. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
4. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↓”。
5. 这是 DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1 的情况。在 DAPmn=0、 CKPmn=1 或者 DAPmn=1、
CKPmn=0 时,为 “ 对 SCKp↑”。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SIp 引脚和 SCKp 引脚选择为 TTL 输
入缓冲器并且将 SOp 引脚选择为 N 沟道漏极开路输出 (VDD 耐压)模式。 VIH 和 VIL 请参照选择为 TTL 输入缓冲
器时的 DC 特性。
CSI 模式的连接图 (不同电位的通信)
ψԄኔϊ
Vb
Rb
SCKp
RL78ᗤಞ
SCK
SIp
SO
SOp
SI
⭞ᡭ䇴༽
备注 1. Rb[Ω]:通信线 (SOp)的上拉电阻值 Cb[F]:通信线 (SOp)的负载电容值 Vb[V]:通信线的电压
2. p:CSI 号 (p=00、 20) m:单元号、 n:通道号 (mn=00、 01、 02、 10、 12、 13)
g:PIM、 POM 号 (g=0、 1、 5)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00、 01、 02、 10、 12、 13))
4. CSI11 不能进行不同电位的通信。要进行不同电位的通信时,必须使用其他 CSI。
R01UH0629CJ0120 Rev.1.20
2019.06.28
706
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
CSI模式的串行传送时序:从属模式 (不同电位的通信)
(DAPmn=0、 CKPmn=0 或者 DAPmn=1、 CKPmn=1的情况)
tKCY2
tKL2
tKH2
SCKp
tSIK2
SIp
tKSI2
䕧᭄ܹ
tKSO2
䕧ߎ᭄
SOp
CSI模式的串行传送时序:从属模式 (不同电位的通信)
(DAPmn=0、 CKPmn=1 或者 DAPmn=1、 CKPmn=0的情况)
tKCY2
tKL2
tKH2
SCKp
tSIK2
SIp
tKSI2
䕧᭄ܹ
tKSO2
SOp
䕧ߎ᭄
备注 1. p:CSI 号 (p=00、 20) m:单元号、 n:通道号 (mn=00、 01、 02、 10、 12、 13)
g:PIM、 POM 号 (g=0、 1、 5)
2. CSI11 不能进行不同电位的通信。要进行不同电位的通信时,必须使用其他 CSI。
R01UH0629CJ0120 Rev.1.20
2019.06.28
707
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(10) 不同电位 (1.8V、 2.5V、 3V)的通信 (简易 I2C 模式) (1/2)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
SCLr 时钟频率
SCLr=“L” 的
fSCL
tLOW
保持时间
SCLr=“H” 的
保持时间
tHIGH
MAX.
MIN.
MAX.
MIN.
单位
MAX.
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=50pF、 Rb=2.7kΩ
1000 注 1
300 注 1
300 注 1
kHz
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=50pF、 Rb=2.7kΩ
1000 注 1
300 注 1
300 注 1
kHz
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=100pF、 Rb=2.8kΩ
400 注 1
300 注 1
300 注 1
kHz
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=100pF、 Rb=2.7kΩ
400 注 1
300 注 1
300 注 1
kHz
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=100pF、 Rb=5.5kΩ
300 注 1
300 注 1
300 注 1
kHz
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=50pF、 Rb=2.7kΩ
475
1550
1550
ns
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=50pF、 Rb=2.7kΩ
475
1550
1550
ns
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=100pF、 Rb=2.8kΩ
1150
1550
1550
ns
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=100pF、 Rb=2.7kΩ
1150
1550
1550
ns
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=100pF、 Rb=5.5kΩ
1550
1550
1550
ns
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=50pF、 Rb=2.7kΩ
245
610
610
ns
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=50pF、 Rb=2.7kΩ
200
610
610
ns
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=100pF、 Rb=2.8kΩ
675
610
610
ns
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=100pF、 Rb=2.7kΩ
600
610
610
ns
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=100pF、 Rb=5.5kΩ
610
610
610
ns
R01UH0629CJ0120 Rev.1.20
2019.06.28
708
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
(10) 不同电位 (1.8V、 2.5V、 3V)的通信 (简易 I2C 模式) (2/2)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
HS (高速主)
LS (低速主)
LV (低电压主)
模式
模式
模式
条件
MIN.
数据准备时间
(接收时)
tSU:DAT 4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
MAX.
MIN.
MAX.
MIN.
1/fMCK
1/fMCK
1/fMCK
+135 注 3
+190 注 3
+190 注 3
单位
MAX.
ns
Cb=50pF、 Rb=2.7kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
1/fMCK
1/fMCK
1/fMCK
+135 注 3
+190 注 3
+190 注 3
1/fMCK
1/fMCK
1/fMCK
+190 注 3
+190 注 3
+190 注 3
ns
Cb=50pF、 Rb=2.7kΩ
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
ns
Cb=100pF、 Rb=2.8kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
1/fMCK
1/fMCK
1/fMCK
+190 注 3
+190 注 3
+190 注 3
ns
Cb=100pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1/fMCK
1.6V ≤ Vb ≤ 2.0V 注 2、 +190 注 3
1/fMCK
1/fMCK
+190 注 3
+190 注 3
ns
Cb=100pF、 Rb=5.5kΩ
数据保持时间
(发送时)
tHD:DAT 4.0V ≤ VDD ≤ 5.5V、
0
305
0
305
0
305
ns
0
305
0
305
0
305
ns
0
355
0
355
0
355
ns
0
355
0
355
0
355
ns
0
405
0
405
0
405
ns
2.7V ≤ Vb ≤ 4.0V、
Cb=50pF、 Rb=2.7kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=50pF、 Rb=2.7kΩ
4.0V ≤ VDD ≤ 5.5V、
2.7V ≤ Vb ≤ 4.0V、
Cb=100pF、 Rb=2.8kΩ
2.7V ≤ VDD < 4.0V、
2.3V ≤ Vb ≤ 2.7V、
Cb=100pF、 Rb=2.7kΩ
1.8V ≤ VDD < 3.3V、
1.6V ≤ Vb ≤ 2.0V 注 2、
Cb=100pF、 Rb=5.5kΩ
注
1. 并且必须至少设定为 fMCK/4。
2. 必须在 VDD ≥ Vb 的情况下使用。
3. fMCK 的设定值不能超过 SCLr=“L” 和 SCLr=“H” 的保持时间。
注意
通过端口输入模式寄存器 g (PIMg)和端口输出模式寄存器 g (POMg),将 SDAr 引脚选择为 TTL 输入缓冲器和
N 沟道漏极开路输出 (VDD 耐压)模式,并且将 SCLr 引脚选择为 N 沟道漏极开路输出 (VDD 耐压)模式。 VIH 和
VIL 请参照选择为 TTL 输入缓冲器时的 DC 特性。
R01UH0629CJ0120 Rev.1.20
2019.06.28
709
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
简易 I2C 模式连接图 (不同电位的通信)
Vb
Rb
Vb
Rb
SDA
SDAr
RL78ᗤಞ
⭞ᡭ䇴༽
SCL
SCLr
简易 I2C 模式串行传送时序 (不同电位的通信)
1/fSCL
tLOW
tHIGH
SCLr
SDAr
tHD : DAT
tSU : DAT
备注 1. Rb[Ω]:通信线(SDAr、SCLr)的上拉电阻值 Cb[F]:通信线(SDAr、SCLr)的负载电容值 Vb[V]:通信线的电压
2. r:IIC 号 (r=00、 20) g:PIM、 POM 号 (g=0、 1、 5)
3. fMCK:串行阵列单元的运行时钟频率
(这是串行模式寄存器 mn (SMRmn)的 CKSmn 位设定的运行时钟。
m:单元号、 n:通道号 (mn=00、 01、 02、 10、 12、 13))
R01UH0629CJ0120 Rev.1.20
2019.06.28
710
R7F0C903-908
27.5.2
(1)
第 27 章 电特性 (TA=–40 ~ +85°C)
串行接口 IICA
I2C 标准模式
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主)
项目
SCLA0 时钟
符号
fSCL
频率
LS (低速主) LV (低电压主)
模式
条件
模式
模式
单位
MIN.
MAX.
MIN.
MAX.
MIN.
MAX.
2.7V ≤ VDD ≤ 5.5V
0
100
0
100
0
100
kHz
fCLK ≥ 1MHz 1.8V ≤ VDD ≤ 5.5V
0
100
0
100
0
100
kHz
1.7V ≤ VDD ≤ 5.5V
0
100
0
100
0
100
kHz
0
100
0
100
kHz
标准模式:
—
1.6V ≤ VDD ≤ 5.5V
重新开始条件 tSU:STA 2.7V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
的准备时间
1.8V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
1.7V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
4.7
4.7
μs
—
1.6V ≤ VDD ≤ 5.5V
保持时间注 1
tHD:STA 2.7V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
1.8V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
1.7V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
4.0
4.0
μs
—
1.6V ≤ VDD ≤ 5.5V
SCLA0=“L” 的 tLOW
保持时间
2.7V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
1.8V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
1.7V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
4.7
4.7
μs
—
1.6V ≤ VDD ≤ 5.5V
SCLA0=“H”的 tHIGH
保持时间
2.7V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
1.8V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
1.7V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
4.0
4.0
μs
—
1.6V ≤ VDD ≤ 5.5V
数据准备时间 tSU:DAT 2.7V ≤ VDD ≤ 5.5V
250
250
250
ns
(接收时)
1.8V ≤ VDD ≤ 5.5V
250
250
250
ns
1.7V ≤ VDD ≤ 5.5V
250
250
250
ns
250
250
ns
—
1.6V ≤ VDD ≤ 5.5V
数据保持时间 tHD:DAT 2.7V ≤ VDD ≤ 5.5V
0
3.45
0
3.45
0
3.45
μs
(发送时)注 2
1.8V ≤ VDD ≤ 5.5V
0
3.45
0
3.45
0
3.45
μs
1.7V ≤ VDD ≤ 5.5V
0
3.45
0
3.45
0
3.45
μs
0
3.45
0
3.45
μs
—
1.6V ≤ VDD ≤ 5.5V
停止条件的
tSU:STO 2.7V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
1.8V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
1.7V ≤ VDD ≤ 5.5V
4.0
4.0
4.0
μs
4.0
4.0
μs
准备时间
—
1.6V ≤ VDD ≤ 5.5V
总线空闲时间 tBUF
2.7V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
1.8V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
1.7V ≤ VDD ≤ 5.5V
4.7
4.7
4.7
μs
4.7
4.7
μs
1.6V ≤ VDD ≤ 5.5V
R01UH0629CJ0120 Rev.1.20
2019.06.28
—
711
R7F0C903-908
注
第 27 章 电特性 (TA=–40 ~ +85°C)
1. 在开始条件和重新开始条件的情况下,在此期间之后生成第一个时钟脉冲。
2. tHD:DAT 的最大值 (MAX.) 是通常传送时的数值,在进行应答 (ACK)时需要等待。
即使在外围 I/O 重定向寄存器 (PIOR)的 bit2 (PIOR2)为 “1” 时,也能适用上述值。但是,引脚特性 (IOH1、
注意
IOL1、 VOH1、 VOL1)必须满足重定向目标的值。
各模式的 Cb (通信线电容)的 MAX. 值和此时的 Rb (通信线的上拉电阻值)的值如下:
备注
标准模式:Cb=400pF、 Rb=2.7kΩ
I2C 快速模式
(2)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主)
项目
SCLA0 时钟
符号
fSCL
频率
LS (低速主) LV (低电压主)
模式
条件
模式
模式
单位
MIN.
MAX.
MIN.
MAX.
MIN.
MAX.
2.7V ≤ VDD ≤ 5.5V
0
400
0
400
0
400
kHz
fCLK ≥3.5MHz 1.8V ≤ VDD ≤ 5.5V
0
400
0
400
0
400
kHz
快速模式:
重新开始条件 tSU:STA 2.7V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
的准备时间
1.8V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
tHD:STA 2.7V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
1.8V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
2.7V ≤ VDD ≤ 5.5V
1.3
1.3
1.3
μs
1.8V ≤ VDD ≤ 5.5V
1.3
1.3
1.3
μs
2.7V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
1.8V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
数据准备时间 tSU:DAT 2.7V ≤ VDD ≤ 5.5V
100
100
100
ns
(接收时)
100
100
100
ns
保持时间注 1
SCLA0=“L” 的 tLOW
保持时间
SCLA0=“H” 的 tHIGH
保持时间
1.8V ≤ VDD ≤ 5.5V
数据保持时间 tHD:DAT 2.7V ≤ VDD ≤ 5.5V
0
0.9
0
0.9
0
0.9
μs
(发送时)注 2
0
0.9
0
0.9
0
0.9
μs
1.8V ≤ VDD ≤ 5.5V
tSU:STO 2.7V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
准备时间
1.8V ≤ VDD ≤ 5.5V
0.6
0.6
0.6
μs
总线空闲时间 tBUF
2.7V ≤ VDD ≤ 5.5V
1.3
1.3
1.3
μs
1.8V ≤ VDD ≤ 5.5V
1.3
1.3
1.3
μs
停止条件的
注
1. 在开始条件和重新开始条件的情况下,在此期间之后生成第一个时钟脉冲。
2. tHD:DAT 的最大值 (MAX.) 是通常传送时的数值,在进行应答 (ACK)时需要等待。
注意
即使在外围 I/O 重定向寄存器 (PIOR)的 bit2 (PIOR2)为 “1” 时,也能适用上述值。但是,引脚特性 (IOH1、
IOL1、 VOH1、 VOL1)必须满足重定向目标的值。
备注
各模式的 Cb (通信线电容)的 MAX. 值和此时的 Rb (通信线的上拉电阻值)的值如下:
快速模式:Cb=320pF、 Rb=1.1kΩ
R01UH0629CJ0120 Rev.1.20
2019.06.28
712
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
I2C 增强型快速模式
(3)
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V)
HS (高速主)
项目
SCLA0 时钟
符号
fSCL
频率
模式
条件
增强型快速
LS (低速主) LV (低电压主)
2.7V ≤ VDD ≤ 5.5V
MIN.
MAX.
0
1000
模式
MIN.
MAX.
模式
MIN.
单位
MAX.
—
—
kHz
0.26
—
—
μs
0.26
—
—
μs
模式:
fCLK ≥10MHz
重新开始条件 tSU:STA 2.7V ≤ VDD ≤ 5.5V
的准备时间
保持时间注 1
tHD:STA 2.7V ≤ VDD ≤ 5.5V
SCLA0=“L” 的 tLOW
保持时间
2.7V ≤ VDD ≤ 5.5V
0.5
—
—
μs
SCLA0=“H” 的 tHIGH
2.7V ≤ VDD ≤ 5.5V
0.26
—
—
μs
50
—
—
ns
—
—
μs
0.26
—
—
μs
0.5
—
—
μs
保持时间
数据准备时间 tSU:DAT 2.7V ≤ VDD ≤ 5.5V
(接收时)
0
数据保持时间 tHD:DAT 2.7V ≤ VDD ≤ 5.5V
0.45
(发送时)注 2
停止条件的
tSU:STO 2.7V ≤ VDD ≤ 5.5V
准备时间
总线空闲时间 tBUF
注
2.7V ≤ VDD ≤ 5.5V
1. 在开始条件和重新开始条件的情况下,在此期间之后生成第一个时钟脉冲。
2. tHD:DAT 的最大值 (MAX.) 是通常传送时的数值,在进行应答 (ACK)时需要等待。
注意
即使在外围 I/O 重定向寄存器 (PIOR)的 bit2 (PIOR2)为 “1” 时,也能适用上述值。但是,引脚特性 (IOH1、
IOL1、 VOH1、 VOL1)必须满足重定向目标的值。
备注
各模式的 Cb (通信线电容)的 MAX. 值和此时的 Rb (通信线的上拉电阻值)的值如下:
增强型快速模式:Cb=120pF、 Rb=1.1kΩ
IICA 串行传送时序
tLOW
tR
SCLAn
tHDφDAT
tHDφSTA
tHIGH
tF
tSUφSTA
tHDφSTA
tSUφSTO
tSUφDAT
SDAAn
tBUF
↘ڒᶗԬ ᔶခᶗԬ
备注
䠃᯦ᔶခᶗԬ
↘ڒᶗԬ
n=0
R01UH0629CJ0120 Rev.1.20
2019.06.28
713
R7F0C903-908
27.6
第 27 章 电特性 (TA=–40 ~ +85°C)
模拟特性
27.6.1
A/D 转换器特性
A/D 转换器特性的区分
基准电压
输入通道
ANI0 ~ ANI3
基准电压 (+)=AVREFP
基准电压 (–)=AVREFM
参照 27.6.1(1)。
ANI16 ~ ANI19
参照 27.6.1(2)。
内部基准电压
参照 27.6.1(1)。
(1)
基准电压 (+)=VDD
基准电压 (–)=VSS
基准电压 (+)=VBGR
基准电压 (–)=AVREFM
参照 27.6.1(3)。
参照 27.6.1(4)。
—
选择基准电压(+)=AVREFP/ANI0(ADREFP1=0、ADREFP0=1)、基准电压(–)=AVREFM/ANI1(ADREFM=1)
的情况,转换对象:ANI2、 ANI3、内部基准电压
(TA=–40~+85°C、1.6V≤AVREFP≤VDD≤5.5V、VSS=0V、基准电压(+)=AVREFP、基准电压(–)=AVREFM=0V)
项目
分辨率
符号
RES
综合误差注 1
AINL
转换时间
零刻度误差注 1、 2
满刻度误差注 1、 2 EFS
积分线性误差注 1
ILE
微分线性误差注 1
DLE
模拟输入电压
VAIN
10 位分辨率
AVREFP=VDD 注 3
1.8V ≤ AVREFP ≤ 5.5V
MAX.
10
单位
bit
1.2
±3.5
LSB
1.2
±7.0
LSB
3.6V ≤ VDD ≤ 5.5V
2.125
39
μs
2.7V ≤ VDD ≤ 5.5V
3.1875
39
μs
1.8V ≤ VDD ≤ 5.5V
17
39
μs
1.6V ≤ VDD ≤ 5.5V
57
95
μs
1.6V ≤AVREFP
≤5.5V 注 4
10 位分辨率
转换对象:内部基准电压
(HS (高速主)模式)
3.6V ≤ VDD ≤ 5.5V
2.375
39
μs
2.7V ≤ VDD ≤ 5.5V
3.5625
39
μs
2.4V ≤ VDD ≤ 5.5V
17
39
μs
10 位分辨率
AVREFP=VDD 注 3
1.8V ≤ AVREFP ≤ 5.5V
±0.25
%FSR
±0.50
%FSR
10 位分辨率
AVREFP=VDD 注 3
1.8V ≤ AVREFP ≤ 5.5V
±0.25
%FSR
±0.50
%FSR
1.8V ≤ AVREFP ≤ 5.5V
±2.5
LSB
1.6V ≤ AVREFP ≤5.5V 注 4
±5.0
LSB
1.8V ≤ AVREFP ≤ 5.5V
±1.5
LSB
1.6V ≤ AVREFP ≤5.5V 注 4
±2.0
LSB
AVREFP
V
10 位分辨率
AVREFP=VDD 注 3
10 位分辨率
AVREFP=VDD 注 3
1.6V ≤AVREFP
1.6V ≤AVREFP
≤5.5V 注 4
≤5.5V 注 4
ANI2、 ANI3
0
内部基准电压
(2.4V ≤ VDD ≤ 5.5V、 HS (高速主)模式)
注
TYP.
8
tCONV 10 位分辨率
转换对象:ANI2、 ANI3
EZS
MIN.
条件
VBGR
注5
V
1. 不包含量化误差 (±1/2 LSB)。
2. 用对满刻度值的比率 (%FSR)表示。
3. 当 AVREFP < VDD 时, MAX. 值如下:
综合误差:
AVREFP=VDD 的 MAX. 值必须加上 ±1.0LSB。
零刻度误差 / 满刻度误差:
AVREFP=VDD 的 MAX. 值必须加上 ±0.05%FSR。
积分线性误差 / 微分线性误差: AVREFP=VDD 的 MAX. 值必须加上 ±0.5LSB。
4. 这是将转换时间设定为 MIN.57μs、 MAX.95μs 时的值。
5. 请参照 “27.6.2 内部基准电压的特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
714
R7F0C903-908
(2)
第 27 章 电特性 (TA=–40 ~ +85°C)
选择基准电压(+)=AVREFP/ANI0(ADREFP1=0、ADREFP0=1)、基准电压(–)=AVREFM/ANI1(ADREFM=1)
的情况,转换对象:ANI16 ~ ANI19
(TA=–40~+85°C、1.6V≤AVREFP≤VDD≤5.5V、VSS=0V、基准电压(+)=AVREFP、基准电压(–)=AVREFM=0V)
项目
符号
分辨率
RES
综合误差注 1
AINL
转换时间
满刻度误差注 1、 2 EFS
ILE
模拟输入电压
DLE
VAIN
单位
10
bit
1.8V ≤ AVREFP ≤ 5.5V
1.2
±5.0
LSB
VDD=AVREFP=VDD 注 3、 4
1.6V ≤AVREFP ≤5.5V 注5
1.2
±8.5
LSB
3.6V ≤ VDD ≤ 5.5V
2.125
39
μs
转换对象:ANI16 ~ ANI19 2.7V ≤ VDD ≤ 5.5V
3.1875
39
μs
1.8V ≤ VDD ≤ 5.5V
17
39
μs
1.6V ≤ VDD ≤ 5.5V
57
95
μs
10 位分辨率
1.8V ≤ AVREFP ≤ 5.5V
±0.35
%FSR
VDD=AVREFP=VDD 注 3、 4
1.6V ≤AVREFP ≤5.5V 注5
±0.60
%FSR
10 位分辨率
1.8V ≤ AVREFP ≤ 5.5V
±0.35
%FSR
1.6V ≤AVREFP ≤5.5V 注5
±0.60
%FSR
1.8V ≤ AVREFP ≤ 5.5V
±3.5
LSB
1.6V ≤AVREFP ≤5.5V 注5
±6.0
LSB
10 位分辨率
1.8V ≤ AVREFP ≤ 5.5V
±2.0
LSB
VDD=AVREFP=VDD 注 3、 4
1.6V ≤AVREFP ≤5.5V 注5
±2.5
LSB
AVREFP
V
注 3、 4
10 位分辨率
VDD=AVREFP=VDD
微分线性误差注 1
MAX.
10 位分辨率
VDD=AVREFP=VDD
积分线性误差注 1
TYP.
8
tCONV 10 位分辨率
零刻度误差注 1、 2 EZS
MIN.
条件
注 3、 4
ANI16 ~ ANI19
0
并且
VDD
注
1. 不包含量化误差 (±1/2 LSB)。
2. 用对满刻度值的比率 (%FSR)表示。
3. 当 AVREFP < VDD 时, MAX. 值如下:
综合误差:
AVREFP=VDD 的 MAX. 值必须加上 ±1.0LSB。
零刻度误差 / 满刻度误差:
AVREFP=VDD 的 MAX. 值必须加上 ±0.05%FSR。
积分线性误差 / 微分线性误差: AVREFP=VDD 的 MAX. 值必须加上 ±0.5LSB。
4. 当 AVREFP < VDD 时, MAX. 值如下:
综合误差:
AVREFP=VDD 的 MAX. 值必须加上 ±4.0LSB。
零刻度误差 / 满刻度误差:
AVREFP=VDD 的 MAX. 值必须加上 ±0.20%FSR。
积分线性误差 / 微分线性误差: AVREFP=VDD 的 MAX. 值必须加上 ±2.0LSB。
5. 这是将转换时间设定为 MIN.57μs、 MAX.95μs 时的值。
R01UH0629CJ0120 Rev.1.20
2019.06.28
715
R7F0C903-908
(3)
第 27 章 电特性 (TA=–40 ~ +85°C)
选择基准电压 (+)=VDD (ADREFP1=0、 ADREFP0=0)、基准电压 (–)=VSS (ADREFM=0)的情况,转
换对象:ANI0 ~ ANI3、 ANI16 ~ ANI19、内部基准电压
(TA=–40 ~ +85°C、 1.6V ≤ VDD ≤ 5.5V、 VSS=0V、基准电压 (+)=VDD、基准电压 (–)=VSS)
项目
符号
分辨率
RES
综合误差注 1
AINL
转换时间
MIN.
条件
8
10 位分辨率
积分线性误差注 1
微分线性误差注 1
模拟输入电压
ILE
DLE
VAIN
单位
10
bit
1.8V ≤ VDD ≤ 5.5V
1.2
±7.0
LSB
1.6V ≤ VDD ≤ 5.5V 注 3
1.2
±10.5
LSB
2.125
39
μs
转换对象:ANI0 ~ ANI3、 2.7V ≤ VDD ≤ 5.5V
ANI16 ~ ANI19
1.8V ≤ V ≤ 5.5V
3.1875
39
μs
17
39
μs
1.6V ≤ VDD ≤ 5.5V
57
95
μs
10 位分辨率
3.6V ≤ VDD ≤ 5.5V
2.375
39
μs
转换对象:内部基准电压
2.7V ≤ VDD ≤ 5.5V
3.5625
39
μs
(HS (高速主)模式)
2.4V ≤ VDD ≤ 5.5V
17
39
μs
10 位分辨率
1.8V ≤ VDD ≤ 5.5V
±0.60
%FSR
1.6V ≤ VDD ≤ 5.5V 注 3
±0.85
%FSR
1.8V ≤ VDD ≤ 5.5V
±0.60
%FSR
1.6V ≤ VDD ≤ 5.5V 注 3
±0.85
%FSR
1.8V ≤ VDD ≤ 5.5V
±4.0
LSB
1.6V ≤ VDD ≤ 5.5V 注 3
±6.5
LSB
1.8V ≤ VDD ≤ 5.5V
±2.0
LSB
1.6V ≤ VDD ≤ 5.5V 注 3
±2.5
LSB
DD
满刻度误差注 1、 2 EFS
MAX.
3.6V ≤ VDD ≤ 5.5V
tCONV 10 位分辨率
零刻度误差注 1、 2 EZS
TYP.
10 位分辨率
10 位分辨率
10 位分辨率
ANI0 ~ ANI3
0
VDD
V
ANI16 ~ ANI19
0
VDD
V
内部基准电压
VBGR 注 4
V
(2.4V ≤ VDD ≤ 5.5V、 HS (高速主)模式)
注
1. 不包含量化误差 (±1/2 LSB)。
2. 用对满刻度值的比率 (%FSR)表示。
3. 这是将转换时间设定为 MIN.57μs、 MAX.95μs 时的值。
4. 请参照 “27.6.2 内部基准电压的特性 ”。
R01UH0629CJ0120 Rev.1.20
2019.06.28
716
R7F0C903-908
(4)
第 27 章 电特性 (TA=–40 ~ +85°C)
选择基准电压 (+)= 内部基准电压(ADREFP1=1、ADREFP0=0)、基准电压 (–)=AVREFM/ANI1(ADREFM=1)
的情况,转换对象:ANI0、 ANI2、 ANI3、 ANI16 ~ ANI19
(TA=–40 ~ +85°C、 2.4V ≤ VDD ≤ 5.5V、 1.6V ≤ VDD、 VSS=0V、基准电压 (+)=VBGR 注 3、
基准电压 (–)=AVREFM 注 4=0V、 HS (高速主)模式)
项目
符号
条件
分辨率
RES
转换时间
tCONV 8 位分辨率
MIN.
TYP.
MAX.
8
2.4V ≤ VDD ≤ 5.5V
17
单位
bit
39
μs
零刻度误差注 1、 2 EZS
8 位分辨率
2.4V ≤ VDD ≤ 5.5V
±0.60
%FSR
积分线性误差注 1
ILE
8 位分辨率
2.4V ≤ VDD ≤ 5.5V
±2.0
LSB
微分线性误差注 1
DLE
8 位分辨率
2.4V ≤ VDD ≤ 5.5V
±1.0
LSB
模拟输入电压
VAIN
VBGR 注3
V
注
0
1. 不包含量化误差 (±1/2 LSB)。
2. 用对满刻度值的比率 (%FSR)表示。
3. 请参照 “27.6.2 内部基准电压的特性 ”。
4. 当基准电压 (–)=VSS 时, MAX. 值如下:
零刻度误差:
基准电压 (–)=AVREFM 时的 MAX. 值必须加上 ±0.35%FSR。
积分线性误差: 基准电压 (–)=AVREFM 时的 MAX. 值必须加上 ±0.5LSB。
微分线性误差: 基准电压 (–)=AVREFM 时的 MAX. 值必须加上 ±0.2LSB。
R01UH0629CJ0120 Rev.1.20
2019.06.28
717
R7F0C903-908
27.6.2
第 27 章 电特性 (TA=–40 ~ +85°C)
内部基准电压的特性
(TA=–40 ~ +85°C、 2.4V ≤ VDD ≤ 5.5V、 VSS=0V、 HS (高速主)模式)
项目
符号
内部基准电压
VBGR
运行稳定等待时间
tAMP
27.6.3
条件
ADS 寄存器 =81H
MIN.
TYP.
MAX.
单位
1.38
1.45
1.5
V
μs
5
POR 电路特性
(TA=–40 ~ +85°C、 VSS=0V)
项目
检测电压
最小脉宽注
注
符号
条件
MIN.
TYP.
MAX.
单位
1.51
1.55
V
1.50
1.54
V
VPOR
电源电压上升时
1.47
VPDR
电源电压下降时
1.46
TPW
μs
300
这是在 VDD 低于 VPDR 时 POR 复位所需的时间。另外,在转移到 STOP 模式或者通过设定时钟运行状态控制寄存
器 (CSC)的 bit0 (HIOSTOP)和 bit7 (MSTOP)停止主系统时钟 (fMAIN)的振荡时,是从 VDD 低于 0.7V 到
回升超过 VPOR 为止的 POR 复位所需的时间。
TPW
⬉⑤⬉य़(VDD)
VPOR
VPDR㗙0.7V
R01UH0629CJ0120 Rev.1.20
2019.06.28
718
R7F0C903-908
27.6.4
(1)
第 27 章 电特性 (TA=–40 ~ +85°C)
LVD 电路特性
复位模式和中断模式的 LVD 检测电压
(TA=–40 ~ +85°C、 VPDR ≤ VDD ≤ 5.5V、 VSS=0V)
项目
检测电压 电源电压电平
VLVD0
VLVD1
VLVD2
VLVD3
VLVD4
VLVD5
VLVD6
VLVD7
VLVD8
VLVD9
VLVD10
VLVD11
VLVD12
VLVD13
最小脉宽
MIN.
TYP.
MAX.
单位
电源电压上升时
3.98
4.06
4.14
V
电源电压下降时
3.90
3.98
4.06
V
电源电压上升时
3.68
3.75
3.82
V
电源电压下降时
3.60
3.67
3.74
V
电源电压上升时
3.07
3.13
3.19
V
电源电压下降时
3.00
3.06
3.12
V
电源电压上升时
2.96
3.02
3.08
V
电源电压下降时
2.90
2.96
3.02
V
电源电压上升时
2.86
2.92
2.97
V
电源电压下降时
2.80
2.86
2.91
V
电源电压上升时
2.76
2.81
2.87
V
电源电压下降时
2.70
2.75
2.81
V
电源电压上升时
2.66
2.71
2.76
V
电源电压下降时
2.60
2.65
2.70
V
电源电压上升时
2.56
2.61
2.66
V
电源电压下降时
2.50
2.55
2.60
V
电源电压上升时
2.45
2.50
2.55
V
电源电压下降时
2.40
2.45
2.50
V
电源电压上升时
2.05
2.09
2.13
V
电源电压下降时
2.00
2.04
2.08
V
电源电压上升时
1.94
1.98
2.02
V
电源电压下降时
1.90
1.94
1.98
V
电源电压上升时
1.84
1.88
1.91
V
电源电压下降时
1.80
1.84
1.87
V
电源电压上升时
1.74
1.77
1.81
V
电源电压下降时
1.70
1.73
1.77
V
电源电压上升时
1.64
1.67
1.70
V
电源电压下降时
1.60
1.63
1.66
V
符号
tLW
检测延迟
R01UH0629CJ0120 Rev.1.20
2019.06.28
条件
μs
300
300
μs
719
R7F0C903-908
(2)
第 27 章 电特性 (TA=–40 ~ +85°C)
中断&复位模式的 LVD 检测电压
(TA=–40 ~ +85°C、 VPDR ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
条件
MIN.
TYP.
MAX.
单位
中断 & 复位
VLVDA0 VPOC2、 VPOC1、 VPOC0=0、 0、 0,下降复位电压
1.60
1.63
1.66
V
模式
VLVDA1
上升复位解除电压
1.74
1.77
1.81
V
下降中断电压
1.70
1.73
1.77
V
上升复位解除电压
1.84
1.88
1.91
V
下降中断电压
1.80
1.84
1.87
V
上升复位解除电压
2.86
2.92
2.97
V
下降中断电压
2.80
2.86
2.91
V
VLVDB0 VPOC2、 VPOC1、 VPOC0=0、 0、 1,下降复位电压
1.80
1.84
1.87
V
VLVDB1
上升复位解除电压
1.94
1.98
2.02
V
下降中断电压
1.90
1.94
1.98
V
上升复位解除电压
2.05
2.09
2.13
V
下降中断电压
2.00
2.04
2.08
V
上升复位解除电压
3.07
3.13
3.19
V
下降中断电压
3.00
3.06
3.12
V
VLVDC0 VPOC2、 VPOC1、 VPOC0=0、 1、 0,下降复位电压
2.40
2.45
2.50
V
VLVDC1
上升复位解除电压
2.56
2.61
2.66
V
下降中断电压
2.50
2.55
2.60
V
上升复位解除电压
2.66
2.71
2.76
V
下降中断电压
2.60
2.65
2.70
V
上升复位解除电压
3.68
3.75
3.82
V
下降中断电压
3.60
3.67
3.74
V
VLVDD0 VPOC2、 VPOC1、 VPOC0=0、 1、 1,下降复位电压
2.70
2.75
2.81
V
VLVDD1
上升复位解除电压
2.86
2.92
2.97
V
下降中断电压
2.80
2.86
2.91
V
上升复位解除电压
2.96
3.02
3.08
V
下降中断电压
2.90
2.96
3.02
V
上升复位解除电压
3.98
4.06
4.14
V
下降中断电压
3.90
3.98
4.06
V
VLVDA2
VLVDA3
VLVDB2
VLVDB3
VLVDC2
VLVDC3
VLVDD2
VLVDD3
27.6.5
LVIS1、 LVIS0=1、 0
LVIS1、 LVIS0=0、 1
LVIS1、 LVIS0=0、 0
LVIS1、 LVIS0=1、 0
LVIS1、 LVIS0=0、 1
LVIS1、 LVIS0=0、 0
LVIS1、 LVIS0=1、 0
LVIS1、 LVIS0=0、 1
LVIS1、 LVIS0=0、 0
LVIS1、 LVIS0=1、 0
LVIS1、 LVIS0=0、 1
LVIS1、 LVIS0=0、 0
电源电压的上升斜率特性
(TA=–40 ~ +85°C、 VSS=0V)
项目
电源电压的上升斜率
注意
符号
SVDD
条件
MIN.
TYP.
MAX.
单位
54
V/ms
必须在 VDD 达到 “27.4 AC 特性 ” 所示的工作电压范围前,通过 LVD 电路或者外部复位保持内部复位状态。
R01UH0629CJ0120 Rev.1.20
2019.06.28
720
R7F0C903-908
27.7
第 27 章 电特性 (TA=–40 ~ +85°C)
RAM 数据保持特性
(TA=–40 ~ +85°C、 VSS=0V)
项目
符号
MIN.
条件
VDDDR
数据保持电源电压
TYP.
1.46 注
MAX.
单位
5.5
V
取决于 POR 检测电压。当电压下降时,保持 RAM 的数据,直到发生 POR 复位为止。但是,当发生 POR 复位时,
注
不保持 RAM 的数据。
䘆㺂⁗ᕅ
STOP⁗ᕅ
RAMᮦᦤؓᤷ
VDD
VDDDR
ᢝ㺂STOPԚȾ
ᖻᵰ䀙䲚ؗਭ
(ѣᯣ䈭≸)
27.8
闪存编程特性
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
MIN.
条件
系统时钟频率
fCLK
1.8V ≤ VDD ≤ 5.5V
代码闪存的改写次数注 1、 2、 3
Cerwr
保持年数:20 年
TA=85°C
保持年数:1 年
TA=25°C
保持年数:5 年
TA=85°C
100000
保持年数:20 年
TA=85°C
10000
数据闪存的改写次数注 1、 2、 3
注
TYP.
1
MAX.
单位
24
MHz
1000
次
1000000
1. 1 次改写是指 1 次擦除 + 擦除后的 1 次编程,保持年数是指从 1 次改写到下一次改写为止的期间。
2. 这是使用闪存编程器和本公司提供的库程序的情况。
3. 此特性表示闪存的特性,是本公司的可靠性试验的结果。
27.9
专用闪存编程器通信 (UART)
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
传送速率
R01UH0629CJ0120 Rev.1.20
2019.06.28
符号
条件
串行编程时
MIN.
115200
TYP.
MAX.
单位
1000000
bps
721
R7F0C903-908
第 27 章 电特性 (TA=–40 ~ +85°C)
27.10 闪存编程模式的转移时序
(TA=–40 ~ +85°C、 1.8V ≤ VDD ≤ 5.5V、 VSS=0V)
项目
符号
MIN.
条件
从解除外部复位到完成初始设定通信 tSUINIT
在解除外部复位前,解除 POR 和
为止的时间
LVD 的复位。
从将TOOL0引脚置为低电平到解除外 tSU
在解除外部复位前,解除 POR 和
部复位为止的时间
LVD 的复位。
在解除外部复位后保持TOOL0引脚低 tHD
在解除外部复位前,解除 POR 和
电平的时间
LVD 的复位。
TYP.
MAX.
单位
100
ms
10
μs
1
ms
(闪存固件处理时间除外)
Ś
ś
ŝ
Ŝ
RESET
723μs+tHD
༺⨼ᰬ䰪
⁗ᕅ䇴ᇐⲺ1ᆍ㢸ᮦᦤ
TOOL0
tSU
tSUINIT
① 给 TOOL0 引脚输入低电平。
② 解除外部复位 (在此之前需要解除 POR和 LVD的复位)。
③ 解除 TOOL0 引脚的低电平。
④ 通过 UART 接收来完成波特率的设定。
备注
tSUINIT:在此区间,必须在解除外部复位后的 100ms 之内完成初始设定的通信。
tSU:
这是从将TOOL0引脚置为低电平到解除外部复位为止的时间。
tHD:
这是在解除外部复位后保持TOOL0引脚低电平的时间 (闪存固件处理时间除外)。
R01UH0629CJ0120 Rev.1.20
2019.06.28
722
R7F0C903-908
第 28 章 封装尺寸图
第 28 章
封装尺寸图
JEITA Package Code
RENESAS Code
Previous Code
MASS (TYP.) [g]
P-LQFP32-7x7-0.80
PLQP0032GB-A
P32GA-80-GBT-1
0.2
HD
2
D
17
16
24
25
detail of lead end
1
E
c
HE
θ
32
8
1
L
9
e
(UNIT:mm)
3
x
M
b
A
A2
ITEM
D
DIMENSIONS
7.00±0.10
E
7.00±0.10
HD
9.00±0.20
HE
9.00±0.20
A
1.70 MAX.
A1
0.10±0.10
A2
y
A1
1.40
b
0.37±0.05
c
0.145 ±0.055
L
0.50±0.20
θ
0° to 8°
e
0.80
1.Dimensions “ 1” and “ 2” do not include mold flash.
x
0.20
2.Dimension “ 3” does not include trim offset.
y
0.10
NOTE
R01UH0629CJ0120 Rev.1.20
2019.06.28
723
R7F0C903-908
附录 A 修订记录
附录 A
Rev.
发行日
1.11
2017.10.20
1.20
2019.06.28
R01UH0629CJ0120 Rev.1.20
2019.06.28
修订记录
修订内容
页
修订处
—
初版发行
1
将 1.1 中的 “ADC” 更改为 “A/D”。
232
在表 9-3 中追加注。
242
在图 10-4 中追加 “ 或者在 A/D 转换结束时自动清除 ”。
724
底页
R7F0C903-908
用户手册 硬件篇
Publication Date:
Rev.1.11
Rev.1.20
Oct 20, 2017
Jun 28, 2019
Published by:
Renesas Electronics Corporation
地址栏
http://www.renesas.com
SALES OFFICES
Refer to "http://www.renesas.com/" for the latest and detailed information.
Renesas Electronics Corporation
TOYOSU FORESIA, 3-2-24 Toyosu, Koto-ku, Tokyo 135-0061, Japan
Renesas Electronics America Inc.
1001 Murphy Ranch Road, Milpitas, CA 95035, U.S.A.
Tel: +1-408-432-8888, Fax: +1-408-434-5351
Renesas Electronics Canada Limited
9251 Yonge Street, Suite 8309 Richmond Hill, Ontario Canada L4C 9T3
Tel: +1-905-237-2004
Renesas Electronics Europe GmbH
Arcadiastrasse 10, 40472 Düsseldorf, Germany
Tel: +49-211-6503-0, Fax: +49-211-6503-1327
Renesas Electronics (China) Co., Ltd.
Room 101-T01, Floor 1, Building 7, Yard No. 7, 8th Street, Shangdi, Haidian District, Beijing 100085, China
Tel: +86-10-8235-1155, Fax: +86-10-8235-7679
Renesas Electronics (Shanghai) Co., Ltd.
Unit 301, Tower A, Central Towers, 555 Langao Road, Putuo District, Shanghai 200333, China
Tel: +86-21-2226-0888, Fax: +86-21-2226-0999
Renesas Electronics Hong Kong Limited
Unit 1601-1611, 16/F., Tower 2, Grand Century Place, 193 Prince Edward Road West, Mongkok, Kowloon, Hong Kong
Tel: +852-2265-6688, Fax: +852 2886-9022
Renesas Electronics Taiwan Co., Ltd.
13F, No. 363, Fu Shing North Road, Taipei 10543, Taiwan
Tel: +886-2-8175-9600, Fax: +886 2-8175-9670
Renesas Electronics Singapore Pte. Ltd.
80 Bendemeer Road, Unit #06-02 Hyflux Innovation Centre, Singapore 339949
Tel: +65-6213-0200, Fax: +65-6213-0300
Renesas Electronics Malaysia Sdn.Bhd.
Unit No 3A-1 Level 3A Tower 8 UOA Business Park, No 1 Jalan Pengaturcara U1/51A, Seksyen U1, 40150 Shah Alam, Selangor, Malaysia
Tel: +60-3-5022-1288, Fax: +60-3-5022-1290
Renesas Electronics India Pvt. Ltd.
No.777C, 100 Feet Road, HAL 2nd Stage, Indiranagar, Bangalore 560 038, India
Tel: +91-80-67208700
Renesas Electronics Korea Co., Ltd.
17F, KAMCO Yangjae Tower, 262, Gangnam-daero, Gangnam-gu, Seoul, 06265 Korea
Tel: +82-2-558-3737, Fax: +82-2-558-5338
© 2019 Renesas Electronics Corporation. All rights reserved.
Colophon 6.0
封
R7F0C903-908
R01UH0629CJ0120