0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
R7F0C908B2DFP-C#BA0

R7F0C908B2DFP-C#BA0

  • 厂商:

    RENESAS(瑞萨)

  • 封装:

    LQFP32_7X7MM

  • 描述:

    16位单芯片微控制器

  • 数据手册
  • 价格&库存
R7F0C908B2DFP-C#BA0 数据手册
封 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
R7F0C908B2DFP-C#BA0 价格&库存

很抱歉,暂时无法提供与“R7F0C908B2DFP-C#BA0”相匹配的价格&库存,您可以联系我们找货

免费人工找货
R7F0C908B2DFP-C#BA0
    •  国内价格
    • 1+6.98180

    库存:0

    R7F0C908B2DFP-C#BA0
    •  国内价格
    • 1+4.32599

    库存:1862

    R7F0C908B2DFP-C#BA0
      •  国内价格
      • 1+6.92064
      • 10+5.98752
      • 30+5.47236
      • 250+4.88916
      • 500+4.62672
      • 1000+4.51008

      库存:0

      R7F0C908B2DFP-C#BA0
        •  国内价格
        • 1+7.40120
        • 10+6.40330
        • 30+5.85240
        • 250+5.22870
        • 500+4.94800
        • 1000+4.82330

        库存:0