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

How Do I Make the Promira Serial Platform Work with 10-bit Addresses?

$
0
0

Question from the Customer:

I’ll be using the Promira Serial Platform in I2C slave mode. I have two questions:

  • Does Promira recognize RESTART signal when configured as a slave?
  • Can I configure a slave Promira platform to respond 10-bit addresses?

Response from Technical Support:

Thanks for your questions!  To start, the repeat start condition is recognized when the Promira Serial Platform  is configured as slave.

The Promira platform in slave mode does not natively support 10-bit addressing. However, we have a workaround solution for 10-bit addressing for the Promira platform in slave mode.

Set Up the Data for the Promira Serial Platform to Respond to 10-bit Addresses

You can use this workaround with Promira platform and the Control Center Serial Software. Note, the 10-bit addressing mode of an I2C bus is transparent to slaves with 7-bit addresses because the master sends two address bytes instead of one.

The 10-bit addressing mode is transparent to slaves with 7-bit addresses
Total Phase uses 7-bit addressing for all of its products.  To ensure that 10-bit addressing will be properly handled, 10-bit addressing was designed to be compatible with 7-bit addressing. This allows developers to mix two types of devices on a single bus. When communicating with a 10-bit address device, a special reserved address is used to indicate that 10-bit addressing is being used.

Here are the instructions:

Set the Promira platform's slave address to the first 7-bits sent by the master.

  • The first address byte consists of the extended addressing code (0b11110) plus the 2 most significant bits of the device address and the read/write bit.
  • The second byte contains the 8 least significant address bits.

The Promira platform will respond to 10-bit addressing if its slave address is set to the first 7 bits sent by the master. For example, to send a write command to a slave with address 0x355, the master sends the following:

  • Byte 1: 0b11110110 (5-bit extended addressing code + 2 most significant address bits + 1 write bit)
  • Byte 2: 0b01010101 (8 lower bits of 10-bit address)
  • Bytes 3+: Write data. In this case, you set the slave address of the Promira platform to 0b1111011 (0x7B).

Note that the first data byte the Promira platform sees is not actually data; it is the second address byte sent by the master. For additional information about this method,  please refer to the knowledge base article 7-bit, 8-bit, and 10-bit I2C Slave Addressing.

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

More questions? Other projects? You can also contact us and request a demo that applies to your application, as well as ask questions about the Promira Serial Analyzer and other Total Phase products.

Request a Demo


Canary Connect Use Case: Using the Aardvark I2C/SPI Host Adapter to Make Homes Safer with Embedded Technology

$
0
0

key-2114046_1280Embedded technology is everywhere – hidden behind the scenes of the different electronics we use every day. One of the most interesting things I find working in the embedded industry is learning about how people in various trades use technology, and how our tools help them develop the products we use every day — from wearables and consumer electronics to the cars we drive and planes we fly.

Canary Connect Uses Aardvark Adapters with Time-Saving Results

I recently visited Canary Connect, an all-in-one security system startup that provides an innovative solution for home safety. They are known for their intelligent security system and easy-to-use camera devices that protect and notify homeowners about changes in their home environment, anywhere and anytime. Canary is a heavy user of our Aardvark I2C/SPI Host Adapter; they use the Aardvark for testing all the sensory components that communicate over I2C in their security device.

Canary has released a one-of-a-kind product with the help of the Aardvark I2C/SPI Host Adapter – the Canary Flex, the first weatherproof and Wi-Fi-enabled security camera with a sleek and compact design. The Aardvark adapter was used extensively in the development of the new product, including testing and qualifying vendor sensors for ambient lighting, air quality, and battery life – all of which are imperative elements of an effective and high-quality security camera.

Outdoor security cameraI spoke with Canary’s Electrical Engineer, David Ye, about his experience using the Aardvark adapter for prototyping the Canary Flex. He described the Aardvark adapter as an “embedded screw driver,” an essential and reliable tool for I2C that saves time and makes his job easier.

It’s Not Just the Aardvark Adapter – It’s all the Software that Comes with It Too.

One of the main advantages of using the Aardvark adapter, David mentioned, is the software package that comes with it. He uses the Control Center Serial Software’s batch mode to test the sensor components all in one go, as well as in conjunction with a scope to replay and debug troublesome signals. The ease of use of the software interface makes the Aardvark adapter a convenient tool that significantly reduces an engineer’s development time.

In addition to the Aardvark adapter, David also uses the Beagle I2C/SPI Protocol Analyzer for analyzing and monitoring I2C data. He added that another reason that he likes using Total Phase tools is the cross-platform capability, as he mainly works in a Linux environment.

 aardvark-250  Beagle I2C/SPI Protocol Analyzer

Canary’s use of the Aardvark adapter is a prime example of how the versatility and convenience of Total Phase tools help embedded engineers with their projects. It’s always rewarding to learn that our tools are contributing to the development of innovative products, and in this case, helping to protect home safety.

How can Total Phase products work with your innovations? You are welcome to contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo

By Annie Lu, International Sales Manager

Using the Beagle Protocol Analyzer, How Can I Easily Maximize the Volume SPI Data Capture?

$
0
0

Question from the Customer:

I am planning to use the Beagle I2C/SPI Protocol Analyzer to capture SPI data for extended periods. The SPI clock rate is 10 MHz. This will be the first time I’ve used a protocol analyzer.  To quickly start this project, I would like to start with the easiest method available.

Response from Technical Support:

Thanks for your question! The Beagle I2C/SPI Protocol Analyzer can be used with Data Center Software or Beagle Software API to monitor standard I2C or SPI devices. However, most of our customers use the Beagle I2C/SPI Protocol Analyzer with Data Center Software. Our feedback here is assuming you will also be setting up the Data Center Software for monitoring your SPI bus.

The Data Center Software streams the capture to the RAM on your computer; the capacity of the data capture is determined by the capacity of RAM. The most common limitation in capture size is related to the available RAM on the analysis PC (computer host).  You can use the Data Center Software to set how much RAM to use for capturing data.

Using the Capture Control Window, the Software Capture Buffer progress bar represents the total amount of memory available in the Analysis PC.

Data Center Capture Control Window This Capture Data Limit can be adjusted using the Capture Settings dialog. By default, the capture limit is set to 50% of available memory. The capture limit has an upper limit of 80% of the available memory. Consider the overall usage of the computer before setting the capture limit; on an extremely busy computer, if the application starts swapping memory, incoming capture data may be lost.

