Quantcast
Channel: Total Phase Blog
Viewing all 822 articles
Browse latest View live

What Causes SPLIT and Orphaned Packets and How Do I Eliminate from a USB Capture?

$
0
0

Question from the Customer:

I’m using the Beagle USB 480 Protocol Analyzer, which is connected to a USB hub with both ports. A mass storage device is connected to the Beagle USB 480 analyzer’s device port. .

In the Data Center Software, the captured data includes a lot of SPLIT and ORPHANED packets. I can filter out the SPLIT packets in the Device Settings, but I still get the ORPHANED packets. What causes ORPHANED packets?  How can I avoid filter out these packets from the data trace?

Response from Technical Support:

Thanks for your questions!  ORPHANED packets often occur when multiple devices are plugged into the same host controller or if a USB hub is present on the bus. Your host system may have an internal USB host controller. Depending on the devices and the speed, this can cause SPLIT packets to occur, which may result in ORPHANED packets.  The setup described has both the Analysis and Host ports of the Beagle USB 480 analyzer connected to the same hub, which is the same as if they were connected to the same host controller.

What is an Orphaned Transaction?

ORPHANED transactions occur when the Beagle USB 480 analyzer only sees one side of a data transfer. . This will happen when the analyzer and target system are all connected to the same USB host controller but the another device is on a different branch of the USB tree. Since all messages from a USB host are broadcast throughout the entire bus, the Beagle USB 480 analyzer will see all messages sent from the USB host controller, however because a USB device will only send upstream messages along its path (not broadcast to the entire bus), the Beagle USB 480 analyzer will only see one half of the conversation. For more information, please see the Orphaned Packet section of the Data Center Software User Manual.

What Causes Orphaned Packets

Your target device may have an internal USB device that is connected to the same USB host controller to which the Beagle USB 480 analyzer is also connected. This potential internal USB devicein your system may be connected through an internal USB hub depending on how the system is designed.

The Beagle USB 480 analyzer detects all the traffic between the host and target device, but only detects the downstream traffic from the host to any other USB devices that are not downstream from the Beagle USB 480 analyzer. These orphaned packets can also occur if there is internal USB hub in the target host and the USB host controller sends transactions to the internal USB hub.

How SPLIT Transfers Are Used

Hosts use SPLIT transfers to communicate with full/low speed USB devices through a High-speed USB hub. These transfers have a Start SPLIT and may also include polling and handshaking.

Low/Full Speed USB

When a low/full speed USB device, such as a keyboard or mouse, is connected to the computer’s internal hub, the host sends High-speed SPLIT packets to the hub to provide control information about sending low/full speed packets to the appropriate low/full speed USB device.

Why the Beagle USB 480 Analyzer Sees Orphaned Packets

When the hub receives High-speed packets from the host, the hub retransmits the High-speed packets to the High-speed target device that is connected to the hub, such as a High-speed USB flash stick.  Although the low/full speed USB device is not present on the Beagle USB 480 analyzer’s data path, it will still see SPLIT/ORPHANED packets from the communication between the hub and the host.  To economically support multiple peripherals, such as keyboards, mice, printers, and more, computers usually have internal USB hubs.

Filtering USB Data

There are two ways to filter USB data. For basic filtering:

  1. Expand USB 2.0 in the Bus Tree located in the Navigator pane of the Data Center Software. This will list all the devices that are connected to the USB host.
  2. Right click the desired device(s) and select the desired filter option.
    Filter Option for Beagle USB Protocol Analzyer

You can also use the LiveFilter option to filter out individual packet types.  Example of the filtering  is  shown in the video below. For more information about LiveFilter, please refer to the Filtering a Capture section of the Data Center Software User Manual.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.


The Naming and Branding Changes Behind SuperSpeed USB

$
0
0

The Introduction of SuperSpeed USB

Throughout the years, the SuperSpeed USB specification has undergone many changes due to its support for increased bit rates and implementation of a multi-lane operation. However, the ongoing rebranding efforts to keep with these changes has oftentimes caused confusion in the industry.

We’ll provide some background on the various name changes for SuperSpeed USB, and provide an update on the current USB naming and branding that USB-IF has released in the wake of the USB4 introduction.

The first SuperSpeed USB specification, USB 3.0, was released in 2008, and it most notably supported increased speeds up to 5 Gbps, a vast improvement from USB 2.0 which supported 480 Mbps. Other improvements SuperSpeed USB introduced included:

  • Increased bus power and current draw
  • Improved power management
  • Full duplex data communications
  • Link Training and Status State Machine (LTSSM)
  • Interrupt driven, instead of polling
  • Streaming interface for more efficient data transfers

SuperSpeed USB was a significant achievement for USB technology since it introduced many new capabilities that were simply not possible before. Now, users could stream their data 10 times faster with reduced power consumption.

USB 3.0 to USB 3.1 to USB 3.2

In 2013, USB-IF introduced a new SuperSpeed+ transfer mode, USB 3.1, which supported up to 10 Gbps on one lane. To remain consistent in the naming, USB-IF rebranded the original USB 3.0 specification as USB 3.1 Gen 1 and named the newest USB SuperSpeed+ release to be USB 3.1 Gen 2.  Products listed as USB 3.1 Gen 1 were capable of signaling up to 5 Gbps while products labeled USB 3.1 Gen 2 were capable of the full 10 Gbps released in the updated USB 3.1 specification.

In 2017, USB-IF introduced yet another speed increase to the SuperSpeed USB specification, USB 3.2, now offering support for 10 Gbps over 2 lanes for a total bandwidth of 20 Gbps. Achieving this speed was possible due to the USB 3.2 standard supporting multi-lane operation within a Type-C cable. With this new ability, this prompted USB-IF to again rebrand to create a more homogenized naming standard between the different SuperSpeed USB performance capabilities. Now, USB 3.1 Gen 1 became to USB 3.2 Gen 1, USB 3.1 Gen 2 changed to USB 3.2 Gen 2x1, and the new speed capable under the USB 3.2 version of the specification was named USB 3.2 Gen 2x2, with x2 referring to the number of lanes.

Today, the final USB 3.2 specification comprises of all prior 3.0 and 3.1 specifications and encompasses all three speeds: 5 Gbps, 10 Gbps, and 20 Gbps. For marketing and branding purposes, the SuperSpeed USB packaging logos include these performances for easier adoption by consumers:

  • USB 3.2 Gen 1 for signally up to 5 Gbps: SuperSpeed USB

SuperSpeed USB logo supporting 5 Gbps

Image by USB.org

  • USB 3.2 Gen 2 for signally up to 10 Gbps: SuperSpeed USB 10 Gbps

SuperSpeed USB logo supporting 10 Gbps

Image by USB.org

  • USB 3.2 Gen 2x2 for signally up to 20 Gbps using 2 lanes: SuperSpeed USB 20 Gbps

SuperSpeed USB logo supporting 20 Gbps

Image by USB.org

Summary of SuperSpeed USB Name Changes

Summary of USB Naming and Branding

 

New Changes with USB4

In 2019, the USB Promoter Group announced the USB4 specification, which offers a substantial increase in signaling speed – up to 40 Gbps using a dual lane operation within a Type-C cable. With this newly introduced USB spec, it will provide a new opportunity for USB-IF to create a clear brand that distinctly indicates USB performance moving forward.

Like SuperSpeed+ USB, USB4 will also support 20 Gbps, but with the new USB4 branding, it will be clear which USB4 cables support 20 Gbps, and which support 40 Gbps, as noted by the following packaging logos:

USB4 logo supporting 20 Gbps   USB4 logo supporting 40 Gbps

Images by USB.org

The USB4 specification is officially available for USB developers to utilize within their product developments, and will be compatible with the widely adopted USB Type-C cable. Along with its ability to signal up to 40 Gbps, this new USB technology also allows for multiple data and display protocols to efficiently share the maximum aggregate bandwidth, and includes backwards compatibility with USB 3.2, USB 2.0, and Thunderbolt 3.

Total Phase Supports Development of USB

Total Phase offers a variety of tools that support the debugging and development of USB, including protocol analyzers and cable testing solutions. Our line of USB protocol analyzers can non-intrusively monitor USB bus data in real time with support for USB specifications ranging from USB 1.0 supporting 12 Mbps, USB 2.0 supporting 480 Mbps, to USB 3.2 Gen 1 supporting 5 Gbps.

Our USB Power Delivery Analyzer can monitor Power Delivery (PD) communication occurring on the CC lines within a Type-C cable so finding any issues with messaging, power negotiation, or alternate mode negotiation can easily be discovered. This tool supports the USB 3.2 Gen 2x2 spec.

Additionally, to test the overall cable performance, our Advanced Cable Tester v2 comprehensively tests a variety of USB cables for quality and safety checks including continuity testing, DC resistance testing, E-marker verification, and signal integrity testing.

For more information on how our USB tools can help with your projects, please email us at sales@totalphase.com.

What Do Biometrics and Neurofeedback Have to Do with UX?

$
0
0

Biometrics of the human response

Image from Pathways Neuropsychology

Biometrics and neurofeedback take part in many roles of our daily lives: personal health, professional medical evaluations, self-care at home, and video games. This article discusses some of the ways this information is used.

 

Biometric Measurements

There is a wide range of biometric measurements that can provide significant data about human health as well as human response.

