46
ÅäÖò½Ö裺
(1)¡¢ÉèÖÃSPIʱÖÓ·ÖÆµÉèÖüĴæÆ÷SPI0_CK_SE£¬ÅäÖÃSPIʱÖÓÆµÂÊ¡£
(2)¡¢ÉèÖÃSPIÉèÖüĴæÆ÷SPI0_SETUPµÄλbS0_MODE_SLVΪ0£¬ÅäÖÃΪÖ÷»úģʽ¡£
(3)¡¢ÉèÖÃSPI¿ØÖƼĴæÆ÷SPI0_CTRLµÄλbS0_MST_CLK£¬¸ù¾ÝÐèÇóÉèÖÃΪģʽ0»òÕß3¡£
(4)¡¢ÉèÖÃSPI¿ØÖƼĴæÆ÷SPI0_CTRLµÄλbS0_SCK_OEºÍbS0_MOSI_OEΪ1£¬bS0_MISO_OEλΪ0£¬
ÉèÖÃP1¶Ë¿Ú·½ÏòbSCK¡¢bMOSIΪÊä³ö£¬bMISOΪÊäÈ룬ÒÔ¼°Æ¬Ñ¡Òý½ÅΪÊä³ö¡£ Êý¾Ý·¢Ë͹ý³Ì£º
(1)¡¢Ð´SPI0_DATA¼Ä´æÆ÷£¬ÏòFIFOдÈëÒª·¢Ë͵ÄÊý¾Ý£¬×Ô¶¯Æô¶¯Ò»´ÎSPI´«Êä¡£ (2)¡¢µÈ´ýS0_FREEΪ1£¬ËµÃ÷·¢ËÍÍê³É£¬¿ÉÒÔ¼ÌÐø·¢ËÍÏÂÒ»×Ö½Ú¡£
Êý¾Ý½ÓÊÕ¹ý³Ì£º
(1)¡¢Ð´SPI0_DATA¼Ä´æÆ÷£¬ÏòFIFOдÈëÈÎÒâÊý¾ÝÀýÈç0FFhÒÔÆô¶¯Ò»´ÎSPI´«Êä¡£ (2)¡¢µÈ´ýS0_FREEΪ1£¬ËµÃ÷½ÓÊÕÍê³É£¬¿ÉÒÔ¶ÁÈ¡SPI0_DATA»ñµÃ½ÓÊÕµ½µÄÊý¾Ý¡£
(3)¡¢Èç¹û֮ǰbS0_DATA_DIRÒÑÖÃ1£¬ÔòÉÏÊö¶Á²Ù×÷Ò²»áÆô¶¯ÏÂÒ»´ÎSPI´«Ê䣬·ñÔò²»Æô¶¯¡£
14.4.2 SPI´Ó»úģʽÅäÖÃ
´Ó»úģʽÏ£¬SCKÒý½ÅÓÃÓÚ½ÓÊÕÁ¬½ÓµÄSPIÖ÷»úµÄ´®ÐÐʱÖÓ¡£
(1)¡¢ÉèÖÃSPI0ÉèÖüĴæÆ÷SPI0_SETUPµÄλbS0_MODE_SLVΪ1£¬ÅäÖÃΪ´Ó»úģʽ¡£
(2)¡¢ÉèÖÃSPI0¿ØÖƼĴæÆ÷SPI0_CTRLµÄλbS0_SCK_OEºÍbS0_MOSI_OEΪ0£¬ÉèÖÃbS0_MISO_OEΪ
1£¬ÉèÖÃP1¶Ë¿Ú·½ÏòbSCK¡¢bMOSIºÍbMISOÒÔ¼°Æ¬Ñ¡Òý½Å¶¼ÎªÊäÈë¡£µ±SCSƬѡÓÐЧ£¨µÍµçƽ£©Ê±£¬MISO½«×Ô¶¯Ê¹ÄÜÊä³ö¡£Í¬Ê±½¨ÒéÉèÖÃMISOÒý½ÅΪ¸ß×èÊäÈëģʽ£¨P1_MOD_OC[6]=0¡¢P1_DIR_PU[6]=0£©£¬Ê¹MISOÔÚÆ¬Ñ¡ÎÞЧÆÚ¼ä²»Êä³ö£¬±ãÓÚ¹²ÏíSPI×ÜÏß¡£
(3)¡¢¿ÉÑ¡µÄ£¬ÉèÖÃSPI´Ó»úģʽԤÖÃÊý¾Ý´æÆ÷SPI0_S_PRE£¬ÓÃÓÚ±»Æ¬Ñ¡ºóÊ×´Î×Ô¶¯¼ÓÔØµ½»º³åÇø
ÖÐÓÃÓÚ¶ÔÍâÊä³ö¡£ÔÚ8¸ö´®ÐÐʱÖÓÖ®ºó£¬¼´Ê׸öÊý¾Ý×Ö½Ú´«Êä½»»»Íê±Ï£¬CH555µÃµ½ÍⲿSPIÖ÷»ú·¢À´µÄÊ××Ö½ÚÊý¾Ý(¿ÉÄÜÊÇÃüÁîÂë)£¬ÍⲿSPIÖ÷»ú½»»»µÃµ½SPI0_S_PREÖеÄÔ¤ÖÃÊý¾Ý(¿ÉÄÜÊÇ״ֵ̬)¡£¼Ä´æÆ÷SPI0_S_PREµÄλ7½«ÔÚSPIƬѡÓÐЧºóµÄSCKµÍµçƽÆÚ¼ä×Ô¶¯¼ÓÔØµ½MISOÒý½ÅÉÏ£¬¶ÔÓÚSPIģʽ0£¬Èç¹ûCH555Ô¤ÖÃÁËSPI0_S_PREµÄλ7£¬ÄÇôÍⲿSPIÖ÷»ú½«ÔÚSPIƬѡÓÐЧµ«ÉÐδ´«ÊäÊý¾Ýʱ£¬¾ÍÄܹ»Í¨¹ý²éѯMISOÒý½ÅµÃµ½SPI0_S_PREµÄλ7µÄÔ¤ÖÃÖµ£¬´Ó¶øÍ¨¹ý½ö½öÓÐЧһÏÂSPIƬѡ¾ÍÄÜ»ñµÃSPI0_S_PREµÄλ7µÄÖµ¡£
Êý¾Ý·¢Ë͹ý³Ì£º
²éѯS0_IF_BYTE»òÕߵȴýÖжϣ¬ÔÚÿ´ÎSPIÊý¾Ý×Ö½Ú´«ÊäÍê³Éºó£¬Ð´SPI0_DATA¼Ä´æÆ÷£¬ÏòFIFOдÈëÒª·¢Ë͵ÄÊý¾Ý¡£»òÕߵȴýS0_FREE´Ó0±äΪ1£¬¿ÉÒÔ¼ÌÐø·¢ËÍÏÂÒ»×Ö½Ú¡£
Êý¾Ý½ÓÊÕ¹ý³Ì£º
²éѯS0_IF_BYTE»òÕߵȴýÖжϣ¬ÔÚÿ´ÎSPIÊý¾Ý×Ö½Ú´«ÊäÍê³Éºó£¬¶ÁSPI0_DATA¼Ä´æÆ÷£¬´ÓFIFO»ñµÃ½ÓÊÕµ½µÄÊý¾Ý¡£²éѯS0_R_FIFO¿ÉÒÔ»ñÖªFIFOÖÐÊÇ·ñÓÐÊ£Óà×Ö½Ú¡£
15¡¢Ä£Êýת»»Æ÷ADC
15.1 ADCºÍCMP¼ò½é
CH555оƬÌṩ12λµÄÄ£ÄâÊý×Öת»»Æ÷£¬°üÀ¨Ä£Êýת»»Æ÷ADCºÍµçѹ±È½ÏÆ÷CMPÄ£¿é¡£ ¸ÃADC¾ßÓÐ14¸öÍⲿģÄâÐźÅÊäÈëͨµÀºÍ2¸öÄÚ²¿ÊäÈëͨµÀ£¨²Î¿¼µçѹ£©£¬¿ÉÒÔ·Öʱ²É¼¯£¬Ö§³Ö0µ½VDDÄ£ÄâÊäÈëµçѹ·¶Î§¡£
¸ÃCMPµÄÕýÏàÊäÈë¶ËÓÐÁ½ÖÖÊäÈëÑ¡Ôñ£ºµ±bCMP_PIN=1ʱѡÔñ¾µç×è·ÖѹÁ¬½Óµ½ÉÏÊöADCÄ£ÄâÊäÈëͨµÀ£»µ±bCMP_PIN=0ʱѡÔñ¾µç×è·ÖѹÊäÈëVDDµçÔ´¡£·´ÏàÊäÈë¶ËÓÉMASK_CMP_VREFÑ¡Ôñ²Î¿¼µç
47
ѹ£¬¸ÃCMPÒ»°ãÖ÷ÒªÓÃÓÚµçÔ´µçѹ¼à²âºÍDC-DC¿ØÖÆ£¬²Î¿¼7.2½Ú¡£
15.2 ADC¼Ä´æÆ÷
±í15.2.1 ADCÏà¹Ø¼Ä´æÆ÷Áбí
Ãû³Æ ADC_CTRL ADC_DAT_H ADC_DAT_L ADC_DAT ADC_CHAN
µØÖ· F3h F5h F4h F4h F6h
ADC¿ØÖƺÍ״̬¼Ä´æÆ÷ ADC½á¹ûÊý¾ÝµÄ¸ß×Ö½Ú(Ö»¶Á) ADC½á¹ûÊý¾ÝµÄµÍ×Ö½Ú(Ö»¶Á)
ADC_DAT_LºÍADC_DAT_H×é³É16λSFR ADCÄ£ÄâÐźÅͨµÀÑ¡Ôñ¼Ä´æÆ÷
ÃèÊö
¸´Î»Öµ xxh 0xh xxh 0xxxh 00h
ADC¿ØÖƺÍ״̬¼Ä´æÆ÷(ADC_CTRL)£º
λ [7:6] 5 4 3 2 1 0
±í15.2.2 ADC²Î¿¼Ê±ÖÓÆµÂÊÑ¡Ôñ±í
bADC_CLK1 bADC_CLK0 ADC²Î¿¼Ê±ÖÓÆµÂÊ Íê³ÉÒ»´ÎADCËùÐèʱ¼ä
0 0 1 1
0 1 0 1
750KHz 1.5MHz 3MHz 6MHz
512¸öFoscÖÜÆÚ 256¸öFoscÖÜÆÚ 128¸öFoscÖÜÆÚ 64¸öFoscÖÜÆÚ
ÊÊÓ÷¶Î§
Rs<=20K¦¸»òCs>=0.08uF Rs<=10K¦¸»òCs>=0.08uF VDD>=3V²¢ÇÒ
£¨Rs<=5K¦¸»òCs>=0.08uF£© VDD>=4.5V²¢ÇÒ
£¨Rs<=2K¦¸»òCs>=0.08uF£©
Ãû³Æ ±£Áô bADC_IF bADC_START bADC_EN ±£Áô bADC_CLK1 bADC_CLK0
·ÃÎÊ R0 RW RW RW R0 RW RW
±£Áô
ADCת»»Íê³ÉÖжϱêÖ¾£¬¸ÃλΪ1±íʾһ´ÎADCת
»»Íê³É£¬Ð´1ÇåÁã»òдADC_CHANÊý¾ÝʱÇåÁã ADCÆô¶¯¿ØÖÆÎ»£¬ÖÃ1Æô¶¯Ò»´ÎADCת»»£¬¸ÃλÔÚADCת»»Íê³Éºó×Ô¶¯ÇåÁã
ADCÄ£¿éµÄµçÔ´¿ØÖÆÎ»£¬¸ÃλΪ0±íʾ¹Ø±ÕADCÄ£¿éµÄµçÔ´£¬½øÈë˯Ãß״̬£»¸ÃλΪ1±íʾ¿ªÆô ±£Áô
ADC²Î¿¼Ê±ÖÓÆµÂÊÑ¡Ôñ¸ßλ ADC²Î¿¼Ê±ÖÓÆµÂÊÑ¡ÔñµÍλ
ÃèÊö
¸´Î»Öµ 00b 0 0 0 0 0 0
×¢£ºVDDÖ¸µçÔ´µçѹ£¬CsÖ¸ÐźÅÔ´²¢ÁªµçÈÝÖµ£¬RsÖ¸ÐźÅÔ´´®ÁªÄÚ×èÖµ£¨²ÉÑùʱ¼ä½ö4¸ö²Î¿¼Ê±ÖÓ£©
ADCÄ£ÄâÐźÅͨµÀÑ¡Ôñ¼Ä´æÆ÷(ADC_CHAN)£º
λ [7:4] [3:0]
±í15.2.1 µçѹ±È½ÏÆ÷CMPÕýÏàÊäÈë¶ËºÍADCÊäÈëÍⲿÐźÅͨµÀÑ¡Ôñ±í
bADC_EN 0 1
ADC_CHAN xxxxb 0000b
Ñ¡ÔñÄ£ÄâÐźÅͨµÀµÄÐźÅÔ´
¶Ï¿ªÄÚ²¿ºÍÍⲿÐźÅͨµÀ£¨AIN0¡«AIN13£©£¬Ðü¿Õ Á¬½Óµ½ÍⲿÐźţºAIN0£¨P1.0£©
Ãû³Æ ±£Áô MASK_ADC_CHAN
·ÃÎÊ R0 RW
±£Áô
µ±bADC_EN=1ʱѡÔñÄ£ÄâÐźÅͨµÀµÄÐźÅÔ´£» µ±bADC_EN=0ʱģÄâÐźÅͨµÀ¹Ø±Õ
ÃèÊö
¸´Î»Öµ 0000b 0000b
48
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0001b 0010b 0011b 0100b 0101b 0110b 0111b 1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b
Á¬½Óµ½ÍⲿÐźţºAIN1£¨P1.1£© Á¬½Óµ½ÍⲿÐźţºAIN2£¨P1.2£© Á¬½Óµ½ÍⲿÐźţºAIN3£¨P1.3£© Á¬½Óµ½ÍⲿÐźţºAIN4£¨P1.4£© Á¬½Óµ½ÍⲿÐźţºAIN5£¨P1.5£© Á¬½Óµ½ÍⲿÐźţºAIN6£¨P1.6£© Á¬½Óµ½ÍⲿÐźţºAIN7£¨P1.7£© Á¬½Óµ½ÍⲿÐźţºAIN8£¨P0.0£© Á¬½Óµ½ÍⲿÐźţºAIN9£¨P0.1£© Á¬½Óµ½ÍⲿÐźţºAIN10£¨P0.2£© Á¬½Óµ½ÍⲿÐźţºAIN11£¨P0.3£© Á¬½Óµ½ÍⲿÐźţºAIN12£¨P0.4£© Á¬½Óµ½ÍⲿÐźţºAIN13£¨P0.5£© Á¬½Óµ½ÄÚ²¿²Î¿¼µçѹ£ºV33µçѹ
Á¬½Óµ½ÄÚ²¿²Î¿¼µçѹ£º1.8VµçѹVREF18£¨¿ÉÄÜÓÐÔëÉù£©
ADCÊý¾Ý¼Ä´æÆ÷(ADC_DAT)£º
λ [7:0] [7:0]
Ãû³Æ ADC_DAT_H ADC_DAT_L
·ÃÎÊ RO RO
ÃèÊö
ADC²ÉÑù½á¹ûÊý¾ÝµÄ¸ß×Ö½Ú ADC²ÉÑù½á¹ûÊý¾ÝµÄµÍ×Ö½Ú
¸´Î»Öµ 0xh xxh
49
ADC_CHANAIN0AIN1AIN2AIN3~AIN12AIN13V33VREF18VDDbCMP_PIN0000--0001¡ª1/16MUX1110--1111--bADC_STARTsampleRswCaGNDbADC_ENto_interruptbADC_CLK1/0clocksample----- D0¡«D11VIN ADC ADC_ENDADC_DATRMASK_CMP_VREFRMUXRIN+ CMPIN-RVREF_1.2VGNDbCMP_RESULT
ͼ15.2.1 ADC½á¹¹Í¼£¨À¶É«ÏßΪģÄâÐźţ©
15.3 ADC¹¦ÄÜ
ADC²ÉÑùģʽÅäÖò½Ö裺
(1)¡¢ÉèÖÃADC_CTRL¼Ä´æÆ÷ÖеÄbADC_ENλΪ1£¬¿ªÆôADCÄ£¿é£¬ÉèÖÃbADC_CLK0/1Ñ¡ÔñƵÂÊ¡£ (2)¡¢ÉèÖÃADC_CHAN¼Ä´æÆ÷£¬Ñ¡ÔñÍⲿ»òÄÚ²¿ÐźÅͨµÀ¡£
(3)¡¢¿ÉÑ¡µÄ£¬ÇåÁãÖжϱêÖ¾bADC_IF¡£¿ÉÑ¡µÄ£¬Èç¹ûʹÓÃÖжÏģʽ£¬»¹ÐèÒªÔÚ´ËʹÄÜÖжϡ£ (4)¡¢ÉèÖÃADC_CTRL¼Ä´æÆ÷ÖеÄbADC_START£¬Æô¶¯Ò»´ÎADCת»»¡£ (5)¡¢µÈ´ýbADC_START±äΪ0£¬»òÕßbADC_IF±»ÖÃ1£¨Èç¹û֮ǰÒÑÇåÁ㣩£¬±íʾADCת»»½áÊø£¬¿Éͨ
¹ýADC_DAT¶ÁÈ¡½á¹ûÊý¾Ý¡£¸ÃÊý¾ÝÊÇÊäÈëµçѹÏà¶ÔÓÚVDDµçÔ´µçѹµÄ4095µÈ·ÝµÄÖµ£¬ÀýÈ磬½á¹ûÊý¾ÝÊÇ475£¬ËµÃ÷ÊäÈëµçѹ½Ó½üVDDµçѹµÄ475/4095¡£Èç¹ûVDDµçÔ´µçѹҲ²»È·¶¨£¬ÄÇô¿ÉÒÔÁí²âÒ»¸öÈ·¶¨µÄ²Î¿¼µçѹֵ£¬ÔÙ°´±ÈÀý¼ÆËã³ö±»²âµÄÊäÈëµçѹֵºÍVDDµçÔ´µçѹֵ¡£ (6)¡¢Èç¹ûÔÙ´ÎÉèÖÃbADC_STARTÔò¿ÉÆô¶¯ÏÂÒ»´ÎADCת»»¡£
(7)¡¢Èç¹ûADC²Î¿¼Ê±ÖÓÆµÂʽϸߵ¼Ö²ÉÑùʱ¼ä½Ï¶Ì£¬»òÕßÐźÅÔ´´®ÁªÄÚ×èÖµ½Ï´ó£¬»òÕßµçÔ´µçѹ½Ï
µÍµ¼ÖÂRswÄÚ×è½Ï´ó£¬ÄÇôÓпÉÄÜCa²ÉÑù²»µ½×ã¹»µÄÐźŵçѹ£¬Ó°ÏìADC½á¹û¡£½â¾ö·½·¨ÊǶªÆúµÚÒ»´ÎADCÊý¾Ý£¬Á¢¼´Æô¶¯µÚ¶þ´ÎADC²¢ÓÃÆäADC½á¹ûÊý¾Ý£¬Ï൱ÓÚ²ÉÑùÁ½´Î¡£ (7)¡¢¶Ô¾«¶ÈÒªÇó½Ï¸ßʱ£¬½¨ÒéʹÓÃǰУ׼£¬ÓÃÈí¼þÏû³ý¹ÌÓÐÆ«²î¡£
ÉÏÊö±»Ñ¡ÔñµÄÍⲿģÄâÐźÅͨµÀ£¬ÆäËùÔÚGPIOÒý½Å±ØÐëÉèÖÃΪ¸ß×èÊäÈëģʽ¡¢»òÕß¿ªÂ©Êä³öģʽ²¢ÇÒ´¦ÓÚÊä³ö1µÄ״̬£¨Ï൱ÓÚ¸ß×èÊäÈ룩£¬Pn_DIR_PU[x]=0£¬²¢ÇҹرÕÉÏÀµç×èºÍÏÂÀµç×è¡£
50
16¡¢USB¿ØÖÆÆ÷
16.1 ¼ò½é
CH555¼¯³ÉÁËÒ»¸öUSB¸´ºÏÉ豸¿ØÖÆÆ÷£¬ÆäÖаüÀ¨Ò»¸öUSB device-hub£¨USBHB£©ÒÔͬʱ֧³Ö3¸öHID¹¦ÄÜ×ÓÉ豸£¬·Ö±ðÊÇUSBD0¡¢USBD1¡¢USBD2¡£
CH555µÄUSB¿ØÖÆÆ÷µÄÖ÷ÒªÌØÐÔÈçÏ£º
(1)¡¢Ö§³ÖUSB¿ØÖÆ´«Êä¡¢ÅúÁ¿´«Êä¡¢Öжϴ«Ê䡢ͬ²½/ʵʱ´«Ê䣻 (2)¡¢Ö§³Ö×î´ó64×Ö½ÚµÄÊý¾Ý°ü£¬ÄÚÖÃFIFO£¬Ö§³ÖÖжϺÍDMA£» (3)¡¢Ö§³ÖUSB 2.0È«ËÙ12Mbps£»
(4)¡¢¸´ºÏÉ豸¿ØÖÆÆ÷°üÀ¨Ò»¸öÄÚÖü¯Ï߯÷device-hubºÍÈý¸ö¸÷×Ô¶ÀÁ¢µÄ¹¦ÄÜ×ÓÉ豸£» (5)¡¢¿ÉÑ¡£¬¹Ø±Õ¸´ºÏÉ豸£¬½öÆôÓÃUSBD0É豸¡£
16.2 ¹¦ÄÜ
ÄÚÖü¯Ï߯÷USBHBÌṩÁË3¸ö¶Ëµã£º¶Ëµã0ÊÇĬÈ϶˵㣬֧³Ö¿ØÖÆ´«Ê䣬·¢ËͺͽÓÊÕ¹²ÓÃÒ»¸ö64×Ö½ÚÊý¾Ý»º³åÇø£»¶Ëµã1ÊÇ·¢ËͶ˵ãIN£¬ÓÐÒ»¸ö¶ÀÁ¢µÄ64×Ö½ÚÊý¾Ý»º³åÇø£¬Ö§³ÖÅúÁ¿´«Êä¡¢Öжϴ«ÊäºÍʵʱ/ͬ²½´«Ê䣻¶Ëµã4ÊÇ¿ÉÑ¡µÄ½ÓÊն˵ãOUT£¬Ê¹Óö˵ã0µÄ64×Ö½ÚÊý¾Ý»º³åÇøµÄºó32×Ö½Ú£¬Ö§³ÖÅúÁ¿´«Êä¡¢Öжϴ«ÊäºÍʵʱ/ͬ²½´«Êä¡£
0#¹¦ÄÜ×ÓÉ豸USBD0ÌṩÁË7¸ö¶Ëµã£º¶Ëµã0ÊÇĬÈ϶˵㣬֧³Ö¿ØÖÆ´«Ê䣬·¢ËͺͽÓÊÕ¹²ÓÃÒ»¸ö64×Ö½ÚÊý¾Ý»º³åÇø£»¶Ëµã1¡¢¶Ëµã2¡¢¶Ëµã3¿ÉÒÔ¸÷×Ô¶ÀÁ¢ÅäÖÃΪ·¢ËͶ˵ãIN»ò½ÓÊն˵ãOUT£¬¸÷ÓÐÒ»¸ö¶ÀÁ¢µÄ64×Ö½ÚÊý¾Ý»º³åÇø£¬Ö§³ÖÅúÁ¿´«Êä¡¢Öжϴ«ÊäºÍʵʱ/ͬ²½´«Ê䣻¶Ëµã4ÊÇ¿ÉÑ¡µÄ½ÓÊն˵ãOUT£¬Ê¹Óö˵ã0µÄ64×Ö½ÚÊý¾Ý»º³åÇøµÄºó32×Ö½Ú£¬Ö§³ÖÅúÁ¿´«Êä¡¢Öжϴ«ÊäºÍʵʱ/ͬ²½´«Ê䣻¶Ëµã5¡¢¶Ëµã6ÊÇ¿ÉÑ¡µÄ¸÷×Ô¶ÀÁ¢µÄ·¢ËͶ˵ãIN£¬·Ö±ðʹÓö˵ã1¡¢¶Ëµã2µÄ64×Ö½ÚÊý¾Ý»º³åÇøµÄºó32×Ö½Ú£¬Ö§³ÖÅúÁ¿´«Êä¡¢Öжϴ«ÊäºÍʵʱ/ͬ²½´«Êä¡£
ÓÉÓÚ3¸ö¹¦ÄÜ×ÓÉ豸µÄ½á¹¹Ïàͬ£¬ËùÒÔÏÂÃæ½öÒÔUSBD0½øÐÐ˵Ã÷¡£
ÿ¸ö¶Ëµã¶¼¾ßÓÐÒ»¸ö¿ØÖƼĴæÆ÷D0_EPnRESºÍ·¢Ëͳ¤¶È¼Ä´æÆ÷D0_EPnT_L£¬ÓÃÓÚÉ趨¸Ã¶ËµãµÄͬ²½´¥·¢Î»¡¢¶ÔOUTÊÂÎñ»òINÊÂÎñµÄÏìÓ¦ÒÔ¼°·¢ËÍÊý¾ÝµÄ³¤¶ÈµÈ¡£
×÷ΪUSBÉ豸Ëù±ØÒªµÄUSB×ÜÏßÉÏÀµç×è¿ÉÒÔÓÉÈí¼þËæÊ±ÉèÖÃÊÇ·ñÆôÓ㬵±USB_CTRLÖеÄbUX_DP_PU_ENÖÃ1ʱ£¬CH555ÔÚÄÚ²¿ÎªDPÒý½ÅÁ¬½ÓÉÏÀµç×裬²¢ÆôÓÃUSB¸´ºÏÉ豸¹¦ÄÜ¡£
µ±USBÁ¬½Ó¼ÆËã»úºó£¬Ê×ÏÈ»á½øÐÐdevice-hubö¾Ù£¬½Óןù¾Ý¸ÃhubÏÂÐж˿ڵÄÁ¬½Ó״̬¶Ô¸÷¸ö¹¦ÄÜ×ÓÉ豸ÒÀ´Î½øÐÐö¾Ù£¬×îºó¼ÆËã»úÓë¸÷¸ö¹¦ÄÜ×ÓÉ豸·Öʱ½øÐÐUSBÊý¾ÝͨѶ¡£
µ±¼ì²âµ½USB×ÜÏ߸´Î»¡¢×ÜÏß¹ÒÆð»ò»½ÐÑʼþ£¬»òÕßµ±USB³É¹¦´¦ÀíÍêÊý¾Ý·¢ËÍ»òÕßÊý¾Ý½ÓÊÕºó£¬USBÐÒé´¦ÀíÆ÷¶¼½«ÉèÖÃÏàÓ¦µÄÖжϱêÖ¾²¢²úÉúÖжÏÇëÇó¡£Ó¦ÓóÌÐò¿ÉÒÔÖ±½Ó²éѯ»òÔÚUSBÖжϷþÎñ³ÌÐòÖзÖÎöUSB_IF¡¢·ÖÎöD0_STATUS»òHB_STATUS£¬´¦ÀíÍêÊý¾Ý´«ÊäÖжÏÊÂÎñºó¿ÉÒÔÖ±½ÓÇå³ýUSB_IFÖеÄÏàÓ¦ÖжϱêÖ¾¡£¸÷¸ö¹¦ÄÜ×ÓÉ豸ֻÐèÒª´¦ÀíUSBÊý¾Ý´«ÊäÖжÏbUX_IF_D0_TRANS£¬USBHBÐèÒª´¦ÀíUSBÊý¾Ý´«ÊäÖжÏbUX_IF_HB_TRANSºÍ×ÜÏ߸´Î»ÖжÏbUX_IF_BUS_RST¡¢×ÜÏß¹ÒÆð»ò»½ÐÑÖжÏbUX_IF_SUSPEND¡¢FIFOÒç³öÖжÏbUX_IF_FIFO_OVµÈ¹«¹²ÊÂÎñ¡£
USBµÄËùÓÐÊý¾Ý»º³åÇø¶¼Êǹ̶¨µØÖ·µÄ£¬¶Ëµã0µÄÊý¾Ý»º³åÇøÆðʼµØÖ·µÄ¼ÆË㹫ʽÈçÏ£º
#define pDi_EP0_BUF(i) ((PUINT8X)(i*0x100+0x1000+UX_EP0_ADDR)) ÆäÖÐiΪ×ÓÉ豸µÄÐòºÅ0¡«3£¬´Ë´¦3±íʾdevice-hub¡£
×Զ˵ã0µÄ64×Ö½Ú»º³åÇø£¨¿ÉÑ¡¶Ëµã4Õ¼Óúó32×Ö½Ú£©Ö®ºó£¬ÒÀ´Îÿ¸ô64×Ö½ÚÊǶ˵ã1£¨¿ÉÑ¡¶Ëµã5Õ¼Óúó32×Ö½Ú£©¡¢¶Ëµã2£¨¿ÉÑ¡¶Ëµã6Õ¼Óúó32×Ö½Ú£©¡¢¶Ëµã3µÄ¸÷×Ô64×Ö½Ú»º³åÇø¡£
ÀýÈçUSBD1¶Ëµã0µÄ»º³åÇøÆðʼµØÖ·ÊÇ(1*0x100+0x1000+UX_EP0_ADDR)=0x1100£»
USBD1¶Ëµã5µÄ»º³åÇøÆðʼµØÖ·ÊÇ0x1100+64+32=0x1160¡£
16.3 ¼Ä´æÆ÷
±í16.3.1 USBÈ«¾ÖºÍUSBHBÏà¹Ø¼Ä´æÆ÷Áбí