As you will be setting up the Beagle I2C/SPI Protocol Analyzer for the first time, we suggest going through Beagle I2C/SPI Protocol Analyzer Quick Start Guide. These getting started guidelines are intended to facilitate the first use of the Beagle I2C/SPI analyzer.

To further maximize the data capture, you can use Beagle Software API to create a custom program to deliver massive streams of data to a hard drive. For more information, please refer to the section API Documentation of the Beagle Protocol Analyzer User Manual.

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

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo

What’s going on with Nintendo Switch’s USB-C charging cables?

$
0
0

Sub-standard USB-C cables have caused a lot of trouble, and Nintendo is the latest company to feel the burn. Within the last couple years, Nintendo has released one its newest gaming consoles, Nintendo Switch, which combines a home console and a handheld gaming device.

Nintendo SwitchLast month, many Switch users reported their Switch units were being bricked, meaning they were no longer able to power their devices – turns out that cheap USB-C-to-A cables were to blame.

Nintendo was quick to comment, releasing a statement saying, “Nintendo (recommends) that Switch owners only buy officially licensed Switch products . . . Unlicensed products and accessories do not undergo Nintendo’s testing and evaluation process”. Furthermore, Nintendo’s FAQ section was updated to include an entry regarding third-party cables. Nintendo highlights that not all USB-C-to-A cables are the same and using a USB-C-to-A charging cable is perfectly fine as long as it has a 56 kΩ resistor mounted.

USB-C is different from traditional USB in many ways. USB-C cables can carry up to 100 watts of power, versus 2.5 watts with USB 2.0 or about 15 watts with USB 3.1. Many third-party manufacturers do not follow the USB-C specification properly; as a result, cheap USB cables may be missing the resistor that regulates the higher power.

How Are USB-C Charging Cables Verified?

Total Phase’s Advanced Cable Tester helps manufacturers ensure that cables are of high-quality and perform well and as advertised. The Advanced Cable Tester examines E-Marker, Continuity, DC resistance, and Signal Integrity with results delivered in under 20 seconds.

Advanced Cable Tester

Third-party cables that are missing 56 kΩ resistors would be identified by the Advanced Cable Tester, as it reports on Rp (pull up resistor) and Rd (pull down resistor) functional signals. For USB-C-to-A cables, a 56 kΩ resistor is required, and the resistor value would show up in the Rp section of the test results. If the Rp value is anything other than a 56 kΩ resistor, the Advanced Cable Tester would flag it as an error. The continuity testing capability is included in the Advanced Cable Tester - Level 1 Application.  With the Advanced Cable Tester – Level 2 Application, signal integrity testing is added for quality checks. Here’s a quick look at a test result from the Advanced Cable Tester showing cable continuity tests: Advanced Cable Tester Results

Click here to learn more about the Advanced Cable Tester.

Feel free to reach out to sales@totalphase.com if you have any questions.

Which Capture Mode Best Supports My Project? How are Transactions Timestamped in the Data Center Software?

$
0
0

Question from the Customer:
I am using the Beagle USB 480 Protocol Analyze and the Data Center Software – I’m looking to improve throughput on a USB system. Looking at the data capture, I saw about 300ms delay between index 17 and 27. To make sure I understand the results, I have some questions:

  1. Index 18 is [177175 IN-NAK], - does that indicate the number of IN-NAKs is 177175? Also, during this period, the device has no available data. Is that correct?
  2. Index 18 has a timestamp - is this the first IN-NAK timestamp,?
  3. In addition, I see the timestamp of index 17 lags behind that of index 9 – what caused that to happen?

Response from Technical Support:

Thanks for your questions! For your first question, the answer is yes – the number in front IN-NAK is a count so if your capture there were 177175 IN-NAKs that occurred at Index 18.  On the second question, you are also correct.  A group of collapsed transactions are timestamped by the first transaction.

How to Interpret Timestamps in your USB Data Capture

Here’s some information about the lag time that you saw between index 17 and index 9 – whether or not the information is sequential depends on the capture and view modes that are used:

The Data Center Software, when used with the Beagle USB 480 analyzer, has two capture modes: Sequential and Aggregate.

  • Sequential – saves the information necessary to display the capture in time-ordered Packet View.
  • Aggregate – discards the information saved in Sequential Mode in order to reduce memory usage. Using this mode disables the ability to use the Packet View.

In Aggregate mode, transactions may appear out of order because the beginning of a transaction may have started before a previous transaction ended.  Because packets are grouped together based on the first packet timestamp, you may experience this overlap in timestamps.

It sounds like you most likely ran your capture in Aggregate mode.  You can check your Capture Settings to confirm.  If you ran the capture in Sequential mode, then change to the Packet View to see all packets in the time stamped order.

By default, the Data Center Software compresses individual data-less sequences to reduce memory usage. For additional information, please prefer to the Data Center Software User Manual.

The Data Center Software Provides Three Views of USB Data

You can use one of three views (Packet, Transaction, and Class) based on your system requirement. When you use the Class or Transaction view in the Data Center Software, the records may not be in time-order due to how the data is grouped for higher level parsing. You can see the records in time-order by switching to Packet view, which disables the higher level parsing. However, be aware that only captures run in sequential mode can be viewed in packet view.

To select a Capture View, use the Capture View Menu.

  • Packet – Protocol-level decoding is performed, and records are in time-order. Collapsed groups, such as SOFs and IN-NAKs are broken up as necessary to ensure records are in timestamp order. Only captures run in Sequential Mode (Section 6.2) can be viewed in Packet View
  • Transaction – Protocol-level decoding is performed. Records may not be in time-order. Collapsed groups are not broken up for time-order preservation. Since there is no time-order restriction, captures generally appear more compact in this view than in Packet View.
  • Class – Class-level parsing is performed. Records may not be in time-order. Captures generally appear high-level and compact in this view.

For your request, to view the records in in time-order we recommend using the Packet view when recording data.

Additional resources that you may find helpful include the following:

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo

Getting started with automotive audio bus analysis? Here’s an overview about using the Total Phase A2B Bus Monitor.

$
0
0

We just created a new video  to help you understand and easily use the Automotive Audio A2BTM bus analyzer for the automotive audio bus.  Here’s an overview of what our video tutorial covers:

Automotive A2B BusPhysical Setup

The video example uses these TotalPhase components:

A2B equipment

Note how short the test cable is – that is important for signal integrity. Other cables styles are available in our store  - we suggest using a pre-assembled cable, which prevents problems that can occur from cutting and splicing cables.