Physiological Measurements

  • Heart rate - a rapid, “racing” pulse rate can indicate stress and chest tightness, as well as rapid shallow breathing. A slow rate may indicate low energy, such as chronic fatigue.
  • Respiration measurements can indicate shallow breathing, hyperventilation, and light headedness. The feedback can be used to improve breathing:  balance the breath cycle from hyperventilating, increase oxygen intake, and relieve stress with abdominal breathing.
  • Galvanic skin response can indicate mood issues, such as low anger threshold, anxiousness, and other agitations.
  • Body temperature can reveal poor circulation, stress, and tension. Reduced temperature can also indicate the desired result with meditation – relaxation.

Electroencephalogram (EEG)

Brain activity is measured with sensors attached to the head or headgear.  The accuracy of the information depends on the equipment and placement of the sensors. The exact meaning of the brain activity is not 100% understood. How the brain responds, and to what the brain is responding varies per person.

Eye Tracking

Eye tracking is measured with infrared cameras. This information can be used to determine where and how the participant focuses attention. For visual applications, this information can help the UI developer improve the layout on the screen.

 

Medical Usage of Biofeedback

Traditional hospitals often provide information about complementary practices. For example, Kaiser Permanente published an article about how biofeedback can be used to measure muscle tension, which can be used to monitor and progress various relaxation techniques. These techniques include meditation and visualization. Monitoring body temperature can be used while applying similar techniques to increase blood flow. It does take some practice to learn how to interact with such devices, which can be done in a biofeedback lab or with devices available for home use. To monitor results, ensure correct usage, and to avoid fraud, Kaiser Permanente and other medical specialists strongly recommended consulting with your physician about complementary medicine.

 

The Mindfulness of Neurofeedback

The controversy on the effectiveness of neurofeedback continues, as does the development and usage.  Neurofeedback research and applications cover medical conditions such as stress and anxiety. It is also used as part of the feedback for evaluating the performance and effectiveness of video games.

Evaluating Video Games

Gamers are watched at tournaments and monitored during pre-release game evaluations

Image from  GeekWeek

The excitement and attraction of many video games is the thrill of the chase. The level of stress during play enhances the excitement of winning, and entices the mind to accept the challenge to try again. For video games of action, it is often the responsibility of the game developer to bring excitement to life.

The Challenges of Monitoring Player Response

Players can be interviewed after playing the game, but the details of what is remembered, which scenes were the most fascinating or the least interesting, are usually sparse. The greater the game, the more difficult it is to remember experiences and correlate them exactly to which scenario.

Trying to ask questions during the game interrupts and can adversely affect the player’s experience, resulting in useless information. Monitoring facial expressions can be of little value. Like playing poker at a casino, the more intense the game, the less likely the players’ faces are going to visually express any emotion.

As discussed in UX Magazine, Vertical Slice wants these details to determine the relationship between the game and the player – how ready is that game for the market. Here are the questions they ask:

  • Behavior: What did the player do?
  • Rationale: Why did they behave as they did?
  • Perception: What do they think happened?
  • Experience: How did the gameplay make them feel?

Biometric Sensors Help Understanding Gameplayers

To help gather such details, biometric sensors are taped to the players, monitoring various physical responses such as heart rate, respiration, galvanic skin response, facial muscles, and brain waves. These measurements don’t necessarily indicate the emotional response of the player, but the measurements are timestamped with the game.

This information provides significant reference points about the gamers’ responses, and opportunities for post-interview questions to provide more detailed answers. This dual-edge approach for gathering information gives developers the edge they need to increase the excitement and market value of the game.

Biofeedback Technology for Health

Despite the controversy over the effectiveness of biofeedback for mental health, the FDA has approved an alternate, non-drug treatment for ADHD (attention deficit hyperactivity disorder). This approval can be considered extraordinary and ground-breaking. This prescribed treatment is for children, younger patients who can suffer severe side effects from amphetamines, “normal” ADHD chemical treatments.

The FDA-approved Monarch eTNS is provided by NeuroSigma. This device is non-intrusive in a child’s life. It is small enough to fit in a pocket and delivers electrical pulses through a thin wire that is attached to the forehead with an adhesive patch. The device is used at night. While the child is comfortably sleeping at home, “messages” are delivered to the cranial nerve to treat ADHD.

Trauma Recovery

Unexpected, unplanned fear can result in trauma. A video game, MindLight, was created by GainPlay Studio for children to overcome such challenges. The game is set in a haunted mansion filled with puzzles that are found by gradually facing scary images. The goal is to relax during the game. The reward is the shining light of a magical hat.

This game uses neurofeedback, which is monitored with a headset. BMC Psychiatry has found that constructive video games have great potential for the emotional wellness of children and adolescents.

 

Engineering Biofeedback

There are many approaches to access the biometric data and neurofeedback of a living being – wired sensors, headsets and other wearable components, wireless transmission, infrared sensors, and more.  In the world of evaluating embedded chips and developing firmware, Total Phase offers protocol analyzers and host adapters. Take a look at the tools Total Phase for working with biofeedback components.  If you have a question, please write to sales@totalphase.com or request a demo that is specific to your application.

The Future of IoT (Internet of Things)

$
0
0

We live in a period of intense and concentrated technological change, to the extent that we sometimes lose perspective on just how quickly things around us are transforming for the future. If we think about the life-changing technologies that we interact with on a daily basis, many of them were likely not present in the marketplace as recently as ten or twenty years ago.

Take mobile phones as an example. In 1993, the market penetration of mobile phones in the United States was essentially 0%. The available models were bulky and unreliable - you were more likely to see a car phone in an MTV music video than to see someone walking down the street with a phone in their hand. However, as telecommunications technology continued to develop and thanks to major innovations in networking, hardware, and other tech markets, the global market for mobile phones has grown tremendously. 

Today, there are over 3.3 billion smartphone users in the world and some regions (Africa, Middle East, Latin America) actually have a market penetration rate of greater than 100% for mobile phones, meaning that the average person owns more than one! Market penetration in the United States sits at roughly 94%, and throughout the world, there are nearly 9 billion mobile connections (more than the global population).

Mobile phones, computer hardware, and big data analytics have advanced leaps and bounds in the past two decades and now these technologies are being combined to support a new kind of device that will revolutionize how businesses do computing: the Internet of Things (IoT). IoT devices include any computing devices that can connect to the internet or the cloud using wireless communication protocols to transmit or share data. In this blog piece, we discuss the adoption and expansion of the IoT that will affect the future of technology.

How the Internet of Things is Impacting Technology

The IoT represents one of the strongest transformative influences on the tech landscape today, with impacts on industry verticals that include manufacturing, aerospace and defense, autonomous vehicles, smart cities, connected health care applications, and more. To quantify the impact of the IoT, we can look at adoption rates for IoT devices as well as projections for future growth.

A McKinsey & Co. report finds that the number of businesses that have implemented IoT technologies increased from 13% in 2014 to 25% by July 2019. The same report projects that the number of connected devices deployed around the world will increase to 43 billion by the year 2023, representing a three-fold increase in the number of devices over a five-year period. This is due in part to the over 200 current enterprise applications that have been identified for IoT devices. A separate report compiled by Statista suggests that by 2025, the total installed base of IoT-enabled hardware will amount to over 75 billion devices.

With analysts generally in agreement about the huge positive growth trajectory of the IoT, it begs the question: where will all of these devices be deployed? Who will benefit? IoT devices are already being deployed in industrial, commercial, and residential contexts. While some of these applications are already delivering significant economic benefits, other areas of IoT application are still in their developmental infancy. Let's take a look at a few of the markets where IoT devices are re-shaping the future.internet of things (iot)

Connected Vehicles and the IoT

The first application for connected vehicles emerged in 1996 when General Motors marketed its OnStar product as a high-end safety feature that could help drivers remotely access emergency navigational, operational, or medical assistance. As many other vehicle manufacturers have done since then, GM partnered with a leading technology company - Motorola Automotive in this case - to implement a connectivity feature. 

Since then, we've seen a range of applications emerging for connected vehicles. There are features that provide current traffic information, helping drivers reach their destinations more quickly while optimizing fuel consumption. There are safety features that use on-board sensors and embedded systems to alert drivers to conditions outside the vehicle. Car manufacturers are currently partnering with the world's largest technology and transportation service companies to develop self-driving autonomous vehicles that will interface with the cloud using the IoT.

Wearable Medical Devices and the IoT

Connected wearable devices for health care are a growing market segment for IoT devices. These devices are in high demand for several important reasons:

  1. They can provide patients with real-time data, information, and feedback into their own medical conditions, empowering them to take control of their healthcare outcomes.
  2. They can be configured to interface with electronic health records, which could allow physicians using specialized software systems to remotely monitor patient health status via connected wearables.
  3. The ability to upload data from connected wearables to the cloud means that patients can be discharged more readily following major surgery or hospital stay. Hospitals in the US have already conducted implementation case studies where the deployment of connected wearables reduced the average number of nights per stay for patients, freeing up hospital beds for unexpected demand surges.

Smart Retail and the IoT

IoT devices have entered retail spaces around the world. Merchants in a variety of retail segments are using RFID inventory tracking chips, infrared foot-traffic counters, cellular tracking systems, and a range of other IoT technologies to drive improvements to the shopping experience and reduce their operating costs. Applications of IoT devices in the retail space include:

  • Predictive equipment maintenance and smart power systems that reduce store power consumption and reliably anticipate the maintenance needs of business-critical equipment like grocery store freezers, warehousing machinery, and temperature control systems.
  • Smart stores that use RFID technology to automatically track purchase orders and bill shoppers for merchandise as they leave the store. This technology was first implemented at the Amazon Go store in Seattle, which offered shoppers the opportunity to walk into a store, grab what they wanted, and pay for purchases automatically upon exiting the store, all without standing in line at the checkout counter. 
  • RFID inventory technology can also change the ways that shoppers interact with items in-store. In the future, shoppers may be able to scan identification tags for a chosen item using their mobile device, gaining access to additional information such as nutrition and product origin along with the ability to pay on the spot.

