ÎÒÃǷdz£ÖØÊÓÄúµÄ¸öÈËÒþ˽£¬µ±Äú·ÃÎÊÎÒÃǵÄÍøÕ¾Ê±£¬ÇëͬÒâʹÓõÄËùÓÐcookie¡£ÓйظöÈËÊý¾Ý´¦ÀíµÄ¸ü¶àÐÅÏ¢¿É·ÃÎÊ¡¶Òþ˽Õþ²ß¡·
1. ÉÏÊÖÆª
1.1 Ó²¼þ¿ª·¢°å
Q£ºNSUC16x0µÄDemo°åÓÐÄÄÐ©ÌØÐÔ£¿
A£ºNSUC16x0µÄDemo°åÊÇΪÁ˰ïÖú¿Í»§¸ü¿ìµÄÆÀ¹À¸ÃоƬ¶øÉè¼ÆµÄ¡£Ä¿Ç°Ó²¼þÒѾµ½V1.3°æ±¾¡£¸ÃDemo°åÖ÷Òª°üÀ¨ÏÂÃæµÄһЩ¹¦ÄÜ£º
1. Ö§³Ö¸÷ÖÖ²»Í¬µÄµç»úÐÎʽ£¬°üÀ¨Ö±Á÷ÓÐË¢µç»ú¡¢ÈýÏàÖ±Á÷ÎÞË¢µç»úÒÔ¼°²½½øµç»ú¿ØÖÆ£»
2. ÿ¸öÇű۵ĵçÁ÷¸ß´ï1.4A£»
3. Ö§³ÖTESTģʽÇл»£¬¿ÉÒÔ´ÓFLASHÆô¶¯»òÕßRAMÆô¶¯£»
4. Ö§³ÖSWDµ÷ÊÔ½Ó¿Ú£»
5. Ö§³ÖËÄÏßµÄLIN£¬°üÀ¨LIN_IN, LIN_OUT, GNDºÍVSUP£¬¿ÉÒÔ·½±ãµÄ×éÍøºÍ×Ô¶¯Ñ°Ö·£»
6. ÓÐÒ»¸öµçԴָʾµÆºÍÒ»¸öÓû§¿É¿ØÖ¸Ê¾µÆ£»
7. Ö§³ÖÒ»¸ö°´¼üÊäÈ룻
8. Ö§³ÖHSBVDD¸ß±ßÊä³ö¿ØÖÆ£»
9. ¸÷¸ö¹¦ÄܹܽŶ¼Òý³ö£¬·½±ã¿Í»§ÆÀ¹ÀºÍʹÓã»
Q2£ºNSUC16x0µÄDemo°åÔÀíͼ£¿
A£º
Q3£ºDemo°åÀïµÄ³ÌÐòÃ÷Ã÷Êä³öÁË£¬µ«ÎªÊ²Ã´Ã»ÓеçÁ÷£¿
A£ºDemo°å³ö³§Ä¬ÈÏûÓÐÌøÏߣ¬Çë¼ì²éÌøÏßJ8ÊÇ·ñ±ÕºÏ¡£Èç¹ûûÓбպϵϰ£¬ÇűÛMVDD¾ÍûÓй©µçÉÏ¡£
Q4£ºÎªÊ²Ã´LINÏß¼ÈÓÐLINÓÖÓÐLIN_O£¿ÔÚLIN InterfaceµÄ½Ó¿ÚÉÏÃû×Ö½ÐLIN_INºÍLIN_OUT£¿
A£ºÐ¾Æ¬µÄ¹Ü½ÅÉÏÓÐLINºÍLIN_O¡£Èç¹ûÓ¦ÓÃÖв»ÐèÒª×Ô¶¯Ñ°Ö·µÄ¹¦ÄÜ£¬ÄÇô½¨ÒéLIN_OÐü¿Õ¼´¿É¡£Èç¹ûÐèÒªÓõ½×Ô¶¯Ñ°Ö·£¬±ÈÈç¿Õµ÷·çÃÅ»òÕß³ö·ç¿ÚÓ¦Ó㬱Ƚ϶àµÄÏàͬ¹¦ÄܵÄECUÁ¬½ÓÔÚÒ»Æð£¬ÄÇô¾ÍÐèÒª×Ô¶¯Ñ°Ö·µÄ·½·¨À´½øÐÐECUµÄNAD¸³Öµ¡£
LIN_INºÍLIN_OUTÖ¸µÄ¾ÍÊÇÁ¬½ÓLINºÍLIN_O¹Ü½ÅµÄÍⲿÐźš£ÕâÁ½¸öÐźÅÓÃÓÚ½«¶à¸öECU´®ÁªÆðÀ´¡£LINºÍLIN_OÖ®¼äÊÇÒ»¸ö1Å·Ä·µÄµç×裬Õâ¸öµç×èÊÇоƬÄÚ²¿¼¯³ÉµÄ£¬ÓÃÍòÓñíͨ¶Ï²âÁ¿µÄ»°£¬LINºÍLIN_O£¬Ò²¾ÍÊÇLIN_INºÍLIN_OUTÊÇÁªÍ¨µÄ¡£
1.2 Èí¼þ¿ª·¢»·¾³
Q1£ºNSUC16x0Ö§³ÖʲôÄÄЩÈí¼þIDE£¿
A£ºNSUC16x0ÊôÓÚARM CortexM3Äںˡ£ËäÈ»ARMÄں˿ÉÒÔÓкܶ಻ͬµÄ¿ª·¢»·¾³£¬µ«KeilÒ»Ö±ÊDZȽÏÊܹã´ó¿ª·¢Õßϲ»¶µÄIDE¡£Òò´ËNSUC16x0Ñ¡ÔñKeil×÷ΪÆä¿ª·¢»·¾³¡£Óû§Ö»ÐèÒª°²×°KeilµÄMDK5xx¼°ÒÔÉϵÄIDE£¬¶¼ÊÇ¿ÉÒԵġ£
Q2£ºÊ¹ÓÃKeil¿ª·¢Ó¦¸Ã×¢ÒâЩʲô£¿
A£ºÔÚʹÓÃKeilµÄMDK5xx¿ª·¢NSUC16x0²úÆ·Ó¦ÓõÄʱºò£¬ÐèÒªÊ×ÏȰ²×°NSUC16x0µÄоƬ°²×°°ü¡£°²×°°üÎļþÃûΪNovosns.NSUC16x0.2.1.x.pack(ÈçÐè×îа²×°°ü£¬ÇëÖÁÒøºÓ¼¯ÍÅgalaxy¹ÙÍøÏÂÔØ£©
1.3 µ÷ÊÔÆ÷
Q1£ºNSUC16x0¿ª·¢ÍƼöʲôµ÷ÊÔÆ÷ÄØ£¿
A£ºNSUC16x0 Ö§³ÖSWDµ÷ÊÔ¿Ú¡£ÓÉÓÚNSUC16x0µÄIOÊôÓÚ5Vϵͳ£¬Òò´Ë½¨ÒéÓû§Ê¹ÓÃÖ§³Ö5VµçѹµÄJ-link¡£Èç¹ûʹÓÃDP-Link»òÕßST-Link£¬´ó²¿·Ö¶¼ÊÇ3.3VµÄIO£¬ÕâÑùµÄ»°Óнϴó¸ÅÂÊ»áÁ¬½Óʧ°Ü¡£
Q2£ºÊ¹ÓÃJLINK¹ý³ÌÖеÄ×¢ÒâÊÂÏîÓÐÄÄЩ£¿
A£º
1. ÔÚ¹ºÂòJ-linkµÄʱºò£¬ÐèҪȷ±£Õâ¸öJ-linkÊÇÖ§³Ö5VµÄ£¬±ÈÈç»áÓÐÀàËÆµÄ×ÖÑù¡£
2. SWDµÄÁ¬½Ó£¬JlinkµÄ»°£¬ÐèÒªÁ¬½Ó4¸ùÏߣ¬VTrefÐèÒªÁ¬½Óµ½Ä¿±ê°åµÄAVDD£¬Õâ¸ö×÷ÓÃÊÇΪÁ˼ì²âAVDDµÄµçѹ£¬´Ó¶øÈ·±£SWDÊä³öµÄµçѹºÍAVDDÆ¥Åä¡£ÈçÏÂͼËùʾ£º
J-linkµÄ20PINµÄ½ÓÍ·Á¬½ÓÈçÏÂͼËùʾ£¬VTref - PIN1£»SWDIO - PIN7£»SWCLK - PIN9£»GND - PIN20»òÕ߯äËû¡£
3. Èç¹ûJ-linkÁ¬½ÓÕýÈ·µÄ»°£¬¸øÄ¿±ê°åÉϵçºó£¬ÔÚKeilµÄħÊõ°ôϵÄDebugÑ¡ÏÉÏÄܶÁµ½J-linkµÄÐÅÏ¢ºÍоƬµÄIDCODE¡£
1.4 LINºÐ×Ó
Q1£ºLIN ºÐ×ÓÄÜ×öʲô£¿
A£ºLINºÐ×Óʵ¼ÊÉϾÍÊÇÒ»¸öLIN-USB¹¤¾ß£¬Ö÷ÒªÓÃÓÚÄ£ÄâLIN Master£¬·¢ËÍLINµÄÖ¸ÁîºÍ¶ÁÈ¡LIN SlaveµÄÊý¾Ý¡£
ÓÉÓÚNSUC16x0Ö÷ÒªÊÇÓÃÓÚLINͨÐŵÄÖ´ÐÐÆ÷£¬Òò´ËLINºÐ×ÓÊDZØÐëÒªµÄ¡£
Q2£ºLINºÐ×ÓÍÆ¼öÐͺţ¿
A£ºÄ¿Ç°ÍƼöͼĪ˹µÄLINºÐ×Ó£¬ÔÒòÊÇÒøºÓ¼¯ÍÅgalaxyMCU¿ª·¢µÄÉÏλ»úÒ²¶¼ÊÇ»ùÓڸù¤¾ß¡£
¸Ã¹¤¾ßÐԼ۱ȱȽϸߣ¬Æä×Ô´øÉÏλ»ú¹¦ÄÜÒ²±È½Ï·á¸»¡£
USB2CAN&LIN×ÜÏßÊÊÅäÆ÷»ù´¡°æ-ÖØÇìͼĪ˹µç×ӿƼ¼ÓÐÏÞ¹«Ë¾¹ÙÍø
1.5 µç»ú
Q1£ºDEMOÅäÌ׵IJ½½øµç»úÐͺÅÊÇʲô£¿
A£ºÆäʵûÓÐËùνDEMOÅäÌ׵IJ½½øµç»ú£¬ÎÒÃÇÍÆ¼öʹÓÃ12V²½½øµç»ú£¬¿ÉÒÔʹÓÃ42BYGH33µÈ³£ÓõIJ½½øµç»ú¡£
2. Ó²¼þƪ
Q1£º²úÆ·°å×ÓµÄTESTÒý½Å¸ÃÈçºÎ´¦ÀíÄØ£¿
A£ºTESTÒý½Å¶ÔÓÚÓû§À´½²£¬Ö÷ÒªµÄ×÷ÓÃÊÇΪÁËоƬbootµÄÑ¡Ôñ¡£Ð¾Æ¬¸´Î»ºó»á¸ù¾ÝTEST½ÅÊÇ¸ßµçÆ½»¹ÊÇµÍµçÆ½£¬Ñ¡Ôñ²»Í¬µÄbootλÖá£Èç¹ûTESTÊÇ¸ßµçÆ½£¬ÄÇôоƬ½«´ÓRAM¿ªÊ¼boot£¬·´Ö®Èç¹ûÊÇµÍµçÆ½Ôò´ÓFLASH¿ªÊ¼boot¡£
½¨ÒéÓû§½«TESTÒý½Åͨ¹ýÒ»¸ö10kµç×è½ÓµØ£¬Í¬Ê±½«TEST½ÓÒ»¸ö²âÊԵ㣬ÕâÑù×öµÄÄ¿µÄÊÇÏ£ÍûÈç¹ûFLASHÆô¶¯ÓÐÎÊÌâµÄ»°£¬»¹¿ÉÒÔͨ¹ýRAMÆô¶¯À´²Á³ýFLASH£¬¿ÉÒÔ±ÜÃâÓÉÓÚ³ÌÐòµÄ²Ù×÷ÓÐÎÊÌâ¶øµ¼Öµİå×Ó±äשͷ¡£
Q2£ºHSBVDDÊÇ×öʲôÓõ쬲»Óõϰ¸ÃÈçºÎ´¦ÀíÄØ£¿
A£ºÈ·ÇеÄ˵HSBVDDÊÇÒ»¸ö¸ß±ß¿ª¹Ø£¬Ï൱ÓÚ½«HSBVDDÁ¬µ½BVDDµÄÒ»¸ö¿É¿ØµÄ¿ª¹Øµç·¡£¿ÉÒÔͨ¹ý¼Ä´æÆ÷¿ØÖÆÁ¬½Ó»òÕ߹رգ¬»¹¿ÉÒÔÓйýÁ÷±£»¤¹¦ÄÜ¡£±È½ÏµäÐ͵ÄcaseÊÇHSBVDD¸øÍⲿµÄ´«¸ÐÆ÷¹©µç£¬±ÈÈç¸ßѹµÄ»ô¶û¿ª¹ØµÈ¡£
Èç¹û²»Óõϰ£¬¿ÉÒÔ½«Æäͨ¹ýÒ»¸öµç×è10k½ÓµØ£¬Ö»ÒªÆä¿ª¹ØÊǹرյ쬲¢²»»á´øÀ´µçÁ÷µÄÔö¼Ó¡£Ò²¿ÉÒÔ½«ÆäÁ¬½Óµ½BVDDÉÏ¡£
Q3£ºÎªÊ²Ã´ÐÂ×öµÄ°å×ÓÁ¬²»ÉÏDebugÄØ£¿
A£ºÐ°å×ÓÁ¬²»ÉÏDebug£¬Ö÷Òª¿ÉÄÜÓÐÏÂÃæµÄһЩÔÒò£º
1. ʹÓõÄDebug¹¤¾ß£¬±ÈÈçST-link»òÕßDAP-LinkµÄÊä³öÊÇ3.3VµÄ£¬Ö±½ÓÁ¬µ½NSUC16x0ÉÏÃæµÄ»°»á¿ÉÄÜ´æÔÚÂß¼µçƽʶ±ð´íÎó¡£½¨ÒéʹÓÃ5VµçƽµÄdebug¹¤¾ß£»
2. DebugµÄÏßÊøÌ«³¤£¬Èç¹ûDebugµÄ¶Å°îÏ߱Ƚϳ¤¿ÉÄܻᵼÖÂͨÐÅÎÊÌ⣻
3. ÓÉÓÚAVDDµÄÎÆ²¨½Ï´ó£¬Ò²»áµ¼ÖÂDebugͨÐŲ»ÉÏ£¬½¨Òéµ÷ÕûAVDDµÄµçÈÝ£»
4. ÓÉÓÚAVDDÍⲿÁ¬½Ó½Ï´óµÄµçÈÝ£¬±ÈÈç1uF»òÕ߸ü´óµÄµçÈÝ¡£Õâ¸ö´óµçÈÝ¿ÉÄÜÊÇAVDD¹©µçµÄоƬÅԱߵĵçÈÝ£¬ÕâÑù»áµ¼ÖÂAVDDÒì³££¬±ÈÈç½µµ½4.0V×óÓÒ¡£ÕâÑù»áµ¼ÖÂDebugÁ¬½ÓÒì³£¡£
Q4£ºÐ¾Æ¬µÄAVDD¿ÉÒÔ¶ÔÍ⹩µçô£¿
A£ºÐ¾Æ¬µÄAVDD¿ÉÒÔ¶ÔÍâÌṩ5V£¬20mAµÄ¹©µçÄÜÁ¦¡£Õâ¸öÊä³öûÓйýÁ÷±£»¤£¬Ö»ÓÐAVDDµÄǷѹ±£»¤¡£
Q5£ºÐ¾Æ¬µÄµÍ¹¦ºÄµçÁ÷ÔõÑù£¬ÄÜÂú×ã100uAµÄÒªÇóô£¿
A£ºNSUC16x0µÄµÍ¹¦ºÄµçÁ÷sleepģʽϵäÐÍÖµÊÇ35uA£¬¿ÉÒÔÂú×ã100uAµÄÒªÇó¡£
Q6£ºÐ¾Æ¬µÄSLEEPģʽÏÂҪעÒâЩʲô£¿
A£ºNSUC1610µÄSLEEPģʽÏ£¬MCUµÄÄÚ²¿LDOÊǹصôµÄ£¬CPU¡¢NVM¡¢SRAM¶¼´¦ÓÚPowerDown״̬¡£Õâ¸öʱºòÈç¹ûÐèÒª±£´æÊý¾Ý£¬ÇëÏȽ«Êý¾Ý±£´æÔÚEEPROMÀ±£´æÍêºÃÖ®ºóÔÙ½øÈëµ½SLEEP״̬¡£
Q7£ºMVSS0ºÍMVSS1ÊÇÔõô»ØÊ£¬2¸ö½ÅÊÇÁªÍ¨µÄô£¿
A£º°´ÕÕĿǰµÄUser GuideͼʾÏÔʾ£¬MVSS0ÓëMVSS1ÊÇ·Ö¿ªµÄ¡£µ«Êµ¼ÊÉÏMVSS0ÓëMVSS1ÔÚоƬÄÚ²¿ÊÇÁªÍ¨µÄ£¬ÇÒ²»ÄÜ·Ö¿ª¡£
ÕâµãÐèҪעÒ⣬User Guideа汾Öлá¸ü¸Ä¹ýÀ´¡£
Q8£ºÎªÊ²Ã´LIN³ýÁËLIN_IN»¹ÓÐLIN_OUT£¬Ê²Ã´Ê±ºòÐèÒªÓõ½LIN_OUT£¿
A£ºµ±¶à¸öÏàͬ¹¦ÄܵÄLINÄ£¿é½ÓÈëϵͳµÄʱºò£¬ÐèÒª¸ø²»Í¬µÄLIN Slave¸³ÖµÏàÓ¦µÄNAD¡£Õâ¸öʱºò¾ÍÐèÒª4ÏßÖÆµÄLIN¡£
µ±Ê¹ÓÃ4ÏßÖÆµÄLINµÄʱºò£¬Ä³¸ö½ÚµãµÄLIN_OUT½ÓÏÂÒ»¸ö½ÚµãµÄLIN_IN£¬ÒÀ´ÎÐγɾջ¨Á´Ê½Á¬½Ó¡£
LIN_INºÍLIN_OUTÖ®¼äÊÇÒ»¸ö1¦¸µÄshuntµç×裬Õâ¸öµç×èÓÃÓÚ²ÉÑùÁ÷¹ýLINÏߵĵçÁ÷¡£¾ßÌå¿ÉÒԲο¼Îĵµ Bus Shunt Revision¡£
Q9£ºNSUC1610µÄ·åÖµµçÁ÷ÊǶàÉÙ£¬±£»¤µçÁ÷ÄØ£¿
A£ºNSUC1610·åÖµµçÁ÷´óСÊÇ1.4A£¬ÓÐЧֵµçÁ÷Ô¼1A¡£±£»¤µçÁ÷ͨ³£´óÓÚ·åÖµµçÁ÷£¬NSUC1610µÄ±£»¤µçÁ÷ÔÚ1.8A×óÓÒ£¬³¬¹ý¸ÃÖµ»á´¥·¢OCʼþ¡£
3. Èí¼þƪ
Q1£ºÁ¬½ÓоƬADCͨµÀµÄζȴ«¸ÐÆ÷Ôõô¼ÆËãζȣ¿
A£ºÕⲿ·ÖÔÚÓû§ÊÖ²áÀïµÄµÚ18Õ½ÚÓÐÏêϸµÄÃèÊö¡£NSUC1610ÄÚ²¿ÓÐ2¿Åζȴ«¸ÐÆ÷£¬Ò»¿Å¿¿½üMOSFET£¬ÓÃÓÚÈȹضϱ£»¤£»ÁíÒ»¿Å¿¿½üLDO£¬ÇÒÁ¬½Óµ½Ð¾Æ¬ÄÚ²¿µÄADC¶Ë¿Ú£¬¿ÉÓÃÓÚоƬ½áÎÂʵʱζȼì²â¡£
ζȵļÆËãÈçÏÂËùʾ£¬Í¨¹ýADCÄÚ²¿Í¨µÀ²É¼¯µ½DTVµÄÖµ£¬Í¨µÀÑ¡Ôñ¡°5¡±¡£
ÊÒÎÂÏ£¬12V¹©µç²»Åܵç»ú£¬²âÊÔÏÂÀ´Ò»¸öDTVÖµÊÇ125x×óÓÒ£¨Ð¾Æ¬Ö®¼ä»áÓвîÒ죩¡£
¸ù¾ÝÏÂÃæµÄ¹«Ê½£¨TSTºÍTSAµÄÖµÇë²ÉÓüĴæÆ÷µÄÖµ£¬ÔçÆÚ°æ±¾µÄоƬ¿ÉÄܼĴæÆ÷ÀïûÓÐtrimµÄÖµ£¬¾ÍÐèÒªÓÃĬÈϵÄÊýÖµ£©
T[¡ãC] =£¨TST - DTV£©*£¨TSA / 4096£©[¡ãC]
¿ÉÒÔ¼ÆËãµÃµ½Î¶ÈֵΪ 26 ÉãÊ϶ȣ¬·ûºÏÔ¤ÆÚ¡£ÍƼö´úÂ룺
if (ADC->TPSR != 0) {
i16Temp = (ADC->TPSR_b.TST - i16TempAdc) * ADC->TPSR_b.TSA / 4096;
} else {
i16Temp = (0x556 - i16TempAdc) * 0x3DA / 4096;
}
Q2£º¹ýѹ±£»¤ÓëǷѹ±£»¤ÈçºÎÉèÖã¿
A£º¹ýѹ±£»¤ÓëǷѹ±£»¤ÊÇÓ²¼þ×Ô¶¯ÊµÏֵ쬯äÖйýѹ±£»¤µã²¢²»ÄÜÉèÖ㬶øÊÇоƬ¹Ì¶¨µÄ¡£Ç·Ñ¹±£»¤µãÓÐ4¸öµµÎ»¿ÉÑ¡¡£
³õʼ»¯µÄ´úÂëÈçÏÂËùʾ£º
int AMS_BVDDInit(void)
{
/* Set Interrupt PMU priority */
LL_NVIC_EnableIRQ(PMU_IRQn);
LL_NVIC_SetPriority(PMU_IRQn, 1, 1);
SYSCTRL->PWRCR_b.BOF = 1; //set the OV filter time = 0.5us
SYSCTRL->PWRCR_b.BUF = 1; //set the UV filter time = 0.5us
SYSCTRL->PWRCR_b.BOIEN = 1;
SYSCTRL->PWRCR_b.BUIEN = 1;
/* Enable BVDD OverVoltage switch-off driver */
SYSCTRL->PWRCR_b.BOBEN = 0;
/* Enable BVDD UnderVoltage switch-off driver */
SYSCTRL->PWRCR_b.BUBEN = 0;
SYSCTRL->PWRCR_b.UVVTH = 3; // BVDD UV point = 9.5V (3), 8.5V (2); 7.5V (1); 6.5V (0);
return 0x00;
}
PMUµÄ´úÂëÈçÏÂËùʾ£º
void PMU_IRQHandler(void)
{
uint8_t statusov = SYSCTRL->PWRCR_b.BOVST;
uint8_t statusuv = SYSCTRL->PWRCR_b.BUVST;
if(statusov)
{
faultstate.overr = 1; //LED slow blink 1Hz
delay_ms(500);
GPIO->PDO_b.DO3 = 1;
delay_ms(500);
GPIO->PDO_b.DO3 = 0;
}
if(statusuv)
{
faultstate.uverr = 1; //LED fast blink 5Hz
delay_ms(100);
GPIO->PDO_b.DO3 = 1;
delay_ms(100);
GPIO->PDO_b.DO3 = 0;
}
}
Õâ¸öBOVSTºÍBUVST²¢²»ÐèÒªÈí¼þÈ¥Ç壬һµ©ÍⲿÌõ¼þ±ä»¯£¬»á×Ô¶¯ÖÃλ»òÕßÇå0¡£Çë×¢Òâ¹ýѹºÍǷѹɲ³µ¹¦Äܲ»½¨ÒéʹÓá£
Q3£ºÈçºÎ½øÈëSLEEPÄ£Ê½ÄØ£¿Ôõô»½ÐÑÄØ£¿
A£º½øÈëSLEEPģʽ£¬ÆäʵֻÐèÒªÔËÐÐÒ»ÌõÓï¾ä¼´¿É¡£
SYSCTRL->LPCR_b.SLEEP = 1;
µ«SLEEPºó£¬Ã»ÓÐÆäËû°ì·¨»½ÐÑ£¬Ö»ÄÜͨ¹ýLIN»½ÐÑ¡£
ͨ¹ýLIN»½ÐѵϰÐèÒªÅäÖÃLIN WakeupÒÔ¼°LIN breakµÄDebounceÉèÖá£
SYSCTRL->SYSWKR_b.LINWKE = 1; //enable LIN wake up;
SYSCTRL->SYSWKR_b.LINDEN = 1; //enable LIN debounce enable;
SYSCTRL->SYSWKR_b.LINWDBC = 0; //LIN debounce time setting = 30us;
Q4£ºSLEEP»½ÐѺóÈçºÎ¶Áȡ״̬±ê־Ĩ£¿
A£ºSLEEP»½ÐѺ󣬿ÉÒÔͨ¹ý¶ÁÈ¡SYSCTRL_APMUSTR¼Ä´æÆ÷À´»ñÈ¡ÏàÓ¦µÄÐÅÏ¢¡£
SYSCTRL_APMUSTR µÄÃèÊöÈçÏ£º
0: otd_flag
1£ºsleep_flag
2: ret_mode_flag
3: dvdd_uv_flag
4: avdd_uv_flag
5: por_res_flag
Éϵçºó¶ÁÈ¡¸Ã¼Ä´æÆ÷¾Í¿ÉÒÔÅжÏÊǵ¥´¿µÄPOR»¹ÊÇSLEEP_FLAG+POR£¬´Ó¶ø¿ÉÒÔʵÏÖ²»Í¬µÄ¿ØÖƲßÂÔ¡£
ΪÁ˶ÁÈ¡Õâ¸ö¼Ä´æÆ÷£¬Óû§ÐèҪд3¸öKEY£¬Ö®ºó¾Í¿ÉÒÔ¶ÁÈ¡APMUSTR¼Ä´æÆ÷µÄÖµ¡£
#define SYSCTRL_UNLOCK_KEY 0x87e4
#define SYSCTRL_TRIM_REG_UNLOCK_KEY1 0x8a3d
#define SYSCTRL_TRIM_REG_UNLOCK_KEY2 0x19ec
/*config sysctrl*/
SYSCTRL->LKKEYR = SYSCTRL_UNLOCK_KEY;
SYSCTRL->LKKEYR = SYSCTRL_TRIM_REG_UNLOCK_KEY1;
SYSCTRL->LKKEYR = SYSCTRL_TRIM_REG_UNLOCK_KEY2;
Q5£ºFlashµÄ²Ù×÷ÐèҪעÒâʲô£¿
A£º1. Ç¿ÁÒ½¨ÒéFlashµÄ²Ù×÷ͨ¹ýµ÷ÓÃROMÀïµÄFlashº¯ÊýÀ´ÊµÏÖ¡£
ROMÀïµÄFlash²Ù×÷½Ó¿Úº¯ÊýÖ»ÓÐÈý¸öº¯Êý£¨Erase Full¡¢Erase Sector ºÍ Write Page£©
#define Write_Page ((unsigned int (*)(unsigned int page_address, unsigned int *data_array))0x01000139)
#define Erase_Sector ((unsigned int (*)(unsigned int sec_address))0x01000091)
#define Erase_Flash ((unsigned int (*)(unsigned int))0x01000001)
Õâ3¸öº¯Êý¾Í¿ÉÒÔʵÏÖBootloaderµÈ³£¹æ¹¦ÄÜ¡£
µ÷ÓÃÕâЩº¯ÊýµÄʱºò£¬Í¬Ê±ÐèҪȷ±£µ÷ÓÃÕâЩº¯ÊýµÄº¯ÊýÒ²·Åµ½RAMÀïÔËÐС£ÒÔÒøºÓ¼¯ÍÅgalaxybootloader³ÌÐòΪÀý£¬ota.c ¾ÍÊÇÕû¸öÎļþ¶¼·ÅÔÚRAMÀïÅܵġ£
Õâ¸öÉèÖÿÉÒÔͨ¹ýħ·¨°ôÀïµÄ Code/Const ÏÂÀÑ¡ÏîÖÐÑ¡Ôñ ¡°IRAM1£¨0x20000000-0x20000FFF£©¡± À´ÊµÏÖ¡£Ò»µ©³É¹¦ºó£¬Äã»á·¢ÏÖProjectÀ¸Ä¿ÏÂÕû¸öota.c µÄ×óϽǶà³öÀ´Ò»¸öСͼ±ê¡£ÈçÏÂͼËùʾ¡£
2. Flash²Ù×÷µÄʱºòÈ·±£ÖжÏʹÄÜÊǹرյÄÒÔ¼°ÇåµôËùÓÐpendingµÄÖжÏflag£¬·ñÔò¿ÉÄܵ¼Ö½øÈëµ½ÖжϺ¯Êý£¬¶øÈç¹ûÖжϺ¯ÊýÔÚFlashÖеϰ¾Í»áµ¼ÖÂHardfault¡£
Q6£ºÎªÊ²Ã´ÎҵŤ³Ì´úÂë»áĪÃûÆäÃîµÄRESET£¿
A£ºÊ¹ÓÃÒøºÓ¼¯ÍÅgalaxyµÄÀý³Ì£¬Èç¹ûÓû§³öÏÖÁËĪÃûÆäÃîµÄRESETÏÖÏó£¬Ç뿼ÂÇstack²»¹»ÒýÆðµÄÎÊÌâ¡£
ÀýÈçµ±Óû§¶îÍâÉèÖÃÁ˽ϴóµÄÊý×é±äÁ¿£¬¶østackµÄĬÈÏÖµÊÇ 0x100µÄ»°¾Í»á³öÏÖstack²»¹»µÄ³¡¾°¡£Õâ¸öʱºò»á³öÏÖresetµÄÎÊÌâ¡£
½â¾öµÄ°ì·¨ÊÇÔö´óStack»òÕß¼õÉÙ¾Ö²¿±äÁ¿µÄ³¤¶È£¬±ÈÈ罫0x100Ôö´óµ½0x400¡£
Õâ¸öÐÞ¸ÄÊÇÔÚstartup_nsuc1610.lstÎļþÀï½øÐУ¬ÈçÏÂͼËùʾ£º
EQU 0x00000100 ¸Ä³É EQU 0x00000400 ¼´¿É¡£
Q7£ºÔÚKeilÀïÈçºÎ½«Ä³¸ö.cÎļþ·Åµ½RAMÀïÃæÔËÐУ¿
A£ºÇë²Î¿¼Q5µÄ´ð°¸£¬¿ÉÒÔͨ¹ýħ·¨°ô¹¤¾ßÖ±½ÓÖÆ¶¨Ìض¨µÄ.cÎļþµ½RAMÖм´¿É¡£
Q8£ºNSUC1610¹ýÎÂÓ²¼þ±£»¤ÈçºÎ¿ªÆô£¿
A£ºNSUC1610¹ýÎÂÓ²¼þ±£»¤ÐèÒªÈí¼þÅäÖúó²Å»á¿ªÆô£¬²Î¿¼´úÂëÈçÏ£º
SYSCTRL->PWRCR_b.TSF = 0;
SYSCTRL->PWRCR_b.TSREN = 1;
È«ÎÄÏÂÔØ¿ÉǰÍù£ºNSUC16x0¿ª·¢¹¤³ÌʦFAQ.pdf
»ñÈ¡¸ü¶àNSUC1610²úÆ·×ÊÁÏ£ºNSUC1610: ÓÃÓÚÆû³µµç×ÓÖ´ÐÐÆ÷µÄÂí´ïÇý¶¯SoC