Data Analysis

Here’s a diagram of the I/O signals:

Diagram of A2B IO signalsThe video provides a good overview of the A2B superframe structure:

  • The first two data slots contain captured control data
  • The remaining slots (14 slots for TDM 16, 30 slots for TDM 32) contain audio data
  • The upstream and downstream components of the superframe
  • Master and slave relationships to the data

A2B Superframe for Sampling RateHere’s an example of the data that is captured and displayed:

IO Bus dataThere are features for debug and analysis, which are also demonstrated live in the video.  The features include:

  • Scrolling through live data
  • Filter data, upstream and downstream
  • Selected nodes and registers
  • View I2C commands
  • View addresses
  • Look for interrupts
  • Search for flags, such a B (broadcast) flags
  • . . . and more.

Audio Analysis

You can listen to the sounds while viewing the data. You can also view the analog attributes of the signal: amplitude or frequency.

  • Select which channel(s) to monitor
  • View data while listening:
    • amplitude or frequency
    • select how many channels to monitor

Saving data for details analysis is easy – click stop and data is saved. You can then export the data to another tool for audio analysis, such as the  Audio Precision APx525.

Want the details now? Here’s the video:

Here are resources that you may find helpful for your A2B project:

More questions? Need more details? You can also contact us and request a demo that applies to your application, ask questions about the  Promira Serial Platform and the related applications, as well as other Total Phase products.

Request a Demo

Automotive audio bus (A2B), trademarked by Analog Devices.

Secure Your A2B Adapter Board in an A2B Adapter Board Enclosure

$
0
0

With the A2B Adapter Board, you have the configurable device with two independent AD2425-based A2B node for monitoring or interacting with A2B systems. How about securing and protecting the board in the working environment? No problem – we also provide the A2B Adapter Board Enclosure.

A2B Adabler Board Enclosure assemblyYou probably have the Promira Serial Platform and the A2B Bus Monitor - Level 1 Application, and the A2B Bus Monitor User Manual. Here are the instructions for the A2B board enclosure.

Instructions for Assembling the A2B Adapter Board Enclosure With the A2B Adapter Board

Here’s what you get with the A2B adapter board kit:

  • A2B Board Enclosure
  • 4 screws

The tools you will need:

  • Pliers
  • Screwdriver

 

Prepare the A2B board for assembly:
  1. Hold the A2B Adapter Board upright
  2. Using the pliers, gently break off the tab on each corner.
Remove corner tabs from A2B Adapter Board
The Adapter Board Enclosure comes in 2 parts: top cover and bottom plate.The picture shows how to align the board with the enclosure. It also shows that the tabs of the A2B Board were removed.  Align A2B board to enclosure
Secure the board to the bottom plate:
  1. Align the four screw holes on the corners of the plate with the holes on the A2B Board.
  2. Using the four provided screws, securely screw the board in place.

 

 Secure A2B board to enclosure base plate
Secure the cover to the bottom plate:
  1. Align the openings of the top cover with the ports on the board.
  2. Place the top cover of the enclosure onto the bottom plate.
  3. Make sure the ports are visible through the openings of the enclosure.

 

 

 A2B Enclosure Completed

 

 Here are resources that you may find helpful:

 

More questions? Need more details? Feel free to contact us at sales@totalphase.com. You can also request a demo:

Request a Demo

How Do I Connect the Signals from an Automobile Radio to a Komodo CAN Solo Interface?

$
0
0

Question from the Customer:

Can the CAN-H, CAN-L, and ground from an automobile radio that has been removed from a vehicle be connected directly to the Komodo CAN Solo Interface?  I’m looking to transmit CAN messages to the radio using the Komodo interface directly – will additional wiring be needed? Power will be supplied to the radio through a separate power supply. Automobile radio to be set up to communicate with Komodo CAN Solo InterfacesResponse from Technical Support:

Thanks for your question!  The radio can be connected to the Komodo interface to transmit CAN messages. The CAN-H, CAN-L and Ground from your target device can be connected directly to CAN+, CAN- and GND respectively of the Komodo terminals: DB-9 connector or the terminal block.

The IO Pin-out of the Komodo Interface Terminals

Here is the pin-out of the DB-9 connector:

 

Pin 1: No Connect
Pin 2: CAN-
Pin 3: GND
Pin 4: No Connect
Pin 5: SHLD
Pin 6: GND
Pin 7: CAN+
Pin 8: No Connect
Pin 9: V+
DB9

Here is the pin-out of the terminal block:

 

Pin1: GND
Pin 2: CAN-
Pin 3: SHLD
Pin 4: CAN+
Pin 5: V+
Terminal block for Komodo CAN Interface signals

Note: The connectors and IO signals for each channel of the Komodo CAN Duo Interface are the same.

To communicate through either of these connectors, you will need to use the Komodo Software API. For information, please refer to the API Documentation section of the Komodo CAN Interface User Manual. Also, functional example programs are provided with the API, which can be used as is or modified as needed.

Additional resources that you may find helpful include the following:

More questions? Need more details? Feel free to contact us at sales@totalphase.com. You can also request a demo:

Request a Demo


How Do I Ensure I Get the Correct Error Codes When I Test My I2C Device for Failures?

$
0
0

Question from the Customer:

I am testing the usage of the Aardvark API Software in my C# application and it works as expected. When I change the address of my device to a different address used in the application (i.e., make it the wrong address) and then use aa_i2c_read, the data I receive is 0. However, I  expect to get the error (AA_I2C_READ_ERROR) as indicated in the Aardvark I2C/SPI Host Adapter User Manual. This seems to occur with other function calls as well.

Also, when using AardvarkI2CFlags, I don't have access to all the selections. Looking at the user manual, this is probably because of the firmware version I’m using. How can I determine which firmware version my Aardvark I2C/SPI Host Adapter has, and if needed, upgrade to the latest version?

Response from Technical Support:

Thanks for your questions! Here is the information you requested:

What the AA_I2C_READ_ERROR Error Message Means

If the Aardvark I2C/SPI Host Adapter is unable to reach the slave for read, the value returned by the API is 0 (length of bytes read). When this occurs, the data buffer is initialized to 0. The value returned by API is negative when other errors occur. For more information about error codes, please refer to the section Error Codes in the Aardvark I2C/SPI Host Adapter User Manual.

How to Check and Update the Aardvark I2C/SPI Host Adapter Firmware