Smart Homes & Appliances and the IoT

Smart homes are one of the largest areas of opportunity within the wider IoT marketplace, with demand for smart home appliances expected to grow at an annual rate of 32% through 2025 according to Business Wire. Venture capital firms have already invested billions in start-up companies like Ecobee, Nest, and Belkin that offer smart home devices and there is additional competitive pressure coming from established industry giants like Samsung and Philips.

Smart home technology has plenty of room to grow, as the solutions available today still have not gained the huge market traction that you would expect from a technology that promises to streamline home living for millions of people. 

Smart Cities and the IoT

Smart cities are still in the conceptual stage of technology development, but early results are showing promise. In Cologne, Germany, a number of smart city projects are underway that include:

  • Construction and upgrades of energy-optimized buildings, including some that produce more energy than they consume
  • Implementation of smart LED street lights to reduce power consumption
  • Heat recycling systems which capture thermal energy from sewage systems that would otherwise be wasted

A fully developed smart city could use IoT technology to better coordinate municipal services, improve resource utilization (water, electricity, gas, etc.), optimize public and private transportation, enhance public safety, streamline municipal payments and financial transactions, and a range of other applications. Cooperation and mutual investment between the public and private sectors will be required to effectively implement smart cities around the world.

The Future Development of the IoT

The future is bright for the development of the IoT, with many indicators suggesting that this rapidly expanding market segment will continue to grow and develop into the future:

  • The average cost of IoT sensors fell from $1.30 USD each in 2004 to just $0.38 each in 2019, significantly increasing the affordability of assembling devices.
  • Global transistor manufacturing has increased to keep up with the demand for IoT devices. The total number of transistors in the world increased from 2.4 billion in the year 2000 to 9 billion by 2018.
  • Most IoT applications use public cloud infrastructure, a service whose costs have continued to decline. The average base cost for Infrastructure-as-a-Service (IaaS) decreased by nearly 30% over a four-year period beginning in 2014. 
  • One of the most significant drivers for IoT growth is the cost of connectivity. In the five years between 2014 and 2019, the cost of transferring 1GB of data through wireless data systems decreased by a factor of 10. 

As computing hardware and services continue to decline in cost, the growing affordability of IoT devices and their related applications will continue to drive innovation and adoption across industry verticals.

The Future of IoT Devices 

While the future of IoT devices looks promising, there are still a couple of hurdles that have yet to be overcome. The major challenges for organizations developing IoT technology today are:

  • Security - Many of the earliest IoT devices lacked any considerations for device security, making it surprisingly easy for someone with a bit of specialized know-how to execute cyber-attacks against IoT devices, including home security systems and connected systems embedded in vehicles. The biggest upcoming challenge for the IoT will be securing devices adequately against cyber-attacks to ensure a safe and connected future.
  • Interoperability - The concept of device interoperability is that IoT devices should follow a common communication protocol that makes it easy to coordinate them with existing devices and technologies. This is especially an issue in healthcare applications where device interoperability issues can mean poor coordination between connected wearables and EHR software systems. For highly regulated industries, IoT manufacturers should work to develop a common standard of interoperability that ensures IoT devices can seamless communication with other devices and information systems in the field.
  • Product/Market Fit - While the concept of the IoT has many people excited, these are entire industries that have yet to establish a product-market fit that can lead to high market penetration. While some areas like manufacturing have had success with the early adoption of IoT systems, other areas like smart retail have seen little market penetration so far. IoT device manufacturers have the capabilities to architect an amazing world for consumers, but to succeed they'll need to concisely capture user needs and deliver the experiences that consumers want.

Summary

IoT devices represent a fast-growing market segment that combines cloud computing and connective technology with embedded systems and microcontroller architecture. 

Are you creating an IoT device that will change the future, developing a standard for device interoperability, or innovating new ways of securing IoT devices? For embedded engineers building products for IoT applications, Total Phase provides the development and diagnostic tools needed to accelerate the development cycle while optimizing product performance and meeting user needs.

Ready to learn more?

Request a Demo

What Causes I2C Clock Stretching? When Is It Needed?

$
0
0

Question from the Customer:

We are using the Aardvark I2C/SPI Host Adapter as an I2C slave to test a master I2C port on another device. It appears the Aardvark adapter uses clock stretching while it is configured as a slave. Can you tell us what causes clock stretching?  When should we expect to see that feature occur?

Response from Technical Support:

Thanks for your question! The Aardvark I2C/SPI Host Adapter functionalities are based on I2C protocols. The I2C bus consists of only two lines, SDA (serial data) and SCL (serial clock). An I2C master device provides the SCL and controls the clock speed. After the master device initiates a data transfer, either an I2C master or an I2C slave device can send data. It is possible for a slave device to hold the SCL signal low, which “stretches” the clock and can halt the master device from transmitting data or commands. The purpose of clock stretching is to place the master device on hold.

Note: Although clock stretching is part of the I2C protocol, a master device, as well as a slave device, may or may not be designed to support clock stretching.

I2C Clock Stretching Support

The Aardvark adapter is designed to support clock stretching as either a master device or a slave device. However, only a slave device can initiate­ the clock stretch. The clock stretching feature cannot be disabled in the Aardvark adapter.

How Clock Stretching Is Used

Clock stretching allows an I2C slave device to force the master device into a wait state. A slave device may perform clock stretching when it needs more time to manage data, such as store received data, or prepare to transmit another byte of data. This typically occurs after the slave device has received and acknowledged a byte of data.

Which I2C Slave Devices Need Clock Stretching

Whether or not clock stretching is needed depends on the functions of the slave device. Here are two examples:

  • A processing device, such as a microprocessor or a microcontroller may need additional time to process an interrupt, receive and manage data, and perform the appropriate function(s).
  • A simpler device, such as an EEPROM, does not process data internally, so it does not need clock stretching to perform any of its functions.

Per the I2C protocol, there is no limit for the duration of a clock stretching period. However, if a timeout has been configured, a “bus lock” or other error may occur. For additional information, please refer to the API command “Set Bus Lock Timeout” in the Aardvark I2C/SPI Host Adapter User Manual.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application.

What is the USB Type-C Connector Class?

$
0
0

USB Type-C is known for being a powerful yet flexible connector. It brings multiple different capabilities to the user including its ability to bidirectionally transmit both data and video protocols at rapid speeds and support up to 100W of power using the Power Delivery (PD) protocol. Essentially, USB Type-C is a connector that can support a variety of different functions, speeds, and power levels, but it’s not always clear what its capabilities are when used with other devices, as not every Type-C cable is made equal.

USB Type-C plugged into USB Type-C port on Macbook

Image by Maurizio Pesce on Flikr.

The Various Configurations of USB Type-C

There are many USB-C port features that contribute to a cable’s variability including its power capabilities, USB data capabilities, if it contains Alternate Mode support, and whether it’s a receptacle or captive cable connection:

Connector

  • Receptacle or Captive Cable

Power

  • PD2.0 or PD3.0 FRS ask or give
  • Source, Sink, or DRP Unconstrained Power
  • Sources any power output from 2.5W ~ 100W
  • Sinks any power input from 0.0W ~ 100W

USB Data

  • UFP or DFP or DRD
  • USB 2.0 host or device or both
  • USB 3.2 Gen 1 or Gen 2 host or device or both
  • USB4™ PCIe and/or USB 3.x and/or DP

Alternate Modes

  • VESA DisplayPort™ Alternate Mode
  • Intel Thunderbolt™ 3
  • (Others)

Depending on the specification and what the cable is intended to be used for, it can support a wide range of functions, from the speed it can support to the amount of power it can supply or receive. While USB specification logos provide insight into the cable’s supported speeds and charging capabilities, the cable may not be able to maximize its capabilities if another device or cable can’t support these features equally.

Understanding the Capabilities Between USB Type-C Devices

To make USB Type-C’s capabilities more evident to consumers, contributors to USB technology have created a new API software called “USB Type-C Connector Class” under Linux that provides an interface for the user space to get information on the USB Type-C connector and its capabilities within a system. It provides control over data role swapping, and over power role swapping and Alternate Modes if the port supports USB Power Delivery.

This API enables the operating system to provide consumers with a GUI that shows a device’s capabilities including USB speeds, power charging, or video technologies, etc. To achieve the user space interface, each Type-C port is registered as its own device as a virtual file to the Linux system and classified under sys/class/typec/. Each USB Type-C port is indicated as port0, port1, port2, etc, with a full path for port0 as /sys/class/typec/port0.

Partner Devices

Partner devices are also registered as their own device, and the parent of the partner device, which is the port it is attached to, is represented as “port#-partner”. The partner path for port0 would be /sys/class/typec/port0/port0-partner/.

Connected cables and its two plugs may be optionally registered as their own devices. The cable will be represented as “port#-cable”, where a cable connected to port0 will be registered as “port0-cable” with a full path of /sys/class/typec/port0/port0-cable/.

USB Power Delivery Cables

