更改内容:1、优化部分寄存器判断;2、增加定时唤醒功能;3、增加部分保护功能逻辑。

This commit is contained in:
Alex xu 2024-12-16 16:39:14 +08:00
parent f86556fa4c
commit 85d41973ec
16 changed files with 466 additions and 293 deletions

View File

@ -1,16 +1,16 @@
:0300000002246C6B
:10246C00758E3075D20078FFE4F6D8FD9000007FB1
:10247C00007E01E4F0A3DFFCDEFA75819C0224C728
:0F2C0E0053797374656D20496E69742E0D0A0039
:102B760012279D7BFF7A2C790E120F57D2AED2BE4A
:082B860012260E122A1880F439
:0300000002251CBA
:10251C00758E3075D20078FFE4F6D8FD9000007F00
:10252C00007E01E4F0A3DFFCDEFA75819C022577C6
:0F2C3E0053797374656D20496E69742E0D0A0009
:102BBC001227C07BFF7A2C793E120F57D2AED2BEB1
:082BCC00122632122A3B80F4AC
:101BE5004100DE004200D800004200D6000042005D
:101BF500DC00004200CF00004200D100004200DAC4
:0F1C050000004200D400004100D3004100DF0086
:102B8E0075FE0F43FF8075FE2975FFB575A551754E
:082B9E00FE1E43FF01D2BD221F
:102BA6009000D3EFF0C454F04401F5A5E49000D6AC
:082BB600F0A3F09000DFF02213
:102BD40075FE0F43FF8075FE2975FFB575A5517508
:082BE400FE1E43FF01D2BD22D9
:102BEC009000D3EFF0C454F04401F5A5E49000D666
:082BFC00F0A3F09000DFF022CD
:03006B000221B7B8
:1021B700C0E0C0F0C083C082C0D075D000C000C0EE
:1021C70004C005C006C007E5F320E0030222C3AF41
@ -32,8 +32,8 @@
:1022C70007D006D005D004D000D0D0D082D083D09C
:0422D700F0D0E03231
:071C1400C11FC120010D03F7
:102AB700E4780FF67811F6780DE67810F678127646
:0E2AC70001790FE718461846F5B175B20122E5
:102AFD00E4780FF67811F6780DE67810F678127600
:0E2B0D0001790FE718461846F5B175B201229E
:101D8800E4FE9000DCE0FCA3E0FDC39460EC940961
:101D980040037F0022EF7003021EA1D3ED9477EC7D
:101DA80094074003021E7FED94EFEC940150030268
@ -59,36 +59,38 @@
:101EE800D219800BC3ED9413EC94015002D21A7EE0
:031EF80001AF0631
:011EFB0022C4
:10250C00E5E620E70A53B3FEE4780EF6C21F22E597
:10251C00F2540C601053B3FEE5F354C0606D75F2C9
:10252C000C75F3C02275F3C07F01121D88EF600695
:10253C0053B3FED22022C220E5F230E423C3900034
:10254C00DBE094D29000DAE0940F500575F2108025
:10255C000353B3FE201F34D21F780E7602D23622DC
:10256C00790FE77811461846F5B17812E6F5B243C3
:10257C00B3117815E6FFD394014002C23FEFD39418
:0C258C00034002C23E780E7601C21F22FE
:1023CB00E5E620E70A53B3FEE4780EF6C21F22E5DA
:1023DB00E830E50575E8208005E5E530E10553B308
:1023EB00FE8032E5F230E50775F22053B3FE22E5AD
:1023FB00F2540C601053B3FEE5F354C0607175F2E8
:10240B000C75F3C02275F3C07F01121D88EF600AB3
:10241B0053B3FED220780E760122C220E5F230E4CF
:10242B0023C39000DBE094D29000DAE0940F5005C8
:10243B0075F210800353B3FE201F34D21F780E7633
:10244B0003D23622790FE77811461846F5B1781288
:10245B00E6F5B243B3117815E6FFD394014002C2FF
:10246B003FEFD394034002C23E780E7602C21F2286
:041C1B00C13AC13BCE
:10000E00303A10EFB4010475B5C02253B5BFED44BC
:04001E0080F5B52292
:102BFD00E5B55480FFEF6008303A05E4F5B5C23A0B
:012C0D0022A4
:10267700E5E554226003C23A22E5E230E705C23AB3
:10268700D23B22303F028045E5E830E00FC23A30C6
:102697002A4075E8017D38E4FF02000EE4FF121DB1
:1026A70088EF6008C23A122BFDD22022C220D23A0C
:1026B700303B1F780EE6B40119C39000DBE094109D
:1026C7009000DAE0940E4005D23AC23B22122BFD6D
:0326D700C23A22E2
:102B5D00426F78204F70656E2E0D0A00426F7820FF
:092B6D00436C6F73652E0D0A0024
:102C2D00E5B55480FFEF6008303A05E4F5B5C23ADA
:012C3D002274
:1026FE00E5E530E103C23A22E5E230E705C23AD21F
:10270E003B22E5E830E00FC23A302A4575E8017DFC
:10271E0038E4FF02000EE4FF121D88EF6008C23A93
:10272E00122C2DD22022C220303F02801FD23A30EE
:10273E003B1F780EE6B40219C39000DBE0941090B4
:10274E0000DAE0940E4005D23AC23B22122C2DC282
:02275E003A221D
:102BA300426F78204F70656E2E0D0A00426F7820B9
:092BB300436C6F73652E0D0A00DE
:081C1F00C13CC13D4100FCFF86
:10289D00E4900000F0E5E25408F09000FCE0FF90B9
:1028AD000000E06F6031E5E230E30E9000FB740153
:1028BD00F07BFF7A2B795D800BE49000FBF07BFFC2
:1028CD007A2B7969120F57D23CD23DD236D2419034
:0728DD000000E09000FCF098
:0128E40022D1
:1028C000E4900000F0E5E25408F09000FCE0FF9096
:1028D0000000E06F6031E5E230E30E9000FB740130
:1028E000F07BFF7A2B79A3800BE49000FBF07BFF59
:1028F0007A2B79AF120F57D23CD23DD236D24190CB
:072900000000E09000FCF074
:0129070022AD
:101C2700C128C127C1260116004100F5004100F473
:061C3700004200F600006F
:101EFC00E5E220E1379000F6E475F001121404904D
@ -108,7 +110,7 @@
:101FDC00B4010FE4FD7F02121A219000757402F017
:101FEC00802F900075E064027027900074E0601AF6
:101FFC007D017F02121A21E4900074F0A3F090008E
:10200C00F5F07816F67F030227FDE4FD7F01121A26
:10200C00F5F07816F67F03022820E4FD7F01121A02
:10201C00219000F5E0D3941440349000F4E004F0E7
:10202C00E4A3F0227816E6640370329000F5E0FF2A
:10203C00C3941E5020EF540125E060047D018009FB
@ -116,39 +118,39 @@
:0D205C00F5E004F022E47816F69000F5F0AF
:012069002254
:101C3D0041007D0041007C0041007E0041007B00A1
:102AF30075FE0675FF3C75FE0E53FF0F75FE0F53F3
:0B2B0300FFF0C282C283C285C28422A0
:102B2900EF14600D14600D14600D2403700BD28234
:0A2B390022D28322D28422D2852208
:052A9800900000E0FFCA
:102A9D00EF14600D14600D14600D2403700BC282D1
:0A2AAD0022C28322C28422C28522C5
:10273D00E4FF747F2FF582E43400F583E4F07483B5
:10274D002FF582E43400F583E4F0EF25E02487F5DE
:10275D0082E43400F583E4F0A3F0EF25E0248FF557
:10276D0082E43400F583E4F0A3F0EF25E02497F53F
:10277D0082E43400F583E4F0A3F0EF25E0249FF527
:0F278D0082E43400F583E4F0A3F00FEFB404A36B
:01279C00221A
:1026DA00AC07747F2CF582E43400F583EDF0EAC38D
:1026EA0013FEEB13FFEC25E02487F582E43400F5B2
:1026FA0083EEF0A3EFF0AF03EC25E0248FF582E43C
:10270A003400F583EAF0A3EFF0900005E0FEA3E0C1
:10271A00FFEC25E02497F582E43400F583EEF0A37C
:10272A00EFF0EC25E0249FF582E43400F583E4F031
:03273A00A3F022E7
:1029AA00747F2FF582E43400F583EDF074832FF5FC
:1029BA0082E43400F583EBF0EF25E02487F582E426
:1029CA003400F583E4F0A37469F0EF25E0249FF561
:0B29DA0082E43400F583E4F0A3F02257
:102B390075FE0675FF3C75FE0E53FF0F75FE0F53AC
:0B2B4900FFF0C282C283C285C284225A
:102B6F00EF14600D14600D14600D2403700BD282EE
:0A2B7F0022D28322D28422D28522C2
:052ADE00900000E0FF84
:102AE300EF14600D14600D14600D2403700BC2828B
:0A2AF30022C28322C28422C285227F
:10276000E4FF747F2FF582E43400F583E4F0748392
:102770002FF582E43400F583E4F0EF25E02487F5BB
:1027800082E43400F583E4F0A3F0EF25E0248FF534
:1027900082E43400F583E4F0A3F0EF25E02497F51C
:1027A00082E43400F583E4F0A3F0EF25E0249FF504
:0F27B00082E43400F583E4F0A3F00FEFB404A348
:0127BF0022F7
:10269B00AC07747F2CF582E43400F583EDF0EAC3CC
:1026AB0013FEEB13FFEC25E02487F582E43400F5F1
:1026BB0083EEF0A3EFF0AF03EC25E0248FF582E47B
:1026CB003400F583EAF0A3EFF0900005E0FEA3E001
:1026DB00FFEC25E02497F582E43400F583EEF0A3BC
:1026EB00EFF0EC25E0249FF582E43400F583E4F071
:0326FB00A3F02227
:1029CD00747F2FF582E43400F583EDF074832FF5D9
:1029DD0082E43400F583EBF0EF25E02487F582E403
:1029ED003400F583E4F0A37469F0EF25E0249FF53E
:0B29FD0082E43400F583E4F0A3F02234
:100B7F00E4900000F0F0900000E0FFC39404400305
:100B8F00020EC1747F2FF582E43400F583E06022FA
:100B9F0024FE6024147003020C89147003020D00EC
:100BAF0024036003020E5D900000E0FF122B290268
:100BBF000E5D122A98020E5D900000E0FF25E024E2
:100BAF0024036003020E5D900000E0FF122B6F0222
:100BBF000E5D122ADE020E5D900000E0FF25E0249C
:100BCF0087F582E43400F583E0FCA3E0FDEF25E038
:100BDF00249FF582E43400F583E0FEA3E0C39DEE8D
:100BEF009C5005122B298003122A98900000E0FFD9
:100BEF009C5005122B6F8003122ADE900000E0FF4D
:100BFF0025E0248FF582E43400F583E0FCA3E0FDCB
:100C0F00EF25E0249FF582E43400F583E0FEA3E0B6
:100C1F00C39DEE9C5003020E5D900000E025E02482
@ -160,13 +162,13 @@
:100C7F0003020E5D747F2F020D1C900000E0FF2514
:100C8F00E02487F582E43400F583E0FCA3E0FDEF78
:100C9F0025E0249FF582E43400F583E0FEA3E0D342
:100CAF009DEE9C5005122B298003122A989000006C
:100CAF009DEE9C5005122B6F8003122ADE900000E0
:100CBF00E0FF25E0248FF582E43400F583E0FCA308
:100CCF00E0FDEF25E0249FF582E43400F583E0FE9C
:100CDF00A3E0C39DEE9C5003020E5D900000E02543
:100CEF00E0249FF582E43400F583E4F0A3F0020ED4
:100CFF005D900000E0FF2483F582E43400F583E08B
:100D0F007017122928C240900000E0247FF582E47A
:100D0F00701712294BC240900000E0247FF582E457
:100D1F003400F583E4F0020E5D900000E0FF2483C1
:100D2F00F582E43400F583E0FE6402704B2040143A
:100D3F00D240EF25E02487F582E43400F583E4F018
@ -186,7 +188,7 @@
:100E1F00C240900000E025E0248730400DF582E4C9
:100E2F003400F58374FFF5F0800BF582E43400F5A0
:100E3F0083E475F001121404900000E0FF25E02414
:100E4F0087F582E43400F583A3E0FD12284E90006D
:100E4F0087F582E43400F583A3E0FD12287190004A
:100E5F0000E0FF7011747F2FF582E43400F583E01A
:100E6F0090007DF08043900000E0B40110247FF5E6
:100E7F0082E43400F583E090007CF0802C90000039
@ -198,44 +200,45 @@
:0C0EDF0001121404900000E004F080DB1D
:010EEB0022E4
:0B1C4D004200F800004100FA0FC14106
:102BBE0075FE2143FF0475FE2143FF02300D06759D
:062BCE00FE2443FF3C223F
:1000260075FE1E43FF0275FE2143FF0875D48675D3
:10003600FE2143FF0475FE2143FF02300D0675FEC7
:050046002443FF3C22F1
:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E
:0400660043FFB02282
:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923
:04007E0053FF4F22BB
:092C530012006E438702020056D4
:102BEA00780EE664016006200F03304104C241C337
:032BFA0022D322C1
:10279D0075FE01E4F5FF122B43122C46122C2BE48F
:1027AD00F58675B7C375FE6A75FF0475FE6C43FF3C
:1027BD000A122B8E75FE8043FF0275FE0E53FFFC31
:1027CD0043FF0175FE0F53FFCF43FF1075FE1775C5
:1027DD00FF3CD2A8D2AF122AB77D697F03122BD44A
:1027ED00122AF312273D122BBE9000E47401F02241
:092C830012006E438702020056A4
:102C1A00780EE664026006200F03304104C241C305
:032C2A0022D32290
:1027C00075FE01E4F5FF122B89122C76122C5BE4C6
:1027D000F58675B7C375FE6A75FF0475FE6C43FF19
:1027E0000A122BD475FE8043FF0275FE0E53FFFCC8
:1027F00043FF0175FE0F53FFCF43FF1075FE1775A2
:10280000FF3CD2A8D2AF122AFD7D697F03122C04AF
:10281000122B391227601200269000E47401F02276
:03000300020006F2
:03000600D24132B2
:03004B00022C6420
:062C640075EB3CD2413289
:03005300022C6A12
:062C6A0075F302D24132B5
:03004B00022C94F0
:062C940075EB3CD2413259
:03005300022C9AE2
:062C9A0075F302D2413285
:101C580020402900000000000000000000000000F3
:101C6800000000000000000000000000000000006C
:101C7800000000000000000000000000000000005C
:101C8800000000000000000000000000000000004C
:071C9800000000C139C13852
:0E2C1D00900029EFF0122C5C900029E0FF22BD
:082C5C002037FDD2378F9922C9
:102B430075FE0E53FFF343FF04D2DF43878075BA4C
:0A2B53000375AAFD759852D2AC225A
:03002300022C3973
:0D2C3900309904C299C237309802C2983217
:0D2C460075BB03759DDC759B92439A0122BE
:0629E50090004312152FC3
:1029EB00E4900046F0F0900046E0C39FE49E501C3C
:1029FB002038FDD238900043E475F00112151812FF
:0C2A0B001347F59C900046E004F080DAD0
:012A1700229C
:0E2C4D00900029EFF0122C8C900029E0FF225D
:082C8C002037FDD2378F992299
:102B890075FE0E53FFF343FF04D2DF43878075BA06
:0A2B99000375AAFD759852D2AC2214
:03002300022C6943
:0D2C6900309904C299C237309802C29832E7
:0D2C760075BB03759DDC759B92439A01228E
:062A080090004312152F9F
:102A0E00E4900046F0F0900046E0C39FE49E501C18
:102A1E002038FDD238900043E475F00112151812DB
:0C2A2E001347F59C900046E004F080DAAD
:012A3A002279
:030083000222DB7B
:1022DB00C0E0C0F0C083C082C0D075D000C000C0C9
:0722EB0002C003C006C0079A
@ -277,27 +280,27 @@
:0D21AA006E646279204D6F6465210D0A009E
:101C9F004300E40402024100E200C136C1354100B5
:0E1CAF00E3004100E7004100E0004100E100D9
:10002600E4FB7D04FF1229AAE4FB7D047F0112296B
:10003600AAE4FB7D047F021229AAE4FB7D047F0368
:030046000229AAE2
:102A9800E4FB7D04FF1229CDE4FB7D047F011229AC
:102AA800CDE4FB7D047F021229CDE4FB7D047F0386
:032AB8000229CD23
:1007EA0020200C200B0302089D300D0302089D20D7
:1007FA00310AD231E49000E2F0D2362290007DE054
:10080A006403601A900005E4F0A3740AF07B147A7A
:10081A00007D02E4FF1226DA90007D7403F0900056
:10081A00007D02E4FF12269B90007D7403F0900095
:10082A007CE06403601A900005E4F0A3740AF07B8C
:10083A00147A007D027F011226DA90007C7403F09C
:10083A00147A007D027F0112269B90007C7403F0DB
:10084A0090007EE06403601A900005E4F0A3740A45
:10085A00F07B147A007D027F021226DA90007E7401
:10085A00F07B147A007D027F0212269B90007E7440
:10086A0003F090007BE06403601A900005E4F0A3B3
:10087A00740AF07B147A007D027F031226DA900054
:10087A00740AF07B147A007D027F0312269B900093
:10088A007B7403F09000E2E0C394285003020A202C
:10089A00D20D2230310CC231C233C232C23DC20C37
:1008AA00D235780EE6640160030209AE301F5C207F
:1008BA003305D233120026E4900005F0A3F0FBFAC8
:1008CA007D01FF1226DAE4900005F0A3F0FBFA7D21
:1008DA00017F011226DAE4900005F0A3F0FBFA7D0D
:1008EA00017F021226DAE4900005F0A3F0FBFA7DFC
:1008FA00017F031226DA90007D7401F090007CF0EB
:1008AA00D235780EE6640260030209AE301F5C207E
:1008BA003305D233122A98E4900005F0A3F0FBFA2C
:1008CA007D01FF12269BE4900005F0A3F0FBFA7D60
:1008DA00017F0112269BE4900005F0A3F0FBFA7D4C
:1008EA00017F0212269BE4900005F0A3F0FBFA7D3B
:1008FA00017F0312269B90007D7401F090007CF02A
:10090A0090007EF090007BF00209A520320CD232D2
:10091A00D236E49000E7F00209A59000E2E0C39421
:10092A00015057E004F09000E7E014601A146027C1
@ -305,50 +308,50 @@
:10094A00017D04E4FF802E90007CE06404604C7B0F
:10095A00017D047F01801E90007EE06404603C7B80
:10096A00017D047F02800E90007BE06404602C7B92
:10097A00017D047F031229AA80219000E2E0C3943A
:10097A00017D047F031229CD80219000E2E0C39417
:10098A000F5005E004F08013E49000E2F09000E7D5
:10099A00E004F0E0C394044002E4F0C23DC20CC299
:1009AA0028D2342230320AC232120026D236D23546
:1009AA0028D2342230320AC232122A98D236D235AA
:1009BA0022303649E49000E2F0C236900005F0A3F6
:1009CA00F0FBFAFDFF1226DAE4900005F0A3F0FB33
:1009DA00FAFD7F011226DAE4900005F0A3F0FBFA93
:1009EA00FD7F021226DAE4900005F0A3F0FBFAFD7F
:1009FA007F031226DA90007D7402020B66203D0CFA
:1009CA00F0FBFAFDFF12269BE4900005F0A3F0FB72
:1009DA00FAFD7F0112269BE4900005F0A3F0FBFAD2
:1009EA00FD7F0212269BE4900005F0A3F0FBFAFDBE
:1009FA007F0312269B90007D7402020B66203D0C39
:100A0A00203409200C06202803020B7E9000E2E025
:100A1A00FFC394015004E004F022EFC3946440033E
:100A2A00020B749000E2E004F07814E6C3941950C3
:100A3A003790007DE064037003020B7EE4900005AA
:100A4A00F0A3F07B64FA7D03FF1226DA90007D742E
:100A4A00F0A3F07B64FA7D03FF12269B90007D746D
:100A5A0004F0E4900005F0A3F0FBFAFD7F011226F2
:100A6A00DA90007C740280327814E6C394325041E2
:100A7A00E4900005F0A3F0FBFA7D01FF1226DA905C
:100A6A009B90007C740280327814E6C39432504121
:100A7A00E4900005F0A3F0FBFA7D01FF12269B909B
:100A8A00007D7401F0E4900005F0A3F0FBFA7D010B
:100A9A007F011226DA90007C7401F0E4900005F0E0
:100AAA00A3F0FBFAFD7F021226DA90007E74028020
:100A9A007F0112269B90007C7401F0E4900005F01F
:100AAA00A3F0FBFAFD7F0212269B90007E7402805F
:100ABA00487814E6C3944B5057E4900005F0A3F02D
:100ACA00FBFA7D01FF1226DA90007D7401F0E490B2
:100ADA000005F0A3F0FBFA7D017F011226DA9000EF
:100ACA00FBFA7D01FF12269B90007D7401F0E490F1
:100ADA000005F0A3F0FBFA7D017F0112269B90002E
:100AEA007C7401F0E4900005F0A3F0FBFA7D017F2D
:100AFA00021226DA90007E7401F0E4900005F0A359
:100B0A00F0FBFAFD7F031226DA90007B7402F022D2
:100AFA000212269B90007E7401F0E4900005F0A398
:100B0A00F0FBFAFD7F0312269B90007B7402F02211
:100B1A007814E6C39464505CE4900005F0A3F0FBFB
:100B2A00FA7D01FF1226DAE4900005F0A3F0FBFA41
:100B3A007D017F011226DAE4900005F0A3F0FBFAAA
:100B4A007D017F021226DAE4900005F0A3F0FBFA99
:100B5A007D017F031226DA90007D7401F090007CFB
:100B2A00FA7D01FF12269BE4900005F0A3F0FBFA80
:100B3A007D017F0112269BE4900005F0A3F0FBFAE9
:100B4A007D017F0212269BE4900005F0A3F0FBFAD8
:100B5A007D017F0312269B90007D7401F090007C3A
:100B6A00F090007EF090007BF022C23DC234C20CAD
:040B7A00C228D23685
:010B7E002254
:102B0E009000DEE0FF04F0122BA69000DEE0C394EE
:0B2B1E00084005E4F07F01227F002248
:102AD50012250C12267712289D121EFC122A4A3046
:0E2AE500290BC2291223CB1207EA12159D22DB
:102B54009000DEE0FF04F0122BEC9000DEE0C39462
:0B2B6400084005E4F07F01227F002202
:102B1B001223CB1226FE1228C0121EFC122A6D3075
:0E2B2B00290BC22912247B1207EA12159D22E3
:10181000E4900000F09000E4E0FFA3E0FE6F7003AE
:101820000218E6A3EEF09000E4E0A3F024FE605777
:101830001470030218BC1470030218D3240360034D
:10184000021A20900005E4F0A37403F07B647A0090
:101850007D02E4FF1226DA900005E4F0A37403F0A1
:101860007B647A007D027F011226DA7BFF7A207981
:101850007D02E4FF12269B900005E4F0A37403F0E0
:101860007B647A007D027F0112269B7BFF7A2079C0
:101870006A9000FBE0FF900004E4F0A3EFF0A37493
:1018800001F0A374E3805B300D09D23C75E80CC213
:101890000BC20D7BFF7A207990AFF6900004E4F044
@ -375,16 +378,16 @@
:1019E0000F579000FAE0D394004014E014F0304117
:1019F0002FC241740FF07BFF7A217986020F577B4B
:101A0000FF7A2179A1120F579000E47404F022129A
:101A10002BEA5006122BBE022C539000E47402F005
:101A10002C1A5006120026022C839000E47402F067
:011A200022A3
:102A1800302C26C22C9000E1E0FF04F0EF14600C8B
:102A280014600E24027012122B0E800D122AD5800B
:102A380008121810E49000E1F0302E05C22E120B97
:022A48007F22EB
:10296A00000000000000000000000000000000005D
:10297A00000000000000000000000000000000004D
:10298A00000000000000000000000000000000003D
:10299A00000000000000000000000000000000002D
:102A3B00302C26C22C9000E1E0FF04F0EF14600C68
:102A4B0014600E24027012122B54800D122B1B805B
:102A5B0008121810E49000E1F0302E05C22E120B74
:022A6B007F22C8
:10298D00000000000000000000000000000000003A
:10299D00000000000000000000000000000000002A
:1029AD00000000000000000000000000000000001A
:1029BD00000000000000000000000000000000000A
:101CBD00C10FC10CC10E410076FFC10B42004D009A
:101CCD000042004B00004200740000420071000011
:101CDD004200770000C10D41007A0010690000003C
@ -392,49 +395,49 @@
:101CFD0000000000000000000000000000000000D7
:101D0D0000000000000000000000000000000000C6
:081D1D0000000000410073000A
:1027FD00EF24FE601E14602814602F24FE60352423
:10280D0005703D43BD8853BDBB75FE6F53FFF2434D
:10281D00FF092243BDCC75FE6F53FFFE43FF0C2213
:10282D0053BD7753B7CF43B7302253B7CF43B70319
:10283D0053BD772253B7CC53BD7775FE6F43FF3031
:01284D002268
:10282000EF24FE601E14602814602F24FE603524FF
:1028300005703D43BD8853BDBB75FE6F53FFF2432A
:10284000FF092243BDCC75FE6F53FFFE43FF0C22F0
:1028500053BD7753B7CF43B7302253B7CF43B703F6
:1028600053BD772253B7CC53BD7775FE6F43FF300E
:012870002245
:10159D00C20B203A030217D7303C57200E0A7D3F6D
:1015AD00E4FF12000ED20E227F031227FDE49000FD
:1015AD00E4FF12000ED20E227F03122820E49000D9
:1015BD004AF0900048F0A3F0C2009000FBE07024C8
:1015CD00C20CD201D202C203C207C208C2099000E6
:1015DD0074F0A3F0D20FC23590006FF0A3F090001D
:1015ED0079F08008C201C202D203C205C20BC20D3E
:1015FD00C23C200303021695900048E0C3940550A9
:10160D000302178D900049E0C3940550077F061221
:10161D0027FD802A20004090004AE0FFD3940B5014
:10161D002820802A20004090004AE0FFD3940B50F0
:10162D0022EF75F00384E5F07003FD800990004A08
:10163D00E020E0077D017F06121A2190004AE004A8
:10164D00F080457F041227FDE490004AF0D200D2CD
:10164D00F080457F04122820E490004AF0D200D2A9
:10165D0004C20EC20F8031300404C2048022E5E3BF
:10166D0054A0FBE4FAF9F8900047E0FFE4FCFDFE1E
:10167D00C31214EB6012E5E354A06004D20CD23611
:10168D00E5E354A0900047F02001030217D4303554
:10169D0031200E257D3FE4FF12000ED20ED20FE455
:1016AD0090006FF0A3F0900079F0900049F0900059
:1016BD0048F090004AF0C207227F031227FDC23581
:1016BD0048F090004AF0C207227F03122820C2355D
:1016CD008036900048E0D39403500302178D9000AC
:1016DD0049E0FFD3940B5020EF75F00384E5F070D3
:1016ED0003FD8009900049E020E0077D017F811214
:1016FD001A2190004902178D90004AE0FFD39432D1
:10170D00501FEF75F00384E5F07003FD8009900024
:10171D004AE020E0077D017F07121A2190004A80E0
:10172D005F3002077F031227FDC202E5E8540C600B
:10172D005F3002077F03122820C202E5E8540C60E7
:10173D0026200D1E90004AE004F0E0C394055003EE
:10174D0002180FE4F075E80C7F031227FDD20BC2CF
:10175D000F227F040227FDC20BC20D900070E070B6
:10174D0002180FE4F075E80C7F03122820D20BC2AB
:10175D000F227F04022820C20BC20D900070E07092
:10176D000B7B017A00794F120086805B200720E504
:10177D00E320E003303E50900048E0C39432500423
:10178D00E004F022D207C20E7F041227FD803890AC
:10178D00E004F022D207C20E7F0412282080389088
:10179D00004AE0FFD3940B5022EF75F00384E5F07F
:1017AD007003FD800990004AE020E0077D017F80F5
:1017BD00121A2190004AE004F0800C200809D2088A
:1017CD007F041227FDC20FC2062220060BD2067F10
:1017DD00041227FDC20F8022E5E354A0FBE4FAF9C1
:1017CD007F04122820C20FC2062220060BD2067FEC
:1017DD0004122820C20F8022E5E354A0FBE4FAF99D
:1017ED00F8900047E0FFE4FCFDFEC31214EB60121D
:1017FD00E5E354A06004D20CD236E5E354A090008A
:02180D0047F0A2
@ -559,14 +562,14 @@
:1007CC00FF02000E900079E0D394024010E4F09008
:0D07DC00000012150F900021740112138D02
:0107E90022ED
:0B28E50090004312152F900046EDF00C
:1028F000E4FE900046E0FD14F0ED6029900043E412
:1029000075F0011215181213476EFEE4FFEFC39421
:102910000850DFEE30E007C313648CFE8004EEC382
:0729200013FE0F80E8AF0673
:01292700228D
:0B29080090004312152F900046EDF0E8
:10291300E4FE900046E0FD14F0ED6029900043E4EE
:1029230075F0011215181213476EFEE4FFEFC394FE
:102933000850DFEE30E007C313648CFE8004EEC35F
:0729430013FE0F80E8AF0650
:01294A00226A
:081A2100900000EFF0A3EDF0CE
:101A2900E4A3F078037C007D017BFF7A29796AFEC3
:101A2900E4A3F078037C007D017BFF7A29798DFEA0
:101A39007F40121321E4900003F0A37455F0A374BE
:101A4900AAF0900000E0FE900007F0900001E0FD90
:101A5900900076F0EE1215381A7A011AA9021AF8CE
@ -586,79 +589,79 @@
:101B3900000B74FFF08020900071E090000BF080A2
:101B4900169000067401F0800E9000067402F09061
:101B59000073E0900008F0900006E02404FF900074
:101B690002F0FD7B017A0079031228E5900002E07A
:101B79002403F582E43400F583EFF07F011227FD99
:101B690002F0FD7B017A007903122908900002E056
:101B79002403F582E43400F583EFF07F0112282075
:101B8900900001E0FF700843BD0253BDFE8016EFCF
:101B9900B4010843BD2053BDEF800AEFB4FF0643EB
:101BA900BD2253BDEE900002E02401FFE433FE7B29
:101BB900017A0079031229E5900001E0FF700753CB
:101BB900017A007903122A08900001E0FF700753A7
:101BC900BDFD43BD0122EFB4010753BDDF43BD1085
:0B1BD90022EFB4FF0653BDDF43BD1137
:011BE40022DE
:10259800EF24FA605014604D24067069E4FE742D2F
:1025A8002EF8E6FF900076E075F012A424792EF854
:1025B800A6070EEEB412E7E4FE743F2EF8E6FF908D
:1025C8000076E075F008A424692EF8A6070EEEB48C
:1025D80008E7900076E0700690007404F0229000FE
:1025E800757401F022782DE6B4E30D90004B740168
:1025F800F008E6900071F02290004C7401F0782EFB
:05260800E6900072F0F5
:01260D0022AA
:102A4A00E4FF900000F0303921C239FB7A0079297D
:102A5A00782BE62403FD1228E5782BE6242CF8E6E9
:0A2A6A00B50707782CE6FF12259847
:012A7400223F
:1025BC00EF24FA605014604D24067069E4FE742D0B
:1025CC002EF8E6FF900076E075F012A424792EF830
:1025DC00A6070EEEB412E7E4FE743F2EF8E6FF9069
:1025EC000076E075F008A424692EF8A6070EEEB468
:1025FC0008E7900076E0700690007404F0229000DA
:10260C00757401F022782DE6B4E30D90004B740143
:10261C00F008E6900071F02290004C7401F0782ED6
:05262C00E6900072F0D1
:012631002286
:102A6D00E4FF900000F0303921C239FB7A0079295A
:102A7D00782BE62403FD122908782BE6242CF8E6A2
:0A2A8D00B50707782CE6FF1225BC00
:012A9700221C
:101D2500011500011400C13EC13F01135060280098
:101D3500A70BB80BEA0C1C0C800CB20CE40D160DAD
:101D4500480D7A0DAC0DF70E420E880ED80F0A0F0E
:091D55003C0F870FD2101D10682D
:1023CB00E4FF780EE6B40125EF25E024A7F582E4BF
:1023DB003400F583E0FCA3E02432FDE43CFCC39025
:1023EB0000DBE09D9000DAE09C50208023EF25E09D
:1023FB0024A7F582E43400F583E0FCA3E0FDC39051
:10240B0000DBE09D9000DAE09C40050FEFB414B2C6
:10241B007815E6FEEFD39E7813400306800116E590
:10242B00E1600DE4F5E17815EFF675F005A418F60B
:10243B007813E6FED394965006EEC3940A500D78AB
:10244B0015EFF675F005A418F61876507815E6FF1B
:10245B00D394005003D23F22EFD394015002D23ECB
:01246B00224E
:10247B00E4FF780EE6B40225EF25E024A7F582E40D
:10248B003400F583E0FCA3E02432FDE43CFCC39074
:10249B0000DBE09D9000DAE09C50208023EF25E0EC
:1024AB0024A7F582E43400F583E0FCA3E0FDC390A0
:1024BB0000DBE09D9000DAE09C40050FEFB414B216
:1024CB007815E6FEEFD39E7813400306800116E5E0
:1024DB00E1600DE4F5E17815EFF675F005A418F65B
:1024EB007813E6FED394965006EEC3940A500D78FB
:1024FB0015EFF675F005A418F61876507815E6FF6B
:10250B00D394005003D23F22EFD394015002D23E1A
:01251B00229D
:101D5E004100EB004100EE004100EA004200E800C5
:101D6E00004100EC00C12BC12CC12EC12AC129C1DA
:091D7E002D4100ED00C12FC13020
:10260E009000EDE06062E4F0D22B9000EBE004F07D
:10261E00E0C394054004E4F0D22C9000EEE004F008
:10262E00E0C3940A4004E4F0D22E9000E8E475F082
:10263E0001121404C39000E9E094649000E8E09461
:10264E00004006E4F0A3F0D2299000EAE004F0E0A6
:10265E00C394FA4013E4F0D22A9000ECE004F0E0C8
:09266E0094044004E4F0D22D2292
:03000B00022A7551
:102A7500C0E0C083C082C0D074FC258CF58C746620
:102A8500258AF58A9000ED7401F0D0D0D082D083EC
:032A9500D0E0325C
:0E2C2B00758901758CFC758A66D2A9D28C223F
:10292800EFD39401501475FE0EEF2404FE7403A82F
:1029380006088002C333D8FC801475FE0FEF24FE0E
:1029480025E0FE7403A806088002C333D8FCF452BD
:10295800FFEFB4040C75FE0F53FFF075FE0E53FF26
:022968000F223C
:102BD40075FE54EF5407F5FF75FE56AF058FFF756C
:062BE400FE5375FF012203
:10284E00EFD39401501675FE0EEF2404FE7403A808
:10285E0006088002C333D8FC42FF801675FE0FEFC8
:10286E0024FE25E0FE7403A806088002C333D8FCBC
:10287E0042FFEF70038DCE22EFB401038DCF22EF16
:0F288E00B402038DDE22EFB40304AF058FDF2207
:102632009000EDE06062E4F0D22B9000EBE004F059
:10264200E0C394054004E4F0D22C9000EEE004F0E4
:10265200E0C3940A4004E4F0D22E9000E8E475F05E
:1026620001121404C39000E9E094649000E8E0943D
:10267200004006E4F0A3F0D2299000EAE004F0E082
:10268200C394FA4013E4F0D22A9000ECE004F0E0A4
:0926920094044004E4F0D22D226E
:03000B00022ABB0B
:102ABB00C0E0C083C082C0D074FC258CF58C7466DA
:102ACB00258AF58A9000ED7401F0D0D0D082D083A6
:032ADB00D0E03216
:0E2C5B00758901758CFC758A66D2A9D28C220F
:10294B00EFD39401501475FE0EEF2404FE7403A80C
:10295B0006088002C333D8FC801475FE0FEF24FEEB
:10296B0025E0FE7403A806088002C333D8FCF4529A
:10297B00FFEFB4040C75FE0F53FFF075FE0E53FF03
:02298B000F2219
:102C040075FE54EF5407F5FF75FE56AF058FFF753B
:062C1400FE5375FF0122D2
:10287100EFD39401501675FE0EEF2404FE7403A8E5
:1028810006088002C333D8FC42FF801675FE0FEFA5
:1028910024FE25E0FE7403A806088002C333D8FC99
:1028A10042FFEF70038DCE22EFB401038DCF22EFF3
:0F28B100B402038DDE22EFB40304AF058FDF22E4
:032FFD00010102CD
:10248C00022B76E493A3F8E493A34003F68001F2C5
:10249C0008DFF48029E493A3F85407240CC8C33351
:1024AC00C4540F4420C8834004F456800146F6DF20
:1024BC00E4800B0102040810204080901BE5E47EB0
:1024CC00019360BCA3FF543F30E509541FFEE49315
:1024DC00A360010ECF54C025E060A840B8E493A3DC
:1024EC00FAE493A3F8E493A3C8C582C8CAC583CA07
:1024FC00F0A3C8C582C8CAC583CADFE9DEE780BEBF
:10253C00022BBCE493A3F8E493A34003F68001F2CE
:10254C0008DFF48029E493A3F85407240CC8C333A0
:10255C00C4540F4420C8834004F456800146F6DF6F
:10256C00E4800B0102040810204080901BE5E47EFF
:10257C00019360BCA3FF543F30E509541FFEE49364
:10258C00A360010ECF54C025E060A840B8E493A32B
:10259C00FAE493A3F8E493A3C8C582C8CAC583CA56
:1025AC00F0A3C8C582C8CAC583CADFE9DEE780BE0E
:011D8700005B
:10125100E709F608DFFA8046E709F208DFFA803E7F
:1012610088828C83E709F0A3DFFA8032E309F6086C
@ -726,7 +729,7 @@
:100F1C00D43440D4FF30140BEF24BFB41A00500368
:100F2C002461FFE50960021509050CE50C7002054A
:100F3C000B30170E900001E475F001121518EF023A
:100F4C00158B022C1D7403D2178003E4C217F5080D
:100F4C00158B022C4D7403D2178003E4C217F508DD
:100F5C0090000112152FE4F509F50BF50CE509606D
:100F6C00077F20120F2F80F5750AFFC211C210C225
:100F7C0012C213C215C216C218120EFBFF700D302E

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,2 @@
---- TIM_WKUP Matches (2 in 2 files) ----
define.h (UsrInc\inc) line 65 : #define TIM_WKUP //定时唤醒功能
---- TIM_WKUP Matches (1 in 1 files) ----
WakeUp_Init_Set in sleep.c (UsrSrc\sleep) : #ifdef TIM_WKUP