You can easily detect the firmware version loaded into the Aardvark adapter with the Control Center Serial Software. The Adapter -> Connect window lists the available Aardvark adapters with details on the versions of hardware and firmware, and the serial number. You can upgrade your firmware with the Aardvark Firmware Update Utility.

Additional resources that you may find helpful include the following:

We hope this answers your question. Looking for more information? You can contact us at sales@totalphase.com. You can also request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

How Do I Create a Clock Duty Cycle that is “Outside the Spec” for an I2C Device?

$
0
0

Question from the Customer:

I am using the Promira Serial Platform with the I2C Active - Level 1 Application. When using this and SDA line, the clock duty cycle is about 30%. Is there a way to increase serial clock duty cycle for this I2C device? I ideally want it at 50%. Here’s what it looks like on the scope. Channel 1 is the clock at 30% duty and channel 2 is data at 50% duty. Example of I2C duty cycle

How can I get a 50% SCL duty cycle?

Response from Technical Support:

Thanks for your question! The 30% low duty cycle is intentional - it conforms to I2C specifications.  It is also important for sampling data, as it provides enough time for data changes to take place.  With the current version of Promira firmware, the duty cycle cannot be modified - however, we do have a solution for you.

To Specify the SCL Duty Cycle, You Can Use API Software and a GPIO Pin

Using the Promira API Software , here are the suggested API commands to use to switch the selected GPIO pin to create a 50% duty cycle.

ps_queue_gpio_set(queue, STATE0)
ps_queue_delay_ms(queue, on_time_in_ms)
ps_queue_gpio_set(queue, STATE1)
ps_queue_delay_ms(queue, off_time_in_ms)

For the target duty cycle of 50%, on_time_in_ms = off_time_in_ms. The STATE0 and STATE1 parameters are set in terms of bitmasks of the available GPIOs. For more information about API commands, please refer to the API Documentation section of the Promira Serial Platform I2C/SPI Active User Manual.

Here are some factors to consider:

The switching speed of the GPIO pins depends on the time taken to execute the lines of the script. Additionally, the OK may add delay due to internal overhead. The Promira platform also has latency caused by the Ethernet/USB link between the computer and the Promira platform.

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

More questions? Other projects? You can also contact us at sales@totalphase.com, or request a demo that applies to your application, as well as ask questions about the Promira Serial Platform and other Total Phase products.

Request a Demo

USB 3.1 Gen 1 and 3.1 Gen 2 – What’s the Difference?

$
0
0

Universal Serial Bus, or USB, is one of the most widely used protocols in technology. Most people, from experienced techies to the average consumer, use USB almost daily as it is incorporated into billions of devices worldwide. Over the years, multiple USB specifications have been released, each with improved speeds and efficiency. Particularly, with recent widespread technological advances and production of progressively complex devices, a USB spec that offered a larger bandwidth and quicker throughput performance was required. To answer this demand, the USB 3.0 spec was released in 2008.  This new version of the USB spec allowed for a vast increase of data transfer rates–up to 5 Gbps.

Five years later, in 2013, came a new revision of the USB specification that could transfer up to 10 Gbps, twice that of USB 3.0. With the latest revision, there also came a name change to the preliminary USB 3.0 protocol; USB 3.0 became USB 3.1 Gen 1 and the successor was named USB 3.1 Gen 2.

USB 3.1 Gen 1 vs Gen 2: Data Transfer Rates

You might be wondering what are the differences between USB 3.1 Gen 1 and USB 3.1 Gen 2? The most apparent difference is the data transfer rates. As mentioned before, USB 3.1 Gen 1 can transfer data up to 5 Gbps, while USB 3.1 Gen 2 can transfer data up to10 Gbps. USB 3.1 Gen 2 is capable of supporting all data transfer needs, including audio and video data transfers, and has improved data decoding. Both Gen 1 and Gen 2 offer power management that allows for increased power efficiency that does not require device polling. They are also both backwards compatible with USB 2.0, while Gen 2 works with existing USB 3.0 hubs and devices.

USB and the Addition of Power Delivery

Around the time of the release of the USB 3.1 Gen 2 spec, USB Type-C cables and connectors were starting to be introduced, and now they are increasingly used together in newer designs. Many of the future cables will incorporate the performance of USB 3.1 Gen 1 and Gen 2 with the convenience of the versatile USB Type-C connector and the enhanced charging capabilities of USB Power Delivery.  For more on USB Type-C and USB Power Delivery see our post  about the Impact of the Type-C Connector and USB Power Delivery.

How Total Phase Supports USB Tests

Beagle USB 5000 v2 SuperSpeed Protocol AnalyzerTotal Phase offers multiple development tools suited for testing USB. For example, for the USB 3.1 Gen 1 spec, we offer the Beagle USB 5000 v2 SuperSpeed Protocol Analyzer, which can non-intrusively monitor Super, High, full, and low speed USB data. In conjunction with our Data Center Software, the Beagle USB 5000 v2 analyzer can capture USB 3.1 Gen 1 (or USB 2.0) communication in real time, without needing to capture, download, and parse data separately. Our Data Center Software also offers instant class-level decoding, and LiveFilter technology to search and filter for specific data patterns to quickly find bugs and bug sources. The Standard edition has a 2 GB buffer and offers a USB 2.0 downlink. For even faster download speeds, the Ultimate edition offers a 4 GB buffer and a USB 3.1 Gen 1 downlink.

USB Power Delivery

Along with the Beagle USB 5000 v2 SuperSpeed analyzer, we also have introduced new products for USB Power Delivery and Type-C cable testing Power Delivery Analyzerthat support USB 2.0 to USB 3.1 Gen 2 data rates. Our USB Power Delivery Analyzer non-intrusively monitors Power Delivery (PD) traffic on the CC1 and CC2 lines of Type-C compatible devices and in turn displays the power negotiation process and message decoding with our Data Center Software. By using both the hardware and software, you can capture real-time PD data and measure VBUS and VCONN voltage and current levels, which can be graphically displayed on your dashboard. You can also monitor the USB data roles, DisplayPort, or other Type-C Alternate Modes. These tools give you advanced insight into Type-C receptacle signals and power level negotiations, so debugging is quick and easy.

Advanced Cable Tester