If a cable is capable of USB Power Delivery, it will also register one or two plugs. For port0, the plug on the SOP’ end will be presented as “port0-plug0” and the plug on the SOP’’ will be presented as “port0-plug1”. The full path for this will be /sys/class/typec/port0/port0-cable/port0-plug0 and /sys/class/typec/port0/port0-cable/port0-plug1.

Alternate Modes

Any other alternate modes will have its own device describing it and will be classified under its own group, Alternate Mode device “mode<index>”.  The alternate mode will not be attached to the Type-C class, but will be attached to the parent of the alternate mode. The full path for alternate mode can be found as /sys/class/typec/port0/<alternate mode>/mode1/.

Configurations

Below are all the configurations for registering the port, partner, and cable:

/sys/class/typec//sys/class/typec/port0

/sys/class/typec/port0/port0-partner/

/sys/class/typec/port0/port0-cable/

/sys/class/typec/port0/port0-cable/port0-plug0

/sys/class/typec/port0/port0-cable/port0-plug1

/sys/class/typec/port0/<alternate mode>/mode1/

More on the USB Type-C Connector Class can be found here.

Tools for Developing USB Type-C

Need the right tools to help debug and develop your USB Type-C developments? Total Phase offers a variety of tools that can help expedite and quickly debug your USB systems. Our USB Power Delivery Analyzer allows developers to monitor PD protocol traffic on a Type-C cable. It connects in-line between two Type-C products and passively captures all communication between them on both the CC1 and CC2 signals. Additional features include: message decoding including power negotiation, alternate mode negotiation, VDM data display, and capturing and displaying PD 3.0 extended messages.

To verify a USB Type-C cable is within specification, our Advanced Cable Tester v2 allows cable developers a way to discover quality or safety issues by providing insight into the cable’s pin continuity, DC resistance, E-marker, and signal quality. For other USB developments, Total Phase also offers an extensive line of USB Protocol Analyzers to non-intrusively monitor USB communication on the bus in real-time.

Have questions on how Total Phase can support your USB developments? Please feel free to contact us at sales@totalphase.com.

What Causes the I2C Bus Lock and How Do I Fix It So I Can Program a Device?

$
0
0

Question from the Customer:

I am trying to use Aardvark I2C/SPI Host Adapter and the Flash Center Software to program an I2C device, but it keeps failing because the bus is locked as shown below.

View of Locked I2C Bus with Flash Center Software

What causes the I2C bus lock? What do you suggest I do to keep the bus open so I can program the I2C device?

Response from Technical Support:         

Thanks for your question! An I2C bus locks when an error occurs or a “wait period” exceeded the timeout period.  The details are provided below.

I2C Bus Error Condition

The bus error condition is a generic error that indicates a hardware issue. In this case, a bus error occurs when a START or STOP condition occurs at an illegal position in the format frame. Bus errors rarely occur. In this case, it is likely that a configuration or condition is causing the problem.

I2C Bus Locked Condition

The bus lock condition occurs when the allowed timeout period has been exceeded. In summary: transmitting an I2C packet is in progress, and the timing from when the last event was executed or received on the bus exceeds the allowed “wait” time. This wait time occurs when the SCL (serial clock) line of the bus being held low.

  • SCL may be held low for clock stretching. In this case, a slave device is forcing the master device to wait until the slave is ready to deliver or receive data. There may be some other device that is unexpectedly holding down the SCL signal.
  • If the data line is held low, then a start condition cannot be executed by the Aardvark adapter, which can also exceed the allowed timeout period.

When excessive timeout is observed, the Aardvark adapter resets its own I2C interface – no further action occurs on the bus including programming a device.

Using Control Center Serial Software

For troubleshooting and analytics, as well as programming devices, we recommend using the  Control Center Serial Software.  This tool can be used to run batch scripts for testing and save the transactions in a CSV file for analyzing the data. We have two knowledge base articles that are related to programming devices, which may be helpful for your project:

We also have a video that demonstrates programming EEPROMs:

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application.

National Macintosh Computer Day

$
0
0

Happy National Macintosh Computer Day!

 

From Dress up your Pet Day to Squirrel Appreciation Day, the list of creative holidays never ceases to amaze. Today, in case you didn’t know is Macintosh Computer day so we get to spend a moment to appreciate Apple Macintosh computers.

 

The History of Macintosh and Personal Computing

 

The Mac was originally created with the goal of bringing personal computers into the home. At the time, the computer was not a household item; it was perplexing and impractical for the everyday user. Apple computers was founded in 1976 by Steve Jobs and Steve Wozniak who believed the personal computer was the future.

 

Early computers were extremely expensive and massive in size, requiring a dedicated full room for a single computer. One of the first computers, the ENIAC, occupied a space of 1,800 square feet and weighed almost 50 tons. Jobs and Wozniak saw the impracticality of these computers and asked why they couldn't make it smaller and more mainstream. They did exactly that. In 1984 the first ever Macintosh computer was released with a price tag of $2,500 (that’s equivalent to $5,000 today). Apple sold over 70,000 units in the first few months on the market; the idea was a hit!

 

ENIAC Computer

ENIAC computer

 

This brings us to today where Apple sells nearly 20 million Mac computers a year. We have all experienced a Mac in one way or another. Whether in the library, at school or work, or at home, Apple has made its mark on computer and technology world and has become a household name.

 

First Macintosh Computer

First Macintosh computer

 

Engineering Tools with Mac Support

 

The engineering world hasn’t always been inclusive to the Mac side of the world. With most programming and technical applications designed only to work in Windows.  This can be pretty frustrating for those preferred Mac users. At Total Phase we appreciate all operating systems, including Mac. That is why we have made it a core competency to provide support for all major platforms on the market. Total Phase software supports the latest versions of Windows, Linux, and of course, Mac OS.  The award-winning Data Center Software for protocol analysis and the Control Center Serial Software for master and slave emulation are both cross platform compatible, making it easy for users of any OS preference.

 

With Total Phase you will never have to worry what platform you’re using in order to work with our tools. We believe in easy-to-use, plug-and-play solutions for the market. That includes using your operating system of choice any time you want to use the Aardvark I2C/SPI Host Adapters or Beagle I2C/SPI Protocol Analyzers.

 

Request a demo to learn more about how Total Phase tools support working in a Mac environment.


What is an Embedded System Software?

$
0
0

For engineers that approach embedded systems design from a hardware background, configuring software for embedded systems can pose a significant challenge. Those with experience and know-how in software engineering will still need to adapt their software design and programming methodologies to meet the unique requirements of embedded systems design. 

In this blog post, we discuss the different types of embedded software that are commonly deployed in embedded systems applications. We will define and characterize a basic software stack for embedded systems and explore some of the most common applications for embedded systems in commercial, industrial, and residential contexts.

Embedded Systems: Software Embedded into Hardware

Embedded systems consist of a microcontroller or microprocessor unit on a chip with other peripheral devices, serving a dedicated function or managing a specific application within a larger mechanical or electronic system. Embedded systems consist of both hardware and software, with physical components like an oscillator, memory, and a CPU, and a software stack that can vary in complexity based on the application. 

Engineers that build embedded systems require a broad skill set that includes hardware design and development of embedded software that matches the defined requirements of the hardware specifications. Many embedded systems are designed for a limited and highly specific set of tasks or applications. As a result, new embedded systems software applications are often custom-coded to meet the unique requirements of each new project.

MRI machines used in health care facilities depend on bug-free software specifically programmed for their microcontroller-powered embedded systems.

Image courtesy of Pixabay

What is Embedded Software?

If embedded systems consist of both hardware and software then embedded software refers specifically to the software components of the system. We can further distinguish between two types of software used in embedded systems: the firmware and the application

Firmware consists of software that is written in non-volatile memory within the embedded system, such that it cannot be easily modified or erased. Most embedded systems contain read-only memory (ROM) or electrically erasable programmable read-only memory (EEPROM) where firmware is stored. Firmware is typically used for running or booting the device.

In contrast, embedded software applications allow the system to perform tasks or functions that are required for the successful application of the device. An embedded application includes control or scheduling algorithms that allocate processing power to tasks, processes, or services based on their assigned priority.

The Embedded System Software Stack

The software stack for an embedded system can vary in complexity depending on the intended application for the product. The most complex systems consist of five or six layers while simpler systems might include just two or three. A six-layer software stack for an embedded system might include the following components:

  1. Embedded software application: while other components of the software stack may be purchased or acquired as open-source, the main application is typically coded by engineers to meet the unique requirements of the project while accounting for power consumption, timing, and other constraints imposed by the hardware configuration and additional planned software elements. 
  2. Application framework: embedded engineers are enjoying increased access to application framework modules that provide prepackaged software for embedded systems. An application framework can include security features, machine-to-machine communication features, connectivity and location functionality, and other useful features. The presence of available application frameworks reduces the labor associated with programming embedded software functions.
  3. Operating environment: includes libraries, runtime, and other services needed to deliver the core application
  4. Embedded virtualizations: more complex embedded systems may use virtualization to divide processing power between several different tasks or functions. 
  5. Firmware: consists of the software components necessary to run the device, such as boot-loaders, secure storage, and threading
  6. Hardware: includes the microcontroller or microprocessor and other on-chip peripherals on a single or multi-layered board

What is an Embedded System Used For?

Embedded systems are deployed in a wide range of commercial and consumer applications across industries. While the first embedded computers were used in products like calculators during the 1960s, technological advancements of the information age have accelerated the proliferation of devices with embedded systems throughout the world. In particular, devices that use embedded systems to transmit data over the internet (known as connected devices) have exploded in popularity with applications that include smart homes and wearable medical devices.