View File

@ -33,8 +33,13 @@ extern bit NTC_Pro_Flag;
typedef enum
{
CHG_NONE = 0x00,
CHG_PROTECT,
CHG_STA_ING, // 充电中
CHG_STA_COMPLETED, // 充电完成
CHG_STA_PULLOUT, // 充电器拔出
} TE_CHG_STA;
@ -59,6 +64,23 @@ typedef struct {
uint8_t nVFloat;
} s_gCharger_Cfg;
/* CHG Control Register-CHG_CTL */
#define CHG_END_Sel_Pos (7U)
#define CHG_END_Sel_Pos_Msk (0x1UL << CHG_END_Sel_Pos)
#define CHG_END_Sel CHG_END_Sel_Pos_Msk
#define CHG_SafyTmr_EN_Pos (4U)
#define CHG_SafyTmr_EN_Pos_Msk (0x1UL << CHG_SafyTmr_EN_Pos)
#define CHG_SafyTmr_EN CHG_SafyTmr_EN_Pos_Msk
#define CHG_PrechgTmr_EN_Pos (3U)
#define CHG_PrechgTmr_EN_Pos_Msk (0x1UL << CHG_PrechgTmr_EN_Pos)
#define CHG_PrechgTmr_EN CHG_PrechgTmr_EN_Pos_Msk
#define CHG_EN_Pos (0U)
#define CHG_EN_Pos_Msk (0x1UL << CHG_EN_Pos)
#define CHG_EN CHG_EN_Pos_Msk
/* Charger Parements Config. */
/* 1、V Float Setting <B2h> */
#define CHG_VFLOAT_4_000V 0x00