Our Advanced Cable Tester is crucial for any company creating or integrating Type-C cables into their products. Because of the high-power levels and increased complexity of the cable itself, there is higher Promira Serial Platformprobability of error and failure. The Advanced Cable Tester together with our Promira Serial Platform provides comprehensive test coverage for cable safety and quality. Our Level 1 Application performs safety checks through testing and validation of signal continuity to prevent VBUS shortages. It also analyzes DCR and IR Drop to certify that VBUS and GND pins are supplying the required current and checks for E-Marker accuracy by comparing captured data to advertised data. Our Level 2 Application offers signal integrity testing with corresponding eye diagrams. Signal integrity checks are performed for High-Speed D+/D– (512 Mbps) and SuperSpeed pairs (5 Gbps, 10 Gbps, up to 12Gbps) to verify they meet the relevant specifications.

Here at Total Phase, we continually strive to provide the most relevant, top-quality testing and development tools so you can produce products that are reliable and safe. Our well-rounded and ever-progressing line of products guarantees your ability to keep up with the latest advances in USB.

How Do I Customize the Word Length Transmitted from an SPI Host Adapter?

$
0
0

Question from the Customer:

I’ve been using the Cheetah SPI Host Adapter for a while – today I have a question. I’m working on a prototype SPI device with a data length of 33 bits – it’s not based on a “normal” byte. I’ve been looking at the Cheetah Software API.  Is there a function I can use for transmitting variable length data?

Response from Technical Support:

Thanks for your question!  For interfacing with your SPI device, we recommend using the Promira Serial Platform and the appropriate SPI application for your setup. With the Promira Serial Platform and Promira Software API I2C/SPI Active, you can program the desired word length – the Cheetah adapter does not support this feature.

You Can Use Promira Software API to Customize the Desired Word Length

Here is the API function that you could use with the Promira platform to queue a command that writes a stream of the same word to the downstream SPI slave device:

int ps_queue_spi_write_word (

PromiraQueueHandle queue,
PromiraSpiIOMode   io,
u08                word_size,
u32                out_num_words,
u32                word);

Arguments:

queue: handle of the queue
io: IO mode flag as defined in table 12
word_size: number of bits for a word, between 2 and 32
out_num_words: number of words to send word value of the word to queue

Return Value:

A status code is returned with PS_APP_OK on success.

Function:

This function queues the out_num_words number of words to send and sets each word to the value of word.

Note: the outputs should be enabled using ps_queue_spi_oe before calling the  function ps_queue_spi_write_word. For more information about API commands, please refer to the section API Documentation in the Promira Serial Platform I2C/SPI Active User Manual.

SPI Applications for the Promira Serial Platform

Three levels of SPI applications are available for the Promira platform:

  • SPI Active - Level 1 Application: supports clock speeds of up to 12.5 MHz for master and 8 MHz for slave; up to 6 GPIOs (2 while using SPI); up to 1 Slave Select (configurable, shared with GPIO)
  • SPI Active - Level 2 Application: supports clock speeds of up to 40 MHz for master and 20 MHz for slave; up to 12 GPIOs; up to 3 Slave Selects (configurable, shared with GPIO); support for Dual I/O
  • SPI Active - Level 3 Application: supports clock speeds of up to 80 MHz for master and 20 MHz for slave; up to 16 GPIOs; up to 8 Slave Selects (configurable, shared with GPIO); support for Dual and Quad I/O

Summary of Promira Serial Platform Features

Here are some of the advanced features provided by the Promira platform:

  • Integrated level shifting  - configure a variety of voltages from 0.9 to 5.0 volts without an external level shifter accessory board.
  • High-speed USB connectivity - high performance and convenience for bench top programming, testing, and emulation.
  • Ethernet connectivity - convenient for bench top work, and enables remote control for your automation needs.
  • Provides up to 200 mA of power – you can easily power your project, which simplifies connectivity and troubleshooting.

In addition, you can download applications to the Promira platform at any time – easily upgrade your device when you need new features.

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

More questions? Other projects? You can contact us at sales@totalphase.com. You can also request a demo that applies to your application, as well as ask questions about the Promira Serial Analyzer and other Total Phase products.

Request a Demo

How Are Transactions Timestamped and What Is the Unit of Measurement for the Komodo CAN Solo Interface?

$
0
0

Question from the Customer:

I’m using the Komodo CAN Solo Interface with Komodo Software API. Can you help me understand the timestamps? Do timestamps change with the bit rate?  What are the units of the timestamp? Here is what I’m looking at in the example code monitor.c, the structure of km_can_info_t:

 

/* This will only work for sample rates that
are multiples of 1MHz. If any other rates
are desired, this code needs to be changed.*/
#define TIMESTAMP_TO_NS(stamp, samplerate_khz)
(u64)(stamp * (u64)1000 / (u64)(samplerate_khz/1000))

Response from Technical Support:

Thanks for your questions!  Here are the details about the sample rate.

The sample rate is separate from the Komodo Interface bit rate

The sample rate is the frequency of the clock that used internally for sampling signals – it is not the related to the bit rate of the Komodo Interface.

The timestamp value is generated in API

The API function km_get_samplerate returns the value of the sampling clocks frequency in Hertz. In the example code that you’re looking at, this value is obtained and converted into Kilo Hertz (shown as khz in the example code).

The actual timestamp value read from the device, which is part of the data structure returned by the API function km_can_read, is in ticks of the internal sampling clock. Both of these values, khz and ticks, are then passed to the macro TIMESTAMP_TO_NS, which converts the value to nanoseconds.

For the Komodo Interface, the sampling clock is 50 MHz. In this case, the parameters in the example script are as follows:

  1. km_get_samplerate(km) = 50000000
  2. km_get_samplerate(km) = (5000000/1000) = 50000
  3. info.timestamp (as an example) = 48
  4. Arguments to TIMESTAMP_TO_NS (48, 50000)
  5. Value returned by the above function:
    ((48 * 1000)/(50000/1000)) =
    ((48 * 1000)/50) =
    (48 * 20) =
    960 ns

Additional resources that you may find helpful include the following:

We hope this answers your question. You can contact us and request a demo that applies to your application, as well as ask questions about the Komodo CAN interfaces and other Total Phase products.

Request a Demo

How Can I Simultaneously Monitor and Respond to SPI and I2C Devices?

$
0
0

Question from the Customer:

I was wondering if you have a sniffer solution that allows me to test a single master on a bus? In other words, are there sniffers that respond as  slave devices with ACK and returning data?  I’m working with SPI and I2C devices.

Response from Technical Support:

Thanks for your question! For your test requirements, we suggest you to use two devices - the Beagle I2C/SPI Protocol Analyzer and the Aardvark I2C/SPI Host Adapter.

The Beagle I2C/SPI Analyzer Can Monitor Your Devices

The Beagle I2C/SPI analyzer is a non-intrusive bus monitor, which can monitor SPI up to 24 MHz, I2C up to 5 MHz, and MDIO up to 2.5 MHz.  However, the Beagle I2C/SPI analyzer cannot actively communicate on the I2C/SPI bus.

The Aardvark Adapter Responds to Devices in Slave Mode

The Aardvark adapter is a general purpose device that can actively communicate on the I2C or SPI bus, and provides master and slave capability. The Aardvark adapter supports I2C up to 800 KHz, SPI slave up to 4 MHz and SPI master up to 8 MHz.

Example Setup to Monitor and Communicate

Here’s a suggestion for setting up the Beagle I2C/SPI analyzer and the Aardvark adapter together: Use Aardvark I2C/SPI Host Adapter and Beagle I2C/SPI Protocol Analyzer together

The Aardvark adapter can be used to simulate a slave device to respond to your master, while the Beagle I2C/SPI analyzer non-intrusively monitors the bus in our Data Center Software.  We hope this answers your question. Additional resources that you may find helpful include the following:

Looking for more information? You can contact us at sales@totalphase.com. You can also request a demo that applies to your application.

Request a Demo

What Causes Partial Error Codes to Occur When the SPI Data Is Correct?

$
0
0

Question from the Customer:

I’m using the Beagle I2C/SPI Protocol Analyzer and the Data Center Software. I have a question about the results I see. I send a 20-bit (2.5bytes) data packet, and the results show the data is wrong.  The error code is P4, as shown below.

Viewing error codes in Data Center SoftwareWe are certain the SPI data is correct – why is the Data Center Software  showing an error?

Response from Technical Support:

Thanks for your question! The P4 (in the Error column in Data Center Software Transaction Log) indicates Partial last byte (P) errors.

What (P) Errors Indicate

Since the analyzer operates at a byte level, this error indicates the analyzer was not able to capture an entire byte. The number following the P (such as P4) represents how many bits of the last byte were captured.

Details About the Error Message P4

For SPI, the Beagle I2C/SPI analyzer uses the SPI slave select line to frame each transaction. The cause for this issue (P4) can be that the Beagle I2C/SPI analyzer sees 4 bits and the slave select line goes inactive, and then pads the rest of the byte with 0s.

For descriptions of all error codes, please refer to the Error Codes Table in section General Monitoring in the Data Center Software User Manual.

Sampling Rates Can Affect SPI Data Results

There are three different sampling rates that can be used to monitor the SPI bus. As a rule of thumb, it is recommended that the sampling rate be at least 4 times faster than the data rate of the monitored bus.

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

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo


How to Program Large Files to SPI Flash Memory Using the Cheetah SPI Host Adapter

$
0
0

Flash Center Software should be used with our Cheetah SPI Host Adapter to program large files to SPI flash memory. A common use case related to this topic is loading field-programmable gate array (FPGA) images to different addresses within SPI flash memory.

When loading large files, you often need to program one sector of memory while leaving others unaffected. In this tutorial, we will review how you can achieve that objective.

We will start by providing useful background information and context to help you understand the software and components involved and then dive into the process.

Requirements

Before you begin, you will need the following items:

Flash Center Programming Options

The Flash Center Software offers four programming modes: Program + Verify, Program, Program (No Erase), and Erase Cycle. It is useful to understand the behavior of the software in each of the modes before programming your device. Below, we will provide explanations for each.

Program + Verify

Program + Verify mode writes data to one or more attached memory devices and then reads back the data to verify it. If the device is an SPI Flash, an erase cycle is performed first. The erase will affect only the sectors of memory that will be written to.

If a write ends in the middle of a sector, it is possible to erase more data that is written. If more data will be erased than written, a warning will be logged. Additionally, if the data to be written is large enough to require the entire memory of the device to be erased, and the memory device has an “erase all” function, the Flash Center Software will use the device’s “erase all” function.

Program

Program mode writes data to the device but does not perform a verification step. If the device is an SPI Flash device, an erase cycle will be performed first, with the same caveats as Program + Verify mode.

Program (No Erase)

Program (No Erase) mode is a special mode for use with SPI Flash devices. It writes data to the device but does not perform an erase cycle. This is useful if multiple memory images are to be programmed to the device. Use “FF” as a pad value when loading each memory image to avoid corrupting previously written data. As the device may have been programmed prior to the operation, there is no verification step.

Erase Cycle

Erase Cycle allows you to erase the entire memory device or select a portion to erase. To select a portion of memory to erase, you must specify the start address and the length in the Erase Parameters dialog box.

If a device does not have an erase instruction, zeros are written to the specified range within the device. Otherwise, refer to the memory device’s data sheet for its erase behavior.

For additional information about Flash Center Software program modes and more details on the software, review the Flash Center manual.

Background on Flash Memory

To program a single memory sector using the Flash Center Software, you will take advantage of the following properties of flash devices:

  • Programming a flash device can only change the value of a bit from 1 to 0 and has no affect when attempting to change a bit from 0 to 1.

  • Erasing a flash device changes all the bits in a sector (or the entire device) to 1.

By manually erasing specific sectors along with using the Program (No Erase) mode, data can be written to any sector of a flash device without affecting other sectors.

M25P32 Details

We will use a specific flash device in our process: the SPI Flash Demo Board. This demo board uses a Micron SPI Flash M25P32. While the process is generally applicable to a variety of flash devices, it will be helpful for you to understand the characteristics of the Micron SPI Flash M25P32 to get the most out of this tutorial and best apply it to your use case.

The 32 Mb (4 MB) SPI Flash M25P32 found on the SPI Flash Demo Board has 64 sectors. Each sector has 256 pages or 65,536 (64K, 0x10000) bytes. Each page has 256 bytes. Therefore, the memory has 16,384 pages or 4,194,304 (0x400000) bytes. The entire memory can be erased using the Bulk Erase function. Alternatively, and more usefully in this scenario, memory can be erased a sector at a time, using the Sector Erase instruction. For additional information about the M25P32 review the M25P32 datasheet.

 

Process