Below, we highlight some of the most common applications for embedded systems today:

Embedded Systems in Consumer Electronics

Consumer electronics are a major product category when it comes to embedded systems, including things like mobile phones, video game consoles, printers, digital cameras, and more. There is a significant variation in the types of embedded systems that are deployed across various consumer products. The microcontroller system embedded in a digital camera, for example, might perform just a handful of highly specific functions or tasks. On the opposite end of the spectrum, mobile phones are powered by embedded systems that must be configured to run many different types of mobile applications (apps). The operating systems and architecture for these more complex embedded systems are more similar to those of desktop computers.

Embedded Systems in Smart Home Products

Smart home and smart home security products are driven by embedded systems that rely on specially programmed embedded software programs. Smart home products are a growing market segment for embedded systems engineers as consumers seek out low-cost solutions that enhance home safety and protection while providing convenience through automation. 

There are several examples of smart home products that rely on embedded systems, including home security cameras that upload the video to the cloud or motion sensors that activate an alarm when an intruder is detected. Even smart plugs that enable voice activation or timer control of home audio and lighting systems depend on embedded software and systems.

Embedded Systems in Aerospace and Defence

Embedded systems are increasingly being deployed in military and aerospace applications, especially in aircraft navigational computers, GPS tracking computers, and vehicle guidance systems. On the commercial side, in-flight entertainment systems, flight data recorders, and other aircraft safety features can be designed with embedded systems that capture information from their environment using sensors and convey information about the vehicle status to the operators or pilot. Unmanned aerial vehicles (UAVs) are also powered by embedded software systems.

Embedded Systems in Communications

Many types of electronic communication devices contain embedded systems, including home and business networking products that facilitate connections between network endpoints and the worldwide web. Products such as routers, network hubs, and satellite phones contain embedded systems that incorporate internet connectivity features. Engineers develop specific embedded software applications that allow these devices to transfer messages between network devices and the internet.

Embedded Systems in Health Care

Embedded systems are increasingly being deployed in the health care setting. Electronic medical devices are frequently designed with one or more internal microcontrollers that help coordinate their functioning within the timing and power constraints that are characteristic of embedded systems. While many types of embedded systems are meant to function with minimal user input, products in the health care system frequently require a user interface where a physician or technician can configure operational settings for the device. Examples of embedded systems in health care include CT scanners, ECG machines, magnetic resonance imaging (MRI) machines, and more.

Connected wearable devices are a growing area of application for embedded system software in healthcare. A patient wearing such a device can have their health and vital status monitored by physicians remotely, reducing the need for inpatient hospital stays and freeing up bed space for circumstances where it is critically needed. A connected, wearable heart rate monitor, for example, can automatically gather data from the patient and upload it to the cloud where it can be reviewed by a remotely located physician.

Embedded Systems in Industrial & Manufacturing Applications

Embedded systems vary significantly in their design and applications within the industrial and manufacturing sectors. In large industrial systems, embedded systems control complex tasks that can be configured or adjusted through a human-accessible user interface. These systems may control assembly lines, adjust plant conditions, or perform other large-scale functions in the industrial context.

In addition to systems that control industrial machinery, there are also embedded systems in products that monitor and provide feedback on industrial and manufacturing processes. These embedded systems contain sensors that gather data from the manufacturing process and upload them to a centralized database where it can be analyzed for patterns or anomalies. Thanks to the broad range of available sensors, industrial facilities can be monitored across several dimensions including pressure, temperature, vibrations, power output, and more. These systems are providing manufacturers with a greater degree of control over the industrial processes they manage each day. 

Summary

We can recognize many parallels between the traditional practice of software development and the way software is developed and deployed for embedded systems. Both types of software require underlying components, such as an application framework, runtime environment, and operating systems. Perhaps the most important distinction is that embedded software applications must be coded to account for the normal limitations associated with embedded systems, including on available processing capacity and power consumption.

Total Phase builds diagnostic tools that help embedded engineers efficiently debug their embedded systems software, resulting in more rapid development and reduced time-to-market. Tell us about your upcoming embedded systems project and we'll show you how Total Phase can help.

Request a Demo

How Can I Use One Cheetah SPI Host Adapter to Simultaneously Program Identical Devices?

$
0
0

Question from the Customer:

We are using the Cheetah SPI Host Adapter to program ICs on our test bed. In many cases, two ICs are designated to receive exactly the same data. These ICs are the same SPI devices. To save time, instead of programming ICs one by one, we would like to program these devices simultaneously. The Cheetah adapter may be fast, but we would like to make this process run faster using one Cheetah adapter.

What do you recommend for our setup?

Response from Technical Support:

Thanks for your question! The SPI protocol is designed to work with SCK, MOSI, MISO on the same bus as long as SS1# and SS2# are separate and asserted one at a time. The Cheetah adapter has multiple slave selects, which makes it easy to select which IC to program, and all ICs can receive the same instructions separately.

For your goal, programming two devices at the same time will require a change to the interface: connect the select signal of the devices to the same CS (chip select) line. As mentioned above, MOSI (master output slave input) pins of the two ICs are already connected on the same signal lines.

If the MISO (master input slave output) signal lines of the programmable devices are also connected to the Cheetah adapter, additional changes will be needed to protect the devices from short-circuits.

What Causes a Short-Circuit

Two output signals on the same wire can result in collision: a short-circuit. Here are two instances that may cause a short-circuit:

  • If the output data is the same, there can be differences in rise/fall time and other delays, which can result in a short-circuit.
  • If the output data of the devices disagree on any number of bits, a short-circuit will occur.

To prevent this instance, we have two suggestions for the layout of the signal interface:

Isolate the MISO Signals

If the output signals are not needed, you can disconnect the MOSI lines.

XOR the MISO Line

If the output signals are needed, you can add a “filter”. Since both devices are the same model and design, and receive the same data, they should be returning the same values. With that in mind, the proposed option is adding a discrete XOR gate with the two MISO lines as inputs to the XOR gate. This way, the output of the XOR gate will be “low” when both output signals are the same, both logically high or low, and “high” if the logical signals are not the same.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.

Total Phase at DesignCon 2020: The Need for Speed!

$
0
0

This past week, Total Phase exhibited at the DesignCon 2020 conference at the Santa Clara Convention Center.  This was the 25th Anniversary of this highly well-known and established event!

Total Phase booth and staff

Day one saw a very nice swell of traffic and great conversations with current, happy Total Phase customers and extremely savvy test engineers from some of the most esteemed Bay Area (and outside) tech companies.

On display at the Total Phase booth were live demonstrations of our Promira Serial Platform coupled with the Beagle I2C/SPI Protocol Analyzer, the Beagle USB 480 Power Protocol Analyzer, and the Advanced Cable Tester v2.

A common theme we heard from customers centered on a “Need for Speed”. We had many inquiries into which solutions could interface at higher I2C and SPI speeds along with USB 3.1 and even the impending USB4! Perhaps this new wave of inquiries signals a trend and change in existing serial protocol testing environments.  For those customers searching for higher speed I2C and SPI testing capabilities, check out the Promira Serial Platform.

When all is said and done, it was an extremely productive show for Total Phase. We look forward to future DesignCon events and engaging with our existing and prospective customers.

If you are finding challenges with effectively debugging in common serial protocols such as I2C, SPI, USB, CAN, A2B, or eSPI, or you are one of many companies who are concerned with the safety and reliability of next generation USB cables, then please contact us at  sales@totalphase.com, and we’d love to help.

How Can I Optimize Erasing an I2C Device that Has No Erase Command?

$
0
0

Question from the Customer:

I am trying to erase an 24LC256, an I2C EEPROM, with the Aardvark I2C/SPI Host Adapter. I’m having a problem erasing it correctly. For my system. I need to erase the EEPROM with all ones, 0xFF, but the results I get are all zeros, 0x00.

I am using the Erase Parameters dialog from the Flash Center Software. Is there an easy way I can set the default erase for 0xFF?

Erase Parameters dialog box in Flash Center Software

Response from Technical Support:

Thanks for your question! The issue you experience is based on how the Flash Center Software functions and the device. If a device does not have an erase instruction, then by default, zeros are written to the device. As the 24LC256 does not have a bulk erase command, all the data in the memory will be replaced with 0x00. This operation cannot be configured. To fulfill your system requirement, you will need to execute an explicit write of 0xFF to your EEPROM.

Options are readily available to fulfill this requirement. For your operation and ease of use, we recommend using our free Control Center Serial Software.

Control Center Serial Software

The Control Center Serial Software is a GUI application that provides full access to all Aardvark adapter functionalities without writing custom software.

Examples of Programming an I2C EEPROM

For an example of using the Control Center Serial Software, we recommend looking at the following article:  How to Read and Write to an I2C EEPROM Using the Aardvark adapter and Control Center

This knowledge base article describes programming the AT24C02 I2C EEPROM that is used on the I2C/SPI Activity Board. Here is a summary:

  • Set up the equipment
  • Configure the Aardvark adapter as an I2C Master for writing
  • Set up the data and write to the device
  • Verify the device received the data

This information can be used as a guideline for programming other devices. Here is an example of a GUI dialog for writing to an I2C device:

We also provide a video that shows programming an I2C EEPROM using the Aardvark adapter and the Control Center Serial Software.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application.

What is an Embedded Operating System and the Different Types

$
0
0

Embedded systems consist of a microcontroller or microprocessor and peripheral devices that carry out a specific function within a larger electronic system. Embedded systems are a special type of computer, and just like your desktop computer at home, they require an operating system to function. In this week's blog post, we're exploring embedded operating systems. We'll explain what they are, the different types, and how they differ from desktop operating systems that we're already familiar with.

What is an Embedded Operating System?

An embedded operating system is a special type of computer operating system designed to optimize the functional efficiency of an embedded system. In the same way that your desktop machine requires an operating system like Linux, Mac OS, or Windows to run basic applications, embedded systems also require an operating system that supports their basic functionality.

Embedded operating systems typically incorporate a range of specialized features that allow the systems they control to function optimally in real-world applications:

Real-time Operations are crucial for embedded systems that support functions that need to be executed within a specified time frame. Consider the following example: an embedded computer controls a traffic signal that must cycle through different signals at predetermined intervals in a programmed order. This function is derived from the kernel, the core program of the operating system that controls task scheduling.

Reactive Operations require an embedded system to respond to a specific stimulus or user input. Think about the airbag in a vehicle - it needs to be deployed quickly when sensors in the vehicle detect a rapid deceleration of the vehicle that indicates a collision. The embedded operating system must be able to react with near-immediacy, which may require it to pause one task and execute a new one within a constrained time frame. 

Direct Interrupts are used to rapidly transfer CPU resources from one event to another when the system demands it. Embedded systems are frequently deployed in real-world applications where they exercise full control of hardware peripherals using embedded operating systems.

Broadly speaking, embedded operating systems are a special kind of operating system used to meet the characteristic requirements of embedded systems, which include things like real-time and reactive operations, direct use of interrupts, and limitations in power consumption and computer resource availability.

operating system selection: Image courtesy of Pixabay Desktop operating systems are designed to run many different types of applications. In contrast, an embedded operating system may be configured to run a single application with just a few different tasks or functions.

 

What are the Types of Embedded Operating System?

Many embedded systems are controlled by an operating system that is specially designed and configured for the exact needs and specifications of that device. While desktop operating systems are designed for general computing and configured to run many different types of applications with diverse requirements, embedded operating systems are more narrow in their scope. As a result, there are many different types of embedded operating systems (OS) in use today. Each type of operating system is designed to support a specific application of embedded systems. These systems include:

Single System Control Loop

A single system control loop is the most basic type of embedded operating system. This type of OS exercises digital control over a single measured variable. A simple embedded device like a smart home temperature control or thermostat might use this type of OS. The user programs the desired set-point for the temperature variable. The system uses sensors to measure the temperature in the environment. If the measured value is below the setpoint, the embedded system turns on the furnace. If the temperature is too high, the thermostat may activate an air-conditioning system, for example.  

Multi-tasking Operating System

When an embedded system must perform several tasks or functions at the same time, it requires a special type of functionality called multitasking. A multitasking operating system is programmed to allocate processing time between various system functions according to application needs. If the system has more than one processor, it may be possible to perform more than one function simultaneously. Multitasking operating systems include a scheduling algorithm that establishes rules for organizing and prioritizing tasks.

Real-Time Operating System

A real-time operating system is meant to process inputs immediately as they are received, with the minimum possible delay between receiving a target input and generating the corresponding output. Real-time operating systems are bound by strict time constraints and processing tasks must be completed within the specified time constraints to avoid a system failure.

Rate Monotonic Operating System

Many embedded systems are developed using a special type of task scheduling algorithm known as rate monotonic scheduling. The purpose of this unique type of algorithm is to ensure that the system can meet the requirements of a range of tasks, all of which may require special priority treatment and timing constraints. A rate monotonic assigns the highest levels of priority to tasks that take the least time. In this way, the rate monotonic algorithm is a fully optimized algorithm for scheduling tasks that must be completed by a fixed deadline with limited resources. If a set of tasks cannot be scheduled to meet all deadlines using the rate monotonic algorithm, there is no other scheduling algorithm that can do a better job.

What's the Difference Between Embedded and Desktop Operating Systems?

There are many notable differences between the operating systems that power our desktop computer and those typically deployed in embedded systems design.

For starters, desktop operating systems are much more generally suited to running a wide variety of desktop applications, whereas embedded operating systems are configured to run a specific application with a specific set of hardware and peripheral components. This distinction underlies the differences that we see in the marketplace when it comes to desktop versus embedded operating systems. While just a few major desktop operating systems dominate that market space (Windows, macOS, Linux), there is much greater variety in embedded operating systems. 

Embedded engineers have a range of options when it comes to implementing an embedded operating system. You may choose to download a free open-source operating system, purchase a commercial OS product, or write your own operating system to meet unique project requirements. At Total Phase, we build diagnostic and debugging tools that help embedded engineers code their embedded systems products and operating systems more efficiently and with fewer errors. 

Summary

Embedded operating systems are unique because they can be customized and configured for the unique demands of the devices they operate. While desktop operating systems are robust, complex, and general-purpose, embedded operating systems are simplified to handle a defined set of tasks in a specific application with defined time constraints and scheduling requirements. 

Ready to learn how Total Phase can help you develop and debug your next embedded operating system project?

Request a Demo

How Causes an Error Message When the Data Appears to Be Delivered Correctly?

$
0
0

Question from the Customer:

I am using the Aardvark I2C/SPI Host Adapter and Aardvark Software API to communicate with an I2C device. I have a question about an error message that conflicts with the results I see.

When I write 2 bytes and 5 bytes, the function aa_i2c_write returned 2 and 5 as expected. However, when I write 129 bytes, the return value is -103. Even though the function returned the error -103, I checked the device and found that all 129 bytes were successfully written to the device.

I am writing a sequence of bytes to the devices in the following order:  2 bytes, 129 bytes, 2 bytes, 129 bytes. I observed that most of the bytes were written successfully, yet some of the 2-byte sequences were missing. In another operation, the Aardvark host adapter wrote a chain of 512 bytes repeatedly for more than 100 times. In that case, the content written was correct.

What causes the error message? Is there a problem I’m not aware of?

Response from Technical Support:         

Thank you for your question! Based on your information, there may be a hardware issue that affects delivering the data. We’ll start with an overview of the read/write operations with the Aardvark host adapter, then describe the potential problem.

Communicating Data

This is an overview of the read and write operations.

Host Adapter Buffer

The sizes of the Aardvark host adapter’s I2C and SPI buffers are both 64 bytes. These buffers are only used when an Aardvark API call is invoked. The Aardvark has a 64-byte buffer for the slave response.

Therefore, the num_bytes parameter in the Aardvark API aa_i2c_read and aa_i2c_write is aa_u08 (8 bits). This 64 byte buffer size feature is “fixed”; it cannot be modified. However, if more bytes are requested in a transaction, the response string will be wrapped as many times as necessary to complete the transaction.

Write Operation

  • If the write operation is not completed properly by the API, the acknowledgement is not received from the slave, and returns the status AA_I2C_WRITE_ERROR (-103). Most likely, this is due to a communication error.
  • If the operation is complete with bytes written, the number of bytes written (a positive value) is returned.

USB Communication Errors

When the errors aa_i2c_read_error or aa_i2c_write__error are reported, that typically indicates the USB communication between the Aardvark host adapter and the computer is corrupted. This may occur when sending a large amount of data through the Aardvark host adapter, but the computer does not have the resources to grab all the data off of the device. One of the likely resources is the USB hub or the USB hub controller: managing a heavy use of full-speed USB traffic on the bulk endpoints.

A USB 2.0 hub may improve the situation. This way, using a high-speed communication between the host and hub pushes the processing of the full-speed traffic to the hub. What you can do:

  • Use a high-speed hub between the computer and the Aardvark adapter
  • Use a different computer, one that has a host controller on the motherboard

If you have a Beagle USB 480 Protocol Analyzer, you can also monitor and analyze the USB traffic between the computer and the Aardvark host adapter. This video demonstrates an example of using the Beagle USB 480 analyzer for debugging traffic, as well as the Aardvark host adapter.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application.

Request a Demo

The Relationship Between USB4 and the USB Type-C Connector

$
0
0

The USB4 specification was released by USB Implementors Forum (USB-IF) in September 2019, and one of its most advanced capabilities is its ability to support speeds up to 40 Gbps. Reaching these rapid data transfer rates is possible as USB4 architecture is based on Intel’s Thunderbolt 3 protocol that is built on a USB Type-C connector. How does the USB Type-C connector contribute to the operability of the USB4 specification and its capabilities? We’ll discuss this more in depth.

About the USB Type-C Connector and USB4

USB Type-C is a connector type that was created to simplify the USB user experience and for more universal adoption by manufacturers and consumers. Its ability to support high data transfer speeds, high power levels, and a number of different applications makes it more versatile. These functionalities are possible due to the USB Type-C connector’s unique internal infrastructure.

The USB Type-C connector includes 24 pins, with 4 of the pins (TX1+, TX1-, RX1+, RX1-) making up one lane with two differential SuperSpeed pairs and another 4 pins (TX2+, TX2-, RX2+, RX2-) making up a second lane with an additional set of two differential SuperSpeed pairs. Depending on the USB specification and configuration, one or two of the lanes can be used to transfer USB data at a given speed. If both lanes are used, the cable can transfer the data unidirectionally twice as fast. USB4 is able to transmit data at 20 Gbps per lane, or 40 Gbps if both lanes are used to perform a two-lane operation. If not all the SuperSpeed pins are used for USB data transfer, Alternate Mode can be activated, which supports third party protocols including DisplayPort (DP).