View File

@ -114,6 +114,7 @@
#endif
#else
/*2.5V上拉LDO下接 104K NTC(3950K) 电阻串联一个100K电阻后得到的电压值,Value=2500 * Rntc/(Rntc + 100k)*/
#define T_N20C 2263 //-20℃ NTC:953K
@ -157,7 +158,6 @@
#endif
/*Boost Module Config Para Setting*/
#define OPEN_BOOST_VIN 3600 //Boost 发生uvlo保护后在有VIN条件下Boost再次恢复开启的电压3.6V)。
#define OPEN_BOOST_NOVIN 3300 //Boost 发生uvlo保护后在无VIN条件下Boost再次恢复开启的电压3.3V)。

View File

@ -23,6 +23,7 @@
#include "config.h"
/*Function Select功能选择宏定义*/
//#define SY8838 //合封芯片SY8838
#define TIMER1_ENABLE 0 //Timer1 定时周期1ms。(120Bytes)
@ -68,7 +69,7 @@
#define SLEEP_ENABLE 1 //110Bytes
//#define TIM_WKUP //定时唤醒功能
#define TIM_WKUP //定时唤醒功能
#define ADC_ENABLE 1 //587Bytes

View File

@ -28,7 +28,94 @@
/******************************************************************************\
Macro definitions
\******************************************************************************/
/*中断号计算方式:中断向量 = 中断号 * 8 + 3*/
/* Abnormal Interrupt Flag Register-IRQ_FLAG0 */
#define DIE_TO_Pos (6U)
#define DIE_TO_Pos_Msk (0x1UL << DIE_TO_Pos)
#define DIE_TO DIE_TO_Pos_Msk
#define VBUS_OverVol_Pos (5U)
#define VBUS_OverVol_Pos_Msk (0x1UL << VBUS_OverVol_Pos)
#define VBUS_OverVol VBUS_OverVol_Pos_Msk
#define BAT_Low_Pos (4U)
#define BAT_Low_Pos_Msk (0x1UL << BAT_Low_Pos)
#define BAT_Low BAT_Low_Pos_Msk
#define VOR_OutPut_Short_Pos (3U)
#define VOR_OutPut_Short_Pos_Msk (0x1UL << VOR_OutPut_Short_Pos)
#define VOR_OutPut_Short VOR_OutPut_Short_Pos_Msk
#define VOL_OutPut_Short_Pos (2U)
#define VOL_OutPut_Short_Pos_Msk (0x1UL << VOL_OutPut_Short_Pos)
#define VOL_OutPut_Short VOL_OutPut_Short_Pos_Msk
#define Boost_UVLO_Pos (1U)
#define Boost_UVLO_Pos_Msk (0x1UL << Boost_UVLO_Pos)
#define Boost_UVLO Boost_UVLO_Pos_Msk
#define Boost_OutPut_Short_Pos (0U)
#define Boost_OutPut_Short_Pos_Msk (0x1UL << Boost_OutPut_Short_Pos)
#define Boost_OutPut_Short Boost_OutPut_Short_Pos_Msk
/* Charger Interrupt Flag Register-IRQ_FALG9 */
#define VIN_DPM_Pos (7U)
#define VIN_DPM_Pos_Msk (0x1UL << VIN_DPM_Pos)
#define VIN_DPM VIN_DPM_Pos_Msk
#define Temp_Loop_Pos (6U)
#define Temp_Loop_Pos_Msk (0x1UL << Temp_Loop_Pos)
#define Temp_Loop Temp_Loop_Pos_Msk
#define BAT_OverVol_Pos (5U)
#define BAT_OverVol_Pos_Msk (0x1UL << BAT_OverVol_Pos)
#define BAT_OverVol BAT_OverVol_Pos_Msk
#define CHG_Complete_Pos (4U)
#define CHG_Complete_Pos_Msk (0x1UL << CHG_Complete_Pos)
#define CHG_Complete CHG_Complete_Pos_Msk
#define CHG_FastChgTmr_Pos (3U)
#define CHG_FastChgTmr_Pos_Msk (0x1UL << CHG_FastChgTmr_Pos)
#define CHG_FastChgTmr CHG_FastChgTmr_Pos_Msk
#define CHG_TricleChgTmr_Pos (2U)
#define CHG_TricleChgTmr_Pos_Msk (0x1UL << CHG_TricleChgTmr_Pos)
#define CHG_TricleChgTmr CHG_TricleChgTmr_Pos_Msk
#define VBUS_PG_NEG_Pos (1U)
#define VBUS_PG_NEG_Pos_Msk (0x1UL << VBUS_PG_NEG_Pos)
#define VBUS_PG_NEG VBUS_PG_NEG_Pos_Msk
#define VBUS_PG_POS_Pos (0U)
#define VBUS_PG_POS_Pos_Msk (0x1UL << VBUS_PG_POS_Pos)
#define VBUS_PG_POS VBUS_PG_POS_Pos_Msk
/* VBUS/HALL and ADC Data Ready Interrupt Flag Register-IRQ_FLAG10 */
#define VBUS_PLUG_OUT_Pos (7U)
#define VBUS_PLUG_OUT_Pos_Msk (0x1UL << VBUS_PLUG_OUT_Pos)
#define VBUS_PLUG_OUT VBUS_PLUG_OUT_Pos_Msk
#define VBUS_PLUG_IN_Pos (6U)
#define VBUS_PLUG_IN_Pos_Msk (0x1UL << VBUS_PLUG_IN_Pos)
#define VBUS_PLUG_IN VBUS_PLUG_IN_Pos_Msk
#define HALL_NEG_Pos (3U)
#define HALL_NEG_Pos_Msk (0x1UL << HALL_NEG_Pos)
#define HALL_NEG HALL_NEG_Pos_Msk
#define HALL_POS_Pos (2U)
#define HALL_POS_Pos_Msk (0x1UL << HALL_POS_Pos)
#define HALL_POS HALL_POS_Pos_Msk
#define Standby_Tmr_WkUp_Pos (1U)
#define Standby_Tmr_WkUp_Msk (0x1UL << Standby_Tmr_WkUp_Pos)
#define Standby_Tmr_WkUp Standby_Tmr_WkUp_Msk
#define ADC_Data_Ready_Pos (0U)
#define ADC_Data_Ready_Msk (0x1UL << ADC_Data_Ready_Pos)
#define ADC_Data_Ready ADC_Data_Ready_Msk
/*中断号计算方式:中断向量 = 中断号 * 8 + 3*/
#define Interrupt_Vector_IE0 0 //0x03,SY8836 IE0 use for wakeup
#define Interrupt_Vector_TF0 1 //0x0B,Timer 0 Overflow