This process describes how to use the Cheetah SPI Host Adapter to program data to the first sector, then program data to the second sector without overwriting the data in the first. You can find the latest software and drivers on our downloads page.

  1. Download and install the latest version of the Total Phase USB Drivers Installer.

  2. Download and unzip the latest version of Flash Center Software.

  3. Connect the Cheetah adapter to your PC using the USB connector.

  4. Connect the Cheetah adapter to the SPI flash demo board using the 10-pin header.

  5. Launch the Flash Center Software.

  6. Connect the Cheetah adapter to Flash Center. In the Flash Center software:

    • Click Adapters > Add Adapter.

    • Select the Cheetah adapter.

    • Click Add to connect the adapter.

  7. Enable Target Power to provide power to the SPI Flash Demo Board.

  8. Click Operations > Choose Target and choose STMicro M25P32.

  9. Read the contents of the memory device.

    • Click Operations > Read Target

  10. Write zeros to the first two sectors of the device.

    • Clear the data buffer by clicking on the Clear button. This only clears the software buffer and does not change the data on the device.

    • Enter 00 in the Pad field.

    • Click the Fill... button, enter a byte count of 131072 (64k x 2 = size of first two sectors), and click OK.

    • Click Operations > Program + Verify to commit the new buffer to the device.

  11. Program 8 bytes to the start of the device and notice that Flash Center erases only the necessary sectors.

    • Clear the data buffer by clicking on the Clear button.

    • Type 00 11 22 33 44 55 66 77 in the first 8 bytes in the Data section.

    • Click Operations > Program + Verify then click Yes. Note: a warning is displayed because the data supplied does not end on a sector boundary. The entire sector will be erased before programming.

    • Click Operations > Read Target.

    • Note how the first 8 bytes are as expected and the rest of the first sectors are all 0xFF. Additionally, note that the second sector remains all 0x00.

  12. Use the Program (No Erase) option to program data to the second sector and not affect the first.  Before doing so, you need to ensure the target sector has been erased.

    • Click Operations > Erase...and select a specific address range starting at 0x10000 with a length of 1. Note: Flash Center will erase only the necessary sectors to cover the supplied range. In this case, only the second sector will be erased.

    • Click OK > Yes to erase the entire second sector.

  13. Program 8 bytes to the start of the second sector while not affecting the contents in the first sector.

    • Clear the data buffer by clicking on the Clear button.

    • Enter FF in the Pad field.

    • Click the Fill... button, enter a byte count of 65536, and click OK. This data will fill the entire first sector and be used as padding since programming 1s, without first erasing, does not affect existing data.

    • Type 88 99 AA BB CC DD EE FF at the start of the second sector (address 0x10000).

    • Click Operations > Program (No Erase) to commit the new buffer to the device without first performing an erase.

    • Click Operations > Read Target.

    • Note how the first 8 bytes of the device remain 00 11 22 33 44 55 66 77 and the first 8 bytes of the second sector are 88 99 AA BB CC DD EE FF.

That’s all! The process is complete. We hope this tutorial was helpful in explaining how to program a single sector of an SPI flash device using our products! If you have questions about the Cheetah SPI Host Adapter, Flash Center Software, or any other Total Phase products, please to contact us at sales@totalphase.com. You can also request a demo!

Request a Demo

Can the Promira Serial Platform Reduce Clock Cycle Gaps and Provide Precise Timing when Testing a New SPI Device?

$
0
0

Question from the Customer:
We’ve been using the Aardvark I2C/SPI Host Adapter for years – the software updates have been great, but now we’re testing a faster prototype SPI device. We need a faster adapter. Our goal: eliminate gaps between clock cycles.

Currently, there is a gap between each 8 clock cycles. For test harness purposes, to verify our device can sustain the desired bandwidth, we need to eliminate that gap and run at 50Mhz.

We’re thinking about using the Promira Serial Platform as an SPI master – can the delay between two bytes be removed to 0? For different setups, we will probably use Promira API Software and the Control Center Software.

Response from Technical Support:

Thanks for your question! Yes, the Promira Serial Platform can send bytes/words without any delay between them. The following table and diagram summarizes the AC Characteristics.

Table of AC Characteristics

Promira-SPI-master-AC-characterics

Timing Diagram of AC Characterstics

Promira AC  Characteristics Timing Diagram

AC Characteristics and Timing

Here is a summary of how it works:

The Promira Quad SPI master employs a flexible sampling scheme on the input data to enable the device to run at higher speeds. The data is internally sampled half a clock cycle later.

Here are some configurations you can apply using API commands:

  • You can configure the SPI timing parameters tSSSCK and tSCKSS by adding the API function ps_queue_spi_delay_cycles between the API functions ps_queue_spi_ss and ps_queue_spi_write.
  • You can configure the SPI timing parameter tWORD by using the API function ps_spi_configure_delays.
  • You can also configure the SPI timing parameter tTXN by adding the API function ps_queue_spi_delay_cycles between submitting twice the function ps_queue_spi_ss  twice: the first one for SS deassert and the second one for SS assert.

For more information, please refer to the AC Characteristics and the API Documentation sections of the Promira Serial Platform I2C/SPI Active User Manual.

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

You can contact sales@totalphase.com for questions about the Promira Serial Platform and other Total Phase products, as well as request a demo that applies to your application.

Request a Demo

CAN Bus Hacking in Vehicles

$
0
0

If you’re a Criminal Minds fan, you’ll know this TV drama produces fictional and enticing crime episodes where police and FBI agents investigate unique crimes and their perpetrators. One recent episode, “Collision Course”, focused on a crime where hackers targeted vehicles and took control of the vehicle’s controller area network, the CAN bus.

selection of vehicles

CAN Bus Background

CAN is a protocol, or a set of rules for communication between network devices, that is part of an automobile’s embedded system. CAN was first created by the company Bosch in the 1980’s to help efficiently and safely control the numerous electronic devices used in a car at one time. This can include everything from power windows, brakes, power steering, radio systems, GPS, car mounts for phones, and more. CAN is known for its ability to operate multiple devices, or nodes, on the same bus without a centralized host computer. Each device is its own master and work together using an arbitration process that relays messages and prioritizes those with immediate requirements.

Throughout the episode, the criminals were able to control multiple parts of the targeted car by hacking into the vehicle’s dash cam to watch the road, and were able to control steering, brakes, and throttle remotely, all from the hacking the CAN bus. The hackers even put up a firewall to prevent others from stopping them.

hackers determined to steal cars without being caughtThe show mentions only certain makes and models of automobiles were affected by the hacking, specifically those engineered in recent times.

Is Hacking Vehicles Really Possible?