USB Type-C receptacle with pin diagram

Image by Chindi.ap

Additionally, there are other pins within a Type-C connector that are mandatory for all specifications, including four high speed (D+/ D-) pins to support USB 2.0 transfer rates, four GND pins to support the cable ground, four VBUS pins to support the cable bus power, two CC (CC1, CC2) pins to support the configuration channel, and two SBU (SBU1, SBU2) pins to support sideband use, where SBU1 is mapped to SBTX and SBU2 is mapped to SBRX when operating in USB4.

Configuration Channel and USB Power Delivery Protocol in USB4

The configuration channel (CC) within a USB Type-C connector is vital to the USB4 specification. For one, the configuration channel within a Type-C cable allows the cable to establish the relationship of Source and Sink roles between two attached ports. Secondly, because a USB Type-C cable can be inserted in either orientation, this channel also allows the cable to detect plug orientation and twist connections to establish USB data bus routing. Thirdly, both VBUS and VCONN are discovered and configured using this channel. Fourthly, it is used determine the lane ordering of the SuperSpeed USB data signal pairs and establish the Configuration Lane for dual-lane operation for USB 3.2 and USB4 specifications. And lastly, the USB Power Delivery protocol that functions over the configuration channel also allows the USB device to discover and configure Alternate or Accessory modes, as well as discover and enter USB4 operation.

USB4 Discovery and Entry Process

What does the USB4 discovery and entry look like? Initially, this process looks very similar to the discovery and entry of all USB connections. This process first begins with the Configuration Channel Connection State Machines resolving the Source/Sink and initial data roles (Downstream Facing Port (DFP)/Upstream Facing Port (UFP)). Next, the VBUS and VCONN supply power and the USB Power Delivery protocol is used to establish the Explicit Power Contract between the port and partners.

When, and only when the power contract has been established, the USB4 discovery process can begin. USB Power Delivery Discover Identity is used by the DFP to identify port partner SOP and SOP’ capabilities. If both USB Type-C port partners are discovered to support USB4 operation, the DFP will issue a USB PD message to the cable and port partner to allow the entrance of USB4.

The UFP ID Header and VDO responses used to determine level of USB4 compatibility:

  • Product type (hub, peripheral)
  • Device capabilities
  • Alt Mode support
  • Device speed
  • Power requirements

Devices that don’t respond are not recognized as USB4-compatible, and if no USB4 functionality is discovered, USB Type-C will functionally default to USB 2.0 and USB 3.2 specifications.

USB4 Power Requirements

In regards to USB4’s power requirements, the USB4 operation requires that the VBUS power is provided using a USB Power Delivery Explicit Contract. A dual-lane active cable may consume up to 1.5 W of power from VCONN. For Source power requirements, a minimum of 7.5 W (5 V at 1.5 A) is required to be supplied on each port. For Sink power requirements, devices are only allowed up to 250 mA on VBUS when the Source advertises Default USB power prior to establishing a PD Explicit Contract. Additionally, devices are required to be capable of operating with a Source that only supplies 7.5 W of power.

Summary

The USB4 specification relies on the USB Type-C connector to perform many of its functions. The Type-C connector allows cables supporting USB4 to achieve 40 Gbps transfer speeds, maintain safe power transfers between devices, as well as the ability to discover and enter the USB4 operation in a secure manner.

Tools for the Development of USB Type-C

Total Phase offers a variety of tools to help USB developers debug and develop their USB Type-C applications. The USB Power Delivery Analyzer connects in-line between two Type-C devices, and non-intrusively captures all communication between on both the CC1 and CC2 signals. This tool is able to capture the PD negotiation for power, USB data roles, and DisplayPort, or other Type-C Alternate Modes. Total Phase also provides various USB protocol analyzers supporting a wide range of data transfer rates, including USB 1.0, USB 2.0, and USB 3.2 up to 5 Gbps. When used with the Data Center Software, users can easily monitor and debug USB traffic occurring on the bus in real time. Additionally, cable developers can comprehensively test USB Type-C cables using the Advanced Cable Tester v2. This tool tests for pin continuity, E-Marker verification, DCR resistance, and quality of signal.

For more information on how our tools can help with the development of USB Type-C, please contact us at sales@totalphase.com or schedule a demo below.

Request a Demo


How Can I Perform a Long-Term Capture of USB Data for Troubleshooting and Analysis?

$
0
0

Question from the Customer:

We’re troubleshooting a problem that only occurs after days of successful operation. We have no clue of the root cause. To save time, we are now running the device through a burn-in chamber – but it still takes hours for the failure to occur. Our problem is collecting the data. When the RAM buffer is almost full, the capture stops. What can we do to capture USB data over longer periods of time? We’re using the Beagle USB 5000 v2 SuperSpeed Protocol Analyzer - Standard Edition.

Response from Technical Support:         

Thanks for your question! Captures in the are limited by the RAM of the analysis PC used with the Beagle USB 5000 v2 analyzer. However, there are settings you can apply to capture only the data you need for troubleshooting and analysis.

Memory and Capture Limit

The Beagle USB 5000 v2 analyzer constantly streams data to the analysis PC.  This allows the memory on the Beagle USB 5000 v2 analyzer to free and allowed infinite capture. However, as mentioned above, when the RAM of the analysis computer is filled, the capture will stop. The limitation on capture size is based on the RAM of the analysis computer. There are methods to capture data over longer periods, which are described in the following sections.

Triggering a Capture

The Beagle USB 5000 v2 analyzer can be set up to only store data when certain events occur. When the designated event occurs, the capture mechanism is triggered, and the data is downloaded to the computer. Triggering and Capture Control can be configured with the Data Center Software.

  • Device Settings can be used to configure the capture mode.
  • Capture Control can be used to monitor the capture in progress, as well as start and stop a capture.

For more information, please refer to the sections Triggering a Capture, Capture Control, and USB Device Settings in the Data Center Software User Manual.

Filtering Unnecessary Data

When the cause of the error is unknown, we recommend filtering out unnecessary data. You can do that by using LiveFilter to exclude “superfluous” data such as SOFs/Keep-Alive, Chirps and Reset, Suspend, Connect Events. LiveFilter is provided with the Data Control Software as shown below.

LiveFilter accessed via Data Center Software

The following video shows how to use filtering techniques including LiveFilter.

Saving Data on Hard Drive

If you need to save data that exceeds the capacity of the RAM of the computer, you can use Beagle Software API to create a program to save data to the hard drive or other storage device. The API supports several operating systems and program languages. In addition, functional examples are provided that can be used as-is or modified as needed. For more information, please refer to the API Documentation section of the Beagle Protocol Analyzer User Manual.

We hope this answers your question. Additional resources that you may find helpful include the following:

If you have other questions about our protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application.

5 IoT Trends Everyone Should Look Out For

$
0
0

The Internet of Things (IoT) is one of the fastest-growing markets for new technology with billions of new devices being deployed each year. The concept of the IoT is simple: adding internet connectivity to everyday objects reveals a whole new range of possibilities for collecting data from the environment in ways that enhance consumer convenience and create new value. 

The excitement surrounding the development and proliferation of IoT technologies is absolutely warranted given the range of potential applications: connected health care, smart cities, autonomous vehicles, wireless location tracking, smart stores, and more will all see increased adoption as the IoT market fully develops over the next decade. Today, we wanted to highlight five of the most important trends that are emerging as we continue to discover the power of the IoT.

Here are five of the latest IoT trends that everyone should look out for in 2020.

IoT Big Data is Growing and Becoming More Important 

With the number of IoT devices deployed around the world growing exponentially each year, the IoT is the driving force behind the growth of big data

As recently as 2015, researchers measured a total of 13.9 billion active internet connections across all devices around the world. These included 3.8 billion IoT devices and just over 10 billion mobile devices. Four years later, in 2019, the number of mobile devices connecting to the internet had grown by 10% to just over 11 billion devices. During the same time period, however, the number of IoT devices more than doubled from 3.8 billion to over 8.3 billion devices. Analysts now believe that by 2025, over 41 billion IoT devices will generate 79.4 zettabytes of data on a daily basis.

Each IoT device is equipped with sensors that capture a variety of data and feed it into cloud databases, with measurements transmitted hundreds or even thousands of times per day. With each IoT device generating thousands or in some cases millions of data points per year, it's easy to see how the growth of the IoT device market will necessitate the development of new technologies and working methods for storing and analyzing data, including machine learning and pattern recognition algorithms powered by AI.

IoT Tech Will Enable Smart Cities

Smart cities are an exciting area of IoT technology application with the potential to drive change in many of the ways that we live our daily lives. IoT devices enable city planners and municipal governments to gather data and efficiently allocate resources towards resolving issues that impact residents. Today, there are already IoT-powered tools for tracking and managing air pollution and helping drivers discover an available parking space close to their destination. 

Smart city solutions can also be used to promote energy efficiency and convenience in urban centers. Los Angeles, which suffers from some of the worst vehicle traffic in North America, has already implemented a "Smart City" solution to help alleviate congestion. IoT devices with sensors are integrated into the pavement to capture traffic flows in real time, sending updates to an integrated platform where analysts can adjust traffic lights to accommodate for unexpected volume. 

Thanks to IoT technology, cities can now make investments in a data-driven approach to managing traffic, increasing efficiency of trash collecting, reducing energy consumption, and other initiatives.

