📄 sl811.lst
字号:
705 if(EnumUsbDev(1)) // enumerate USB device, assign USB address = #1
706 {
707 bXXGFlags.bits.SLAVE_ENUMERATED = TRUE; // Set slave USB device enumerated flag
708 //uHub.bPortPresent[1] = 1; // set device addr #1 present
709 Set_ezDEV(1); // inform master of new attach/detach
710 }
711 }
712 }
713
714 //-------------------------------------------------------------------------
715 // SL811HS enumerated, proceed accordingly
716 //-------------------------------------------------------------------------
717 else
718 {
719 //OUTB &= ~ACTIVE_BLINK; // Turn on Active LED, indicate successful slave enum
720 if(Slave_Detach()) // test for slave device detach ???
721 return; // exit now.
722 //----------------------------------------------
723 // HUB DEVICE Polling (Addr #1, EndPt #1)
724 //----------------------------------------------
725 // Polling of Hub deivce Endpoint #1 for any Port Attachement
726 // for onboard HUB device, after enumeration, start to
727 // transfer IN token to check for ports attachment
728 // wLen = wPayload = 1 byte, always use USB address #1
729 // if return is TRUE, a data pkt was ACK, data in HubChange
730 // else is a NAK, no data was received
731 } // end of else
732
733 return ;
734 }
735 */
736 //*****************************************************************************************
C51 COMPILER V7.50 SL811 11/02/2007 09:31:23 PAGE 13
737 // Slave_Detach
738 //*****************************************************************************************
739 /*
740 unsigned char Slave_Detach(void)
741 {
742 if( (SL811Read(IntStatus)&INSERT_REMOVE) || (SL811Read(IntStatus)&USB_RESET) )
743 { // Test USB detached?
744 bXXGFlags.bits.SLAVE_ENUMERATED = FALSE; // return to un-enumeration
745 //uHub.bPortPresent[1] = 0; // Device #1 not present
746
747 Set_ezDEV(1); // inform master of slave detach
748 SL811Write(IntStatus,INT_CLEAR); // clear interrupt status
749 return TRUE; // exit now !!!
750 }
751
752 return FALSE;
753 }
754 */
755 //*****************************************************************************************
756 // Indicate to EZUSB's endpoint #2 IN of a new device attach/detach
757 //*****************************************************************************************
758 /*
759 void Set_ezDEV(BYTE chg)
760 {
761 //if( (dsPoll) && (!(IN2CS & bmEPBUSY)) )
762 //{
763 // IN2BUF[0] = chg; // Arm endpoint #2, inform EZUSB host of attach/detatch
764 // IN2BC = 1;
765 //}
766 }
767 */
768 ///////////////////////////////////////////////////////////////////////////////////////////
769 void SL811_Init(void)
770 {
771 1 //int i;
772 1
773 1 //for(i=0;i<MAX_DEV;i++)
774 1 //{
775 1 // uHub.bPortPresent[i] = 0;
776 1 // uHub.bPortNumber[i] = 0;
777 1 //}
778 1
779 1 //SL811H_DATA = 0x00;
780 1 //SL811H_ADDR = 0x00;
781 1 //pNumPort = 0x00;
782 1
783 1 //bXXGFlags.bits.FULL_SPEED = TRUE;
784 1 //HUB_DEVICE = FALSE;
785 1 bXXGFlags.bits.SLAVE_ONLINE = FALSE;
786 1 bXXGFlags.bits.SLAVE_FOUND = FALSE;
787 1 bXXGFlags.bits.SLAVE_REMOVED=FALSE;
788 1
789 1 bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;
790 1 bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
791 1
792 1 //bXXGFlags.bits.BULK_OUT_DONE = FALSE;
793 1 //DESC_XFER = FALSE;
794 1 //DATA_XFER = FALSE;
795 1 //DATA_XFER_OUT = FALSE;
796 1 //DATA_INPROCESS = FALSE;
797 1 //pLS_HUB = FALSE;
798 1 //IN2BUF[0] = 0;
C51 COMPILER V7.50 SL811 11/02/2007 09:31:23 PAGE 14
799 1
800 1 //dsPoll = 1; // poll downstream port conections
801 1
802 1 //----------------------------
803 1 // SL811H + EZUSB I/Os setup
804 1 //----------------------------
805 1 //PORTBCFG &= 0xAC; // Select i/o function for PB6, PB4, PB1, PB0
806 1 //OEB |= 0x43; // Set PB6(Output), PB4(Input), PB1(Output), PB0(Output)
807 1 //OUTB |= 0x43; // Default output high
808 1
809 1 //PORTACFG &= 0x0F; // Select i/o function for PA7~PA4
810 1 //OEA |= 0xF0; // Set PA7~PA4(Output)
811 1 //OUTA |= 0xF0; // Default output high
812 1
813 1 //----------------------------
814 1 // Debug Monitor I/Os setup
815 1 //----------------------------
816 1 //PORTBCFG |= 0x0C; // Select alternate function RxD1(PB2) & RxD1(PB3)
817 1 //PORTCCFG |= 0xC0; // Select alternate function nWR(PC6) & nRD(PC7)
818 1 // Also needed for SL811H
819 1 //----------------------------
820 1 // SL811HST hardware reset
821 1 //----------------------------
822 1 //OUTB &= ~nRESET; // reset SL811HST
823 1 //EZUSB_Delay(5); // for 5ms
824 1 //OUTB |= nRESET; // clear reset
825 1 //OUTB &= ~nHOST_SLAVE_MODE; // set to Host mode
826 1 ///////////////////////////////////////////////////////
827 1
828 1 SL811Write(cDATASet,0xe0);
829 1 SL811Write(cSOFcnt,0xae);
830 1 SL811Write(CtrlReg,0x5);
831 1
832 1 SL811Write(EP0Status,0x50);
833 1 SL811Write(EP0Counter,0);
834 1 SL811Write(EP0Control,0x01);
835 1
836 1
837 1 SL811Write(IntEna,0x20); // USB-A, Insert/Remove, USB_Resume.
838 1 SL811Write(IntStatus,INT_CLEAR); // Clear Interrupt enable status
839 1 }
840
841 void check_key_LED(void)
842 {
843 1 unsigned char intr;
844 1 //SL811Write(IntStatus,INSERT_REMOVE);
845 1 intr=SL811Read(IntStatus);
846 1 if(intr & USB_RESET)
847 1 {
848 2 //bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE; // Set USB device found flag
849 2 if(bXXGFlags.bits.SLAVE_ONLINE ==TRUE)
850 2 {bXXGFlags.bits.SLAVE_REMOVED=TRUE;
851 3 bXXGFlags.bits.SLAVE_ONLINE =FALSE;}
852 2 }
853 1 else {
854 2 //bXXGFlags.bits.SLAVE_IS_ATTACHED = TRUE;
855 2 if(bXXGFlags.bits.SLAVE_ONLINE == FALSE)
856 2 {bXXGFlags.bits.SLAVE_FOUND=TRUE;
857 3 bXXGFlags.bits.SLAVE_ONLINE =TRUE;}
858 2 }
859 1 //bXXGFlags.bits.SLAVE_FOUND;
860 1
C51 COMPILER V7.50 SL811 11/02/2007 09:31:23 PAGE 15
861 1 //bXXGFlags.bits.SLAVE_REMOVED=0;
862 1 SL811Write(IntStatus,INT_CLEAR);
863 1 SL811Write(IntStatus,INSERT_REMOVE);
864 1
865 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1560 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 8192 ----
PDATA SIZE = ---- ----
DATA SIZE = 20 27
IDATA SIZE = 45 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -