diff --git a/Out/8837_EVB_241223_1951.bin b/Out/8837_EVB_241223_1951.bin deleted file mode 100644 index 091c20f..0000000 Binary files a/Out/8837_EVB_241223_1951.bin and /dev/null differ diff --git a/Out/8837_EVB_241223_1951.hex b/Out/8837_EVB_241223_1951.hex deleted file mode 100644 index 487a7c5..0000000 --- a/Out/8837_EVB_241223_1951.hex +++ /dev/null @@ -1,805 +0,0 @@ -:030000000225AF27 -:1025AF00758E3075D20078FFE4F6D8FD9000007F6D -:1025BF00007E01E4F0A3DFFCDEFA75819D02260A9E -:0F2DA60053797374656D20496E69742E0D0A00A0 -:102D3C001229D17BFF7A2D79A6120F6DD2AED2BE9D -:082D4C001227DF122BBF80F4F7 -:101C6300010D0001130001120001110001100041D8 -:101C730000D800020E00004200D200004200D6004D -:101C8300004200CB00004200CD00004200D400001F -:0F1C93004200D000004100CF004100D900C14005 -:102D540075FE0F43FF8075FE2975FFB575A52175B6 -:082D6400FE1E43FF01D2BD2257 -:10210300AB0720400302223A9000D2E0FEA3E0781E -:1021130003CEC313CE13D8F9F0EE9000D2F09000A3 -:10212300CFE024FD60301460651470030221CD24D8 -:10213300FE700302220124056003022237780DE6B4 -:10214300FF3395E0FEC39000D3E09FFF9000D2E001 -:102153009E9000D6806E9000D2E0FEA3E0FF7C0943 -:102163007DC412155A780A1214F89000D2EEF0A327 -:10217300EFF07810E6FD3395E0FCC3EF9DFFEE9C96 -:10218300FE7C007D051213F89000CBEE80369000A4 -:10219300D2E0FEA3E0FF7C097DC412155A780A122F -:1021A30014F89000D2EEF0A3EFF07811E6FD33952A -:1021B300E0FCC3EF9DFFEE9CFE7C007D051213F84F -:1021C3009000CDEEF0A3EFF0806A780DE6FF339533 -:1021D300E0FEC39000D3E09FFF9000D2E09EFE7C20 -:1021E300097DC412155A780A1214F8EEF0A3EFF021 -:1021F300E025E0FE9000D2E0339000D48032780DE9 -:10220300E6FF3395E0FEC39000D3E09FFF9000D23A -:10221300E09EFE7C097DC412155A780A1214F8EE6A -:10222300F0A3EFF0E025E0FE9000D2E0339000D081 -:10223300F0A3CEF0C240229000CFEBF0C454F044A0 -:0F22430001F5A5E49000D2F0A3F09000D9F022AD -:03006B0002284820 -:10284800C0E0C0F0C083C082C0D075D000C000C056 -:1028580006C007E5F330E038AFA1780E760008A689 -:1028680007E5A254031846F608E6F69000D9E0C337 -:102878009408501718E6FE08E6FF9000D2EE8FF095 -:1028880012144D9000D9E004F08005D24053A5FE03 -:1028980075F301D007D006D000D0D0D082D083D035 -:0428A800F0D0E0325A -:071CA200C11FC12001140362 -:102CCC00E47816F67818F67814E67817F67819760C -:0E2CDC00017916E718461846F5B175B20122C7 -:101E1D00E4FE9000D6E0FCA3E0FDC394D8EC94035F -:101E2D0040037F0022EF7003021F36D3ED940FECB9 -:101E3D0094034003021F14ED94CBEC940050030265 -:101E4D001F14D3ED94AAEC94024022D21D7814E60F -:101E5D00FF137817F6301E11D3ED94BFEC940240AA -:101E6D0004C21E80047817A607E4FE8070D3ED949B -:101E7D00AAEC94025043ED9437EC9401403BD21EF2 -:101E8D007814E6FF7817F6301D13D3ED9493EC9488 -:101E9D00025004C21D8006EFC3137817F678197629 -:101EAD0001301011D3ED9451EC94015004C2108007 -:101EBD0004E47819F6E4FE8024D3ED9437EC940114 -:101ECD00501BD210E47819F6301E10ED9426EC94C8 -:101EDD00015004C21E800478197601E4FE301B11F6 -:101EED00C3ED94F3EC94025006C21BE4FE80027E17 -:101EFD0001301C2FD3ED94DDEC94004006C21CE4A0 -:101F0D00FE80207E01801CD3ED940FEC94034006DF -:101F1D00D21B7E01800DD3ED94CBEC94005004D2F6 -:101F2D001C7E01C219C21A8058C21BC21CD3ED946B -:101F3D009FEC94035031ED9471EC940040293019CD -:101F4D0010ED9484EC94035006C219E4FE80027ED9 -:101F5D0001301A2DD3ED9482EC94004006C21AE4A0 -:101F6D00FE801E7E01801AD3ED949FEC94034004F5 -:101F7D00D219800BC3ED9471EC94005002D21A7EED -:031F8D0001AF069B -:011F9000222E -:10245500E5E65480FFE4FCFDFEEF700953B3FE781A -:1024650015F6C21F2278157601E5E830E50575E811 -:1024750020800FE5E530E1028008E5F230E50775DB -:10248500F22053B3FE22E5F2540C601053B3FEE57F -:10249500F354C0607375F20C75F3C02275F3C07FF9 -:1024A50001121E1DEF600653B3FED22022C220E5A5 -:1024B500F230E423C39000D5E094D29000D4E094A8 -:1024C5000F500575F210800353B3FE201F3AD21F3B -:1024D50078157603D236227916E77818461846F528 -:1024E500B17819E6F5B275FE7043FF1843B311785C -:1024F5001CE6FFD394014002C23FEFD39403400290 -:09250500C23E78157602C21F22C5 -:041CA900C13AC13B40 -:10000E00303A10EFB4010475B5C02253B5BFED44BC -:04001E0080F5B52292 -:102D9500E5B55480FFEF6008303A05E4F5B5C23A71 -:012DA500220B -:10290F00E5E530E103C23A22E5E230E705C23AD20B -:10291F003B22E5E830E00FC23A302A4575E8017DE9 -:10292F0038E4FF02000EE4FF121E1DEF6008C23AEA -:10293F00122D95D22022C220303F02801FD23A3072 -:10294F003B1F7815E6B40219C39000D5E0941090A0 -:10295F0000D4E0940E4005D23AC23B22122D95C20C -:02296F003A220A -:081CAD00C13CC13D4100F1FF03 -:102BF100E5E25408FF9000F1E06F601FE5E230E389 -:102C0100089000F07401F08005E49000F0F0D23CEF -:0B2C1100D23DD236D2429000F1EFF02D -:012C1C002295 -:101CB500C128C127C126011D004100EA004100E9F4 -:061CC500004200EB0000EC -:101F9100E5E25402FFE4FCFDFEEF70369000EB75C4 -:101FA100F00112144D9000EBE0FEA3E0FFC3946436 -:101FB100EE94004007202414D2248010C3EF9490A3 -:101FC100EE94014007202504D225D226D221C22237 -:101FD100803A302130D242C221D222C2259000EB78 -:101FE100E0FEA3E0FFD39419EE94005008D228D26A -:101FF10023D2368010C3EF94FAEE940050073024B8 -:1020010004C224D227E49000EBF0A3F0302224C2D2 -:102011002230270BC227781D7602E49000EAF030C7 -:102021002606C226781D760330230CC223781D763E -:10203100018004E4781DF69000F0E0640160030281 -:102041002102781DE6640260030220CB9000EAE0E1 -:10205100C3940150107D017F01121A9FE490007119 -:10206100F0A3F080529000E9E0D394054004E4F03D -:102071008039900072E0B4010FE4FD7F02121A9FD3 -:102081009000727402F0802F900072E06402702759 -:10209100900071E0601A7D017F02121A9FE49000A6 -:1020A10071F0A3F09000EAF0781DF67F03022A2870 -:1020B100E4FD7F01121A9F9000EAE0D394144032AC -:1020C1009000E9E004F0E4A3F022781DE6640370D7 -:1020D100309000EAE0FFC3941E501EEF54036004E9 -:1020E1007D0180099000EAE030E007E4FD7F031202 -:1020F1001A9F9000EAE004F022E4781DF69000EACD -:01210100F0ED -:0121020022BA -:101CCB00410079004100780041007A004100770023 -:102C6C0075FE0675FF3C75FE0E53FF0F75FE0F5378 -:102C7C00FFF075FE0375FFFFC282C283C285C2845A -:012C8C002225 -:102D0800EF14600D14600D14600D2403700BD28253 -:0A2D180022D28322D28422D2852227 -:052CAD00900000E0FFB3 -:102CB200EF14600D14600D14600D2403700BC282BA -:0A2CC20022C28322C28422C28522AE -:10297100E4FF747B2FF582E43400F583E4F0747F87 -:102981002FF582E43400F583E4F0EF25E02483F5AC -:1029910082E43400F583E4F0A3F0EF25E0248BF525 -:1029A10082E43400F583E4F0A3F0EF25E02493F50D -:1029B10082E43400F583E4F0A3F0EF25E0249BF5F5 -:0F29C10082E43400F583E4F0A3F00FEFB404A335 -:0129D00022E4 -:1028AC00AC07747B2CF582E43400F583EDF0EAC3BD -:1028BC0013FEEB13FFEC25E02483F582E43400F5E2 -:1028CC0083EEF0A3EFF0AF03EC25E0248BF582E46C -:1028DC003400F583EAF0A3EFF0900005E0FEA3E0EE -:1028EC00FFEC25E02493F582E43400F583EEF0A3AD -:1028FC00EFF0EC25E0249BF582E43400F583E4F062 -:03290C00A3F02213 -:102B5100747B2FF582E43400F583EDF0747F2FF55B -:102B610082E43400F583EBF0EF25E02483F582E481 -:102B71003400F583E4F0A37469F0EF25E0249BF5BC -:0B2B810082E43400F583E4F0A3F022AE -:100B9500E4900000F0F0900000E0FFC394044003EF -:100BA500020ED7747B2FF582E43400F583E06022D2 -:100BB50024FE6024147003020C9F147003020D16AA -:100BC50024036003020E73900000E0FF122D08025B -:100BD5000E73122CAD020E73900000E0FF25E02489 -:100BE50083F582E43400F583E0FCA3E0FDEF25E026 -:100BF500249BF582E43400F583E0FEA3E0C39DEE7B -:100C05009C5005122D088003122CAD900000E0FFCA -:100C150025E0248BF582E43400F583E0FCA3E0FDB8 -:100C2500EF25E0249BF582E43400F583E0FEA3E0A4 -:100C3500C39DEE9C5003020E73900000E025E02456 -:100C45009BF582E43400F583E4F0A3F0EF25E0247E -:100C550093F582E43400F583E0FEA3E0D39400EE3F -:100C650094004016900000E025E02493F582E434DA -:100C750000F58374FFF5F012144D900000E0FF2598 -:100C8500E02493F582E43400F583E0FCA3E04C60B6 -:100C950003020E73747B2F020D32900000E0FF25D6 -:100CA500E02483F582E43400F583E0FCA3E0FDEF66 -:100CB50025E0249BF582E43400F583E0FEA3E0D330 -:100CC5009DEE9C5005122D088003122CAD9000005E -:100CD500E0FF25E0248BF582E43400F583E0FCA3F6 -:100CE500E0FDEF25E0249BF582E43400F583E0FE8A -:100CF500A3E0C39DEE9C5003020E73900000E02517 -:100D0500E0249BF582E43400F583E4F0A3F0020EC1 -:100D150073900000E0FF247FF582E43400F583E062 -:100D25007017122ACAC241900000E0247BF582E4C4 -:100D35003400F583E4F0020E73900000E0FF247F99 -:100D4500F582E43400F583E0FE6402704B20411423 -:100D5500D241EF25E02483F582E43400F583E4F005 -:100D6500A37469F0900000E0FF25E02483F582E498 -:100D75003400F583E475F00112144DEF25E024836A -:100D8500F582E43400F583E0FCA3E0C394FEEC9423 -:100D9500005003020E5D804EEE6401705A2041172B -:100DA500D241900000E025E02483F582E43400F58B -:100DB50083E4F0A374FEF0900000E0FF25E02483B7 -:100DC500F582E43400F58374FFF5F012144DEF2538 -:100DD500E02483F582E43400F583E0FEA3E0D394B8 -:100DE50069EE94005072900000E0247FF582E434AF -:100DF50000F583E4F08061900000E0FF247FF58238 -:100E0500E43400F583E06403704EEF25E02483F5B8 -:100E150082E43400F583E0FEA3E0FFC394FEEE9484 -:100E2500004004D241800BD3EF946AEE9400500247 -:100E3500C241900000E025E0248330410DF582E4B5 -:100E45003400F58374FFF5F0800BF582E43400F58A -:100E550083E475F00112144D900000E0FF25E024B5 -:100E650083F582E43400F583A3E0FD122A7990002E -:100E750000E0FF7011747B2FF582E43400F583E008 -:100E8500900079F08043900000E0B40110247BF5D8 -:100E950082E43400F583E0900078F0802C90000027 -:100EA500E0B40210247BF582E43400F583E0900081 -:100EB5007AF08015900000E0B4030E247BF582E4FF -:100EC5003400F583E0900077F0900000E004F00234 -:100ED5000B9BE4900000F0900000E0FFC3940450E9 -:100EE5001BEF25E0249BF582E43400F583E475F0DF -:0C0EF5000112144D900000E004F080DBBE -:010F010022CD -:0B1CDB004200ED00004100EF0FC1428D -:102C1D0075FE1E43FF0275FE2143FF0875D48775AF -:102C2D00FE2143FF0475FE2143FF02300D0775FEA3 -:0C2C3D002453FFC32275FE2443FF3C22F9 -:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E -:0400660043FFB02282 -:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923 -:04007E0053FF4F22BB -:092DEB0012006E4387020200563B -:102D82007815E664026006200F03304204C242C393 -:032D920022D32227 -:1029D10075FE01E4F5FF122D22122DDE122DC3E446 -:1029E100F58675B7C375FE6A75FF0475FE6C43FF06 -:1029F1000A122D5475FE8043FF0275FE0E53FFFC33 -:102A010043FF0175FE1775FF3CD2A8D2AF122CCC43 -:102A11007D697F03122D6C122C6C122971122C1DF1 -:072A21009000DE7401F022B9 -:03000300020006F2 -:03000600D24232B1 -:03004B00022DFC87 -:062DFC0075EB3CD24232EF -:03005300022E0278 -:062E020075F302D242321A -:101CE6002040290000000000000000000000000065 -:101CF60000000000000000000000000000000000DE -:101D060000000000000000000000000000000000CD -:101D160000000000000000000000000000000000BD -:0F1D2600000000C139C1384100F2004100F30054 -:0E2DB500900029EFF0122DF4900029E0FF228B -:082DF4002037FDD2378F992230 -:102D220075FE0E53FFF343FF04D2DF43878075BA6B -:0A2D32000375AAFD759852D2AC2279 -:03002300022DD1DA -:0D2DD100309904C299C237309802C298327E -:0D2DDE0075BB03759DDC759B92439A012225 -:062B8C0090004312152B1E -:102B9200E4900046F0F0900046E0C39FE49E501C93 -:102BA2002038FDD238900043E475F001121514125A -:0C2BB200135DF59C900046E004F080DA12 -:012BBE0022F4 -:0300830002264F03 -:10264F00C0E0C083C082C0D075D000C000C006C03B -:10265F0007E59B30E105539BFDC238E59B30E06DEC -:10266F00539BFED2429000F2E014601914603424A0 -:10267F0002705AE59C9000F2B455087401F0A3E47F -:10268F00F0800E8018E59C9000F2B4AA107402F04E -:10269F00A3E0FF04F074292FF8A69C8030E4F0A388 -:1026AF00F0802A9000F3E0FF04F074292FF8A69C25 -:1026BF00782BE62404FFE433FEE0C39FEE6480F83A -:1026CF007480984008E4F09000F2F0D239D007D02F -:0C26DF0006D000D0D0D082D083D0E032F2 -:10225200506F776572204F6E205374617465214808 -:10226200616C6C28307825782920286C696E653A73 -:102272002564290D0A004177616B6520536F7572E1 -:1022820063653A57505F466C6167303A307825781B -:102292002C57505F466C6167313A307825782C575D -:1022A200505F466C6167333A307825782E286C6926 -:1022B2006E653A2564290D0A00536C6565702053DA -:1022C2007461746520286C696E653A2564290D0A6B -:1022D20000535441303A307825782C535441313AE6 -:1022E200307825782C535441323A307825782C5363 -:1022F2005441333A307825782C535441343A30786B -:1023020025782E4465635F536C6565703A25640DCC -:102312000A006164632063686E3A25642C41766723 -:102322005F4164633A25642C49766F6C3A25642CCC -:10233200566261743A25642C566F75743A25642C82 -:1023420049766F723A25642C566E74633A25642E70 -:102352000D0A004465636E745F536C656570446575 -:102362006C61792052656C6F61642E0D0A00456EB6 -:10237200746572205374616E646279204D6F646576 -:04238200210D0A001F -:101D35004300DE0402024100DB004100DC00C13645 -:0E1D4500C1354100DD004100E1004100DA003F -:10002600E4FB7D04FF122B51E4FB7D047F01122BC0 -:1000360051E4FB7D047F02122B51E4FB7D047F0318 -:03004600022B5139 -:1007B600303656C236E49000DCF0900005F0A3F027 -:1007C600FBFAFDFF1228ACE4900005F0A3F0FBFA5B -:1007D600FD7F011228ACE4900005F0A3F0FBFAFDC2 -:1007E6007F021228ACE4900005F0A3F0FBFAFD7F2F -:1007F600031228AC9000797402F0900078F0900013 -:100806007AF0900077F0D2422220200C200B0302CF -:1008160008BD300D030208BD203105D231D2362283 -:10082600900079E06403601A900005E4F0A3740A6E -:10083600F07B147A007D02E4FF1228AC90007974F4 -:1008460003F0900078E06403601A900005E4F0A3DA -:10085600740AF07B147A007D027F011228AC9000A6 -:10086600787403F090007AE06403601A900005E45F -:10087600F0A3740AF07B147A007D027F021228AC82 -:1008860090007A7403F0900077E06403601A900099 -:1008960005E4F0A3740AF07B147A007D027F03124C -:1008A60028AC9000777403F09000DCE0C3942850E5 -:1008B600030209F4D20D2230310CC231C233C232E6 -:1008C600C23DC20CD2357815E6640260030209CE39 -:1008D600301F5C203305D233120026E4900005F069 -:1008E600A3F0FBFA7D01FF1228ACE4900005F0A30B -:1008F600F0FBFA7D017F011228ACE4900005F0A31D -:10090600F0FBFA7D017F021228ACE4900005F0A30B -:10091600F0FBFA7D017F031228AC9000797401F098 -:10092600900078F090007AF0900077F00209C520E8 -:10093600320CD232D236E49000E1F00209C59000C2 -:10094600DCE0C394015057E004F09000E1E014604D -:100956001A14602714603424037064900079E064EC -:1009660004605C7B017D04E4FF802E900078E064E7 -:1009760004604C7B017D047F01801E90007AE06458 -:1009860004603C7B017D047F02800E900077E0646A -:1009960004602C7B017D047F03122B518021900083 -:1009A600DCE0C3940F5005E004F08013E49000DC13 -:1009B600F09000E1E004F0E0C394044002E4F0C2E9 -:1009C6003DC20CC228D2342230320AC2321200266C -:1009D600D236D23522203D0C203409200C062028A0 -:1009E60003020B949000DCE0FFC394015004E00482 -:1009F600F022EFC394644003020B3F9000DCE00456 -:100A0600F0781BE6C394195037900079E0640370C0 -:100A160003020B94E4900005F0A3F07B64FA7D03D7 -:100A2600FF1228AC9000797404F0E4900005F0A35E -:100A3600F0FBFAFD7F011228AC9000787402803238 -:100A4600781BE6C394325041E4900005F0A3F0FB16 -:100A5600FA7D01FF1228AC9000797401F0E4900051 -:100A660005F0A3F0FBFA7D017F011228AC90007817 -:100A76007401F0E4900005F0A3F0FBFAFD7F02128A -:100A860028AC90007A74028048781BE6C3944B50D9 -:100A960057E4900005F0A3F0FBFA7D01FF1228ACA5 -:100AA6009000797401F0E4900005F0A3F0FBFA7D64 -:100AB600017F011228AC9000787401F0E4900005E3 -:100AC600F0A3F0FBFA7D017F021228AC90007A7445 -:100AD60001F0E4900005F0A3F0FBFAFD7F03122875 -:100AE600AC9000777402F022781BE6C3946440034E -:100AF600020B94E4900005F0A3F0FBFA7D01FF12CF -:100B060028ACE4900005F0A3F0FBFA7D017F01120A -:100B160028ACE4900005F0A3F0FBFA7D017F0212F9 -:100B260028ACE4900005F0A3F0FBFA7D017F0312E8 -:100B360028AC90007974018048C23DC234C20CC210 -:100B460028E4900005F0A3F0FBFAFDFF1228ACE4C0 -:100B5600900005F0A3F0FBFAFD7F011228ACE490AB -:100B66000005F0A3F0FBFAFD7F021228ACE490002A -:100B760005F0A3F0FBFAFD7F031228AC9000797410 -:0E0B860002F0900078F090007AF0900077F086 -:010B9400223E -:102C8D009000D8E0FF04F01221039000D8E0B406C4 -:102C9D000204F09000D8E0C3940840037402F022BF -:102CEA0012245512290F122BF1121F911226EB30C2 -:0E2CFA00290BC22912250E1207B612182F221E -:10159900E4900000F09000DEE0FFA3E0FE6F70032E -:1015A90002165FA3EEF09000DEE0A3F024FE605780 -:1015B90014700302164514700302164C24036003C9 -:1015C90002182E900005E4F0A37403F07B647A00FE -:1015D9007D02E4FF1228AC900005E4F0A37403F047 -:1015E9007B647A007D027F011228AC7BFF7A227925 -:1015F900529000F0E0FF900004E4F0A3EFF0A37430 -:1016090001F0A374E3804B300D09D23C75E80CC29C -:101619000BC20D7BFF7A227978AFF6900004E4F0D3 -:10162900A3EFF0AFF8A3E4F0A3EFF0AFFAA3E4F06F -:10163900A3EFF0A37401F0A374F880169000EF747F -:101649000FF0227BFF7A2279BB9000047402F0A389 -:101659007410F00217B59000DFE024FE60351460C5 -:10166900761470030217C82403600302182E900031 -:10167900DAE004F0E0C39408500302182E9000DE6B -:101689007402F0E49000DAF0781CE6600302182E88 -:101699000217C1E5F6700CE5F87008E5FA7004E583 -:1016A900E1602D9000DE7403F0E5F6540FFFE4FCD1 -:1016B900FDFE7B08FAF9F8C31214E770069000DE04 -:1016C9007404F075E11F75F60F75F8FC75FABC2204 -:1016D9009000DE7403F022202D0302182EC22D7B08 -:1016E900FF7A2279D3AFE2900004E4F0A3EFF0AFE0 -:1016F900E3A3E4F0A3EFF0AFE4A3E4F0A3EFF0AFCA -:10170900E5A3E4F0A3EFF0AFE6A3E4F0A3EFF090D4 -:1017190000EFE0FF90000EE4F0A3EFF0120F6D7BF5 -:10172900FF7A2379149000D8E0FF900004E4F0A335 -:10173900EFF09000D2E0FFA3E0900006CFF0A3EF16 -:10174900F09000CBE0FFA3E0900008CFF0A3EFF00A -:101759009000D4E0FFA3E090000ACFF0A3EFF0904F -:1017690000D0E0FFA3E090000CCFF0A3EFF09000D1 -:10177900CDE0FFA3E090000ECFF0A3EFF09000D6EC -:10178900E0FFA3E0900010CFF0A3EFF0120F6D90EF -:1017990000EFE0D394004017E014F0204203021850 -:1017A9002EC242740FF07BFF7A237955020F6D7BAD -:1017B900FF7A237970120F6D9000DE7404F0221203 -:1017C9002D82505B122C1D7F04122A28122D95E4BC -:1017D900900005F0A3F0FBFAFDFF1228ACE490009D -:1017E90005F0A3F0FBFAFD7F011228ACE490000597 -:1017F900F0A3F0FBFAFD7F021228ACE4900005F09B -:10180900A3F0FBFAFD7F031228AC9000797402F073 -:10181900900078F090007AF0900077F0022DEB902C -:0518290000DE7402F076 -:01182E002297 -:102BBF00302C26C22C9000DBE0FF04F0EF14600CE9 -:102BCF0014600E24027012122C8D800D122CEA80CC -:102BDF0008121599E49000DBF0302E05C22E120B6F -:022BEF0095222D -:102386005258315F4275666665725B305D3A3078E9 -:1023960025782C5258315F4275666665725B315DF1 -:1023A6003A307825782C5258315F427566666572E8 -:1023B6005B325D3A307825782C5258315F4275662B -:1023C6006665725B335D3A307825782C5258315FFA -:1023D6004275666665725B345D3A307825782C52B4 -:1023E60058315F4275666665725B355D3A307825B1 -:1023F600782C5258315F4275666665725B365D3A77 -:10240600307825782C6C696E653A25640D0A0000D3 -:1024160000000000000000000000000000000000B6 -:1024260000000000000000000000000000000000A6 -:102436000000000000000000000000000000000096 -:0F24460000000000000000000000000000000087 -:101D5300C10FC10CC10E410073FFC10B42004D0006 -:101D63000042004B0000420071000042006E000080 -:101D73004200740000C10D019D00106900000000C5 -:101D83000000000000000000000000002024790093 -:101D93000000000000000000000000000000000040 -:101DA3000000000000000000000000000000000030 -:071DB3000000004100700078 -:102A2800EF24FE601E14602814602F24FE603524F5 -:102A380005703D43BD8853BDBB75FE6F53FFF24320 -:102A4800FF092243BDCC75FE6F53FFFE43FF0C22E6 -:102A580053BD7753B7CF43B7302253B7CF43B703EC -:102A680053BD772253B7CC53BD7775FE6A43FF3009 -:012A7800223B -:10182F00203A03021A66303C57200E0A7D3FE4FF30 -:10183F0012000ED20E227F03122A28E490004AF0E3 -:10184F00900048F0A3F0C2009000F0E07024C20CAA -:10185F00D201D202C203C207C208C209900071F0BE -:10186F00A3F0D20FC23590006CF0A3F0900076F089 -:10187F008008C201C202D203C205C20BC20DC23C14 -:10188F00200303021921900048E0C394055003027E -:10189F001A04900049E0C3940550077F06122A28C6 -:1018AF00802620003C90004AE0FFD3940B501EEF9F -:1018BF0054037003FD800990004AE020E0077D018A -:1018CF007F06121A9F90004AE004F080457F0412B1 -:1018DF002A28E490004AF0D200D204C20EC20F8030 -:1018EF0031300404C2048022E5E354A0FBE4FAF98A -:1018FF00F8900047E0FFE4FCFDFEC31214E760120E -:10190F00E5E354A06004D20CD236E5E354A0900076 -:10191F0047F0200103021A63303531200E257D3F39 -:10192F00E4FF12000ED20ED20FE490006CF0A3F081 -:10193F00900076F0900049F0900048F090004AF047 -:10194F00C207227F03122A28C2358031900048E057 -:10195F00D394035003021A04900049E0FFD3940B71 -:10196F00501BEF54037003FD8009900049E020E005 -:10197F00077D017F81121A9F900049807890004A5D -:10198F00E0FFD39432501BEF54037003FD80099096 -:10199F00004AE020E0077D017F07121A9F90004A5E -:1019AF008053E5E8540C6026200D1E90004AE00499 -:1019BF00F0E0C394055003021A9EE4F075E80C7F23 -:1019CF0003122A28D20BC20F227F04022A28C20B2D -:1019DF00C20D3002097F03122A28C2028076200727 -:1019EF003FE5E354AC64AC6003303E23900048E025 -:1019FF00D394325004E004F022D207E490004AF06E -:101A0F00900048F0C208C20E7F04122A2880459029 -:101A1F00006DE0703F7B017A00794F1200868034B1 -:101A2F0090004AE0FFD3940B501EEF54037003FD58 -:101A3F00800990004AE020E0077D017F80121A9F05 -:101A4F0090004AE004F0800C200809D2087F0412AD -:101A5F002A28C20FC2062220060BD2067F04122AA2 -:101A6F0028C20F8022E5E354A0FBE4FAF9F89000B6 -:101A7F0047E0FFE4FCFDFEC31214E76012E5E354F8 -:0F1A8F00A06004D20CD236E5E354A0900047F0DB -:011A9E002225 -:0600860090000012152B92 -:10008C00900076E0147003020163147003020242C4 -:10009C001470030202B314700302041F24046003DF -:1000AC0002059F90000012150B90001E1213766033 -:1000BC000302059F789DE6D3940A50260690001AF9 -:1000CC00743F1213D6300A0302059F9000001215DC -:1000DC000B90001A121376FDE4FF12000ED20A02E6 -:1000EC00059FE4789DF6C20A90000012150B900053 -:1000FC0016E41213D6900015E41213D6900013E4F4 -:10010C001213D6900012E41213D6900011E41213BD -:10011C00D6900010E41213D6900018E41213D69067 -:10012C000017E41213D690000EE4F5F01214BA90F6 -:10013C00000CE4F5F01214BA900019E41213D690E6 -:10014C00001B743F1213D69000767401F0E49000FB -:10015C004DF0A3F002059FE5E35408FFE4FCEF60CB -:10016C001CE5E35404601690000012150B90001E61 -:10017C0074011213D6E4900076F002059FE5E35467 -:10018C0008FFE4FCEF704A9000CDE0FEA3E0FF9086 -:10019C00000012150B900002EE8FF01214BA7D05C0 -:1001AC001213F8EF7802C333CE33CED8F9FF900098 -:1001BC000012150B900006EE8FF01214BA9000CEC0 -:1001CC00E025E0FF9000CDE03390000A8FF0121490 -:1001DC00BAE5E35404FFE4FCEF704F9000CBE0FE73 -:1001EC00A3E0FF90000012150BEE8FF012149B9001 -:1001FC0000CBE0FEA3E0FF7D051213F8EF7802C3FD -:10020C0033CE33CED8F9FF90000012150B900004BA -:10021C00EE8FF01214BA9000CCE025E0FF9000CBEA -:10022C00E0339000088FF01214BA90000012150BF6 -:10023C0090001D020594D390004EE0940590004D63 -:10024C00E094005002806FE490004DF0A3F0E5E3E1 -:10025C005408FFEF701F9000CDE0FEA3E0FF90006C -:10026C000012150B90000EEE8FF01214BA900018BD -:10027C0074011213D6E5E35404FFE4FCEF701F90F5 -:10028C0000CBE0FEA3E0FF90000012150B90000CD9 -:10029C00EE8FF01214BA90001774011213D690005E -:1002AC00767403F002059FD390004EE09402900008 -:1002BC004DE09400500AE475F00112144D02059FB4 -:1002CC00E490004DF0A3F090000012150B90000A82 -:1002DC00121463FFAEF090000E121463D39FE5F07E -:1002EC009E501C90000012150B900008121463FF16 -:1002FC00AEF090000C121463D39FE5F09E4011E415 -:10030C00900076F090000012150B90001D0203E196 -:10031C0090000012150B9000181213766401706D8A -:10032C0090000E121463FFAEF0D39414EE940050B0 -:10033C0031E5E330E31F90001674011213D69000E0 -:10034C001A121376C3943F404490000012150B9080 -:10035C000018E4803590000012150B900013740106 -:10036C00802890000012150B900006121463FDD328 -:10037C00EF9DEE95F0900000400812150B900013C5 -:10038C00800612150B90001674011213D690000003 -:10039C0012150B9000171213766401600302059F6F -:1003AC0090000C121463FFAEF0D39414EE94005032 -:1003BC0034E5E330E22290001574011213D690005C -:1003CC001A121376C3943F500302059F900000123B -:1003DC00150B900017E4803590000012150B90005F -:1003EC00127401802890000012150B900004121456 -:1003FC0063FDD3EF9DEE95F0900000400812150BB5 -:10040C00900012800612150B90001574011213D671 -:10041C0002059FD390004EE0941490004DE09400A0 -:10042C005031E475F00112144D9000CDE0FEA3E0C4 -:10043C00FF90000012150B90000EEE8FF01214BA04 -:10044C009000CBE0FFA3E090000CCF8FF01214BA19 -:10045C0002059FE490004DF0A3F090000012150BE4 -:10046C00900018121376640160030204FD900017CB -:10047C001213766401707A900006121463FFAEF0CA -:10048C0090000E121463FDACF0C39FEC9E401890CC -:10049C00000012150B90000A121463FFD3ED9FECB1 -:1004AC0095F0500302059F90000012150B9000046C -:1004BC00121463FFAEF090000C121463FDACF0C389 -:1004CC009FEC9E401890000012150B90000812141F -:1004DC0063FFD3ED9FEC95F0500302059F90000055 -:1004EC0012150B90001674011213D690001502050C -:1004FC009490000012150B90001812137664017082 -:10050C0041900006121463FFAEF090000E121463BB -:10051C00FDACF0C39FEC9E401590000012150B90A3 -:10052C00000A121463FFD3ED9FEC95F04014900079 -:10053C000012150B90001674011213D690007674ED -:10054C0002F090000012150B900017121376640144 -:10055C007041900008121463FFAEF090000C12145E -:10056C0063FDACF0D39FEC9E501590000012150B60 -:10057C00900004121463FFC3ED9FEC95F05014909F -:10058C00000012150B90001574011213D690007612 -:10059C007402F090000012150B900018121376FFE5 -:1005AC006401600D9000171213766401600302075A -:1005BC009C900013121376FE6401600D90001212D1 -:1005CC00137664016003020716EFB4011E90001746 -:1005DC00121376B40115EEB40111900013121376B8 -:1005EC00B4010890001474011213D6900018121361 -:1005FC0076FFB40118900017121376701090001348 -:10060C001213766401702390001404801AEF701A90 -:10061C00900017121376B40111900012121376B4D5 -:10062C00010890001474011213D6900013E41213F5 -:10063C00D6900012E41213D69000141213766401B3 -:10064C0060030207B590000012150B90001A1213EC -:10065C0076D39400400890001A74FE1213A39000F5 -:10066C0019121376FF90001A121376D39F401B9029 -:10067C0000D5E024C8FF9000D4E03400FEC3900005 -:10068C00D1E09F9000D0E09E504890000012150BD6 -:10069C00900019121376FF90001A121376D39F90C4 -:1006AC000000501312150B90001AEF1213D6900085 -:1006BC001CE41213D6801312150B90001C7401123B -:1006CC0013D690001A74021213A39000767404F0DF -:1006DC0080139000767402F090000012150B9000BD -:1006EC001CE41213D6E490004DF0A3F0900000121D -:1006FC00150B900014E41213D690001C121376FF05 -:10070C0090001A121376FD02079990000012150B37 -:10071C009000161213766401600D9000151213767A -:10072C00640160030207B5900016E41213D6900022 -:10073C0015E41213D690001A121376C3943F500E80 -:10074C0090000012150B90001A74021213A3900063 -:10075C00767404F090000012150B90001B121376A7 -:10076C00FF90001A121376C39F40139000001215CD -:10077C000B90001AEF1213D69000767401F09000D3 -:10078C000012150B90001A121376FDE4FF02000EF6 -:10079C00900076E0D394024010E4F0900000121523 -:0907AC000B90001E74011213D61B -:0107B5002221 -:0B2B0E0090004312152B900046EDF0E4 -:102B1900E4FE900046E0FD14F0ED6029900043E4E6 -:102B290075F00112151412135D6EFEE4FFEFC394E4 -:102B39000850DFEE30E007C313648CFE8004EEC357 -:072B490013FE0F80E8AF0648 -:012B50002262 -:081A9F00900000EFF0A3EDF050 -:101AA700E4A3F078037C007D017BFF7A247915FE9F -:101AB7007F40121337E4900003F0A37455F0A3742A -:101AC700AAF0900000E0FE900007F0900001E0FD12 -:101AD700900073F0EE1215341AF8011B27021B76DB -:101AE700031B83061B83071BC8801BD08100001BB9 -:101AF700DE9000067402F0ED700E9000087402F09C -:101B0700E4900071F0021BDE900001E064016003C5 -:101B1700021BDE90000804F0E4900072F0021BDE66 -:101B2700900006741BF07F05900001E075F012A489 -:101B370024792FF8E6FE74032FF582E43400F58349 -:101B4700EEF00FEFB412E17F17EFC39408400302E2 -:101B57001BDE900001E075F008A424692FF8E6FE6B -:101B670074032FF582E43400F583EEF00F80DA90EA -:101B770000067402F090000804F0805B9000067481 -:101B870005F09000087401F0781BE6A3F0A3742019 -:101B9700F0900001E0FF700D90006EE07002800F82 -:101BA70090006F8015EFB4012E90006FE0700890E1 -:101BB700000B74FFF0802090006EE090000BF08027 -:101BC700169000067401F0800E9000067402F090E3 -:101BD7000070E0900008F0900006E02404FF9000F9 -:101BE70002F0FD7B017A007903122B0E900002E0D0 -:101BF7002403F582E43400F583EFF07F01122A28ED -:101C0700900001E0FF700843BD0253BDFE8016EF50 -:101C1700B4010843BD2053BDEF800AEFB4FF06436C -:101C2700BD2253BDEE900002E02402FFE433FE7BA9 -:101C3700017A007903122B8C900001E0FF700753A3 -:101C4700BDFD43BD0122EFB4010753BDDF43BD1006 -:0B1C570022EFB4FF0653BDDF43BD11B8 -:011C6200225F -:10276900EF24FA605014604D24067069E4FE742D5C -:102779002EF8E6FF900073E075F012A424792EF884 -:10278900A6070EEEB412E7E4FE743F2EF8E6FF90BA -:102799000073E075F008A424692EF8A6070EEEB4BC -:1027A90008E7900073E0700690007104F022900031 -:1027B900727401F022782DE6B4E30D90004B740198 -:1027C900F008E690006EF02290004C7401F0782E2B -:0527D900E690006FF026 -:0127DE0022D8 -:1026EB00E4900000F0303975C2397BFF7A2379868C -:1026FB007829E6FF900004E4F0A3EFF008E6FFA3CF -:10270B00E4F0A3EFF008E6FFA3E4F0A3EFF008E694 -:10271B00FFA3E4F0A3EFF008E6FFA3E4F0A3EFF0D0 -:10272B0008E6FFA3E4F0A3EFF008E6FFA3E4F0A3B1 -:10273B00EFF0A37406F0A374A7F0120F6D7B007A71 -:10274B00007929782BE62403FD122B0E782BE62437 -:0D275B002CF8E6B50707782CE6FF12276979 -:01276800224E -:101DBA00011C00011B00C13EC13F011A50602800EE -:101DCA00A30BB80BEA0C1C0C800CB20CE40D160D1C -:101DDA00480D7A0DAC0DF70E420E880ED80F0A0F79 -:091DEA003C0F870FD2101D106898 -:10250E00E4FF7815E6B40225EF25E024A3F582E476 -:10251E003400F583E0FCA3E02432FDE43CFCC390E0 -:10252E0000D5E09D9000D4E09C50208023EF25E064 -:10253E0024A3F582E43400F583E0FCA3E0FDC39010 -:10254E0000D5E09D9000D4E09C40050FEFB414B28E -:10255E00781CE6FEEFD39E781A400306800116E53E -:10256E00E1600DE4F5E1781CEFF675F005A418F6C0 -:10257E00781AE6FED394965006EEC3940A500D7860 -:10258E001CEFF675F005A418F6187650781CE6FFC9 -:10259E00D394005003D23F22EFD394015002D23E87 -:0125AE00220A -:101DF3004100E5004100E8004100E4004200E20048 -:101E0300004100E600C12BC12CC12EC12AC129C14A -:091E13002D4100E700C12FC13090 -:1027DF009000E7E06062E4F0D22B9000E5E004F0B7 -:1027EF00E0C394054004E4F0D22C9000E8E004F03C -:1027FF00E0C3940A4004E4F0D22E9000E2E475F0B6 -:10280F000112144DC39000E3E094649000E2E09451 -:10281F00004006E4F0A3F0D2299000E4E004F0E0D9 -:10282F00C394FA4013E4F0D22A9000E6E004F0E0FB -:09283F0094044004E4F0D22D22BF -:03000B00022C497B -:102C4900C0E0C083C082C0D074FC258CF58C74664A -:102C5900258AF58A9000E77401F0D0D0D082D0831C -:032C6900D0E03286 -:0E2DC300758901758CFC758A66D2A9D28C22A6 -:102ACA00EFD39401501675FE0EEF25E02404FE7430 -:102ADA0003A806088002C333D8FC801475FE0FEFE2 -:102AEA0024FE25E0FE7403A806088002C333D8FC3E -:102AFA00F452FFEFB4040C75FE0F53FFF075FE0E8F -:042B0A0053FF0F2244 -:102D6C0075FE54EF5407F5FF75FE56AF058FFF75D2 -:062D7C00FE5375FF012269 -:102A7900EFD39401501875FE0EEF25E02404FE747F -:102A890003A806088002C333D8FC42FF801675FEEE -:102A99000FEF24FE25E0FE7403A806088002C33365 -:102AA900D8FC42FFEF70038DCE22EFB401038DCF26 -:102AB90022EFB402038DDE22EFB40304AF058FDFEA -:012AC90022EA -:032FFD00010102CD -:1025CF00022D3CE493A3F8E493A34003F68001F2B9 -:1025DF0008DFF48029E493A3F85407240CC8C3330D -:1025EF00C4540F4420C8834004F456800146F6DFDC -:1025FF00E4800B0102040810204080901C63E47EED -:10260F00019360BCA3FF543F30E509541FFEE493D0 -:10261F00A360010ECF54C025E060A840B8E493A397 -:10262F00FAE493A3F8E493A3C8C582C8CAC583CAC2 -:10263F00F0A3C8C582C8CAC583CADFE9DEE780BE7A -:011E1C0000C5 -:10126700E709F608DFFA8046E709F208DFFA803E69 -:1012770088828C83E709F0A3DFFA8032E309F60856 -:10128700DFFA8078E309F208DFFA807088828C83BE -:10129700E309F0A3DFFA806489828A83E0A3F60872 -:1012A700DFFA805889828A83E0A3F208DFFA804C4C -:1012B70080D280FA80C680D4806980F28033801023 -:1012C70080A680EA809A80A880DA80E280CA80338C -:1012D70089828A83ECFAE493A3C8C582C8CCC58304 -:1012E700CCF0A3C8C582C8CCC583CCDFE9DEE780D4 -:1012F7000D89828A83E493A3F608DFF9ECFAA9F053 -:10130700EDFB2289828A83ECFAE0A3C8C582C8CCA8 -:10131700C583CCF0A3C8C582C8CCC583CCDFEADEC1 -:10132700E880DB89828A83E493A3F208DFF980CC23 -:1013370088F0EF60010E4E60C388F0ED2402B4041C -:101347000050B9F582EB2402B4040050AF232345C3 -:0613570082239012B7731F -:10135D00BB010689828A83E0225002E722BBFE028E -:09136D00E32289828A83E49322C1 -:10137600BB010CE58229F582E5833AF583E022502C -:1013860006E92582F8E622BBFE06E92582F8E22276 -:0D139600E58229F582E5833AF583E4932290 -:1013A300BB010FF8E58229F582E5833AF583E0284E -:1013B300F0225009C58229F8E58226F622BBFE09F0 -:1013C300C58229F8E22582F222F8EA2583F583E92A -:0313D3009328223A -:1013D600F8BB010DE58229F582E5833AF583E8F04D -:1013E600225006E92582C8F622BBFE05E92582C8F9 -:0213F600F222E1 -:1013F800BC000BBE0029EF8DF084FFADF022E4CCD9 -:10140800F875F008EF2FFFEE33FEEC33FCEE9DECA1 -:10141800984005FCEE9DFE0FD5F0E9E4CEFD22EDE7 -:10142800F8F5F0EE8420D21CFEADF075F008EF2F31 -:10143800FFED33FD4007985006D5F0F222C398FD22 -:051448000FD5F0EA22BF -:10144D00C5F0F8A3E028F0C5F0F8E582158270022A -:06145D001583E038F022C7 -:10146300BB0110E58229F582E5833AF583E0F5F0C7 -:10147300A3E0225009E92582F886F008E622BBFEA4 -:101483000AE92582F8E2F5F008E222E5832AF583EA -:08149300E993F5F0A3E99322AF -:10149B00BB010A89828A83F0E5F0A3F0225006F79C -:0F14AB0009A7F01922BBFE06F3E5F009F3192299 -:1014BA00F8BB0111E58229F582E5833AF583E8F064 -:1014CA00E5F0A3F0225009E92582C8F608A6F02221 -:0D14DA00BBFE09E92582C8F2E5F008F22208 -:1014E700EB9FF5F0EA9E42F0E99D42F0E89C45F05B -:0114F70022D2 -:1014F800E8600FECC313FCED13FDEE13FEEF13FFD2 -:03150800D8F122F5 -:09150B00E0FBA3E0FAA3E0F922E1 -:10151400F8E0FBA3A3E0F925F0F0E5821582700260 -:071524001583E0FA38F02204 -:09152B00EBF0A3EAF0A3E9F022C1 -:10153400D083D082F8E4937012740193700DA3A346 -:1015440093F8740193F5828883E47374029368605A -:06155400EFA3A3A380DF5A -:10155A00EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D1E -:10156A00FDE43CFCE8A42EC8C5F03DFDE43CFCEFDC -:0D157A00A4FFE5F028FEE43DFDE43CFC226A -:100F0200E5082404F582E43400F583E00508229024 -:100F12000001301703900004E475F0011215140269 -:100F2200135D2010E97F2ED2108018EF540F249009 -:100F3200D43440D4FF30140BEF24BFB41A00500352 -:100F42002461FFE50960021509050CE50C70020534 -:100F52000B30170E900001E475F001121514EF0228 -:100F62001587022DB57403D2178003E4C217F50862 -:100F720090000112152BE4F509F50BF50CE509605B -:100F8200077F20120F4580F5750AFFC211C210C2F9 -:100F920012C213C215C216C218120F11FF700D3001 -:100FA20017057F00120F56AF0CAE0B22B4255FC29D -:100FB200D5C214120F11FF24D0B40A00501A75F0D2 -:100FC2000A780930D50508B6FF0106C6A426F62020 -:100FD200D5047002D21380D924CFB41A00EF500482 -:100FE200C2E5D214021157D21180C6D21080C0D2EB -:100FF2001280BCD2D580BAD21580B47F20120F45A0 -:101002002012077401B5090040F1120F02FF120FFE -:1010120045020F7FD218D2168095120F02FB120FD3 -:1010220002FA120F02F94A4B700679287A127BFFF4 -:1010320020122EE509602A7E008E8275830012132B -:101042007660060EEE650A70F0C2D5EBC0E0EAC02B -:10105200E0E9C0E0EE12119ED0E0F9D0E0FAD0E073 -:10106200FB12135DFF60AAEBC0E0EAC0E0E9C0E05A -:10107200120F45D0E02401F9D0E03400FAD0E0FBB1 -:10108200E50A0460DCD50AD980877BFF7A11799A58 -:10109200D212809C791080027908C216C218800888 -:1010A200D2D5790A8004790AC2D5E50A047002F51C -:1010B2000AE4FAFDFEFF120F02FC7B082011131254 -:1010C2000F02FD7B1030100A120F02FE120F02FFF8 -:1010D2007B20EC3382D592D55013C3E43010069FA7 -:1010E200FFE49EFEE42011039DFDE49CFCE4CBF8AA -:1010F200C211EC700CCFCECDCCE824F8F870F3809E -:1011020017C3EF33FFEE33FEED33FDEC33FCEB336D -:10111200FB994002FB0FD8E9EB301105F8D0E0C48F -:1011220048B211C0E00AEC4D4E4F78207B0070C2ED -:10113200EAB50A0040BCC0E01211A0D0F0D0E02015 -:101142001104C4C0E0C4B211C0F0120F2ED0F0D509 -:10115200F0EB020F7F121534101C531096580FED4E -:101162004C0FE942109A4F10A24410A249100243B8 -:0811720010A855108C46108CEA -:10117A0045108C471248500FF12D0FF52E10182BE1 -:10118A000FF92310162012312A0FB148000010104F -:10119A003F3F3F00790AA2D5201314301509B91030 -:1011AA00020404B9080104A2D52016025001042041 -:1011BA0012689212B509005034C0E07F203013192A -:1011CA007F30A21272167215500F1211F7C212C294 -:1011DA0016C215C2187F30800F301503E9C0E0121D -:1011EA000F45301503D0E0F9D0E0B509CC3015171A -:1011FA007F30B9100C120F457F583014077F788062 -:10120A0003B90803120F453012057F2D020F457FDF -:10121A00202018F87F2B2016F322921280CF286EF6 -:10122A00756C6C2900D211120F023011F8C21178B4 -:10123A000930D50108F6020FB12D50434958120F53 -:10124A00022403B405004001E490124393120F36BE -:0D125A00743A120F36D21375090402109673 -:10158700BB010689828A83F0225002F722BBFE0143 -:02159700F3223D -:00000001FF diff --git a/Out/8837_EVB_241223_1951_5034_010102.bin b/Out/8837_EVB_241223_1951_5034_010102.bin deleted file mode 100644 index 3e72eb6..0000000 Binary files a/Out/8837_EVB_241223_1951_5034_010102.bin and /dev/null differ diff --git a/Out/8837_EVB_241227_1754.bin b/Out/8837_EVB_241227_1754.bin new file mode 100644 index 0000000..5639a31 Binary files /dev/null and b/Out/8837_EVB_241227_1754.bin differ diff --git a/Out/8837_EVB_241227_1754.hex b/Out/8837_EVB_241227_1754.hex new file mode 100644 index 0000000..e615925 --- /dev/null +++ b/Out/8837_EVB_241227_1754.hex @@ -0,0 +1,831 @@ +:030000000227DAFA +:1027DA00758E3075D20078FFE4F6D8FD9000007F40 +:1027EA00007E01E4F0A3DFFCDEFA7581A70228353A +:0F2F370053797374656D20496E69742E0D0A000D +:102ECC00122B5A7BFF7A2F7937120F77D2AED2BEE4 +:082EDC0012296E122D4880F44A +:101CE500010D000113000112000111000110004156 +:101CF50000D800020E00004200D200004200D600CB +:101D0500004200CB00004200CD00004200D400009C +:0F1D15004200D000004100CF004100D900C14280 +:102EE40075FE0F43FF8075FE2975FFB575A5217525 +:082EF400FE1E43FF01D2BD22C6 +:1023AF00AB072042030224E69000D2E0FEA3E078C0 +:1023BF0003CEC313CE13D8F9F0EE9000D2F09000F5 +:1023CF00CFE024FD6030146065147003022479247B +:1023DF00FE70030224AD240560030224E3780DE6AA +:1023EF00FF3395E0FEC39000D3E09FFF9000D2E053 +:1023FF009E9000D6806E9000D2E0FEA3E0FF7C0995 +:10240F007DC412189B780A1218399000D2EEF0A3EF +:10241F00EFF07810E6FD3395E0FCC3EF9DFFEE9CE7 +:10242F00FE7C007D051217399000CBEE80369000B0 +:10243F00D2E0FEA3E0FF7C097DC412189B780A123C +:10244F0018399000D2EEF0A3EFF07811E6FD339536 +:10245F00E0FCC3EF9DFFEE9CFE7C007D051217395B +:10246F009000CDEEF0A3EFF0806A780DE6FF339584 +:10247F00E0FEC39000D3E09FFF9000D2E09EFE7C71 +:10248F00097DC412189B780A121839EEF0A3EFF0E9 +:10249F00E025E0FE9000D2E0339000D48032780D3A +:1024AF00E6FF3395E0FEC39000D3E09FFF9000D28C +:1024BF00E09EFE7C097DC412189B780A121839EE33 +:1024CF00F0A3EFF0E025E0FE9000D2E0339000D0D3 +:1024DF00F0A3CEF0C242229000CFEBF0C454F044F0 +:0F24EF0001F5A5E49000D2F0A3F09000D9F022FF +:03006B000229D790 +:1029D700C0E0C0F0C083C082C0D075D000C000C0C6 +:1029E70006C007E5F330E038AFA1780E760008A6F9 +:1029F70007E5A254031846F608E6F69000D9E0C3A7 +:102A07009408501718E6FE08E6FF9000D2EE8FF004 +:102A170012178E9000D9E004F08005D24253A5FE2C +:102A270075F301D007D006D000D0D0D082D083D0A4 +:042A3700F0D0E032C9 +:051D2400C132011403AF +:1000260075FE8843FF20E47816F67818F67814E60D +:100036007817F6781976017916E718461846F5B155 +:0400460075B201226C +:10223B00E4FE9000D6E0FCA3E0FDC394D8EC94033D +:10224B0040037F0022EF7003022354D3ED940FEC75 +:10225B0094034003022332ED94CBEC940050030221 +:10226B002332D3ED94AAEC94024022D2307814E6B8 +:10227B00FF137817F6303111D3ED94BFEC94024075 +:10228B0004C23180047817A607E4FE8070D3ED9466 +:10229B00AAEC94025043ED9437EC9401403BD231BD +:1022AB007814E6FF7817F6303013D3ED9493EC9453 +:1022BB00025004C2308006EFC3137817F6781976F4 +:1022CB0001301311D3ED9451EC94015004C21380DF +:1022DB0004E47819F6E4FE8024D3ED9437EC9401F2 +:1022EB00501BD213E47819F6303110ED9426EC9490 +:1022FB00015004C231800478197601E4FE302E11AE +:10230B00C3ED94F3EC94025006C22EE4FE80027EE1 +:10231B0001302F2FD3ED94DDEC94004006C22FE457 +:10232B00FE80207E01801CD3ED940FEC94034006BD +:10233B00D22E7E01800DD3ED94CBEC94005004D2C1 +:10234B002F7E01C22CC22D8058C22EC22FD3ED94EA +:10235B009FEC94035031ED9471EC94004029302C98 +:10236B0010ED9484EC94035006C22CE4FE80027EA4 +:10237B0001302D2DD3ED9482EC94004006C22DE458 +:10238B00FE801E7E01801AD3ED949FEC94034004D3 +:10239B00D22C800BC3ED9471EC94005002D22D7EA5 +:0323AB0001AF0679 +:0123AE00220C +:1025E200E5E65480FFE4FCFDFEEF700753B3FE788E +:1025F20015F62278157601E5E830E50575E82080C4 +:102602000FE5E530E1028008E5F230E50775F220DA +:1026120053B3FE22E5F2540C601053B3FEE5F354BB +:10262200C0606A75F20C75F3C02275F3C07F0112A7 +:10263200223BEF600653B3FED23222C232E5F230C1 +:10264200E41CC39000D5E094D29000D4E0940F50E3 +:102652000575F210800353B3FE78157603227916BE +:10266200E77818461846F5B17819E6F5B275FE70A6 +:1026720043FF1843B311781CE6FFD394014002C212 +:0E26820041EFD394034002C240781576022245 +:041D2900C13CC13DBB +:10000E00303C10EFB4010475B5C02253B5BFED44BA +:04001E0080F5B52292 +:102F2600E5B55480FFEF6008303C05E4F5B5C23CDA +:012F36002278 +:102AFE00C23CE5E520E154E5E230E703D23D22E5B4 +:102B0E00E830E00D30254475E8017D38E4FF020021 +:102B1E000EE4FF12223BEF6006122F26D23222C2A3 +:102B2E0032304103022F26D23C303D1F7815E6B4D9 +:102B3E000219C39000D5E094109000D4E0940E409A +:0C2B4E0005D23CC23D22122F26C23C22C0 +:081D2D00C13EC13F4100F3FF7C +:102D7A00E5E25408FF9000F3E06F6021E5E230E3FA +:102D8A00089000F27401F08005E49000F2F0D23E5F +:0D2D9A00C210D23FD2389000F3EFF0D244C7 +:012DA7002209 +:101D3500C123C122C121011D004100EA004100EE7D +:0E1D4500004100E9004200EB00004100ED000B +:101EB100E5E25402FFE4FCFDFEEF70369000EB75A5 +:101EC100F00112178E9000EBE0FEA3E0FFC39464D3 +:101ED100EE94004007201F14D21F8010C3EF94908E +:101EE100EE94014007202004D220D221D21CC21D31 +:101EF1008042301C38D244E4781DF6C21CD21D90B9 +:101F010000EDF0C2209000EBE0FEA3E0FFD39419B6 +:101F1100EE94005008D223D21ED2388010C3EF9421 +:101F2100FAEE94005007301F04C21FD222E4900041 +:101F3100EBF0A3F0301D66303C6330222720100205 +:101F410080287F03122BB19000EDE0D3941450034D +:101F5100022063C222781D7602E49000EAF090002C +:101F610071F0A3F030212920100A7D3FE4FF120017 +:101F71000ED210227F03122BB19000EDE0D3941406 +:101F81005003022063C221E49000EEF0781D760335 +:101F9100301E06C21E781D7601C21DC2109000F2CD +:101FA100E064016003022076781DE66402600302AA +:101FB10020389000EAE0C3940150107D017F0112A6 +:101FC1002077E4900071F0A3F080549000E9E0D311 +:101FD10094054003E48039900072E0B4010FE4FD00 +:101FE1007F021220779000727402F08032900072AA +:101FF100E06402702A900071E0601D7D017F021291 +:102001002077E4900071F0A3F09000EAF09000E9ED +:10201100F0781DF6D2118058E4FD7F0112207790EF +:1020210000EAE0D39414400A9000E9E004F0E4A34C +:10203100F0229000EA802B781DE66403703790004F +:10204100EEE0FFC3941E501EEF540360047D018037 +:10205100099000EEE030E007E4FD7F031220779065 +:1020610000EEE004F022E4781DF6D2119000EEF0CB +:052071007F04122BB1F9 +:012076002247 +:101D5300410079004100780041007A00410077009A +:102E1A0075FE0675FF3C75FE0E53FF0F75FE0F53C8 +:102E2A00FFF075FE0375FFFFC282C283C285C284AA +:012E3A002275 +:102E9800EF14600D14600D14600D2403700BD282C2 +:0A2EA80022D28322D28422D2852296 +:052E5B00900000E0FF03 +:102E6000EF14600D14600D14600D2403700BC2820A +:0A2E700022C28322C28422C28522FE +:102A9E00E4FF747B2FF582E43400F583E4F0747F59 +:102AAE002FF582E43400F583E4F0EF25E02483F57E +:102ABE0082E43400F583E4F0A3F0EF25E0248BF5F7 +:102ACE0082E43400F583E4F0A3F0EF25E02493F5DF +:102ADE0082E43400F583E4F0A3F0EF25E0249BF5C7 +:0F2AEE0082E43400F583E4F0A3F00FEFB404A307 +:012AFD0022B6 +:102A3B00AC07747B2CF582E43400F583EDF0EAC32C +:102A4B0013FEEB13FFEC25E02483F582E43400F551 +:102A5B0083EEF0A3EFF0AF03EC25E0248BF582E4DB +:102A6B003400F583EAF0A3EFF0900005E0FEA3E05D +:102A7B00FFEC25E02493F582E43400F583EEF0A31C +:102A8B00EFF0EC25E0249BF582E43400F583E4F0D1 +:032A9B00A3F02283 +:102CDA00747B2FF582E43400F583EDF0747F2FF5D1 +:102CEA0082E43400F583EBF0EF25E02483F582E4F7 +:102CFA003400F583E4F0A37469F0EF25E0249BF532 +:0B2D0A0082E43400F583E4F0A3F02223 +:100B9F00E4900000F0F0900000E0FFC394044003E5 +:100BAF00020EE1747B2FF582E43400F583E06022BE +:100BBF0024FE6024147003020CA9147003020D208C +:100BCF0024036003020E7D900000E0FF122E9802B6 +:100BDF000E7D122E5B020E7D900000E0FF25E024BB +:100BEF0083F582E43400F583E0FCA3E0FDEF25E01C +:100BFF00249BF582E43400F583E0FEA3E0C39DEE71 +:100C0F009C5005122E988003122E5B900000E0FF7F +:100C1F0025E0248BF582E43400F583E0FCA3E0FDAE +:100C2F00EF25E0249BF582E43400F583E0FEA3E09A +:100C3F00C39DEE9C5003020E7D900000E025E02442 +:100C4F009BF582E43400F583E4F0A3F0EF25E02474 +:100C5F0093F582E43400F583E0FEA3E0D39400EE35 +:100C6F0094004016900000E025E02493F582E434D0 +:100C7F0000F58374FFF5F012178E900000E0FF254A +:100C8F00E02493F582E43400F583E0FCA3E04C60AC +:100C9F0003020E7D747B2F020D3C900000E0FF25B8 +:100CAF00E02483F582E43400F583E0FCA3E0FDEF5C +:100CBF0025E0249BF582E43400F583E0FEA3E0D326 +:100CCF009DEE9C5005122E988003122E5B90000013 +:100CDF00E0FF25E0248BF582E43400F583E0FCA3EC +:100CEF00E0FDEF25E0249BF582E43400F583E0FE80 +:100CFF00A3E0C39DEE9C5003020E7D900000E02503 +:100D0F00E0249BF582E43400F583E4F0A3F0020EB7 +:100D1F007D900000E0FF247FF582E43400F583E04E +:100D2F007017122C53C243900000E0247BF582E42D +:100D3F003400F583E4F0020E7D900000E0FF247F85 +:100D4F00F582E43400F583E0FE6402704B20431417 +:100D5F00D243EF25E02483F582E43400F583E4F0F9 +:100D6F00A37469F0900000E0FF25E02483F582E48E +:100D7F003400F583E475F00112178EEF25E024831C +:100D8F00F582E43400F583E0FCA3E0C394FEEC9419 +:100D9F00005003020E67804EEE6401705A20431715 +:100DAF00D243900000E025E02483F582E43400F57F +:100DBF0083E4F0A374FEF0900000E0FF25E02483AD +:100DCF00F582E43400F58374FFF5F012178EEF25EA +:100DDF00E02483F582E43400F583E0FEA3E0D394AE +:100DEF0069EE94005072900000E0247FF582E434A5 +:100DFF0000F583E4F08061900000E0FF247FF5822E +:100E0F00E43400F583E06403704EEF25E02483F5AE +:100E1F0082E43400F583E0FEA3E0FFC394FEEE947A +:100E2F00004004D243800BD3EF946AEE940050023B +:100E3F00C243900000E025E0248330430DF582E4A7 +:100E4F003400F58374FFF5F0800BF582E43400F580 +:100E5F0083E475F00112178E900000E0FF25E02467 +:100E6F0083F582E43400F583A3E0FD122C02900099 +:100E7F0000E0FF7011747B2FF582E43400F583E0FE +:100E8F00900079F08043900000E0B40110247BF5CE +:100E9F0082E43400F583E0900078F0802C9000001D +:100EAF00E0B40210247BF582E43400F583E0900077 +:100EBF007AF08015900000E0B4030E247BF582E4F5 +:100ECF003400F583E0900077F0900000E004F0022A +:100EDF000BA5E4900000F0900000E0FFC3940450D5 +:100EEF001BEF25E0249BF582E43400F583E475F0D5 +:0C0EFF000112178E900000E004F080DB70 +:010F0B0022C3 +:0B1D63004200EF00004100F10FC144FE +:102DA80075FE1E43FF0275FE2143FF0875D4877523 +:102DB800FE2143FF0475FE2143FF02300F0775FE15 +:0C2DC8002453FFC32275FE2443FF3C226D +:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E +:0400660043FFB02282 +:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923 +:04007E0053FF4F22BB +:092F7C0012006E438702020056A8 +:102F12007815E6D394015006201203304404C244CB +:042F2200C322D322D1 +:102B5A0075FE01E4F5FF122EB2122F6F122F54E404 +:102B6A00F58675B7C375FE6A75FF0475FE6C43FF7B +:102B7A000A122EE475FE8043FF0275FE0E53FFFC17 +:102B8A0043FF0175FE1775FF3CD2A8D2AF1200268B +:102B9A007D697F03122EFC122E1A122A9E122DA86C +:072BAA009000DE7401F0222F +:03000300020006F2 +:03000600D24432AF +:03004B00022F8DF4 +:062F8D0075EB3CD244325A +:03005300022F93E6 +:062F930075F302D2443286 +:101D6E0020402900000000000000000000000000DC +:101D7E000000000000000000000000000000000055 +:101D8E000000000000000000000000000000000045 +:101D9E000000000000000000000000000000000035 +:0F1DAE00000000C13BC13A4100F4004100F500C4 +:0E2F4600900029EFF0122F85900029E0FF2265 +:082F85002039FDD2398F992299 +:102EB20075FE0E53FFF343FF04D2DF43878075BADA +:0A2EC2000375AAFD759852D2AC22E8 +:03002300022F6247 +:0D2F6200309904C299C239309802C29832E9 +:0D2F6F0075BB03759DDC759B92439A012292 +:062D150090004312186C4F +:102D1B00E4900046F0F0900046E0C39FE49E501C08 +:102D2B00203AFDD23A900043E475F0011218551287 +:0C2D3B00169EF59C900046E004F080DA43 +:012D47002269 +:03008300022690C2 +:10269000C0E0C083C082C0D075D000C000C005C0FB +:1026A00006C007E59B30E105539BFDC23AE59B3030 +:1026B000E076539BFED2449000F4E014601914605D +:1026C0003424027063E59C9000F4B455087401F062 +:1026D000A3E4F0800E8018E59C9000F4B4AA107476 +:1026E00002F0A3E0FF04F074292FF8A69C8039E4DF +:1026F000F0A3F080339000F5E0FF04F074292FF888 +:10270000A69C782BE62404FFE433FEE0FDC39FEE95 +:102710006480F87480985005ED9440400B9000F56B +:10272000E4F09000F4F0D23BD007D006D005D00002 +:09273000D0D0D082D083D0E03279 +:1024FE004177616B6520536F757263653A57505F14 +:10250E00466C6167303A307825782C57505F466CB0 +:10251E006167313A307825782C57505F466C616789 +:10252E00333A307825782E286C696E653A25642901 +:10253E000D0A00536C656570205374617465202814 +:10254E006C696E653A2564290D0A004348475F534E +:10255E0054413A25642C53545F564F583A307825DF +:10256E00782C535441303A307825782C53544131DD +:10257E003A307825782C535441323A307825782CDD +:10258E00535441333A307825782C535441343A30F1 +:10259E007825782E4465635F536C6565703A2564C3 +:1025AE000D0A004465636E745F536C656570446517 +:1025BE006C61792052656C6F61642E0D0A00456E58 +:1025CE00746572205374616E646279204D6F646518 +:0425DE00210D0A00C1 +:101DBD004300DE0402024100DB004100DC00C138BB +:0E1DCD00C1374100DD004100E1004100DA00B5 +:102DD400E4FB7D04FF122CDAE4FB7D047F01122C5A +:102DE400DAE4FB7D047F02122CDAE4FB7D047F032A +:032DF400022CDAD4 +:1007B600303856C238E49000DCF0900005F0A3F023 +:1007C600FBFAFDFF122A3BE4900005F0A3F0FBFACA +:1007D600FD7F01122A3BE4900005F0A3F0FBFAFD31 +:1007E6007F02122A3BE4900005F0A3F0FBFAFD7F9E +:1007F60003122A3B9000797402F0900078F0900082 +:100806007AF0900077F0D2442220320C200D0302B9 +:1008160008C5300F030208C5203305D233D238226B +:10082600900079E06402601A900005E4F0A3740A6F +:10083600F07B147A007D02E4FF122A3B9000797463 +:1008460003F0900078E06402601A900005E4F0A3DB +:10085600740AF07B147A007D027F01122A3B900015 +:10086600787403F090007AE06402601A900005E460 +:10087600F0A3740AF07B147A007D027F02122A3BF1 +:1008860090007A7403F0900077E06402601A90009A +:1008960005E4F0A3740AF07B147A007D027F03124C +:1008A6002A3B9000777403F0200D03020B9E900004 +:1008B600DCE0C3942850030209FED20FD23822305E +:1008C600330CC233C235C234C23FC20ED23778159A +:1008D600E6FF70030209D86403705C203505D23543 +:1008E600022DD4E4900005F0A3F0FBFA7D01FF127F +:1008F6002A3BE4900005F0A3F0FBFA7D017F01128C +:100906002A3BE4900005F0A3F0FBFA7D017F02127A +:100916002A3BE4900005F0A3F0FBFA7D017F031269 +:100926002A3B9000797401F0900078F090007AF0FC +:10093600900077F00209CF20340ED234C235D23877 +:10094600E49000E1F00209CF9000DCE0C39401508E +:1009560057E004F09000E1E014601A146027146078 +:100966003424037064900079E06404605C7B017D4C +:1009760004E4FF802E900078E06404604C7B017DE7 +:10098600047F01801E90007AE06404603C7B017D58 +:10099600047F02800E900077E06404602C7B017D6A +:1009A600047F03122CDA80219000DCE0C3940F5000 +:1009B60005E004F08013E49000DCF09000E1E00430 +:1009C600F0E0C394044002E4F0C23FC20EC223D258 +:1009D600362230340AC234122DD4D238D2372220ED +:1009E6003F0C203609200E06202303020B9E9000A2 +:1009F600DCE0FFC394015004E004F022EFC39464EA +:100A06004003020B499000DCE004F0781BE6C39437 +:100A1600195037900079E064037003020B9EE4904E +:100A26000005F0A3F07B64FA7D03FF122A3B9000D9 +:100A3600797404F0E4900005F0A3F0FBFAFD7F0161 +:100A4600122A3B90007874028032781BE6C39432F7 +:100A56005041E4900005F0A3F0FBFA7D01FF122A55 +:100A66003B9000797401F0E4900005F0A3F0FBFAE6 +:100A76007D017F01122A3B9000787401F0E490001A +:100A860005F0A3F0FBFAFD7F02122A3B90007A7470 +:100A9600028048781BE6C3944B5057E4900005F05B +:100AA600A3F0FBFA7D01FF122A3B9000797401F056 +:100AB600E4900005F0A3F0FBFA7D017F01122A3BCA +:100AC6009000787401F0E4900005F0A3F0FBFA7D45 +:100AD600017F02122A3B90007A7401F0E49000052F +:100AE600F0A3F0FBFAFD7F03122A3B900077740215 +:100AF600F022781BE6C394644003020B9EE4900048 +:100B060005F0A3F0FBFA7D01FF122A3BE4900005F5 +:100B1600F0A3F0FBFA7D017F01122A3BE490000569 +:100B2600F0A3F0FBFA7D017F02122A3BE490000558 +:100B3600F0A3F0FBFA7D017F03122A3B9000797443 +:100B4600018048C23FC236C20EC223E4900005F0BF +:100B5600A3F0FBFAFDFF122A3BE4900005F0A3F098 +:100B6600FBFAFD7F01122A3BE4900005F0A3F0FB9F +:100B7600FAFD7F02122A3BE4900005F0A3F0FBFA8F +:100B8600FD7F03122A3B9000797402F0900078F002 +:080B960090007AF0900077F066 +:010B9E002234 +:102E3B009000D8E0FF04F01223AF9000D8E0B40666 +:102E4B000204F09000D8E0C3940840037402F0220F +:102E7A00122D7A121EB112287A302411C224122578 +:0E2E8A00E2122AFE1227391207B61212712226 +:1018DA00E4900000F09000DEE0FFA3E0FE6F7003EA +:1018EA0002197DA3EEF09000DEE0A3F024FE60353D +:1018FA0014606614606A24036003021AFC900005EF +:10190A00E4F0A37403F07B647A007D02E4FF122AF8 +:10191A003B900005E4F0A37403F07B647A007D0237 +:10192A007F01022A3B300F09D23E75E80CC20DC274 +:10193A000F7BFF7A2479FEAFF6900004E4F0A3EF60 +:10194A00F0AFF8A3E4F0A3EFF0AFFAA3E4F0A3EF4B +:10195A00F0A37402F0A30480169000F1740FF02231 +:10196A007BFF7A2579419000047402F0A3741BF07E +:10197A00021A839000DFE024FE603514607614704A +:10198A0003021A9624036003021AFC9000DAE004A8 +:10199A00F0E0C394085003021AFC9000DE7402F0CF +:1019AA00E49000DAF0781CE66003021AFC021A8F4F +:1019BA00E5F6700CE5F87008E5FA7004E5E1602DCB +:1019CA009000DE7403F0E5F6540FFFE4FCFDFE7BA5 +:1019DA0008FAF9F8C312182870069000DE7404F0A9 +:1019EA0075E11F75F60F75F8FC75FABC229000DEDA +:1019FA007403F022202803021AFCC22875FE6E9096 +:101A0A000000E5FFF07BFF7A2579597815E6FF900B +:101A1A000004E4F0A3EFF0900000E0FF900006E479 +:101A2A00F0A3EFF0AFE2A3E4F0A3EFF0AFE3A3E497 +:101A3A00F0A3EFF0AFE4A3E4F0A3EFF0AFE5A3E483 +:101A4A00F0A3EFF0AFE6A3E4F0A3EFF09000F1E02B +:101A5A00FF900012E4F0A3EFF0120F779000F1E08C +:101A6A00D394004017E014F0204403021AFCC24445 +:101A7A00740FF07BFF7A2579B1020F777BFF7A2505 +:101A8A0079CC120F779000DE7404F022122F1250D4 +:101A9A005B122DA87F04122BB1122F26E4900005A9 +:101AAA00F0A3F0FBFAFDFF122A3BE4900005F0A335 +:101ABA00F0FBFAFD7F01122A3BE4900005F0A3F047 +:101ACA00FBFAFD7F02122A3BE4900005F0A3F0FB2B +:101ADA00FAFD7F03122A3B9000797402F090007895 +:101AEA00F090007AF0900077F0022F7C9000DE747C +:021AFA0002F0F8 +:011AFC0022C7 +:102D4800302726C2279000DBE0FF04F0EF14600C68 +:102D580014600E24027012122E3B800D122E7A80FF +:102D6800081218DAE49000DBF0302905C229120BAA +:022D78009F2298 +:101AFD00426F7820436C6F73652E286C696E653A62 +:101B0D002564290D0A00426F78204F70656E2E28CE +:101B1D006C696E653A2564290D0A004F70656E2F4C +:101B2D00436C6F736520426F782C45617270686FDE +:101B3D006E657320496E20426F78284E756D3A257B +:101B4D00642928566F785374613A30782578292E98 +:101B5D000D0A004F70656E20426F7820434D442072 +:101B6D005458204F7665722E0D0A004F70656E2009 +:101B7D00426F7820416E642045617270686F6E65AA +:101B8D0020476574496E284E756D3A25642928568F +:101B9D006F785374613A30782578292E0D0A0043F9 +:101BAD006C6F736520426F7820416E6420466F72B2 +:101BBD00636520566F6C746167652055702E0D0A34 +:101BCD0000564F5820566F75742035562853544182 +:101BDD00313A307825782C6C696E653A2564292E5A +:101BED000D0A00564F58204348472046756C6C2E01 +:101BFD000D0A00564F582047657420496E746F20AA +:101C0D00536C6565702E0D0A005258315F42756632 +:101C1D006665725B305D3A307825782C5258315FAD +:101C2D004275666665725B315D3A307825782C5267 +:101C3D0058315F4275666665725B325D3A30782564 +:101C4D00782C5258315F4275666665725B335D3A2A +:101C5D00307825782C5258315F4275666665725B17 +:101C6D00345D3A307825782C5258315F427566666E +:101C7D0065725B355D3A307825782C5258315F426C +:101C8D0075666665725B365D3A307825782C6C69C1 +:101C9D006E653A25640D0A0000000000000000008A +:101CAD000000000000000000000000000000000027 +:101CBD000000000000000000000000000000000017 +:101CCD000000000000000000000000000000000007 +:081CDD000000000000000000FF +:101DDB00C112C10EC110410073FFC10D42004D0075 +:101DEB000042004B000042007100001A6900000025 +:101DFB0000000000000000000000000000000000D8 +:101E0B000000000000000020248300000000000000 +:101E1B0000000000000000000000000000000000B7 +:101E2B000000000000000000000000000000410066 +:101E3B00700042006E00004200740000C10FC1111F +:031E4B0001A700EC +:102BB100EF24FE601E14602814602F24FE6035246B +:102BC10005703D43BD8853BDBB75FE6F53FFF24396 +:102BD100FF092243BDCC75FE6F53FFFE43FF0C225C +:102BE10053BD7753B7CF43B7302253B7CF43B70362 +:102BF10053BD772253B7CC53BD7775FE6A43FF307F +:012C010022B0 +:10127100203C0302156F303E7B20100A7D3FE4FFC6 +:1012810012000ED210227F03122BB1E490004AF01B +:10129100900048F0A3F0C200C201D20B9000F2E02E +:1012A100702FC20ED202D203C205C208C204C20903 +:1012B100C20AD212C23790006CF0A3F0900076F00F +:1012C1007BFF7A1A79FD9000047402F0A3740C80FC +:1012D10017C202C203D205C2067BFF7A1B791390A3 +:1012E10000047402F0A37419F0120F77C210C20D3A +:1012F100C20FC23E900048E0C3940550030214FDA2 +:10130100300B05C20B0214B820004CD200E5E354A7 +:10131100A06021E5E354A0FFE4FCFDFE7BA0FAF907 +:10132100F8C312182890007070057402F0800A74D6 +:1013310001F08005E4900070F07BFF7A1B79289022 +:101341000070E0FF900004E4F0A3EFF0AFE3A3E44A +:10135100F0A3EFF0120F772005030213F8200143E9 +:1013610090004AE0FFD39414501EEF54037003FD24 +:10137100800990004AE020E0077D017F0612207776 +:1013810090004AE004F0806F7F04122BB1E49000DA +:101391004AF0D201D211C2127BFF7A1B7960120F7F +:1013A100778054781DE6704F301104C2118040E5FA +:1013B100E354A0FBE4FAF9F8900047E0FFE4FCFDF8 +:1013C100FEC31218286030E5E354A06004D20ED2A7 +:1013D100387BFF7A1B7978900070E0FF900004E47D +:1013E100F0A3EFF0AFE3A3E4F0A3EFF0120F77E582 +:1013F100E354A0900047F020020302156C303742FD +:1014010020101F7D3FE4FF12000ED210D212E49093 +:10141100006CF0A3F0900076F0900048F0C208D282 +:1014210004227F03122BB17BFF7A1B79AC120F7759 +:10143100C210900048E0D3940350030214FDC23758 +:10144100804E20044B900049E0FFD39414501CEFD0 +:1014510054037003FD8009900049E020E0077D01FD +:101461007F811220779000490214FD90004AE0FF2D +:10147100D39414501BEF54037003FD800990004A6C +:10148100E020E0077D017F0712207790004A806C01 +:10149100E5E8540C6026200F1E90004AE004F0E0BD +:1014A100C3940550030215A7E4F075E80C7F0312FD +:1014B1002BB1D20DC212227F04022BB1C20DC20F79 +:1014C1003003257F03122BB17BFF7A1B79CEAFE36B +:1014D100900004E4F0A3EFF0A37403F0A37440F0D0 +:1014E100120F77C20302156C200843E5E320E003E5 +:1014F10030402A900048E0D394285004E004F022C0 +:101501007BFF7A1B79F0120F77D208E490004AF042 +:10151100900048F0C2097F04122BB1804E90006DFB +:10152100E070487B017A00794F120086803D90007F +:101531004AE0FFD39414501EEF54037003FD800959 +:1015410090004AE020E0077D017F80122077900023 +:101551004AE004F08015200912D2097F04122BB150 +:10156100C2127BFF7A1C7900120F77C20722200773 +:101571000BD2077F04122BB1C2128022E5E354A0E3 +:10158100FBE4FAF9F8900047E0FFE4FCFDFEC3122A +:1015910018286012E5E354A06004D20ED238E5E3C6 +:0615A10054A0900047F089 +:0115A7002221 +:0600860090000012186C4E +:10008C00900076E0147003020163147003020242C4 +:10009C001470030202B314700302041F24046003DF +:1000AC0002059F90000012184C90001E1216B760AB +:1000BC000302059F78A7E6D3940A50260690001AEF +:1000CC00743F121717300C0302059F900000121892 +:1000DC004C90001A1216B7FDE4FF12000ED20C025F +:1000EC00059FE478A7F6C20C90000012184C900003 +:1000FC0016E4121717900015E4121717900013E46A +:10010C00121717900012E4121717900011E412172F +:10011C0017900010E4121717900018E4121717909C +:10012C000017E412171790000EE4F5F01217FB906D +:10013C00000CE4F5F01217FB900019E4121717905D +:10014C00001B743F1217179000767401F0E49000B6 +:10015C004DF0A3F002059FE5E35408FFE4FCEF60CB +:10016C001CE5E35404601690000012184C90001E1D +:10017C007401121717E4900076F002059FE5E35422 +:10018C0008FFE4FCEF704A9000CDE0FEA3E0FF9086 +:10019C00000012184C900002EE8FF01217FB7D0538 +:1001AC00121739EF7802C333CE33CED8F9FF900053 +:1001BC000012184C900006EE8FF01217FB9000CE38 +:1001CC00E025E0FF9000CDE03390000A8FF012178D +:1001DC00FBE5E35404FFE4FCEF704F9000CBE0FE32 +:1001EC00A3E0FF90000012184CEE8FF01217DC9079 +:1001FC0000CBE0FEA3E0FF7D05121739EF7802C3B8 +:10020C0033CE33CED8F9FF90000012184C90000476 +:10021C00EE8FF01217FB9000CCE025E0FF9000CBA6 +:10022C00E0339000088FF01217FB90000012184C6E +:10023C0090001D020594D390004EE0940590004D63 +:10024C00E094005002806FE490004DF0A3F0E5E3E1 +:10025C005408FFEF701F9000CDE0FEA3E0FF90006C +:10026C000012184C90000EEE8FF01217FB90001835 +:10027C007401121717E5E35404FFE4FCEF701F90B0 +:10028C0000CBE0FEA3E0FF90000012184C90000C95 +:10029C00EE8FF01217FB90001774011217179000D5 +:1002AC00767403F002059FD390004EE09402900008 +:1002BC004DE09400500AE475F00112178E02059F70 +:1002CC00E490004DF0A3F090000012184C90000A3E +:1002DC001217A4FFAEF090000E1217A4D39FE5F0F6 +:1002EC009E501C90000012184C9000081217A4FF8E +:1002FC00AEF090000C1217A4D39FE5F09E4011E4D1 +:10030C00900076F090000012184C90001D0203E152 +:10031C0090000012184C9000181216B76401706D02 +:10032C0090000E1217A4FFAEF0D39414EE9400506C +:10033C0031E5E330E31F900016740112171790009B +:10034C001A1216B7C3943F404490000012184C90F8 +:10035C000018E4803590000012184C9000137401C2 +:10036C00802890000012184C9000061217A4FDD3A0 +:10037C00EF9DEE95F0900000400812184C90001381 +:10038C00800612184C90001674011217179000007A +:10039C0012184C9000171216B76401600302059FE7 +:1003AC0090000C1217A4FFAEF0D39414EE940050EE +:1003BC0034E5E330E2229000157401121717900017 +:1003CC001A1216B7C3943F500302059F90000012F7 +:1003DC00184C900017E4803590000012184C9000D7 +:1003EC00127401802890000012184C90000412170F +:1003FC00A4FDD3EF9DEE95F0900000400812184C30 +:10040C00900012800612184C9000157401121717E8 +:10041C0002059FD390004EE0941490004DE09400A0 +:10042C005031E475F00112178E9000CDE0FEA3E080 +:10043C00FF90000012184C90000EEE8FF01217FB7C +:10044C009000CBE0FFA3E090000CCF8FF01217FBD5 +:10045C0002059FE490004DF0A3F090000012184CA0 +:10046C009000181216B7640160030204FD90001787 +:10047C001216B76401707A9000061217A4FFAEF042 +:10048C0090000E1217A4FDACF0C39FEC9E40189088 +:10049C00000012184C90000A1217A4FFD3ED9FEC29 +:1004AC0095F0500302059F90000012184C90000428 +:1004BC001217A4FFAEF090000C1217A4FDACF0C301 +:1004CC009FEC9E401890000012184C9000081217D8 +:1004DC00A4FFD3ED9FEC95F0500302059F90000014 +:1004EC0012184C9000167401121717900015020583 +:1004FC009490000012184C9000181216B7640170FA +:10050C00419000061217A4FFAEF090000E1217A433 +:10051C00FDACF0C39FEC9E401590000012184C905F +:10052C00000A1217A4FFD3ED9FEC95F04014900035 +:10053C000012184C90001674011217179000767464 +:10054C0002F090000012184C9000171216B76401BC +:10055C0070419000081217A4FFAEF090000C121717 +:10056C00A4FDACF0D39FEC9E501590000012184CDB +:10057C009000041217A4FFC3ED9FEC95F05014905B +:10058C00000012184C900015740112171790007689 +:10059C007402F090000012184C9000181216B7FF5D +:1005AC006401600D9000171216B764016003020716 +:1005BC009C9000131216B7FE6401600D900012128D +:1005CC0016B764016003020716EFB4011E90001702 +:1005DC001216B7B40115EEB401119000131216B730 +:1005EC00B401089000147401121717900018121619 +:1005FC00B7FFB401189000171216B77010900013C3 +:10060C001216B76401702390001404801AEF701A4C +:10061C009000171216B7B401119000121216B7B44D +:10062C0001089000147401121717900013E41217AC +:10063C0017900012E41217179000141216B76401E9 +:10064C0060030207B590000012184C90001A1216A5 +:10065C00B7D39400400890001A74FE1216E4900070 +:10066C00191216B7FF90001A1216B7D39F401B90A1 +:10067C0000D5E024C8FF9000D4E03400FEC3900005 +:10068C00D1E09F9000D0E09E504890000012184C92 +:10069C009000191216B7FF90001A1216B7D39F903C +:1006AC000000501312184C90001AEF1217179000FC +:1006BC001CE4121717801312184C90001C740112B2 +:1006CC00171790001A74021216E49000767404F056 +:1006DC0080139000767402F090000012184C900079 +:1006EC001CE4121717E490004DF0A3F090000012D8 +:1006FC00184C900014E412171790001C1216B7FF38 +:10070C0090001A1216B7FD02079990000012184CAF +:10071C009000161216B76401600D9000151216B7F2 +:10072C00640160030207B5900016E41217179000DD +:10073C0015E412171790001A1216B7C3943F500EF7 +:10074C0090000012184C90001A74021216E49000DB +:10075C00767404F090000012184C90001B1216B71F +:10076C00FF90001A1216B7C39F4013900000121886 +:10077C004C90001AEF1217179000767401F090004D +:10078C000012184C90001A1216B7FDE4FF02000E6E +:10079C00900076E0D394024010E4F0900000121820 +:0907AC004C90001E740112171795 +:0107B5002221 +:0B2C970090004312186C900046EDF016 +:102CA200E4FE900046E0FD14F0ED6029900043E45C +:102CB20075F00112185512169E6EFEE4FFEFC394D2 +:102CC2000850DFEE30E007C313648CFE8004EEC3CD +:072CD20013FE0F80E8AF06BE +:012CD90022D8 +:08207700900000EFF0A3EDF072 +:10207F00E4A3F078037C007D017BFF7A1C79A5FE39 +:10208F007F40121678E4900003F0A37455F0A37408 +:10209F00AAF0900000E0FE900007F0900001E0FD34 +:1020AF00900073F0EE12187520D00120FF02214E20 +:1020BF0003215B06215B0721A08021A8810000215D +:1020CF00B69000067402F0ED700E9000087402F0E6 +:1020DF00E4900071F00221B6900001E0640160030A +:1020EF000221B690000804F0E4900072F00221B6CD +:1020FF009000067420F07F05900001E075F012A4A7 +:10210F0024832FF8E6FE74032FF582E43400F58361 +:10211F00EEF00FEFB412E17F17EFC3940D400302FF +:10212F0021B6900001E075F00DA424692FF8E6FEAA +:10213F0074032FF582E43400F583EEF00F80DA900C +:10214F0000067402F090000804F0805B90000674A3 +:10215F0005F09000087401F0781BE6A3F0A374203B +:10216F00F0900001E0FF700D90006EE07002800FA4 +:10217F0090006F8015EFB4012E90006FE070089003 +:10218F00000B74FFF0802090006EE090000BF08049 +:10219F00169000067401F0800E9000067402F09005 +:1021AF000070E0900008F0900006E02404FF90001B +:1021BF0002F0FD7B017A007903122C97900002E068 +:1021CF002403F582E43400F583EFF07F01122BB185 +:1021DF00900001E0FF700843BD0253BDFE8016EF73 +:1021EF00B4010843BD2053BDEF800AEFB4FF06438F +:1021FF00BD2253BDEE900002E02402FFE433FE7BCC +:10220F00017A007903122D15900001E0FF7007533A +:10221F00BDFD43BD0122EFB4010753BDDF43BD1028 +:0B222F0022EFB4FF0653BDDF43BD11DA +:01223A002281 +:1028F800EF24FA605014604D24067069E4FE742DCC +:102908002EF8E6FF900073E075F012A424832EF8E9 +:10291800A6070EEEB412E7E4FE743F2EF8E6FF9029 +:102928000073E075F00DA424692EF8A6070EEEB426 +:1029380008E7900073E0700690007104F0229000A0 +:10294800727401F022782DE6B4E30D90004B740107 +:10295800F008E690006EF02290004C7401F0782E9A +:05296800E690006FF095 +:01296D002247 +:10287A00E4900000F0303B75C23B7BFF7A1C79166E +:10288A007829E6FF900004E4F0A3EFF008E6FFA33E +:10289A00E4F0A3EFF008E6FFA3E4F0A3EFF008E604 +:1028AA00FFA3E4F0A3EFF008E6FFA3E4F0A3EFF040 +:1028BA0008E6FFA3E4F0A3EFF008E6FFA3E4F0A321 +:1028CA00EFF0A37407F0A3746DF0120F777B007A10 +:1028DA00007929782BE62403FD122C97782BE6241D +:0D28EA002CF8E6B50707782CE6FF1228F859 +:0128F70022BE +:101E4E00011C00011B00C140C141011A5060280055 +:101E5E00A30BB80BEA0C1C0C800CB20CE40D160D87 +:101E6E00480D7A0DAC0DF70E420E880ED80F0A0FE4 +:091E7E003C0F870FD2101D106803 +:10273900E4FF7815E6B40225EF25E024A3F582E449 +:102749003400F583E0FCA3E02432FDE43CFCC390B3 +:1027590000D5E09D9000D4E09C50208023EF25E037 +:1027690024A3F582E43400F583E0FCA3E0FDC390E3 +:1027790000D5E09D9000D4E09C40050FEFB414B261 +:10278900781CE6FEEFD39E781A400306800116E511 +:10279900E1600DE4F5E1781CEFF675F005A418F693 +:1027A900781AE6FED394965006EEC3940A500D7833 +:1027B9001CEFF675F005A418F6187650781CE6FF9C +:1027C900D394005003D24122EFD394015002D24056 +:0127D90022DD +:101E87004100E5004100E8004100E4004200E200B3 +:101E9700004100E600C126C127C129C125C124C1CF +:091EA700284100E700C12AC12B0B +:10296E009000E7E06062E4F0D2269000E5E004F02B +:10297E00E0C394054004E4F0D2279000E8E004F0B0 +:10298E00E0C3940A4004E4F0D2299000E2E475F02A +:10299E000112178EC39000E3E094649000E2E0947D +:1029AE00004006E4F0A3F0D2249000E4E004F0E04E +:1029BE00C394FA4013E4F0D2259000E6E004F0E070 +:0929CE0094044004E4F0D2282234 +:03000B00022DF7CC +:102DF700C0E0C083C082C0D074FC258CF58C74669B +:102E0700258AF58A9000E77401F0D0D0D082D0836C +:032E1700D0E032D6 +:0E2F5400758901758CFC758A66D2A9D28C2213 +:102C5300EFD39401501675FE0EEF25E02404FE74A5 +:102C630003A806088002C333D8FC801475FE0FEF57 +:102C730024FE25E0FE7403A806088002C333D8FCB3 +:102C8300F452FFEFB4040C75FE0F53FFF075FE0E04 +:042C930053FF0F22BA +:102EFC0075FE54EF5407F5FF75FE56AF058FFF7541 +:062F0C00FE5375FF0122D7 +:102C0200EFD39401501875FE0EEF25E02404FE74F4 +:102C120003A806088002C333D8FC42FF801675FE63 +:102C22000FEF24FE25E0FE7403A806088002C333DA +:102C3200D8FC42FFEF70038DCE22EFB401038DCF9B +:102C420022EFB402038DDE22EFB40304AF058FDF5F +:012C5200225F +:032FFD00010102CD +:1027FA00022ECCE493A3F8E493A34003F68001F2FB +:10280A0008DFF48029E493A3F85407240CC8C333DF +:10281A00C4540F4420C8834004F456800146F6DFAE +:10282A00E4800B0102040810204080901CE5E47E3D +:10283A00019360BCA3FF543F30E509541FFEE493A3 +:10284A00A360010ECF54C025E060A840B8E493A36A +:10285A00FAE493A3F8E493A3C8C582C8CAC583CA95 +:10286A00F0A3C8C582C8CAC583CADFE9DEE780BE4D +:011EB0000031 +:1015A800E709F608DFFA8046E709F208DFFA803E25 +:1015B80088828C83E709F0A3DFFA8032E309F60812 +:1015C800DFFA8078E309F208DFFA807088828C837A +:1015D800E309F0A3DFFA806489828A83E0A3F6082E +:1015E800DFFA805889828A83E0A3F208DFFA804C08 +:1015F80080D280FA80C680D4806980F280338010DF +:1016080080A680EA809A80A880DA80E280CA803347 +:1016180089828A83ECFAE493A3C8C582C8CCC583BF +:10162800CCF0A3C8C582C8CCC583CCDFE9DEE7808F +:101638000D89828A83E493A3F608DFF9ECFAA9F00E +:10164800EDFB2289828A83ECFAE0A3C8C582C8CC64 +:10165800C583CCF0A3C8C582C8CCC583CCDFEADE7D +:10166800E880DB89828A83E493A3F208DFF980CCDF +:1016780088F0EF60010E4E60C388F0ED2402B404D8 +:101688000050B9F582EB2402B4040050AF2323457F +:0616980082239015F87397 +:10169E00BB010689828A83E0225002E722BBFE024A +:0916AE00E32289828A83E493227D +:1016B700BB010CE58229F582E5833AF583E02250E8 +:1016C70006E92582F8E622BBFE06E92582F8E22232 +:0D16D700E58229F582E5833AF583E493224C +:1016E400BB010FF8E58229F582E5833AF583E0280A +:1016F400F0225009C58229F8E58226F622BBFE09AC +:10170400C58229F8E22582F222F8EA2583F583E9E5 +:03171400932822F5 +:10171700F8BB010DE58229F582E5833AF583E8F008 +:10172700225006E92582C8F622BBFE05E92582C8B4 +:02173700F2229C +:10173900BC000BBE0029EF8DF084FFADF022E4CC94 +:10174900F875F008EF2FFFEE33FEEC33FCEE9DEC5D +:10175900984005FCEE9DFE0FD5F0E9E4CEFD22EDA3 +:10176900F8F5F0EE8420D21CFEADF075F008EF2FED +:10177900FFED33FD4007985006D5F0F222C398FDDE +:051789000FD5F0EA227B +:10178E00C5F0F8A3E028F0C5F0F8E58215827002E6 +:06179E001583E038F02283 +:1017A400BB0110E58229F582E5833AF583E0F5F083 +:1017B400A3E0225009E92582F886F008E622BBFE60 +:1017C4000AE92582F8E2F5F008E222E5832AF583A6 +:0817D400E993F5F0A3E993226B +:1017DC00BB010A89828A83F0E5F0A3F0225006F758 +:0F17EC0009A7F01922BBFE06F3E5F009F3192255 +:1017FB00F8BB0111E58229F582E5833AF583E8F020 +:10180B00E5F0A3F0225009E92582C8F608A6F022DC +:0D181B00BBFE09E92582C8F2E5F008F222C3 +:10182800EB9FF5F0EA9E42F0E99D42F0E89C45F016 +:01183800228D +:10183900E8600FECC313FCED13FDEE13FEEF13FF8D +:03184900D8F122B1 +:09184C00E0FBA3E0FAA3E0F9229D +:10185500F8E0FBA3A3E0F925F0F0E582158270021C +:071865001583E0FA38F022C0 +:09186C00EBF0A3EAF0A3E9F0227D +:10187500D083D082F8E4937012740193700DA3A302 +:1018850093F8740193F5828883E473740293686016 +:06189500EFA3A3A380DF16 +:10189B00EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02DDA +:1018AB00FDE43CFCE8A42EC8C5F03DFDE43CFCEF98 +:0D18BB00A4FFE5F028FEE43DFDE43CFC2226 +:100F0C00E5082404F582E43400F583E0050822901A +:100F1C000001301A03900004E475F0011218550218 +:100F2C00169E2013E97F2ED2138018EF540F2490B5 +:100F3C00D43440D4FF30170BEF24BFB41A00500345 +:100F4C002461FFE50960021509050CE50C7002052A +:100F5C000B301A0E900001E475F001121855EF02D7 +:100F6C0018C8022F467403D21A8003E4C21AF5087B +:100F7C0090000112186CE4F509F50BF50CE509600D +:100F8C00077F20120F4F80F5750AFFC214C213C2DF +:100F9C0015C216C218C219C21B120F1BFF700D30DE +:100FAC001A057F00120F60AF0CAE0B22B4255FC286 +:100FBC00D5C217120F1BFF24D0B40A00501A75F0BB +:100FCC000A780930D50508B6FF0106C6A426F62016 +:100FDC00D5047002D21680D924CFB41A00EF500475 +:100FEC00C2E5D217021161D21480C6D21380C0D2CE +:100FFC001580BCD2D580BAD21880B47F20120F4F86 +:10100C002015077401B5090040F1120F0CFF120FE7 +:10101C004F020F89D21BD2198095120F0CFB120FA5 +:10102C000CFA120F0CF94A4B700679327A127BFFCC +:10103C0020152EE509602A7E008E8275830012161B +:10104C00B760060EEE650A70F0C2D5EBC0E0EAC0E0 +:10105C00E0E9C0E0EE1211A8D0E0F9D0E0FAD0E05F +:10106C00FB12169EFF60AAEBC0E0EAC0E0E9C0E00C +:10107C00120F4FD0E02401F9D0E03400FAD0E0FB9D +:10108C00E50A0460DCD50AD980877BFF7A1179A444 +:10109C00D215809C791080027908C219C21B800875 +:1010AC00D2D5790A8004790AC2D5E50A047002F512 +:1010BC000AE4FAFDFEFF120F0CFC7B08201413123D +:1010CC000F0CFD7B1030130A120F0CFE120F0CFFCD +:1010DC007B20EC3382D592D55013C3E43013069F9A +:1010EC00FFE49EFEE42014039DFDE49CFCE4CBF89D +:1010FC00C214EC700CCFCECDCCE824F8F870F38091 +:10110C0017C3EF33FFEE33FEED33FDEC33FCEB3363 +:10111C00FB994002FB0FD8E9EB301405F8D0E0C482 +:10112C0048B214C0E00AEC4D4E4F78207B0070C2E0 +:10113C00EAB50A0040BCC0E01211AAD0F0D0E02001 +:10114C001404C4C0E0C4B214C0F0120F38D0F0D5EF +:10115C00F0EB020F8912187510265310A0580FF7D8 +:10116C004C0FF34210A44F10AC4410AC49100C437C +:08117C0010B2551096461096C2 +:10118400451096471252500FFB2D0FFF2E10222BA5 +:10119400100323102020123B2A0FBB480000101A12 +:1011A4003F3F3F00790AA2D5201614301809B91020 +:1011B400020404B9080104A2D52019025001042034 +:1011C40015689215B509005034C0E07F2030161917 +:1011D4007F30A21572197218500F121201C215C273 +:1011E40019C218C21B7F30800F301803E9C0E01207 +:1011F4000F4F301803D0E0F9D0E0B509CC30181700 +:101204007F30B9100C120F4F7F583017077F78804A +:1012140003B90803120F4F3015057F2D020F4F7FBE +:1012240020201BF87F2B2019F322921580CF286EE3 +:10123400756C6C2900D214120F0C3014F8C2147897 +:101244000930D50108F6020FBB2D50434958120F3F +:101254000C2403B405004001E490124D93120F4096 +:0D126400743A120F40D2167509040210A052 +:1018C800BB010689828A83F0225002F722BBFE01FF +:0218D800F322F9 +:00000001FF diff --git a/Out/8837_EVB_241227_1754_9B89_010102.bin b/Out/8837_EVB_241227_1754_9B89_010102.bin new file mode 100644 index 0000000..c9ad130 Binary files /dev/null and b/Out/8837_EVB_241227_1754_9B89_010102.bin differ diff --git a/Project/SY8837_Demo.uvgui.GH b/Project/SY8837_Demo.uvgui.GH index 08b7d2a..d562478 100644 --- a/Project/SY8837_Demo.uvgui.GH +++ b/Project/SY8837_Demo.uvgui.GH @@ -110,8 +110,8 @@ 0 - 724 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000006000000030000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000AB08000066000000000F0000DD020000 + 804 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000010000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000AB08000066000000000F0000DD020000 @@ -134,7 +134,7 @@ 16 - 7A08000009010000160D000099010000 + 7408000066000000100D0000F6000000 @@ -1799,7 +1799,7 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000007A08000009010000160D000099010000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000260C000009010000160D0000E3020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF270100004F0000002B010000C60200000100000002000010040000000100000012FFFFFF87060000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000008607000009010000AD08000080030000000000004F00000027010000C60200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000086070000D3020000160D000077030000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C602000080070000CA020000010000000100001004000000010000004CFEFFFFD8010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000008607000084030000060F0000A004000000000000CA02000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000007408000066000000100D0000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000200C000066000000100D000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF270100004F0000002B010000C60200000100000002000010040000000100000012FFFFFF87060000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000008007000066000000A7080000DD020000000000004F00000027010000C60200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000008007000030020000100D0000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C602000080070000CA020000010000000100001004000000010000004CFEFFFFD8010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000080070000E1020000000F0000FD03000000000000CA02000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3603,7 +3603,7 @@ 0 100 - 3 + 1 ..\UsrSrc\main.c 0 @@ -3615,27 +3615,27 @@ ..\UsrSrc\vox\vox_module.c - 6 - 1511 - 1539 + 29 + 555 + 575 1 0 ..\UsrSrc\discharge\discharge_module.c - 40 + 6 158 - 172 + 176 1 0 ..\UsrSrc\userapp\userapp.c - 18 + 27 385 - 412 + 399 1 0 @@ -3650,7 +3650,7 @@ 0 - ..\UsrInc\user\user.h + E:\todaywork\20241202_tp3410\SY8837_Demo\UsrInc\user\user.h 19 11 26 @@ -3658,6 +3658,15 @@ 0 + + ..\UsrSrc\key\key.c + 0 + 169 + 194 + 1 + + 0 + diff --git a/SY8837_Demo.si4project/Backup/vox_module(2236).h b/SY8837_Demo.si4project/Backup/vox_module(2236).h new file mode 100644 index 0000000..42a02cb --- /dev/null +++ b/SY8837_Demo.si4project/Backup/vox_module(2236).h @@ -0,0 +1,502 @@ +/* + ****************************************************************************** + * + * @file VOX_Module.h + * @brief VOL/R module + * @ic sy8835 + * + * @version 1.0 + * @date 2024/11/01 09:59:40 + * @author Alex Xu + * + * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. + * All Rights Reserved + * + * History: + * Revision Date Author Desc + * 1.0.0 2024/11/01 Alex build this file + ****************************************************************************** + */ +#ifndef __VOX_MODULE_H__ +#define __VOX_MODULE_H__ + +/*_____ I N C L U D E S ____________________________________________________*/ + +#include "define.h" + +/*耳机方案商选择*/ +//#define QIANCHENG //岍丞 +//#define ZHONGKELANXUN //中科蓝讯 +#define XIAOMI //小米 + +/*硬件版本信息*/ +#define HW_VER 0x01 //硬件版本信息,范围0-9 +/*软件版本信息*/ +#define FW_VER 0x001 //程序版本 + +extern bit Vox_Vout_Enable; + +extern bit Earphone_Chg_Flag; //耳机出入盒标志位 + +extern bit Vox_Output_Short_Flag; + +#define IVOX_THN 20 //耳机跟随充电流下降阈值 + +#define IVOX_THP 200 //耳机跟随充电流上升阈值 + + +#define VOL_TYPE 0x00 + +#define VOR_TYPE 0x01 + + /*耳机配对状态*/ + typedef enum { + + VOX_PAIR_NONE = 0, //无效 + + VOX_PAIR_ING, //配对中 + + VOX_PAIR_OK, //配对完成 + + VOX_PAIR_KEEP, //不处理,保持当前状态 + + }e_Vox_Pairing_State; + + /*耳机配对记录*/ + typedef enum { + + VOX_PAIRED_NONE = 0, //无配对过 + + VOX_PAIRED_OK, //有配对记录 + + }e_Vox_Paired_State; + +#if VOX_ENABLE + +/******************************************************************************\ + Macro definitions +\******************************************************************************/ + +/*CHIP_STA1*/ +#define VOX_Sta_Vol_Output_Short_Pos (0U) +#define VOX_Sta_Vol_Output_Short_Pos_Msk (0x1UL << VOX_Sta_Vol_Output_Short_Pos) +#define VOL_Output_Short VOX_Sta_Vol_Output_Short_Pos_Msk + +#define VOX_Sta_Vor_Output_Short_Pos (1U) +#define VOX_Sta_Vor_Output_Short_Pos_Msk (0x1UL << VOX_Sta_Vor_Output_Short_Pos) +#define VOR_Output_Short VOX_Sta_Vor_Output_Short_Pos_Msk + +#define VOX_Sta_Vol_Ioff_Pos (2U) +#define VOX_Sta_Vol_Ioff_Pos_Msk (0x1UL << VOX_Sta_Vol_Ioff_Pos) +#define VOL_Ioff VOX_Sta_Vol_Ioff_Pos_Msk + +#define VOX_Sta_Vor_Ioff_Pos (3U) +#define VOX_Sta_Vor_Ioff_Pos_Msk (0x1UL << VOX_Sta_Vor_Ioff_Pos) +#define VOR_Ioff VOX_Sta_Vor_Ioff_Pos_Msk + +#define VOX_Sta_Vol_Loadon_Pos (5U) +#define VOX_Sta_Vol_Loadon_Pos_Msk (0x1UL << VOX_Sta_Vol_Loadon_Pos) +#define VOL_LoadOn VOX_Sta_Vol_Loadon_Pos_Msk + +#define VOX_Sta_Vor_Loadon_Pos (7U) +#define VOX_Sta_Vor_Loadon_Pos_Msk (0x1UL << VOX_Sta_Vor_Loadon_Pos) +#define VOR_LoadOn VOX_Sta_Vor_Loadon_Pos_Msk + +/* VOL/R Control Register - VOX_CTL0 */ +#define EN_VOL_ADTL_Pos (0U) +#define EN_VOL_ADTL_Pos_Msk (0x1UL << EN_VOL_ADTL_Pos) +#define EN_VOL_ADTL EN_VOL_ADTL_Pos_Msk + +#define EN_VOR_ADTR_Pos (1U) +#define EN_VOR_ADTR_Pos_Msk (0x1UL << EN_VOR_ADTR_Pos) +#define EN_VOR_ADTR EN_VOR_ADTR_Pos_Msk + +#define EN_VOL_PU_Pos (2U) +#define EN_VOL_PU_Pos_Msk (0x1UL << EN_VOL_PU_Pos) +#define EN_VOL_PU EN_VOL_PU_Pos_Msk + +#define EN_VOR_PU_Pos (3U) +#define EN_VOR_PU_Pos_Msk (0x1UL << EN_VOR_PU_Pos) +#define EN_VOR_PU EN_VOR_PU_Pos_Msk + +#define EN_VOL_VOUT_Pos (4U) +#define EN_VOL_VOUT_Pos_Msk (0x1UL << EN_VOL_VOUT_Pos) +#define EN_VOL_VOUT EN_VOL_VOUT_Pos_Msk + +#define EN_VOR_VOUT_Pos (5U) +#define EN_VOR_VOUT_Pos_Msk (0x1UL << EN_VOR_VOUT_Pos) +#define EN_VOR_VOUT EN_VOR_VOUT_Pos_Msk + +#define EN_VOL_VDS_Pos (6U) +#define EN_VOL_VDS_Pos_Msk (0x1UL << EN_VOL_VDS_Pos) +#define EN_VOL_VDS EN_VOL_VDS_Pos_Msk + +#define EN_VOR_VDS_Pos (7U) +#define EN_VOR_VDS_Pos_Msk (0x1UL << EN_VOR_VDS_Pos) +#define EN_VOR_VDS EN_VOR_VDS_Pos_Msk + +/* VOL/R ADT Config Register,VOX_CON0<6Ah> */ +#define Vox_Pull_Up_Pos (7U) +#define Vox_Pull_Up_Pos_Msk (0x1UL << Vox_Pull_Up_Pos) +#define Vox_Pull_Up Vox_Pull_Up_Pos_Msk + +#define Vox_Pull_Up_Deb_Pos (6U) + +#define Vox_Pull_Up_Deb_8Ms_Pos_Msk 0 +#define Vox_Pull_Up_Deb_16Ms_Pos_Msk 1 + +#define Vox_Pull_Up_Deb_8Ms (Vox_Pull_Up_Deb_8Ms_Pos_Msk << Vox_Pull_Up_Deb_Pos) +#define Vox_Pull_Up_Deb_16Ms (Vox_Pull_Up_Deb_16Ms_Pos_Msk << Vox_Pull_Up_Deb_Pos) + +#define Vor_Pull_Down_Pos (5U) +#define Vor_Pull_Down_Pos_Msk (0x1UL << Vor_Pull_Down_Pos) +#define Vor_Pull_Down Vor_Pull_Down_Pos_Msk + +#define Vol_Pull_Down_Pos (4U) +#define Vol_Pull_Down_Pos_Msk (0x1UL << Vol_Pull_Down_Pos) +#define Vol_Pull_Down Vol_Pull_Down_Pos_Msk + +/*自动识别负载电流阈值。*/ +#define VOX_ADT_Cur_0_5UA (0x0UL) +#define VOX_ADT_Cur_1_5UA (0x1UL) +#define VOX_ADT_Cur_2_5UA (0x2UL) +#define VOX_ADT_Cur_3_5UA (0x3UL) +#define VOX_ADT_Cur_4_5UA (0x4UL) +#define VOX_ADT_Cur_5_5UA (0x5UL) +#define VOX_ADT_Cur_6_5UA (0x6UL) +#define VOX_ADT_Cur_7_5UA (0x7UL) + +/* +VOX过流档位设置,在系统初始化中(Vox_init())通过配置VOX_CON0, + +SFRADDR = VOX_CON0; //设置VOX输出200mA,负载识别电流2.5uA。 +SFRDATA |= VOX_ADT_Cur_2_5UA; +//Vox轻重载滤波时间配置 +SFRADDR = VOX_CON2; +SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8; + +*/ +/* VOL/R Misc Config Register,VOX_CON2<6Ch> */ +#define Vox_Ioff_2mA (0x0UL) +#define Vox_Ioff_3mA (0x1UL) +#define Vox_Ioff_4mA (0x2UL) +#define Vox_Ioff_5mA (0x3UL) + +/*轻载转重载滤波时间配置。*/ +#define VOX_LIGHT_TO_HAVEY_1 (0x0UL) +#define VOX_LIGHT_TO_HAVEY_8 (0x1UL) +#define VOX_LIGHT_TO_HAVEY_128 (0x2UL) +#define VOX_LIGHT_TO_HAVEY_256 (0x3UL) +/*重载转轻载滤波时间配置。*/ +#define VOX_HAVEY_TO_LIGHT_0_125 (0x0UL) +#define VOX_HAVEY_TO_LIGHT_1 (0x1UL) +#define VOX_HAVEY_TO_LIGHT_8 (0x2UL) +#define VOX_HAVEY_TO_LIGHT_64 (0x3UL) + +/* VOL/R Comm Control Register,COMM_CTL */ +#define Vor_EN_COMR_Pos (7U) +#define Vor_EN_COMR_Pos_Msk (0x1UL << Vor_EN_COMR_Pos) +#define Vor_EN_COMR Vor_EN_COMR_Pos_Msk + +#define Vor_SW_MD_Pos (6U) +#define Vor_SW_MD_Pos_Msk (0x1UL << Vor_SW_MD_Pos) +#define Vor_SW_MD Vor_SW_MD_Pos_Msk + +#define Vor_SWDT_Pos (5U) +#define Vor_SWDT_Pos_Msk (0x1UL << Vor_SWDT_Pos) +#define Vor_SWDT Vor_SWDT_Pos_Msk + +#define Vor_SWDR_Pos (4U) +#define Vor_SWDR_Pos_Msk (0x1UL << Vor_SWDR_Pos) +#define Vor_SWDR Vor_SWDR_Pos_Msk + +#define Vol_EN_COMR_Pos (3U) +#define Vol_EN_COMR_Pos_Msk (0x1UL << Vol_EN_COMR_Pos) +#define Vol_EN_COMR Vol_EN_COMR_Pos_Msk + +#define Vol_SW_MD_Pos (2U) +#define Vol_SW_MD_Pos_Msk (0x1UL << Vol_SW_MD_Pos) +#define Vol_SW_MD Vol_SW_MD_Pos_Msk + +#define Vol_SWDT_Pos (1U) +#define Vol_SWDT_Pos_Msk (0x1UL << Vol_SWDT_Pos) +#define Vol_SWDT Vol_SWDT_Pos_Msk + +#define Vol_SWDR_Pos (0U) +#define Vol_SWDR_Pos_Msk (0x1UL << Vol_SWDR_Pos) +#define Vol_SWDR Vol_SWDR_Pos_Msk + +/* VOL/R Comm TRx Data Register,COMM_DAT */ +#define Vor_COMR_RX_Pos (5U) +#define Vor_COMR_RX_Pos_Msk (0x1UL << Vor_COMR_RX_Pos) +#define Vor_COMR_RX Vor_COMR_RX_Pos_Msk + +#define Vol_COML_RX_Pos (4U) +#define Vol_COML_RX_Pos_Msk (0x1UL << Vol_COML_RX_Pos) +#define Vol_COML_RX Vol_COML_RX_Pos_Msk + +#define Vor_COMR_DT_Pos (1U) +#define Vor_COMR_DT_Pos_Msk (0x1UL << Vor_COMR_DT_Pos) +#define Vor_COMR_DT Vor_COMR_DT_Pos_Msk + +#define Vol_COML_DT_Pos (0U) +#define Vol_COML_DT_Pos_Msk (0x1UL << Vol_COML_DT_Pos) +#define Vol_COML_DT Vol_COML_DT_Pos_Msk + +/* VOL/R Comm Config Register,COMM_CON<6Fh> */ +#define Vox_COMM_PULL_Vol_Pos (2U) + +#define Vox_COMM_PULL_Vol_1_8_Pos_Msk (0x00UL) +#define Vox_COMM_PULL_Vol_2_5_Pos_Msk (0x01UL) +#define Vox_COMM_PULL_Vol_3_0_Pos_Msk (0x02UL) +#define Vox_COMM_PULL_Vol_5_0_Pos_Msk (0x03UL) + +#define Vox_COMM_PULL_Vol_1_8 (Vox_COMM_PULL_Vol_1_8_Pos_Msk << Vox_COMM_PULL_Vol_Pos) +#define Vox_COMM_PULL_Vol_2_5 (Vox_COMM_PULL_Vol_2_5_Pos_Msk << Vox_COMM_PULL_Vol_Pos) +#define Vox_COMM_PULL_Vol_3_0 (Vox_COMM_PULL_Vol_3_0_Pos_Msk << Vox_COMM_PULL_Vol_Pos) +#define Vox_COMM_PULL_Vol_5_0 (Vox_COMM_PULL_Vol_5_0_Pos_Msk << Vox_COMM_PULL_Vol_Pos) + +#define Vox_Pull_Up_50k_Pos (0U) +#define Vox_Pull_Up_50k_Pos_Msk (0x1UL << Vox_Pull_Up_50k_Pos) +#define Vox_Pull_Up_50k Vox_Pull_Up_50k_Pos_Msk + +#define BOXHEADER 0x55AA //VOX通讯数据包头 + +#define EARPHONE_HEADER_HIGH 0x55 +#define EARPHONE_HEADER_LOW 0xAA + +#define BOXIDCODE 0xFF //VOX通讯耳机->仓数据包头 + +#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔 + +#define Vox_TX_Interval_2 4 + +#define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间 + + /******************************************************************************\ + Variables definitions + \******************************************************************************/ + /* 双向通讯协议选择 */ + +#define JIELI 1 + +#define ZHONGKE 0 + +/*耳机通道选择*/ + +#define TWS_VOL 0x04 +#define TWS_VOR 0x05 +#define TWS_BOX 0x02 +#define TWS_PC 0x03 + +#if JIELI + +/*耳机通道选择*/ +typedef enum { + + VOL_CHAN = 0x00, + + VOR_CHAN = 0x01, + + VOX_MAX_CHAN = 0x02, + + VOX_BOTH = 0xFF, + +}e_Vox_Chan; + +/*耳机和充电仓进行双向通讯的协议命令ID。*/ + typedef enum _VOX_BES_COMMAND_E +{ + + VHOUSE_CMD_PAIR = 0x01, //充电仓发起的配对信息 + + VHOUSE_CMD_EXCH_TWS_BTADDR = 0x02, //交换对耳的蓝牙地址信息。 + + VHOUSE_CMD_CLEAR_PAIR = 0x03, //清配对信息 + + VHOUSE_CMD_OPEN_BOX = 0x06, //开盖获取电量包 + + VHOUSE_CMD_CLOSE_WIN_GET_VBAT = 0x07, //关盖获取电量包 + + VHOUSE_CMD_RST = 0x08, // + + VHOUSE_CMD_PWROFF = 0x80, //关机消息 + + VHOUSE_CMD_CLOSE_BOX = 0x81, + + BES_RESET = 0xE1, + +}VOX_BES_COMMAND_E; + +#elif ZHONGKE + + /*耳机通道选择*/ + typedef enum { + + VOL_CHAN = 0x11, + + VOR_CHAN = 0x22, + + VOX_MAX_CHAN = 0x02, + + VOX_BOTH = 0xff, + + }e_Vox_Chan; + + /*耳机和充电仓进行双向通讯的协议命令ID。*/ +typedef enum _VOX_BES_COMMAND_E +{ + VHOUSE_CMD_GET_VBAT = 0x01, //获取电池电量,也可作为开始标志 + + VHOUSE_CMD_PAIR, //充电仓发起的配对信息 + + VHOUSE_CMD_GET_TWS_BTADDR, //获取对耳的蓝牙地址信息,充电仓无需使用本命令,本命令为对耳相互转发,充电仓只作转发缓存,收到该命令后,copy给另一只对耳即可。 + + VHOUSE_CMD_CLEAR_PAIR, //清除配对信息 + + VHOUSE_CMD_PWROFF, //关机消息 + + VHOUSE_CMD_ERR, //接收消息错误 + + VHOUSE_CMD_SUCCESS, //成功响应 + + VHOUSE_CMD_CLOSE_WINDOW, //关盖 + + VHOUSE_CMD_OPEN_WINDOW, //开盖 + + VHOUSE_CMD_CLOSE_WIN_GET_VBAT, //关盖获取电量包 + + VHOUSE_CMD_ENABLE_POPUP = 0x80, //开关弹窗功能控制 + + VHOUSE_CMD_CUSTOM_RESV1 = 0xE0, //客户保留指令 + + BES_RESET = 0xE1, + + VHOUSE_CMD_CUSTOM_RESV_END = 0xEF, + + VHOUSE_CMD_SYS_RST = 0xFF, //系统复位指令 + +}VOX_BES_COMMAND_E; + + +#endif + +/* Vox Channel Select. */ +typedef enum { + + VOL_CHAN_SET = 0x00, + + VOR_CHAN_SET = 0x01, + + VOX_BOTH_SET = 0x02, + +}e_Vox_Chan_Set; + +/* Vox Follow Charge State. */ +typedef enum { + + Vox_Follow_Chg_InitSta = 0x00, + + Vox_Follow_Chg_Sta1, + + Vox_Follow_Chg_Sta2, + + Vox_Follow_Chg_Sta3, + + Vox_Follow_Chg_Sta4, + +}e_Vox_Follow_Chg_Sta; + +/* VOX Enable Type */ + typedef enum { + + VOX_TRANS_Mode = 0x00, //VOx UART 透传功能使能 + + VOX_COMM_Mode_Uart, //VOx 通讯 UART Mode + + VOX_COMM_Mode_Reg, //VOx 通讯 Register Mode + + VOX_VOUT_Mode, //VOx 5V 输出使能 + + VOX_ADT_Mode, //VOx 负载接入、存在识别功能使能,负载自动识别 + + VOX_PUnK_Mode, //Vox上拉电阻配置,上拉到VOX_Vup。 + + VOX_PD1K_Mode, // VOX 1K 电阻下拉使能 1: VOR 通过 1K 电阻下拉至 gnd + + } VOX_Enable_Mode_e; + +extern bit Cover_Open_Flag; + +extern bit Vox_Ocp_Flag; +extern bit Boost_Open_Flag; + +extern bit OpenCover_TX_Cmd_Flag; + +#ifdef VOX_RX + +extern xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 + +extern xdata uint8_t Vox_Get_BES_Addr_Flag[2] ; + +#endif + +#if VOX_FOLLOW_CHG + +typedef struct { + + uint16_t IVox_Init[VOX_MAX_CHAN]; //跟随充Vox初始化电流值。 + + uint16_t IVox_Threshold_Neg[VOX_MAX_CHAN]; //Vox电流下降阈值 + + uint16_t IVox_Threshold_Pos[VOX_MAX_CHAN]; //Vox电流上升阈值 + + uint16_t IVox_At_Present[VOX_MAX_CHAN]; //Vox当前电流 + + uint8_t IVox_TC_Mode[VOX_MAX_CHAN]; //Vox CV_TC充电电流阈值 + + uint8_t Vpmid_SubSta[VOX_MAX_CHAN]; //Vox的Vpmid电压下降标志 + + uint8_t Vpmid_SubSta_Flag; //Vpmid电压下降标志 + + uint8_t Vpmid_AddSta[VOX_MAX_CHAN]; //Vpmid电压上升标志 + + uint8_t Vox_InBox_Sta[VOX_MAX_CHAN]; //耳机在盒标志 + + uint8_t Vpmid_Threshold_Neg; //Vpmid电压下降阈值 + + uint8_t Vpmid_Threshold_At_Present; //Vpmid电压当前值 + + uint8_t Vpmid_Threshold_Pos; //Vpmid电压上升阈值 + + uint8_t Vox_PTM_Type; //Boost 直通模式使能状态位,ON:Enable;OFF:Disable。 + + uint8_t Vox_Follow_Start; //跟随充启动标志 + + uint8_t Vox_Follow_Stop; //跟随充结束标志 + +} g_Vox_Fllow_Chg_Cfg; + +extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg; + +#endif + /******************************************************************************\ + UserCfg.Functions definitions + \******************************************************************************/ + +extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select); + +extern void Vox_Det_Machine(void); +#if VOX_FOLLOW_CHG +extern void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ); +#endif +extern void VOX_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode); + +#ifdef VOX_RX +extern void HandleVoxCommMsg(void); +#endif + +#endif + +#endif + diff --git a/SY8837_Demo.si4project/SY8837_Demo.SearchResults b/SY8837_Demo.si4project/SY8837_Demo.SearchResults index 52a2e3f..0d685dd 100644 --- a/SY8837_Demo.si4project/SY8837_Demo.SearchResults +++ b/SY8837_Demo.si4project/SY8837_Demo.SearchResults @@ -1,6 +1,4 @@ ----- ADC_CTL0 Matches (5 in 4 files) ---- -Adc_Init in adc.c (UsrSrc\adc) : SFRADDR = ADC_CTL0; //0B10111101,<0x29>--ADC EN;ADC 2.5V Enable b[4];ADC1 Pullup 100K Enable b[5]; continue mode; ADC CLK divided by 48=230k -reg3315.h (UsrInc\inc) line 95 : #define ADC_CTL0 0x30 -reg883x.h (UsrInc\inc) line 41 : #define ADC_CTL0 0x29 -OutSleep_Handler in sleep.c (UsrSrc\sleep) : SFRADDR = ADC_CTL0; -InSleep_Handler in sleep.c (UsrSrc\sleep) : SFRADDR = ADC_CTL0; +---- MAX_PACKET_SIZE Matches (3 in 1 files) ---- +vox_module.c (UsrSrc\vox) line 77 : #define MAX_PACKET_SIZE 0x20 +HandleTxCommand in vox_module.c (UsrSrc\vox) : tx_pData[3] = MAX_PACKET_SIZE; +HandleTxCommand in vox_module.c (UsrSrc\vox) : tx_pData[7] = MAX_PACKET_SIZE; //max_packet_size:0x20 diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_sym b/SY8837_Demo.si4project/SY8837_Demo.sip_sym index bfa90d1..675a0c2 100644 Binary files a/SY8837_Demo.si4project/SY8837_Demo.sip_sym and b/SY8837_Demo.si4project/SY8837_Demo.sip_sym differ diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_xm b/SY8837_Demo.si4project/SY8837_Demo.sip_xm index b35bc8f..73e9229 100644 Binary files a/SY8837_Demo.si4project/SY8837_Demo.sip_xm and b/SY8837_Demo.si4project/SY8837_Demo.sip_xm differ diff --git a/SY8837_Demo.si4project/SY8837_Demo.siwork b/SY8837_Demo.si4project/SY8837_Demo.siwork index 8e64490..de77bbd 100644 Binary files a/SY8837_Demo.si4project/SY8837_Demo.siwork and b/SY8837_Demo.si4project/SY8837_Demo.siwork differ diff --git a/SY8837_Demo.si4project/cache/parse/UsrInc_vox_vox_module.h.sisc b/SY8837_Demo.si4project/cache/parse/UsrInc_vox_vox_module.h.sisc new file mode 100644 index 0000000..396b35f Binary files /dev/null and b/SY8837_Demo.si4project/cache/parse/UsrInc_vox_vox_module.h.sisc differ diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h index 0ec4c0f..30c3371 100644 --- a/UsrInc/charger/charger_module.h +++ b/UsrInc/charger/charger_module.h @@ -23,8 +23,6 @@ #include "define.h" -extern bit Charger_Done; - #ifdef NTC_ENABLE extern bit NTC_Pro_Flag; #endif @@ -39,9 +37,7 @@ typedef enum CHG_STA_ING, // 充电中 CHG_STA_COMPLETED, // 充电完成 - - CHG_STA_PULLOUT, // 充电器拔出 - + } TE_CHG_STA; typedef enum @@ -58,28 +54,33 @@ extern idata TE_CHG_STA ChgStatus; // 系统状态 /* Charger Current Setting */ typedef struct { + uint8_t nTrickle_Cur; //Set Trickle Current Trickle charge 电流配置,step 10mA; + uint8_t nConstant_Cur; //Set Constant Current 恒流 cc 电流配置,step 25mA: + uint8_t nIterm_Cur; //Set Iterm Current iterm charge 电流配置(范围:5mA ~ 50mA ,step 5mA) + 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_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_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_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 +#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 */ diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h index 76b8a83..650f138 100644 --- a/UsrInc/inc/define.h +++ b/UsrInc/inc/define.h @@ -61,6 +61,12 @@ #define VOX_RX //739Bytes + /* 双向通讯协议选择 */ + +#define JIELI 1 + +#define ZHONGKE 0 + #endif #define CHARGER_ENABLE 1 //94Bytes @@ -93,9 +99,10 @@ #define _DEBUG_MAIN // #define _DEBUG_KEY -// #define _DEBUG_VOX + #define _DEBUG_VOX +// #define _DEBUG_FOLLOW // #define _DEBUG_HALL - #define _DEBUG_ADC +// #define _DEBUG_ADC // #define _DEBUG_DISCHARGE // #define _DEBUG_CHARGER // #define _DEBUG_SLEEP diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h index 2c72f7b..7b7f5df 100644 --- a/UsrInc/vox/vox_module.h +++ b/UsrInc/vox/vox_module.h @@ -260,16 +260,18 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8; #define Vox_Pull_Up_50k_Pos_Msk (0x1UL << Vox_Pull_Up_50k_Pos) #define Vox_Pull_Up_50k Vox_Pull_Up_50k_Pos_Msk -#define BOXHEADER 0x55AA //VOX通讯数据包头 +#define BOXHEADER 0x55AA //VOX通讯数据包头 -#define EARPHONE_HEADER_HIGH 0x55 -#define EARPHONE_HEADER_LOW 0xAA +#define EARPHONE_HEADER_HIGH 0x55 +#define EARPHONE_HEADER_LOW 0xAA -#define BOXIDCODE 0xFF //VOX通讯耳机->仓数据包头 +#define BOXIDCODE 0xFF //VOX通讯耳机->仓数据包头 -#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔 +#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔 -#define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间 +#define Vox_TX_Interval_2 4 + +#define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间 /******************************************************************************\ Variables definitions @@ -282,6 +284,8 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8; #define TWS_BOX 0x02 #define TWS_PC 0x03 +#if JIELI + /*耳机通道选择*/ typedef enum { @@ -319,6 +323,59 @@ typedef enum { }VOX_BES_COMMAND_E; +#elif ZHONGKE + + /*耳机通道选择*/ + typedef enum { + + VOL_CHAN = 0x11, + + VOR_CHAN = 0x22, + + VOX_MAX_CHAN = 0x02, + + VOX_BOTH = 0xff, + + }e_Vox_Chan; + + /*耳机和充电仓进行双向通讯的协议命令ID。*/ +typedef enum _VOX_BES_COMMAND_E +{ + VHOUSE_CMD_GET_VBAT = 0x01, //获取电池电量,也可作为开始标志 + + VHOUSE_CMD_PAIR, //充电仓发起的配对信息 + + VHOUSE_CMD_GET_TWS_BTADDR, //获取对耳的蓝牙地址信息,充电仓无需使用本命令,本命令为对耳相互转发,充电仓只作转发缓存,收到该命令后,copy给另一只对耳即可。 + + VHOUSE_CMD_CLEAR_PAIR, //清除配对信息 + + VHOUSE_CMD_PWROFF, //关机消息 + + VHOUSE_CMD_ERR, //接收消息错误 + + VHOUSE_CMD_SUCCESS, //成功响应 + + VHOUSE_CMD_CLOSE_WINDOW, //关盖 + + VHOUSE_CMD_OPEN_WINDOW, //开盖 + + VHOUSE_CMD_CLOSE_WIN_GET_VBAT, //关盖获取电量包 + + VHOUSE_CMD_ENABLE_POPUP = 0x80, //开关弹窗功能控制 + + VHOUSE_CMD_CUSTOM_RESV1 = 0xE0, //客户保留指令 + + BES_RESET = 0xE1, + + VHOUSE_CMD_CUSTOM_RESV_END = 0xEF, + + VHOUSE_CMD_SYS_RST = 0xFF, //系统复位指令 + +}VOX_BES_COMMAND_E; + + +#endif + /* Vox Channel Select. */ typedef enum { @@ -367,6 +424,9 @@ typedef enum { extern bit Cover_Open_Flag; extern bit Vox_Ocp_Flag; +extern bit Boost_Open_Flag; + +extern bit OpenCover_TX_Cmd_Flag; #ifdef VOX_RX diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c index 7d03cf4..ca7dfd8 100644 --- a/UsrSrc/charger/charger_module.c +++ b/UsrSrc/charger/charger_module.c @@ -28,13 +28,10 @@ #include "userapp.h" #include "bat.h" -bit Charger_Done = 0; - #ifdef NTC_ENABLE bit NTC_Pro_Flag = 0; #endif - idata TE_CHG_STA ChgStatus; // CHG状态定义 #if CHARGER_ENABLE @@ -72,6 +69,9 @@ idata s_gCharger_Cfg gCharge_Cfg; void Charger_Init(void) { + SFRADDR = PMU_CTL8; + SFRDATA |= 0x20; + #ifdef SY8838Q //合封OVP芯片SY8838Q SFRADDR = PMU_CTL7; //合封芯片关闭VBUS OV检测使能 @@ -483,9 +483,7 @@ void Charger_Handler(void) CHG_CTL &= ~CHG_EN; //Disable Charger ChgStatus = CHG_NONE; - - Charger_Done = 0; - + #ifdef _DEBUG_CHARGER printf("No Chg\r\n"); #endif @@ -570,16 +568,7 @@ void Charger_Handler(void) CHG_CTL &= ~CHG_EN; //Disable Charger } - if( !Charger_Done ) - { - Charger_Done = 1; - - ChgStatus = CHG_STA_COMPLETED; - -#ifdef LED_DISPLAY - LED_On_Flag = 1; -#endif - } + ChgStatus = CHG_STA_COMPLETED; #endif } else @@ -611,9 +600,7 @@ void Charger_Handler(void) #ifdef _DEBUG_CHARGER printf("Chg ing\r\n"); #endif - Charger_Done = 0; } - } #endif diff --git a/UsrSrc/discharge/discharge_module.c b/UsrSrc/discharge/discharge_module.c index 2375368..27a025e 100644 --- a/UsrSrc/discharge/discharge_module.c +++ b/UsrSrc/discharge/discharge_module.c @@ -139,19 +139,17 @@ void DisCharge_Handler(void) #else + gBoost_Prepared_Flag = 0; + /* 过温保护 --- 硬件实现 */ if( CHIP_STA3 & 0x02 ) - { - gBoost_Prepared_Flag = 0; - + { return; } /*Boost Input UVLO 硬件实现*/ if( (CHIP_STA0 & BOOST_BATUV) ) //用于清软件标志位。 - { - gBoost_Prepared_Flag = 0; - + { gBoost_UVLO_Flag = 1; return; @@ -160,7 +158,6 @@ void DisCharge_Handler(void) /* BAT LOW Interrupt */ if( IRQ_FLAG0 & BAT_Low ) { - gBoost_Prepared_Flag = 0; return; } @@ -171,7 +168,6 @@ void DisCharge_Handler(void) #ifdef _DEBUG_DISCHARGE printf("Boost Pro Output Short!\r\n"); #endif - gBoost_Prepared_Flag = 0; if( F_sys_tim_250ms ) { @@ -188,7 +184,6 @@ void DisCharge_Handler(void) /*NTC Handle*/ //使能Boost前先检测NTC温度,异常就不开放电。 if( PMU_NTC_Handle( DISCHG_ON ) ) //NTC保护,不放电。 { - gBoost_Prepared_Flag = 0; DisCharge_Boost_Close(); @@ -206,9 +201,7 @@ void DisCharge_Handler(void) if( F_batlevel_protect ) { DisCharge_Boost_Close(); - - gBoost_Prepared_Flag = 0; - + return; } diff --git a/UsrSrc/hall/hall.c b/UsrSrc/hall/hall.c index e8f9771..f998481 100644 --- a/UsrSrc/hall/hall.c +++ b/UsrSrc/hall/hall.c @@ -112,6 +112,8 @@ xdata uint8_t Hall_Sta_bk = 0xff; } CoverEvent_Flg = 1; + + Boost_Open_Flag = 0; CoverEvent_Flg_led = 1; @@ -119,12 +121,12 @@ xdata uint8_t Hall_Sta_bk = 0xff; LED_On_Flag = 1; #endif + Hall_Sta_bk = Hall_Sta; #if SLEEP_ENABLE Enter_Sleep_Cnt_Restart_Flag = 1; #endif - Hall_Sta_bk = Hall_Sta; } } diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c index 5325429..6065ab8 100644 --- a/UsrSrc/key/key.c +++ b/UsrSrc/key/key.c @@ -26,6 +26,7 @@ #include "vox_module.h" #include "userapp.h" #include "hall.h" +#include "discharge_module.h" #if KEY_ENABLE /******************************************************************************\ @@ -45,6 +46,8 @@ #define KEY_TWS_PAIR_CLEAR_CNT 30 +#define KEY_LIFT_CNT 20 + /******************************************************************************\ Variables definitions \******************************************************************************/ @@ -59,10 +62,14 @@ idata KEY_EVENT_E Event_key = 0; uint8_t Key_TWS_Pair_Tim = 0; +uint8_t Key_TWS_Clear_Pair_Tim = 0; + uint8_t Key_TWS_Pair_Cnt = 0; uint16_t Key_Press_Debounce = 0; +uint8_t Key_Lift_Debounce = 0; + /******************************************************************************\ Functions definitions \******************************************************************************/ @@ -130,11 +137,15 @@ uint16_t Key_Press_Debounce = 0; #if SLEEP_ENABLE Enter_Sleep_Cnt_Restart_Flag = 1; - -#endif + +#endif + Event_key = KEY_EVENT_Empty; + Key_Press_Flag = 0; Key_Lift_Flag = 1; + + Key_Lift_Debounce = 0; nKey_Press_8s_Flag = 0; @@ -162,12 +173,31 @@ uint16_t Key_Press_Debounce = 0; Key_Press_Debounce = 0; } - if( Key_Lift_Flag ) - { - Key_Lift_Flag = 0; - + if( Key_Lift_Flag && gBoost_Prepared_Flag ) + { if( Key_Press_l_irq ) { + if( !Boost_Open_Flag ) + { + DisCharge_Boost_Open(OFF,Boost_Vout_5_225V); + + Boost_Open_Flag = 1; +#ifdef _DEBUG_KEY + printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__); +#endif + + return; + } + + VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V + + if( Key_Lift_Debounce <= KEY_LIFT_CNT ) + { + Key_Lift_Debounce++; + + return; + } + Key_Press_l_irq = 0; /*todo*/ Event_key = KEY_EVENT_L_2S; @@ -175,6 +205,9 @@ uint16_t Key_Press_Debounce = 0; Key_TWS_Pair_Tim = 0; /*耳机配对*/ + Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00; + + Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00; #ifdef _DEBUG_KEY printf("long 2s press\r\n"); @@ -183,7 +216,30 @@ uint16_t Key_Press_Debounce = 0; /*长按8s,系统强制进shipmode.*/ if( Key_Press_ll_irq ) { + if( !Boost_Open_Flag ) + { + DisCharge_Boost_Open(OFF,Boost_Vout_5_225V); + + Boost_Open_Flag = 1; +#ifdef _DEBUG_KEY + printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__); +#endif + + return; + } + + VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V + + if( Key_Lift_Debounce <= KEY_LIFT_CNT ) + { + Key_Lift_Debounce++; + + return; + } + Key_Press_ll_irq = 0; + + Key_TWS_Clear_Pair_Tim = 0; /*todo*/ Event_key = KEY_EVENT_LL_8S; @@ -203,10 +259,10 @@ uint16_t Key_Press_Debounce = 0; printf("short press\r\n"); #endif } - } - else - { - Event_key = KEY_EVENT_Empty; + + Key_Lift_Flag = 0; + + Boost_Open_Flag = 0; } #if 1 @@ -220,16 +276,28 @@ uint16_t Key_Press_Debounce = 0; HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //右耳发配对指令,区分耳机通道。 #endif Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00; + Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00; +#ifdef _DEBUG_KEY + printf("Key Pair TX VOR(line:%d).\r\n",(uint16_t)__LINE__); +#endif } else { if(Key_TWS_Pair_Cnt > KEY_TWS_PAIR_CNT) //耳机蓝牙地址置换超时10s,关闭蓝牙地址置换,开启VOX 5V。 { Key_TWS_Pair_Cnt = 0; + + Event_key = KEY_EVENT_Empty; + + OpenCover_TX_Cmd_Flag = 1; #if VOX_ENABLE - VOX_EN_Type(VOX_VOUT_Mode); + VOX_EN_Type(VOX_ADT_Mode); #endif +#ifdef _DEBUG_KEY + printf("Key Pair TimeOut(line:%d).\r\n",(uint16_t)__LINE__); +#endif + return; } else @@ -239,7 +307,11 @@ uint16_t Key_Press_Debounce = 0; #ifdef VOX_TX HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOL_CHAN); /*获取到右耳回复的CMD3指令,转发给左耳。*/ #endif - Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x02; + Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x02; +#ifdef _DEBUG_KEY + printf("Key Pair Get VOR(line:%d).\r\n",(uint16_t)__LINE__); +#endif + } else if( Vox_Get_BES_Addr_Flag[VOR_TYPE] == 0x02 ) @@ -249,14 +321,22 @@ uint16_t Key_Press_Debounce = 0; #ifdef VOX_TX HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOR_CHAN); /*获取到右耳回复的CMD3指令,转发给左耳。*/ #endif - Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00; + Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00; + Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00; Key_TWS_Pair_Tim = 0; + + Key_TWS_Pair_Cnt = 0; + Event_key = KEY_EVENT_Empty; + + OpenCover_TX_Cmd_Flag = 1; - VOX_EN_Type(VOX_VOUT_Mode); - + VOX_EN_Type(VOX_ADT_Mode); +#ifdef _DEBUG_KEY + printf("Key Pair Get VOL(line:%d).\r\n",(uint16_t)__LINE__); +#endif return; } else @@ -264,15 +344,22 @@ uint16_t Key_Press_Debounce = 0; #ifdef VOX_TX HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); #endif +#ifdef _DEBUG_KEY + printf("Key Pair TX VOL(line:%d).\r\n",(uint16_t)__LINE__); +#endif + } } } } - if(Key_TWS_Pair_Tim > KEY_TWS_PAIR_TIMER) //3s重发一次。重发5次后超时 + if(Key_TWS_Pair_Tim > KEY_TWS_PAIR_TIMER) //2s重发一次。重发5次后超时 { Key_TWS_Pair_Cnt++; - Key_TWS_Pair_Tim = 0; + Key_TWS_Pair_Tim = 0; +#ifdef _DEBUG_KEY + printf("Key Pair Cnt:%d.(line:%d)\r\n",(uint16_t)Key_TWS_Pair_Cnt,(uint16_t)__LINE__); +#endif } else { @@ -282,28 +369,33 @@ uint16_t Key_Press_Debounce = 0; else if( Event_key == KEY_EVENT_LL_8S ) { - if( Key_TWS_Pair_Tim < KEY_TWS_PAIR_CLEAR_CNT ) //每隔200ms发送一次,持续时间3s。 + if( Key_TWS_Clear_Pair_Tim < KEY_TWS_PAIR_CLEAR_CNT ) //每隔200ms发送一次,持续时间3s。 { - if( Key_TWS_Pair_Tim % ( Vox_TX_Interval + 2 ) ) + if( Key_TWS_Clear_Pair_Tim % Vox_TX_Interval_2 ) { #ifdef VOX_TX HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOR_CHAN); #endif } else - if( Key_TWS_Pair_Tim % Vox_TX_Interval ) + if( Key_TWS_Clear_Pair_Tim % Vox_TX_Interval ) { #ifdef VOX_TX HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOL_CHAN); #endif } - Key_TWS_Pair_Tim++; + Key_TWS_Clear_Pair_Tim++; } else { Event_key = KEY_EVENT_Empty; - Key_TWS_Pair_Tim = 0; + + OpenCover_TX_Cmd_Flag = 1; + + Key_TWS_Clear_Pair_Tim = 0; + + VOX_EN_Type(VOX_ADT_Mode); } } } diff --git a/UsrSrc/sleep/sleep.c b/UsrSrc/sleep/sleep.c index bc1beb4..97046f3 100644 --- a/UsrSrc/sleep/sleep.c +++ b/UsrSrc/sleep/sleep.c @@ -203,7 +203,7 @@ void Enter_Sleep(void) */ bit Check_Require_Sleep(void ) { - if( ( ChgStatus == CHG_STA_ING ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下,Boost重载输出,系统不进休眠模式。 */ + if( ( ChgStatus > CHG_PROTECT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下,Boost重载输出,系统不进休眠模式。 */ { #ifdef _DEBUG_SLEEP printf("Not Get Into Sleep(ChgStatus:%d,Vox_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vox_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag); diff --git a/UsrSrc/uart/uart.c b/UsrSrc/uart/uart.c index 2860930..7b06aa0 100644 --- a/UsrSrc/uart/uart.c +++ b/UsrSrc/uart/uart.c @@ -284,6 +284,10 @@ uint8_t Rx1Status = 0; uint8_t RX1_Cnt = 0; +#define Vox_Comm_JL_HEADER_DATA_LEN 4 + +#define Vox_Comm_ZK_HEADER_DATA_LEN 6 + /*uart1中断处理函数*/ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1 { @@ -345,7 +349,11 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1 { RX1_Buffer[RX1_Cnt++] = S1BUF; - if( RX1_Cnt >= ( RX1_Buffer[2] + 4 ) ) + #if JIELI + if ( ( RX1_Cnt >= ( RX1_Buffer[2] + Vox_Comm_JL_HEADER_DATA_LEN ) ) || ( RX1_Cnt > COM0_Data_Lenth ) ) + #elif ZHONGKE + if ( ( RX1_Cnt >= ( RX1_Buffer[4] + Vox_Comm_ZK_HEADER_DATA_LEN ) ) || ( RX1_Cnt > COM0_Data_Lenth ) ) + #endif { RX1_Cnt = 0; diff --git a/UsrSrc/userapp/userapp.c b/UsrSrc/userapp/userapp.c index 04a0c51..f3f8829 100644 --- a/UsrSrc/userapp/userapp.c +++ b/UsrSrc/userapp/userapp.c @@ -139,33 +139,38 @@ void LED_Display_App(void) } else { - if( Display_RSta != LED_KEEP_FLASHING ) + if( Display_RSta != LED_FLASH ) { Display_Red_Flash(20,10); } - if( Display_GSta != LED_KEEP_FLASHING ) + if( Display_GSta != LED_FLASH ) { Display_Green_Flash(20,10); } - if( Display_YSta != LED_KEEP_FLASHING ) + if( Display_YSta != LED_FLASH ) { Display_Yellow_Flash(20,10); } - if( Display_BSta != LED_KEEP_FLASHING ) + if( Display_BSta != LED_FLASH ) { Display_Blue_Flash(20,10); } + + if( Vox_Output_Short_Flag ) + { + if( LED_On_Timer < LED_PRO_TIM ) + { + LED_On_Timer++; + } + else + { + Vox_Ocp_Flag = 1; - if( LED_On_Timer < LED_PRO_TIM ) - { - LED_On_Timer++; - } - else - { - Vox_Ocp_Flag = 1; + LED_On_Flag = 1; + } } } @@ -190,15 +195,17 @@ void LED_Display_App(void) #endif - if (ChgStatus == CHG_STA_ING) //ChgStatus = CHG_STA_ING + if (ChgStatus != CHG_NONE) { - if ( Charger_Done ) // 充电完成,4个LED常亮 + if ( ChgStatus == CHG_STA_COMPLETED ) // 充电完成,4个LED常亮 { if( !LED_On_ChgDone_Flag ) { LED_On_ChgDone_Flag = 1; LED_Breating_Light_Off(); + + return; } Display_AllOn(); @@ -209,6 +216,8 @@ void LED_Display_App(void) { LED_On_Chg_Flag = 1; + LED_On_ChgDone_Flag = 0; + LED_On_Flag = 1; Breathing_Light_Cnt = LED_R; @@ -409,13 +418,6 @@ void ADC_GetValue_Machine(void) */ void System_Drivers_Machine(void) { -#if CHARGER_ENABLE - Charger_Handler(); -#endif - -#if DISCHARGE_ENABLE - DisCharge_Handler(); -#endif #if HALL_ENABLE Hall_Handler(); @@ -432,6 +434,15 @@ void System_Drivers_Machine(void) if ( F_sys_tim_100ms ) { F_sys_tim_100ms = 0; + +#if CHARGER_ENABLE + Charger_Handler(); +#endif + +#if DISCHARGE_ENABLE + DisCharge_Handler(); +#endif + #if BAT_VALUE check_bat_level(); #endif @@ -480,7 +491,7 @@ void SysTem_State_Machine(void) #endif #ifdef _DEBUG_MAIN - printf("Power On State!Hall(0x%x) (line:%d)\r\n", (uint16_t)CoverStatus,(uint16_t)__LINE__); + // printf("Power On State!Hall(0x%x) (line:%d)\r\n", (uint16_t)CoverStatus,(uint16_t)__LINE__); #endif break; @@ -599,10 +610,13 @@ void SysTem_State_Machine(void) F_sys_tim_1s = 0; #ifdef _DEBUG_MAIN - printf("STA0:0x%x,STA1:0x%x,STA2:0x%x,STA3:0x%x,STA4:0x%x.Dec_Sleep:%d\r\n",(uint16_t)(CHIP_STA0),(uint16_t)(CHIP_STA1),(uint16_t)(CHIP_STA2),(uint16_t)(CHIP_STA3),(uint16_t)(CHIP_STA4),(uint16_t)Decnt_SleepDelay); + SFRADDR = ST_VOX; + ret = SFRDATA; + + printf("CHG_STA:%d,ST_VOX:0x%x,STA0:0x%x,STA1:0x%x,STA2:0x%x,STA3:0x%x,STA4:0x%x.Dec_Sleep:%d\r\n",(uint16_t)ChgStatus,(uint16_t)ret,(uint16_t)(CHIP_STA0),(uint16_t)(CHIP_STA1),(uint16_t)(CHIP_STA2),(uint16_t)(CHIP_STA3),(uint16_t)(CHIP_STA4),(uint16_t)Decnt_SleepDelay); #endif #ifdef _DEBUG_ADC - printf("adc chn:%d,Avg_Adc:%d,Ivol:%d,Vbat:%d,Vout:%d,Ivor:%d,Vntc:%d.\r\n",(uint16_t)ADC_Chn_Num,(uint16_t)g_Value_Adc_Avg,(uint16_t)g_pmu_Adc_Ivol,(uint16_t)g_Vbat_Adc,(uint16_t)g_pmu_Adc_Vout,(uint16_t)g_pmu_Adc_Ivor,(uint16_t)g_Vntc_Adc); + printf("adc chn:%d,Ivol:%d,Vbat:%d,Vout:%d,Ivor:%d,Vntc:%d.\r\n",(uint16_t)ADC_Chn_Num,(uint16_t)g_pmu_Adc_Ivol,(uint16_t)g_Vbat_Adc,(uint16_t)g_pmu_Adc_Vout,(uint16_t)g_pmu_Adc_Ivor,(uint16_t)g_Vntc_Adc); #endif if(Decnt_SleepDelay > 0) { diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c index 8c59521..68322e9 100644 --- a/UsrSrc/vox/vox_module.c +++ b/UsrSrc/vox/vox_module.c @@ -46,37 +46,35 @@ bit Vox_Output_Short_Flag = 0; Macro definitions \******************************************************************************/ /*100ms调用周期*/ -#define VOX_OUTPUT_SHORT_CNT 2 +#define VOX_OUTPUT_SHORT_CNT 2 -#define VOX_LOW_BAT_CNT 25 //关盖前,盒子低电保护,Vox 5V持续2.5s +#define VOX_LOW_BAT_CNT 25 //关盖前,盒子低电保护,Vox 5V持续2.5s -#define VOX_VOUT_5V_LEAST_CNT 50 +#define VOX_VOUT_5V_LEAST_CNT 40 -#define VOX_VOUT_5V_DEBOUNCE 5 +#define VOX_VOUT_5V_DEBOUNCE 5 -#define VOX_VOUT_0V_DEBOUNCE 5 +#define VOX_VOUT_0V_DEBOUNCE 5 -#define VOX_OCP_HICUUP_DEBOUNCE 5 +#define VOX_OCP_HICUUP_DEBOUNCE 5 -#define VOX_ADT_HOLD_CNT 3 +#define VOX_ADT_HOLD_CNT 3 -#define Vox_TX_Pattern_Cnt 3 +#define Vox_TX_Pattern_Cnt 3 -#define VOX_VOLTAGE_HOLD_CNT 3 +#define VOX_VOLTAGE_HOLD_CNT 3 -#define BOOST_VOUT_MAX 2 //跟随充Boost输出电压上限值:0:4.6V,1:4.7V,2:4.8V,3:5.05V. +#define BOOST_VOUT_MAX 2 //跟随充Boost输出电压上限值:0:4.6V,1:4.7V,2:4.8V,3:5.05V. -#define Vox_TX_Pattern_Tim 11 +#define Vox_TX_Pattern_Tim 20 -#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔 +#define VOX_IOFF_HOLD_CNT 50 -#define Vox_TX_Interval_2 4 +#define VOX_FOLLOW_CHG_CNT 10 -#define VOX_IOFF_HOLD_CNT 50 +#define VOX_CLOSE_HOLD_CNT 50 //关盖发码前保持时间 -#define VOX_FOLLOW_CHG_CNT 10 - -#define VOX_CLOSE_HOLD_CNT 50 //关盖发码前保持时间 +#define MAX_PACKET_SIZE 0x20 #if VOX_FOLLOW_CHG @@ -123,12 +121,23 @@ xdata uint8_t Vox_Get_BES_Addr_Flag[2] = {0}; #endif -xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量 +#ifdef VOX_TX +idata uint8_t Net_Info[2][13] = {0}; + +idata uint8_t MAC_Addr[2][18] = {0}; + +uint8_t EarPhone_Num = 0; + +#endif + +xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量 xdata uint8_t Vox_Online_State[2] = {0}; //耳机在线标志位 bit Vox_Ocp_Flag = 0; +bit OpenCover_TX_Cmd_Flag = 0; + #define KEY_TWS_PAIR_TIMER 2 #define KEY_TWS_PAIR_CNT 6 @@ -423,15 +432,17 @@ bit Vox_Ocp_Flag = 0; void Vox_Det_Machine(void) { + static bit Get_CHIP_STA1_Flag0; + static bit Get_CHIP_STA1_Flag1; static bit Cover_Close_Flag; static bit Cover_Close_Flag1; + + static bit Cover_Close_Force_Vout_Flag; static bit Cover_Open_Flag; - - static bit TX_Cmd_Flag; static bit Cover_Open_5V_Flag; @@ -450,6 +461,7 @@ void Vox_Det_Machine(void) static bit Vox_Chn_Select; static uint8_t Vox_Output_Debounce; + static bit CoverEvent_Flg1; if( gBoost_Prepared_Flag ) { @@ -471,8 +483,12 @@ void Vox_Det_Machine(void) Vox_Voltage_Hold_Timer = 0; //关盖清0,开盖使用 Vox_TX_Timer = 0; + + Get_CHIP_STA1_Flag0 = 0; Get_CHIP_STA1_Flag1 = 0; + + CoverEvent_Flg1 = 1; if( CoverStatus == CLOSE ) //1、关盖关闭COM_CTRL;显示灯效。(无需查询Loadon、IOFF状态,无论耳机是否在仓,Vox 5V输出。) { @@ -486,14 +502,12 @@ void Vox_Det_Machine(void) Vox_Chg_Full_Flag = 0; + Cover_Close_Force_Vout_Flag = 0; + Vox_Getinto_Sleep_Flag = 0; Vox_Chn_Select = 0; - Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00; - - Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00; - Vox_Vout_Enable = ON; Wkup_Earphone_Flag = 0; @@ -507,7 +521,7 @@ void Vox_Det_Machine(void) #endif #ifdef _DEBUG_VOX - printf("Box Close.\r\n"); + printf("Box Close.(line:%d)\r\n",(u16)__LINE__); #endif } else //2、开盖处理:5v 500ms 转0V 500ms,后转ADT模式。 @@ -520,28 +534,67 @@ void Vox_Det_Machine(void) Cover_Open_5V_Flag = 0; #ifdef _DEBUG_VOX - printf("Box Open.\r\n"); + printf("Box Open.(line:%d)\r\n",(u16)__LINE__); #endif } + Boost_Open_Flag = 0; + Vox_Output_Short_Flag = 0; Vox_Ocp_Flag = 0; CoverEvent_Flg = 0; } + /* 开关盖后,VOX先升压5.2V 一段时间,唤醒耳机,后转入ADT,获取盒内耳机数量。 */ + if( Vox_Voltage_Hold_Timer < VOX_VOUT_5V_DEBOUNCE ) //开盖后5V N00ms。 + { + Vox_Voltage_Hold_Timer++; + + return; + } + if ( CoverEvent_Flg1 ) + { + CoverEvent_Flg1 = 0; + + VOX_EN_Type(VOX_ADT_Mode); + return; + } + else + { + if ( !Get_CHIP_STA1_Flag0 ) //获取耳机在盒数量。 + { + Get_CHIP_STA1_Flag0 = 1; + + if ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) + { + if ( ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) == ( VOR_LoadOn | VOL_LoadOn ) ) + { + EarPhone_Num = 2; + } + else + { + EarPhone_Num = 1; + } + } + else + { + EarPhone_Num = 0; + } + +#ifdef _DEBUG_VOX + printf( "Open/Close Box,Earphones In Box(Num:%d)(VoxSta:0x%x).\r\n",(u16)EarPhone_Num, (u16)(CHIP_STA1) ); +#endif + } + + } + /* 发送开盖指令*/ if( Cover_Open_Flag ) /*开盖后,5V持续N00ms后0V持续N00ms,保证耳机能被唤醒;之后发开盖码。*/ - { - if( Vox_Voltage_Hold_Timer < VOX_VOUT_5V_DEBOUNCE ) //开盖后5V N00ms。 - { - Vox_Voltage_Hold_Timer++; - - return; - } - + { + #if 0 if( Vox_TX_Timer < VOX_VOUT_0V_DEBOUNCE ) //转0V N00ms { VOX_EN_Type(VOX_PD1K_Mode); @@ -549,6 +602,7 @@ void Vox_Det_Machine(void) Vox_TX_Timer++; } else + #endif { if( !Get_CHIP_STA1_Flag1 ) { @@ -557,15 +611,32 @@ void Vox_Det_Machine(void) if( ( Vox_Output_Debounce % Vox_TX_Interval_2 ) == 0 ) //200ms发送一次 { #ifdef VOX_TX +#if JIELI + HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 + +#elif ZHONGKE + + HandleTxCommand(VHOUSE_CMD_OPEN_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 + +#endif #endif } else if( ( Vox_Output_Debounce % Vox_TX_Interval ) == 0 ) //200ms发送一次 { -#ifdef VOX_TX +#ifdef VOX_TX +#if JIELI + HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 + +#elif ZHONGKE + + HandleTxCommand(VHOUSE_CMD_OPEN_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 + #endif +#endif + } Vox_Output_Debounce++; @@ -578,9 +649,7 @@ void Vox_Det_Machine(void) Get_CHIP_STA1_Flag1 = 1; - TX_Cmd_Flag = 1; - - Boost_Open_Flag = 0; + OpenCover_TX_Cmd_Flag = 1; Vox_Vout_Enable = OFF; #ifdef _DEBUG_VOX @@ -590,29 +659,32 @@ void Vox_Det_Machine(void) } else { - if( TX_Cmd_Flag ) + if( Event_key == KEY_EVENT_Empty ) { - TX_Cmd_Flag = 0; - - CHIP_STA1_BK = CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ); - } - else - { - /*耳机出入盒判断*/ - if( CHIP_STA1_BK != ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) ) //查询耳机loadon状态,loadon状态改变,则说明有耳机出入盒。 + if( OpenCover_TX_Cmd_Flag ) { - if( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) - { - Earphone_Chg_Flag = 1; -#ifdef LED_DISPLAY - LED_On_Flag = 1; -#endif -#ifdef _DEBUG_VOX - printf("Open Box And Earphone GetIn.\r\n"); -#endif - } + OpenCover_TX_Cmd_Flag = 0; - CHIP_STA1_BK = ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ); + CHIP_STA1_BK = CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ); + + } + else + { + /*耳机出入盒判断*/ + if( CHIP_STA1_BK != ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) ) //查询耳机loadon状态,loadon状态改变,则说明有耳机出入盒。 + { + if ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) + { + Earphone_Chg_Flag = 1; +#ifdef LED_DISPLAY + LED_On_Flag = 1; +#endif + } +#ifdef _DEBUG_VOX + printf( "Open Box And Earphone GetIn(Num:%d)(VoxSta:0x%x).\r\n",(u16)EarPhone_Num, (u16)(CHIP_STA1) ); +#endif + CHIP_STA1_BK = ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ); + } } } } @@ -637,14 +709,12 @@ void Vox_Det_Machine(void) Follow_Chg_Sta = Vox_Follow_Chg_InitSta; #endif - Vox_TX_Timer = 0; - Vox_Voltage_Hold_Timer = 0; - Vox_Output_Debounce = 0; - Vox_Chg_Full_Flag = 0; + Cover_Close_Force_Vout_Flag = 1; + return; } @@ -653,59 +723,75 @@ void Vox_Det_Machine(void) printf("Close Box And Force Voltage Up.\r\n"); #endif - Wkup_Earphone_Flag = 0; - } - else - { + Boost_Open_Flag = 0; + if( Vox_Voltage_Hold_Timer <= VOX_VOLTAGE_HOLD_CNT ) //关盖Boost VPMID保持时间。 { Vox_Voltage_Hold_Timer++; return; } - /*发码*/ - if( Vox_TX_Timer <= Vox_TX_Pattern_Tim ) //发送关盖指令。 - { - if( (Vox_TX_Timer % Vox_TX_Interval_2) == 0 ) //200ms发送一次 - { + + Wkup_Earphone_Flag = 0; + } + else + { + if( !Cover_Close_Force_Vout_Flag ) + { + + /*发码*/ + if( Vox_TX_Timer <= Vox_TX_Pattern_Tim ) //发送关盖指令。 + { + if( (Vox_TX_Timer % Vox_TX_Interval_2) == 0 ) //200ms发送一次 + { #ifdef VOX_TX - HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 +#if JIELI + HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 +#elif ZHONGKE + HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #endif - } - else - if( (Vox_TX_Timer % Vox_TX_Interval) == 0 ) //200ms发送一次 - { +#endif + } + else + if( (Vox_TX_Timer % Vox_TX_Interval) == 0 ) //200ms发送一次 + { #ifdef VOX_TX - HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 +#if JIELI + HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 +#elif ZHONGKE + HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #endif + +#endif + } + + Vox_TX_Timer++; + + return; } - Vox_TX_Timer++; + if( Vox_Output_Debounce <= Vox_TX_Pattern_Tim ) //关盖后5s发送获取电量命令。 + { + if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200ms发送一次 + { +#ifdef VOX_TX + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 +#endif + } + else + if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200ms发送一次 + { +#ifdef VOX_TX + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 +#endif + } - return; + Vox_Output_Debounce++; + + return; + } } } - - if( Vox_Output_Debounce <= VOX_CLOSE_HOLD_CNT ) //关盖后5s发送获取电量命令。 - { - if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200ms发送一次 - { -#ifdef VOX_TX - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 -#endif - } - else - if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200ms发送一次 - { -#ifdef VOX_TX - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 -#endif - } - - Vox_Output_Debounce++; - - return; - } /*Vox 过流保护,两只耳机都每隔500ms打嗝一次*/ if( IRQ_FLAG0 & ( VOR_OutPut_Short | VOL_OutPut_Short ) ) @@ -751,8 +837,8 @@ void Vox_Det_Machine(void) { if( !Vox_Chg_Full_Flag ) { - // if( ( CHIP_STA1 & ( VOR_Ioff | VOL_Ioff | VOL_LoadOn | VOR_LoadOn ) == ( VOR_Ioff | VOL_Ioff | VOL_LoadOn | VOR_LoadOn ) ) || F_batlevel_low ) //耳机充满、VOX无负载、盒子低电,则关闭Vout输出通路,关闭Boost。 - if( ( (CHIP_STA1 & 0xAC) == 0xAC ) || F_batlevel_low ) + if( ( CHIP_STA1 & ( VOR_Ioff | VOL_Ioff | VOL_LoadOn | VOR_LoadOn ) == ( VOR_Ioff | VOL_Ioff | VOL_LoadOn | VOR_LoadOn ) ) || F_batlevel_low ) //耳机充满、VOX无负载、盒子低电,则关闭Vout输出通路,关闭Boost。 + // if( ( (CHIP_STA1 & 0xAC) == 0xAC ) || F_batlevel_low ) { if( Vox_Voltage_Hold_Timer <= VOX_VOUT_5V_LEAST_CNT ) //重载转轻载延时5s后关闭Boost输出。 { @@ -771,9 +857,7 @@ void Vox_Det_Machine(void) Vox_Voltage_Hold_Timer = 0; Vox_Getinto_Sleep_Flag = 0; - - Boost_Open_Flag = 0; - + VOX_EN_Type(VOX_ADT_Mode); //VOX Enable ADT } else @@ -788,7 +872,6 @@ void Vox_Det_Machine(void) } else { - if( Vox_Output_Debounce <= Vox_TX_Pattern_Tim ) { if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200ms发送一次 @@ -896,7 +979,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if( !nVpmid_Value_Setting ) { DisCharge_Boost_Open(OFF,n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present); -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG InitSta Set Max Vpmid.(Vox_sta:0x%x)(line:%d)\r\n",(uint16_t)CHIP_STA1, (uint16_t)__LINE__); #endif nVpmid_Value_Setting = 1; @@ -935,7 +1018,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_Sta1; Vox_Follow_Chg_Debounce = 0; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG InitSta.(Vox_sta:0x%x)(line:%d)\r\n",(uint16_t)CHIP_STA1, (uint16_t)__LINE__); #endif } @@ -950,7 +1033,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vox_Follow_Stop = ON; Follow_Chg_Sta = Vox_Follow_Chg_InitSta; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,No EarPhone In Box.(line:%d)\r\n",(uint16_t)__LINE__); #endif } @@ -964,7 +1047,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = ( g_pmu_Adc_Ivor / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80% n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = g_pmu_Adc_Ivor << 1; //Ivox_Threshold_Neg = IVox_Init * 2 -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOR Chging(Ivor:%dmA).(line:%d)\r\n",g_pmu_Adc_Ivor,(uint16_t)__LINE__); #endif @@ -977,7 +1060,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = ( g_pmu_Adc_Ivol / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80% n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = g_pmu_Adc_Ivol << 1; //Ivox_Threshold_Neg = IVox_Init * 2 -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOL Chging(Ivol:%dmA).(line:%d)\r\n",g_pmu_Adc_Ivol,(uint16_t)__LINE__); #endif @@ -1005,7 +1088,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] = g_pmu_Adc_Ivor; n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = ON; //判断VOR有耳机在盒正常抽电 -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta2,Get IVOR:%dmA.(line:%d)\r\n",(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); #endif } @@ -1015,7 +1098,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] = g_pmu_Adc_Ivol; n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = ON; //判断VOL有耳机在盒正常抽电 -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta2,Get IVOL:%dmA.(line:%d)\r\n",(uint16_t)g_pmu_Adc_Ivol,(u16)__LINE__); #endif } @@ -1041,7 +1124,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_InitSta; n_Vox_Fllow_Chg->Vox_Follow_Start = OFF; //重启动跟随充 -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3,VOX Chg ReInit.(line:%d)\r\n",(uint16_t)__LINE__); #endif } @@ -1059,14 +1142,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = OFF; } -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CV),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); #endif } else //未检测到Ivor Ioff,则Vpmid降档 { n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CV),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); #endif } @@ -1076,14 +1159,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] ) { n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CC),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); #endif } else { n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CC),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); #endif } @@ -1102,14 +1185,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = OFF; } -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CV),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); #endif } else //未检测到Ivol Ioff,则Vpmid降档 { n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CV),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); #endif } @@ -1119,14 +1202,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] ) { n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CC),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); #endif } else { n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta3(CC),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); #endif } @@ -1165,12 +1248,12 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; Follow_Chg_Sta = Vox_Follow_Chg_Sta2; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta4,VOx Vpmid AddSta(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,g_pmu_Adc_Ivor,(u16)__LINE__); #endif } -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW else { printf("Follow CHG Sta4,VOx Ching(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,g_pmu_Adc_Ivor,(u16)__LINE__); @@ -1190,11 +1273,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON; Follow_Chg_Sta = Vox_Follow_Chg_Sta2; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta4,VOR Vpmid AddSta(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivor,(u16)__LINE__); #endif } -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW else { printf("Follow CHG Sta4,VOR Ching(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivor,(u16)__LINE__); @@ -1210,11 +1293,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; Follow_Chg_Sta = Vox_Follow_Chg_Sta2; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG Sta4,VOL Vpmid AddSta(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,(u16)__LINE__); #endif } -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW else { printf("Follow CHG Sta4,VOL Ching(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,(u16)__LINE__); @@ -1240,7 +1323,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if( ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) && ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG SubSta,VOL/VOR(line:%d).\r\n",(uint16_t)__LINE__); #endif } @@ -1250,7 +1333,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG SubSta,VOR(line:%d).\r\n",(uint16_t)__LINE__); #endif } @@ -1261,7 +1344,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] == ON ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG SubSta,VOL(line:%d).\r\n",(uint16_t)__LINE__); #endif } @@ -1306,7 +1389,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Vox_Follow_Chg_Debounce = 0; n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = OFF; -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG SubSta,(STA:0x%x,Vpmid:0x%x,PTM:%d)(line:%d)\r\n",(uint16_t)Follow_Chg_Sta,(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)n_Vox_Fllow_Chg->Vox_PTM_Type,(uint16_t)__LINE__); #endif DisCharge_Boost_Open(n_Vox_Fllow_Chg->Vox_PTM_Type, n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present ); @@ -1335,7 +1418,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_Sta1; } -#ifdef _DEBUG_VOX +#ifdef _DEBUG_FOLLOW printf("Follow CHG AddSta,(STA:0x%x,Vpmid:0x%x)(line:%d)\r\n",(uint16_t)Follow_Chg_Sta,(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)__LINE__); #endif DisCharge_Boost_Open(OFF, n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present); @@ -1413,20 +1496,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) * ******************************************************************************* */ -idata uint8_t Net_Info[2][8] = {0}; - -idata uint8_t MAC_Addr[2][18] = {0}; - -uint8_t EarPhone_Num = 0; - -#define MAX_PACKET_SIZE 0x20 - void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select) { uint8_t dataLen = 0; uint8_t tx_pData[COM0_Data_Lenth] = 0; uint8_t i = 0; +#if JIELI + /*数据包头*/ tx_pData[0] = 0x00; tx_pData[1] = BOXHEADER>>8; @@ -1458,14 +1535,14 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select) case VHOUSE_CMD_EXCH_TWS_BTADDR: /*Data Length*/ - tx_pData[3] = 0x1B; + tx_pData[3] = MAX_PACKET_SIZE; for(i=5;i<18;i++) { tx_pData[i] = MAC_Addr[nVox_Chn_Select][i]; } - for(i=23;i<8;i++) + for(i=23;i<13;i++) { tx_pData[i] = Net_Info[nVox_Chn_Select][i]; } @@ -1536,6 +1613,84 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select) tx_pData[dataLen] = Crc8Maxim(tx_pData,dataLen); +#elif ZHONGKE + + /*数据包头*/ + tx_pData[0] = BOXHEADER>>8; + tx_pData[1] = BOXHEADER; + /*充电仓识别码*/ + tx_pData[2] = BOXIDCODE; + /*耳机通道*/ + tx_pData[5] = nVox_Chn_Select; + /*指令编号*/ + tx_pData[3] = TxCommand; + + switch(TxCommand) + { + case VHOUSE_CMD_GET_VBAT: + + case VHOUSE_CMD_OPEN_WINDOW: + + case VHOUSE_CMD_CLOSE_WIN_GET_VBAT: + + /*Data Length*/ + tx_pData[4] = 0x03; + + tx_pData[6] = ( ( ChgStatus & CHG_STA_ING ) << 7 ) | bat_level; //bit 0~6 表示充电仓电量值 0~100;bit 7 为 1 表示在给充电仓充电,为 0 表示没有给充电仓充电; + + tx_pData[7] = 0x00; + + break; + + case VHOUSE_CMD_PAIR: //长按充电仓按键3s,充电仓发送配对指令。 + /* + 发送给右耳 CMD2,右耳接收到,发送 CMD3 指令给充电仓,充电仓 copy 该指令给 + 左耳,充电仓可随即发送 CMD2 指令给左耳,左耳会发送 CMD=0x03 给充电仓,充电仓直接 + copy CMD3 给右耳即可,右耳接收到发送 VHOUSE_CMD_SUCCES 指令给充电仓。 + */ + /*Data Length*/ + tx_pData[4] = 0x01; + + break; + + case VHOUSE_CMD_GET_TWS_BTADDR: //将收到的CMD3转发给对耳。 +#ifdef VOX_RX + + for(i=0;i充电仓 + + break; + + default: + break; + } + +#endif + } /* @@ -1699,12 +1897,19 @@ void HandleVoxCommMsg(void) if( Uart1_RX_Finish_Flag ) { Uart1_RX_Finish_Flag = 0; -//#ifdef _DEBUG_VOX +#ifdef _DEBUG_VOX printf("RX1_Buffer[0]:0x%x,RX1_Buffer[1]:0x%x,RX1_Buffer[2]:0x%x,RX1_Buffer[3]:0x%x,RX1_Buffer[4]:0x%x,RX1_Buffer[5]:0x%x,RX1_Buffer[6]:0x%x,line:%d\r\n",(u16)RX1_Buffer[0],(u16)RX1_Buffer[1],(u16)RX1_Buffer[2],(u16)RX1_Buffer[3],(u16)RX1_Buffer[4],(u16)RX1_Buffer[5],(u16)RX1_Buffer[6],(u16)__LINE__); -//#endif +#endif +#if JIELI CrcCheckSum = Crc8Maxim(RX1_Buffer, RX1_Buffer[2] + 3); //求校验和 if( CrcCheckSum == RX1_Buffer[RX1_Buffer[2] + 3] ) +#elif ZHONGKE + CrcCheckSum = Crc8Maxim( RX1_Buffer, RX1_Buffer[4] + 5 ); + + if( CrcCheckSum == RX1_Buffer[ RX1_Buffer[4] + 5 ] ) + +#endif { HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[3]); }