Iot Devices Will Enable Wireless Sensing and Location Tracking 

Whether you're an enterprise organization focused on IT asset inventory or you're just sick of misplacing the television remote, you'll be happy to know that IoT devices are ending the era of human existence where things are easily lost, misplaced, or stolen and never heard from again.

We're already seeing early adoption of consumer-focused IoT products that users can attach to their most precious items to make them traceable in the event of loss or theft. These products leverage technologies that are already widespread and familiar to consumers, such as Bluetooth and GPS. They may connect to the internet via Wifi or to nearby devices that run the necessary tracing application via Bluetooth connection.

Wireless sensing is already playing a major role in industrial settings, where IoT devices equipped with sensors can regularly upload environmental data from throughout the manufacturing process, including temperature and pressure readings and other data. Wireless sensing means that process owners in manufacturing can maintain a tighter level of control with advance notifications of status changes before they have negative consequences.

Products like this Smart Thermostat are already using wireless sensing to detect temperatures within the home and manage temperature control systems. In the future, we'll see more such projects that enhance customer convenience while helping to drive down energy costs in residential, commercial and industrial settings.

The IoT Will Play a Larger Role in Helpdesk and CRM

Customer relationship management and customer service are two areas of application for IoT devices that may seem unexpected, but really have loads of potential. 

Imagine a company that makes a washing machine appliance for residential use. To improve customer service, the company might install an IoT device into its products that periodically uploads information about the machine status to a cloud database where it can be accessed by the manufacturer. The manufacturer could connect data uploads from the field to specific machines purchased by specific customers. In this way, the manufacturer of a device might become aware of a potential malfunction or defect even before it results in negative customer experience.

Data collected from machine-bound IoT devices could be fed directly into CRM tools and used to provide more timely and effective support to customers. This model could even be expanded to include installed diagnostic devices for other home electronic devices, such as cable boxes, kitchen appliances, home security, and more. The core concept is that manufacturers will be able to more quickly diagnose technical issues and assist customers in resolving their issues more conveniently and at a lower cost.

IoT Technologies Will Drive Growth in Industrial and Automotive Industries 

Car-makers and the world's biggest technology companies are relying on connected devices and the IoT to drive the development of new automotive technologies, including driver assistance features and self-driving automobiles. The world's leading car manufacturers have partnered with the world's biggest tech companies to make this happen, including collaborations between:

  • Amazon and Toyota, working together on a multi-functional self-driving vehicle
  • BMW and Intel, who plan to deploy self-driving cars on the roads by 2021
  • Ford, who recently acquired AI start-up Argo and are working with Domino's and Wal-Mart to automate their delivery businesses with self-driving vehicles
  • General Motors and Lyft, who are collaborating to launch an autonomous ride-hailing service

On the industrial side, the IoT is enabling a new industrial revolution in the form of Smart Manufacturing. Granular control and oversight of the manufacturing process will be powered by IoT devices, helping to minimize factory downtime, automate more processes, and drive down inventory costs with just-in-time delivery.

Conclusion

Are you building an IoT device that will change the world? Total Phase can help!

We create simple and effective diagnostic tools that help embedded systems developers design better IoT products with fewer errors and bring them to market faster than ever before. To learn more about how our products can support your next IoT project, let us know what you're working on!

Request a Demo

What Information Do I Need to Identify and Write to an I2C Slave Device?

$
0
0

Question from the Customer:

I am learning to use the Aardvark I2C/SPI Host Adapter with the Aardvark Software API aai2c_file example. One of the arguments this method requires is the slave address. How can I discover the I2C slave address?

Here is a diagram of my setup – the Aardvark adapter is the master device.

Diagram of Aardvark adapter connected to PCE-E Transposer

Response from Technical Support:         

Thanks for your question! We will start with an overview of the aai2c_file function, and then  discuss how to discover the I2C slave address.

 About the aai2c_file API Example

Here is an overview of calling the aai2c_file and its parameters

The callout:

  • aai2c_file PORT SLAVE_ADDR filename

The parameters:

  • PORT is the port number for the Aardvark adapter. You can acquire this information by running the function py with the Aardvark adapter connected to your PC.
  • SLAVE_ADDR is the I2C slave address of the slave device that you are attempting to write to.
  • filename is the data to write to the I2C slave device. The file should be in binary format, which could look like 670f08c3010000ca00880246.

Configure and Identify Slave Addresses

Each slave device has a unique address to identify it on the bus. These addresses are pre-defined and are normally provided in the datasheet of the device. To identify multiple devices on the same bus, you can set the least significant bits.

In standard I2C, the slave address is 7-bits.  The extended 10-bit address is also supported. For more information about I2C addresses, please refer to the article 7-bit, 8-bit, and 10-bit I2C Slave Addressing.

Recommended Information

We recommend going through our Knowledge Base article Performing random reads with an I2C slave. This article uses the Control Center Serial Software to show examples of performing random reads via the GUI interface and using Batch Mode. The same concepts can be applied to API functions.

This article also provides an example of discovering the necessary information from a datasheet.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com. You can also request a demo that is specific for your application.

Request a Demo

Wide Interest Found in USB Type-C and Power Delivery at Embedded World 2020

$
0
0

We recently returned from Nuremberg, Germany where the Embedded World 2020 conference was held.  While the show attendance we considerably lighter than past years due to concerns about the coronavirus, we still were able to meet many existing Total Phase customers from throughout Europe.  We had many customers stop by to say hello or show their preferred tool to their colleagues.

 

Snowing in Germany

 

The Embedded World conference featured lots of hand sanitizer, fist bumps, and waves from a distance.  Also unique to this year’s conference was a very high level of interest in USB Type-C and Power Delivery technologies.  With the recent decision in the EU to require a single common phone charger, there is an expectation that Type-C tools will become increasingly required.  If all phones move to a Type-C connector, the ecosystem will have to adapt also.  It won’t only be chargers that are redesigned, but also accessories such as docks, headphones, and other accessories.  Many visitors to our booth asked about our USB Power Delivery Analyzer and wanted to see the data it captures.

 

Booth at Embedded World 2020

 

The USB Power Delivery Analyzer is a real-time PD sniffer.  It captures all Power Delivery protocol traffic from the CC1 and CC2 lines while passing through any USB or Alt Mode data.  The tool also graphically displays current and voltage measurements from VBUS and VCONN with one-click correlation to the PD protocol data.

There was also related concern around Type-C cables.  Our booth also featured the Advanced Cable Tester v2 designed specifically for testing USB Type-C cables for safety and quality.   With phone charging moving to Type-C, which is already common among Android phones, ensuring the power carried over the cable will be safely delivered is vital.

We also had the opportunity to meet with many of our European and Asian distributors who were also in attendance.   It is also a great opportunity to get updated on the latest product news and learn about business in their individual geographies.  If this information is exchanged over plates of schnitzel and pints of beer, it’s even better!

All in all, despite the lower turnout, it was a great week.  We are looking forward to seeing everyone again in 2021 – and perhaps with some new products to share…

Which Analyzer Handles Alternate Mode Protocol Negotiation and DisplayPort Signals?

$
0
0

Question from the Customer:

I'm looking for is a USB-C protocol analyzer for that handling alternate mode protocol negotiation, as well as power measurements.

  • I plan to use USB Type-C cables for delivering power, USB 2.0, and DisplayPort signals to a display.
  • The DisplayPort will be delivered using the USB-C alternate mode.

What can you recommend? Also, DisplayPort protocol decoding is not critical, but that would be a nice feature to have on hand.

Response from Technical Support:

Thanks for your question! Using our USB Power Delivery Analyzer with Data Center Software can support the requirements you that you described.

Monitor and Decode Traffic

Here is a summary of what the Power Delivery Analyzer can monitor:

  • Traffic is monitored is on the CC1/CC2 (configuration channel) pins, while concurrently passing through USB 2.0 and USB 3.1 (up to Gen2) data lines.
  • Power negotiation, including alternate video display modes (VDM) for HDMI, Display Port, and Thunderbolt is monitored on the CC1/CC2 lines and transmitted to the analysis PC via the included USB A to USB Micro-B cable.
  • With the Data Center Software, you can monitor and decode the Power Delivery protocol traffic, including DisplayPort. An example is shown below.
Data Center monitors and analyzes the data captured by the Power Display Analyzer

Power Measurements

Here are the characteristics of the power measurements:

  • Vbus Voltage: measured via an INA231 ADC on the Vbus lines of the USB Type C receptacle connector pins A4, A9, B4, and B9
  • Vbus Current: measured via an INA231 ADC across a 0.015 Ohm shunt resistor between the Vbus input Type C receptacle and the Vbus Type C plug
  • Vconn Voltage:  measured via INA231 ADC on CC2 signal (pin B5) of the USB Type C receptacle. Note - you may need to flip the PDA over if Vconn ends up on the CC1 signal pin (A5).
  • Vconn Current: measured via an INA231 ADC across a 0.015 Ohm shunt resistor between the CC2 (pin B5) Type C receptacle and the CC2 (pin B5) Type C plug
  • CC1 Voltage: measured via STM32's internal ADC – this signal clips at 3.3V, which is useful for "traffic indication".
  • CC2 Voltage: measured via STM32's internal ADC – this signal clips at 3.3V, which is useful for "traffic indication"

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you want more information, feel free to contact us with your questions. You can also request a demo that applies to your application.

Request a Demo

Viewing all 822 articles
Browse latest View live