Driver Ti Cc2540 Usb Cdc
2021年11月20日Download here: http://gg.gg/wyii2
*Cc2540 Usb Dongle
*Driver Ti Cc2540 Usb Cdc -
NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Under the Ports (COM & LPT) section, the device TI CC2540 Low- Power RF to USB CDC Serial Port appears. Next to the name should be the port number (COM#). Note this port number, as it is needed to use BTool. 2.3 Start BTool. Before using this module, CC2540 USB Dongle driver has to be downloaded and installed (signed.zip). After driver installation, in Device-Manager the CC2540 USB dongle is shown. Please note the assigned COM port, which is necessary to configure BTool in next step. If you think you might be experiencing a problem with the TI driver, you might try first testing whether the device can be recognized by other bluetooth-compatible devices. If it turns out the driver is the problem, since it is created by TI, you might also try looking on the TI forums to see if a work-around is already available. The musb device or gadget controller driver binds the controller hardware and specific gadget driver (filestorage, cdc/rndis etc). Linux USB Stack Architecture edit As shown in the figure, linux usb stack is a layered architecture, with musb controller at the lowest layer, the musb host/device controller driver binds the musb controller. Parameters Protocols Bluetooth 5.0 Features LE 1M PHY Flash (KB) 256 CPU core 8051 Type Wireless MCU RAM (KB) 8 GPIO 21 Peripherals 12-bit ADC 8-channel, 2 SPI, 2 UART, 4 timers, USB Security Cryptographic acceleration, Debug security, Device identity, Software IP protection Sensitivity (best) (dBm)-93 Operating temperature range (C)-40 to 125 Rating Catalog open-in-new Find other Bluetooth.AM33XX USB User Guide
*3 Hardware Overview
*4 Software Overview
*5Driver Features List
*6References
This section is a quick guide on how to start using usb ports on TI platform with supplied pre-built binaries. Please refer to USB Quick Start
The USB User’s Guide provides information about
*Overview of USB hardware and software
*Supported linux driver features for USB host and device mode of operation
*The Linux USB configuration through menuconfig. Please refer to USB configurationUSBSS Overview[edit]
*The USB subsystem includes
*Two instances of USB (Mentor Graphic’s USB2.0 OTG) controllers. Each MUSB controller supports USB 1.1 and USB 2.0 standard.
*CPPI 4.1 compliant DMA controller sub-module with 30 RX and 30 TX simultaneous DMA channels
*CPPI 4.1 DMA scheduler
*CPPI Queue Manager module with 92 queues for queuing/dequeuing packets
*Interfaces to the CPU via 3 OCP interfaces
*Master OCP HP interface for the DMA (for data transfers)
*Master OCP HP interface for the Queue manager (to manage CPPI descriptors)
*Slave OCP MMR interface (for CPU to access USBSS/MUSB registers)
*Signals the standard Charge Pump (part of EVM BOM) for VBUS 5V generationMUSB Controller Overview[edit]
The salient features of the MUSB USB2.0 OTG controller are:
*High/full speed operation as USB peripheral.
*High/full/low speed operation as Host controller.
*Compliant with OTG spec.
*15 Transmit and 15 Receive Endpoints other than the mandatory Control Endpoint 0.
*Double buffering support in FIFO.
*Support for high bandwidth Isochronous transfer
*32 Kilobytes of Endpoint FIFO RAM for USB packet buffering.
*Interfaced with CPPI4.1 DMA controller with 15 Rx and 15 Tx channels (for each usb controller).
*Defer interrupt enable feature is supported for each packet descriptor of cppi-dma.Mentor graphics controller driver (or MUSB driver) [edit]
The MUSB driver is implemented on top of Mentor controller IP which supports all the speeds (High, Full and Low). AM33XX USBOTG subsytem uses CPPI 4.1 DMA for all the transfers. The musb driver conforms to linux usb framework and supports both PIO and DMA mode of operation. The musb host controller driver (HCD) binds the controller hardware to linux usb core stack. The musb device or gadget controller driver binds the controller hardware and specific gadget driver (filestorage, cdc/rndis etc).Linux USB Stack Architecture [edit]
As shown in the figure, linux usb stack is a layered architecture, with musb controller at the lowest layer, the musb host/device controller driver binds the musb controller hardware to linux usb stack framework. The CPPI4.1 DMA controller driver is responsible for transmit/receive of packets over the musb endpoints.
*The Mentor USB driver can be built as module or built-in to kernel
*Support both PIO and DMA mode (The DMA mode not applicable for control endpoint)
*Support two instances musb controller in otg mode (both usb0 and usb1 controller in otg mode. This will allow host or device operation on each port simultaneously.The driver supports the following features for USB Host (AM33XX)[edit]Host Mode FeatureAM33xxHUB class supportYes Human Interface Class (HID)Yes Mass Storage Class (MSC)YesThe driver supports the following features for USB Gadget (AM33XX)[edit]Gadget Mode FeatureAM33xx Mass Storage Class (MSC)Yes USB Networking - RNDISYes USB Networking - CDCYesThe driver supports the following features for Dual host/gadget (AM33xx)[edit]Dual Mode FeatureAM33x USB0 as OTG, USB1 as OTGYesNot verified features of AM33xx[edit]Not verified featuresam33xWifi supportNot verifiedSerial deviceNot verified
*For more details about EVM, please refer to EVM reference manual.USB Configuration through menuconfig [edit]
*The Mentor USB driver can be built as module or built into kernel. For more information refer to USB Configuration{{
*switchcategory:MultiCore=
*For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
*For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum
Please post only comments related to the article AM335x USB Driver’s Guide here.Keystone=
*For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
*For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum
Please post only comments related to the article AM335x USB Driver’s Guide here.C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article AM335x USB Driver’s Guide here.DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article AM335x USB Driver’s Guide here.MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article AM335x USB Driver’s Guide here.OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x USB Driver’s Guide here.OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x USB Driver’s Guide here.MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article AM335x USB Driver’s Guide here.For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article AM335x USB Driver’s Guide here.
}}Links
Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters
DLP & MEMS
High-Reliability
Interface
Logic
Power Management
Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity Retrieved from ’https://processors.wiki.ti.com/index.php?title=AM335x_USB_Driver%27s_Guide&oldid=89596’ Project CC2540Reverse engineering the CC2540 BLE sniffer dongleStatusStalledContactbertrikLast Update2018-05-13
*3Analysis
*4Protocol
*4.2Reading BLE framesStatus
At this point (2017-05-09), the status is:
*it is pretty clear which commands the default sniffer firmware understands
*I wrote a little test program to dump raw BLE frames
*there is no plugin for WireShark yetIntroduction
This page is about the CC2540 bluetooth low-energy sniffer dongle and getting it to work with Linux.A nice end result could be that it becomes possible to sniff directly in WireShark with this dongle.
I have such a ’WeBee’ dongle that can be found for about E15,- on websites like Aliexpress.
It’s supposedly a CC2540 (or compatible) dongle, the USB id is 0451:16b3.
Interesting links:AnalysisUSB descriptor
When plugging this stick into a Linux machine, you can see it uses only one bulk endpoint.
Reading the identification from the stick with the 0xC0 command, results in the following 8-byte response
You can recognise the 2540 type number in there.USB logs from Windows
This USB device does actually work with Windows:
I’ve captured a log of the communication over USB while the BLE is capturing bluetooth traffic from some iBeacon, using USB pcap.
In the logs, I cannot see any firmware blobs being downloaded to the stick.Probably the stick comes with a pre-loaded firmware of itself to do the BLE sniffing.
The USB control transfer request codes seem to match up with the code in https://github.com/christianpanton/ccsniffer/blob/master/ccsniffer.py
*0xC0, GET_IDENT: returns some kind of identifier
*0xC5, SET_POWER
*0xC6, GET_POWER
*0xC9, no idea, this appears in my USB logs but I can’t find it in the python code
*0xD0, START
*0xD1, STOP
*0xD2, SET CHANProtocol
In the windows sniffer software, it seems there are only two things communicated:
*towards the stick: which radio channel to sniff, and some other radio settings
*from the stick: raw sniffed BLE framesConfiguring the radio
This appears to be done using USB control transfers.
The following requests are sent:Request typeRequestValueIndexDataDescription0x400xC504-Set power0xC00xC6000x00Get power0xC00xC6000x04Get power0x400xC900-???0x400xD2000x27Set channel0x400xD2010x00Set channel0x400xD000-Start capture
Request type 0x40 is a vendor-specific device request from host-to-device.Request type 0xC0 is a vendor-specific device request from device-to-host.Reading BLE frames
This appears to be done using USB bulk input transfers.
I can see a lot of similarities between the USB log and the BLE sniffer log.
Each frame starts with a byte indicating the type of frame, following by two bytes indicating the length of the rest of the frame (encoded as little endian).data frames
The bulk USB data starts off with two bytes indicating the length of the rest of the data.
In the example image on the right:
*00: 0 means this is a data frame
*31 00: length of rest of frame encoded in little endian = 49 bytes decimal
*39 04 29 54: part of the time stamp
*2c d6 be .: data frame contentsunknown frames (tick or ’alive’?)
The stick also returns 4-byte frames, alternating between
and
Interpretation:
*01: 1 means this is a frame of type 1
*01 00: length of the rest of the frame encoded in little endian = 1 byte
*40 or C0: unknown data byteCc2540 Usb DongleSoftware
Preliminary code can be found athttps://github.com/bertrik/cc2540
Ashampoo winoptimizer free 15. It connects to the dongle and dumps raw USB packets to stdout.
This software requires libusb-1.0-devDriver Ti Cc2540 Usb Cdc - Retrieved from ‘https://revspace.nl/index.php?title=CC2540&oldid=18383’
Download here: http://gg.gg/wyii2
https://diarynote-jp.indered.space
*Cc2540 Usb Dongle
*Driver Ti Cc2540 Usb Cdc -
NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Under the Ports (COM & LPT) section, the device TI CC2540 Low- Power RF to USB CDC Serial Port appears. Next to the name should be the port number (COM#). Note this port number, as it is needed to use BTool. 2.3 Start BTool. Before using this module, CC2540 USB Dongle driver has to be downloaded and installed (signed.zip). After driver installation, in Device-Manager the CC2540 USB dongle is shown. Please note the assigned COM port, which is necessary to configure BTool in next step. If you think you might be experiencing a problem with the TI driver, you might try first testing whether the device can be recognized by other bluetooth-compatible devices. If it turns out the driver is the problem, since it is created by TI, you might also try looking on the TI forums to see if a work-around is already available. The musb device or gadget controller driver binds the controller hardware and specific gadget driver (filestorage, cdc/rndis etc). Linux USB Stack Architecture edit As shown in the figure, linux usb stack is a layered architecture, with musb controller at the lowest layer, the musb host/device controller driver binds the musb controller. Parameters Protocols Bluetooth 5.0 Features LE 1M PHY Flash (KB) 256 CPU core 8051 Type Wireless MCU RAM (KB) 8 GPIO 21 Peripherals 12-bit ADC 8-channel, 2 SPI, 2 UART, 4 timers, USB Security Cryptographic acceleration, Debug security, Device identity, Software IP protection Sensitivity (best) (dBm)-93 Operating temperature range (C)-40 to 125 Rating Catalog open-in-new Find other Bluetooth.AM33XX USB User Guide
*3 Hardware Overview
*4 Software Overview
*5Driver Features List
*6References
This section is a quick guide on how to start using usb ports on TI platform with supplied pre-built binaries. Please refer to USB Quick Start
The USB User’s Guide provides information about
*Overview of USB hardware and software
*Supported linux driver features for USB host and device mode of operation
*The Linux USB configuration through menuconfig. Please refer to USB configurationUSBSS Overview[edit]
*The USB subsystem includes
*Two instances of USB (Mentor Graphic’s USB2.0 OTG) controllers. Each MUSB controller supports USB 1.1 and USB 2.0 standard.
*CPPI 4.1 compliant DMA controller sub-module with 30 RX and 30 TX simultaneous DMA channels
*CPPI 4.1 DMA scheduler
*CPPI Queue Manager module with 92 queues for queuing/dequeuing packets
*Interfaces to the CPU via 3 OCP interfaces
*Master OCP HP interface for the DMA (for data transfers)
*Master OCP HP interface for the Queue manager (to manage CPPI descriptors)
*Slave OCP MMR interface (for CPU to access USBSS/MUSB registers)
*Signals the standard Charge Pump (part of EVM BOM) for VBUS 5V generationMUSB Controller Overview[edit]
The salient features of the MUSB USB2.0 OTG controller are:
*High/full speed operation as USB peripheral.
*High/full/low speed operation as Host controller.
*Compliant with OTG spec.
*15 Transmit and 15 Receive Endpoints other than the mandatory Control Endpoint 0.
*Double buffering support in FIFO.
*Support for high bandwidth Isochronous transfer
*32 Kilobytes of Endpoint FIFO RAM for USB packet buffering.
*Interfaced with CPPI4.1 DMA controller with 15 Rx and 15 Tx channels (for each usb controller).
*Defer interrupt enable feature is supported for each packet descriptor of cppi-dma.Mentor graphics controller driver (or MUSB driver) [edit]
The MUSB driver is implemented on top of Mentor controller IP which supports all the speeds (High, Full and Low). AM33XX USBOTG subsytem uses CPPI 4.1 DMA for all the transfers. The musb driver conforms to linux usb framework and supports both PIO and DMA mode of operation. The musb host controller driver (HCD) binds the controller hardware to linux usb core stack. The musb device or gadget controller driver binds the controller hardware and specific gadget driver (filestorage, cdc/rndis etc).Linux USB Stack Architecture [edit]
As shown in the figure, linux usb stack is a layered architecture, with musb controller at the lowest layer, the musb host/device controller driver binds the musb controller hardware to linux usb stack framework. The CPPI4.1 DMA controller driver is responsible for transmit/receive of packets over the musb endpoints.
*The Mentor USB driver can be built as module or built-in to kernel
*Support both PIO and DMA mode (The DMA mode not applicable for control endpoint)
*Support two instances musb controller in otg mode (both usb0 and usb1 controller in otg mode. This will allow host or device operation on each port simultaneously.The driver supports the following features for USB Host (AM33XX)[edit]Host Mode FeatureAM33xxHUB class supportYes Human Interface Class (HID)Yes Mass Storage Class (MSC)YesThe driver supports the following features for USB Gadget (AM33XX)[edit]Gadget Mode FeatureAM33xx Mass Storage Class (MSC)Yes USB Networking - RNDISYes USB Networking - CDCYesThe driver supports the following features for Dual host/gadget (AM33xx)[edit]Dual Mode FeatureAM33x USB0 as OTG, USB1 as OTGYesNot verified features of AM33xx[edit]Not verified featuresam33xWifi supportNot verifiedSerial deviceNot verified
*For more details about EVM, please refer to EVM reference manual.USB Configuration through menuconfig [edit]
*The Mentor USB driver can be built as module or built into kernel. For more information refer to USB Configuration{{
*switchcategory:MultiCore=
*For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
*For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum
Please post only comments related to the article AM335x USB Driver’s Guide here.Keystone=
*For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
*For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum
Please post only comments related to the article AM335x USB Driver’s Guide here.C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article AM335x USB Driver’s Guide here.DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article AM335x USB Driver’s Guide here.MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article AM335x USB Driver’s Guide here.OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x USB Driver’s Guide here.OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x USB Driver’s Guide here.MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article AM335x USB Driver’s Guide here.For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article AM335x USB Driver’s Guide here.
}}Links
Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters
DLP & MEMS
High-Reliability
Interface
Logic
Power Management
Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity Retrieved from ’https://processors.wiki.ti.com/index.php?title=AM335x_USB_Driver%27s_Guide&oldid=89596’ Project CC2540Reverse engineering the CC2540 BLE sniffer dongleStatusStalledContactbertrikLast Update2018-05-13
*3Analysis
*4Protocol
*4.2Reading BLE framesStatus
At this point (2017-05-09), the status is:
*it is pretty clear which commands the default sniffer firmware understands
*I wrote a little test program to dump raw BLE frames
*there is no plugin for WireShark yetIntroduction
This page is about the CC2540 bluetooth low-energy sniffer dongle and getting it to work with Linux.A nice end result could be that it becomes possible to sniff directly in WireShark with this dongle.
I have such a ’WeBee’ dongle that can be found for about E15,- on websites like Aliexpress.
It’s supposedly a CC2540 (or compatible) dongle, the USB id is 0451:16b3.
Interesting links:AnalysisUSB descriptor
When plugging this stick into a Linux machine, you can see it uses only one bulk endpoint.
Reading the identification from the stick with the 0xC0 command, results in the following 8-byte response
You can recognise the 2540 type number in there.USB logs from Windows
This USB device does actually work with Windows:
I’ve captured a log of the communication over USB while the BLE is capturing bluetooth traffic from some iBeacon, using USB pcap.
In the logs, I cannot see any firmware blobs being downloaded to the stick.Probably the stick comes with a pre-loaded firmware of itself to do the BLE sniffing.
The USB control transfer request codes seem to match up with the code in https://github.com/christianpanton/ccsniffer/blob/master/ccsniffer.py
*0xC0, GET_IDENT: returns some kind of identifier
*0xC5, SET_POWER
*0xC6, GET_POWER
*0xC9, no idea, this appears in my USB logs but I can’t find it in the python code
*0xD0, START
*0xD1, STOP
*0xD2, SET CHANProtocol
In the windows sniffer software, it seems there are only two things communicated:
*towards the stick: which radio channel to sniff, and some other radio settings
*from the stick: raw sniffed BLE framesConfiguring the radio
This appears to be done using USB control transfers.
The following requests are sent:Request typeRequestValueIndexDataDescription0x400xC504-Set power0xC00xC6000x00Get power0xC00xC6000x04Get power0x400xC900-???0x400xD2000x27Set channel0x400xD2010x00Set channel0x400xD000-Start capture
Request type 0x40 is a vendor-specific device request from host-to-device.Request type 0xC0 is a vendor-specific device request from device-to-host.Reading BLE frames
This appears to be done using USB bulk input transfers.
I can see a lot of similarities between the USB log and the BLE sniffer log.
Each frame starts with a byte indicating the type of frame, following by two bytes indicating the length of the rest of the frame (encoded as little endian).data frames
The bulk USB data starts off with two bytes indicating the length of the rest of the data.
In the example image on the right:
*00: 0 means this is a data frame
*31 00: length of rest of frame encoded in little endian = 49 bytes decimal
*39 04 29 54: part of the time stamp
*2c d6 be .: data frame contentsunknown frames (tick or ’alive’?)
The stick also returns 4-byte frames, alternating between
and
Interpretation:
*01: 1 means this is a frame of type 1
*01 00: length of the rest of the frame encoded in little endian = 1 byte
*40 or C0: unknown data byteCc2540 Usb DongleSoftware
Preliminary code can be found athttps://github.com/bertrik/cc2540
Ashampoo winoptimizer free 15. It connects to the dongle and dumps raw USB packets to stdout.
This software requires libusb-1.0-devDriver Ti Cc2540 Usb Cdc - Retrieved from ‘https://revspace.nl/index.php?title=CC2540&oldid=18383’
Download here: http://gg.gg/wyii2
https://diarynote-jp.indered.space
コメント