View File

@ -133,7 +133,7 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn )
*/
void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
{
if(IRQ_FLAG10 & 0x01)
if(IRQ_FLAG10 & ADC_Data_Ready)
{
g_Value_Adc = ADC_DATL; //先取低8位数据锁定当前ADC采样值。
g_Value_Adc |= (uint16_t)( ( ADC_DATH & 0x03 ) << 8 );
@ -195,7 +195,7 @@ void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
}
}
IRQ_FLAG10 = 0x01;
IRQ_FLAG10 = ADC_Data_Ready;
}

View File

@ -465,50 +465,93 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
*******************************************************************************
*/
/*
1使VIN拔出
1使VIN拔出
2UVLO保护PG
3VIN DPM
4
5
6
7NTC保护JEITA或IEC标准调整充电参数
8
VIN是否PGNTC保护ChargerCharger
使VIN拔出
*/
void Charger_Handler(void)
{
if( !(CHIP_STA4 & 0x80) ) //未检测到Power good,则关闭Charger使能后返回。
{
CHG_CTL &= ~0x01; //Disable Charger
CHG_CTL &= ~CHG_EN; //Disable Charger
ChgStatus = CHG_NONE;
Charger_Done = 0;
#ifdef _DEBUG_CHARGER
printf("No Chg\r\n");
#endif
return;
}
/*Charger Vbus Over Voltage.*/
if ( IRQ_FLAG0 & VBUS_OverVol )
{
IRQ_FLAG0 = VBUS_OverVol;
CHG_CTL &= ~CHG_EN; //Disable Charger
ChgStatus = CHG_PROTECT;
return;
}
/* 过温保护 --- 硬件实现 */
if( CHIP_STA3 & 0x02 )
{
CHG_CTL &= ~CHG_EN; //Disable Charger
ChgStatus = CHG_PROTECT;
return;
}
/* 电池过压保护。 */
if( IRQ_FLAG9 & BAT_OverVol ) //电池过压保护
{
IRQ_FLAG9 = BAT_OverVol;
CHG_CTL &= ~CHG_EN; //Disable Charger
return;
}
/*各项保护都无需软件处理只处理充电超时超时后需要等VBUS重新插拔后才重新开始Charger流程。*/
if ( IRQ_FLAG9 & 0x0C ) //充电超时,Tricle charg and Fast charge timeout
if ( IRQ_FLAG9 & ( CHG_FastChgTmr | CHG_TricleChgTmr ) ) //充电超时,Tricle charg and Fast charge timeout
{
CHG_CTL &= ~0x01; //Disable Charger
CHG_CTL &= ~CHG_EN; //Disable Charger
if ( IRQ_FLAG10 & 0xC0 ) //Plugin\Plugout interrupt
if ( IRQ_FLAG10 & ( VBUS_PLUG_OUT | VBUS_PLUG_IN ) ) //Plugin\Plugout interrupt
{
IRQ_FLAG9 = 0x0C;
IRQ_FLAG9 = CHG_FastChgTmr | CHG_TricleChgTmr;
IRQ_FLAG10 = 0xC0; //Clear Plugin\Plugout interrupt
IRQ_FLAG10 = VBUS_PLUG_OUT | VBUS_PLUG_IN; //Clear Plugin\Plugout interrupt
}
return;
}
else /*充电未超时存在Plug则清Plugin\Plugout int*/
{
IRQ_FLAG10 = 0xC0; //Clear Plugin\Plugout interrupt
IRQ_FLAG10 = VBUS_PLUG_OUT | VBUS_PLUG_IN; //Clear Plugin\Plugout interrupt
}
#ifdef NTC_ENABLE
/*NTC Handle*/ //使能Charger前先检测NTC温度异常就不开充电。(CHIP_STA4 & 0x80):PG
if( PMU_NTC_Handle(CHG_ON) ) //NTC保护不充电。
if( PMU_NTC_Handle( CHG_ON ) ) //NTC保护不充电。
{
CHG_CTL &= ~0x01; //Disable Charger.
CHG_CTL &= ~CHG_EN; //Disable Charger.
NTC_Pro_Flag = 1;
ChgStatus = CHG_PROTECT;
return;
}
@ -517,18 +560,18 @@ void Charger_Handler(void)
#endif
if( IRQ_FLAG9 & 0x10 ) //Charg complete interrupt
if( IRQ_FLAG9 & CHG_Complete ) //Charg complete interrupt
{
#if ADC_ENABLE
if( g_Vbat_Adc < BAT_RECHARG )
{
IRQ_FLAG9 = 0x10;
IRQ_FLAG9 = CHG_Complete;
}
else
{
CHG_CTL &= ~0x01; //Disable Charger
CHG_CTL &= ~CHG_EN; //Disable Charger
}
if( !Charger_Done )
@ -547,9 +590,10 @@ void Charger_Handler(void)
{
REG_CHG1 = gCharge_Cfg.nTrickle_Cur | gCharge_Cfg.nIterm_Cur | gCharge_Cfg.nConstant_Cur ; //设置Charger的涓流充电电流、截止充电电流、恒流CC。
REG_CHG2 = gCharge_Cfg.nVFloat;
REG_CHG2 = gCharge_Cfg.nVFloat; //设置CV电压阈值。
CHG_CTL |= 0x11; //Enable Charger And Charger Timeout
CHG_CTL |= CHG_SafyTmr_EN | CHG_EN; //Enable Charger And Charger Timeout
#if BAT_VALUE
if( bat_level > ( C_bat_level_protect + 1 ) )

View File

@ -114,14 +114,21 @@ bit gBoost_UVLO_Flag = 0;
*
* Description : Boost放电的保护功能包括 UVLO
*
* Arguments :
* Arguments : NONE
* Returns :
* Returns : NONE
* Notes :
* Notes : NONE
*
*******************************************************************************
*/
/*
1
2
3UVLO保护
4
5
*/
void DisCharge_Handler(void)
{
@ -132,8 +139,8 @@ void DisCharge_Handler(void)
#else
/* 过温保护、VBUS Over Voltage --- 硬件实现 */
if( CHIP_STA3 & 0x22 )
/* 过温保护 --- 硬件实现 */
if( CHIP_STA3 & 0x02 )
{
gBoost_Prepared_Flag = 0;
@ -149,22 +156,17 @@ void DisCharge_Handler(void)
return;
}
#if BAT_VALUE
if( F_batlevel_protect )
#if 0
/* BAT LOW Interrupt */
if( IRQ_FLAG0 & BAT_Low )
{
DisCharge_Boost_Close();
gBoost_Prepared_Flag = 0;
return;
}
#endif
/*输出短路保护 (使用中断标志位Boost短路中断发生后会锁存需要写1清零。)-- 短路保护后一直打嗝或者打嗝BOOST_HICCUP_TIM次之后disable boost打嗝时间 250ms软件实现。*/
if( IRQ_FLAG0 & 0x01 )
if( IRQ_FLAG0 & Boost_OutPut_Short )
{
#ifdef _DEBUG_DISCHARGE
printf("Boost Pro Output Short!\r\n");
@ -173,7 +175,7 @@ void DisCharge_Handler(void)
if( F_sys_tim_250ms )
{
IRQ_FLAG0 = 0x01;
IRQ_FLAG0 = Boost_OutPut_Short;
DisCharge_Boost_Open(OFF, Boost_Vout_5_05V); //250ms定时开一次Boost这个VOUT输出电压是直接输出固定值还是输出跟随充当前电压值
}
@ -199,6 +201,19 @@ void DisCharge_Handler(void)
#endif
#if BAT_VALUE
if( F_batlevel_protect )
{
DisCharge_Boost_Close();
gBoost_Prepared_Flag = 0;
return;
}
#endif
gBoost_Prepared_Flag = 1;
/*

View File

@ -31,23 +31,17 @@
/******************************************************************************\
Variables definitions
\******************************************************************************/
//bit Enter_Ship_Mode_Flag = 0; //½øshipmode±êÖ¾
//uint8_t Boot_ShipMode_Flg = 0; //Wake Up From ShipMode
uint16_t gAwake_Source = 0; //»½ÐÑÔ´±ê־λ
uint8_t Decnt_SleepDelay = ENTER_STANDBYMODE_CNT;
//uint8_t Enter_ShipMode_Debounce = 0;
bit Enter_Sleep_Cnt_Restart_Flag = 0;
/******************************************************************************\
Functions definitions
\******************************************************************************/
/*
*******************************************************************************
* void WakeUp_Init_Set(void)
@ -75,7 +69,7 @@ void WakeUp_Init_Set(void)
SFRADDR = WKUP_EN0;
SFRDATA |= 0x08;
STBTIM_CTL = 0x86; //Force LOSC In Standby;Enable Wakeup Time Control In Standby Mode;Set The Wakeup Time In Standby Mode:4s.
STBTIM_CTL = 0x86; //Force LOSC In Standby;Enable Wakeup Time Control In Standby Mode;Set The Wakeup Time In Standby Mode:8s.
#endif
@ -94,6 +88,7 @@ void WakeUp_Init_Set(void)
#endif
#if VOX_ENABLE
if( Vox_Ocp_Flag )
{
SFRADDR = WKUP_EN3; //VOX LOADON Wake Up Enable.
@ -134,7 +129,6 @@ void OutSleep_Handler(void)
SFRDATA |= 0xB0; //ADC enable.
}
/*
*******************************************************************************
* void InSleep_Handler(void)
@ -164,6 +158,7 @@ void InSleep_Handler(void)
SFRADDR = ADC_CTL0;
SFRDATA &= ~0xB0; //ADC Disable.
}
/*
*******************************************************************************
* void Enter_Sleep(void)
@ -187,8 +182,6 @@ void Enter_Sleep(void)
OutSleep_Handler(); //Enable IRQ
}
/*
*******************************************************************************
* bool Check_Require_Sleep(void )

View File

@ -67,7 +67,7 @@
void System_Init(void)
{
SFRADDR = P0_PD;
SFRADDR = P0_PD; //Disable P00\P01 Pull Down.
SFRDATA = 0x00;
#if UART0_ENABLE
@ -104,8 +104,11 @@ void System_Init(void)
#endif
#if ADC_ENABLE
Adc_Init();
#endif
#if KEY_ENABLE
SFRADDR = PMU_CTL0; //Enable Key Det Function
@ -116,11 +119,11 @@ void System_Init(void)
SFRADDR = MFP_CTL0; //Set P00 As Key.
SFRDATA &=~ 0x03;
SFRDATA |= 0x01;
/*
SFRADDR = MFP_CTL1; //Set P06 As Hall.
SFRDATA &=~ 0x30;
SFRDATA |= 0x10;
*/
/* Interrupt Enable 根据应用选择必要的中断 */
SFRADDR = IRQ_EN3; //INT2 --- VOX EDGE LOADON
SFRDATA = 0x3C;
@ -139,9 +142,11 @@ void System_Init(void)
#endif
#ifdef LED_DISPLAY
LED_Init();
LED_Clr();
#endif
#if GAUGE_ENABLE
@ -219,9 +224,11 @@ void EX2_isr(void) interrupt Interrupt_Vector_IE2
*
*******************************************************************************
*/
#ifdef TIM_WKUP
void EX3_isr(void) interrupt Interrupt_Vector_IE3
{
IRQ_FLAG10 = 0x02;
IRQ_FLAG10 = Standby_Tmr_WkUp;
#if SLEEP_ENABLE
@ -230,3 +237,5 @@ void EX3_isr(void) interrupt Interrupt_Vector_IE3
#endif
}
#endif

View File

@ -716,7 +716,7 @@ void Vox_Det_Machine(void)
}
/*Vox 过流保护两只耳机都每隔500ms打嗝一次*/
if( IRQ_FLAG0 & 0x0C )
if( IRQ_FLAG0 & ( VOR_OutPut_Short | VOL_OutPut_Short ) )
{
if( !Vox_Ocp_Flag )
{
@ -725,7 +725,7 @@ void Vox_Det_Machine(void)
{
Vox_Output_Debounce = 0;
IRQ_FLAG0 = 0x0C;
IRQ_FLAG0 = VOR_OutPut_Short | VOL_OutPut_Short;
VOX_EN_Type(VOX_VOUT_Mode);