You might be wondering, is this Hollywood talking, or can people actually hack into cars without physically touching them? It turns out this is not too far from reality, and it is possible to remotely hack into a vehicle. With recent advances in the automotive industry, it’s very common for carmakers to incorporate wireless systems in cars­ because it makes them modern and easier to operate–however, it leaves them more susceptible to hackers, who can stealthily access the bus remotely and access from afar.

Hacking Computers on Wheels

The cars that are progressively adopting a wireless set up are considered to be part of the “Internet of Things” (IoT), or as the Washington Post article, “Hacks on the highway” calls it, “Internet of Targets”. The article comments “cars sold today are computers on wheels, with dozens of embedded chips running millions of lines of code”. Carmakers are essentially turning the modern automobile into a smartphone. Many cars provide entertainment and navigation systems, and even allow phone calls to be taken using Bluetooth – Wi-Fi hot spots are becoming increasingly popular as well. This allows people who know the car’s IP address to track them from anywhere in the world. Once hackers get inside, it’s possible for them to rewrite firmware and take control.

Data theft equals car theft

Carmakers are becoming aware that this a real possibility, and some plan to manufacture cars to make them incapable of becoming hacked, however, some believe the cost to payoff ratio is questionable. These days, cybersecurity is everywhere, but for vehicles to have a similar shield of protection as phones and computers, it will be years before we catch up to speed.

Total Phase offers a variety of CAN tools for debugging and monitoring CAN systems.  Learn more about the CAN tools offered by Total Phase here.

Have specific questions? Contact sales@totalphase.com for details about Komodo CAN Interfaces and other Total Phase products. You can also request a demo that applies to your application.

Request a Demo

How Are Promira Serial Platform Pins Configured? Do I Need to Add Pull-Up Resistors?

$
0
0

Question from the Customer:

Can you tell me about the pin configuration of pin 14 and pin 15 of the Promira Serial Platform? I am using these two pins as DO. Are they both open-collector pins – will I need to add pull-up resistors?

Response from Technical Support:

Thanks for your questions! The I/O circuit depends on how you are using the Promira Serial Platform.

 

Promira Serial Platform can be used with I2C and SPI devices Promira Serial Platform

The I/O Circuit for I2C Slave Configuration

The Promira platform when used as an I2C slave has 560 Ohm internal pull-up resistors that cannot be turned off.  As I2C devices are open collector, the I2C master should sink at least 10mA.

The I/O Circuit for SPI Configuration

The I/O circuit on pins 14 and 15 depends on how the pins are configured.

SPI Chip Select Pins

When pins 14 and 15 are configured as SPI chip selects, they are “push-pull” - driven by the Promira platform

GPIO Pins

When pins 14 and 15 are configured as GPIO:

  • When GPIO is an output pin, it is “push-pull”.  In this case, the pin is driven by the Promira platform
  • When GPIO is an input pin, it is “tri-stated”. In this case, the pin behaves as an open-collector

Note: the Promira platform already has internal 2.2k pull-up resistors on these lines – you should not need to add external pull-up resistors.

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

More questions? Other projects? You can also contact us at sales@totalphase.com. You can also request a demo that applies to your application.

Request a Demo

What’s New About CAN FD?

$
0
0

CAN, Control Area Network, was created to improve vehicles as well as reduce the cost and maintenance of internal wiring – which was quickly increasing as more features were moving from mechanical to electronic technologies. For interaction and control, a protocol was required to handle the increasing complexity of operative devices within a vehicle.

CAN Background

The CAN protocol was introduced by the company Robert Bosch in 1986. CAN allowed multiple devices, or nodes, to be able to communicate with each other on a single line and without the need of a centralized host computer. It also incorporated a unique feature, called message arbitration, where each node could allocate prioritization of a message with each other based on the identifier being sent on the network.

Introduction of CAN FD: Flexible Data-Rate

As increasingly complex systems such as driver assistance systems, parking aids, and blind-spot detection are incorporated into the newer vehicles of today, there comes a need for greater bandwidth on the CAN bus. However, adding additional CAN networks to one vehicle would only weigh it down and decrease efficiency. To meet the need for increased bandwidth, an extension of the CAN protocol was introduced in 2012, called CAN FD, also known as CAN flexible data-rate. This new extension offered the ability to transmit data at rates up to 8 Mbps, greater than the initial 1 Mbps offered by the original CAN protocol.  It also extended the bit length of a message from 8 bytes to 64 bytes. Together, these new changes created a more efficient way to send data on the bus, while allowing more utilizations of the protocol in various developments.

CAN FD Features and Applications

CAN is used in a variety of applications, including defense, industrial automation, autonomous devices, underwater vehicles and medical equipment. However, the design of CAN FD was initially created to meet the developing needs of automakers.

In autonomous vehicles and newer car models, ECU’s (Electronic Control Units) and sensors are used frequently. CAN FD allows these components to operate at the highest speeds with larger payload, all while reducing the bus load which could impede performance. The software programming time in vehicle ECU’s is even reduced to up to a fifth of the average time, and auto engineers running diagnostics or software upgrades can do so in the quickest times yet.

In addition to speed and larger data size, CAN FD has improved error detection. The extra bits in the CRC frame improve the performance of the CRC-algorithm, as it provides better protection of the data content. The addition of the ESI (Error State Indicator), also improves error detection by including a state of the transmit node where the bits are monitored by the receiver and errors can be easily detected. Normally, the ESI bit is transmitted as dominant, but if the sender frame becomes error-passive, the ESI bit will become recessive, indicating failure in the system. This process ensures safety for passengers because the errors will be caught early on. Because of these benefits of CAN FD, automobiles using this protocol are consequently thought to be more reliable, safer, and more fuel efficient.

CAN FD Advantages

Along with automotive applications, other industries, including industrial, find this protocol useful for similar reasons. Having the larger payload is a major benefit in operating machinery as it results in reduced overhead. Position sensors in industrial settings can take advantage of this outcome to improve system responsiveness. The increase in data speeds is also helpful in industrial applications involving flash programming or data downloads. With higher speeds and larger payloads, overall throughput of the network is improved.

CAN has been a well-known and widely used protocol for multiple decades, and the CAN FD extension will soon become a preferred protocol for automotive and industrial uses.

Total Phase offers CAN tools with free API for engineers to create custom applications for their unique projects. Check out our CAN tools here.  If you’d like to be updated on Total Phase developments for CAN and CAN FD, please send us a message at sales@totalphase.com.

 

 

 

Viewing all 822 articles
Browse latest View live