modm API documentation
modm::iwr6843aop< ControlUart, DataUart, SyncPin, FrameQueueSize, MaxPointsPerFrame, MaxParserBufferSize > Class Template Reference

#include <modm/driver/radar/iwr6843aop.hpp>

Inheritance diagram for modm::iwr6843aop< ControlUart, DataUart, SyncPin, FrameQueueSize, MaxPointsPerFrame, MaxParserBufferSize >:

Classes

struct  CommandResponse
 
struct  DetectedPoint
 
struct  Frame
 
struct  FrameHeader
 
struct  PerformanceStatistics
 
struct  PointSideInfo
 
struct  PointWithSideInfo
 
struct  TemperatureStatistics
 

Public Typedefs

using FrameType = Frame< MaxPointsPerFrame >
 

Public Types

enum  Error : uint8_t {
  None, UartError, Timeout, CommandError,
  ParseError, BufferOverflow, QueueFull
}
 
enum  RadarOutputType : uint32_t {
  DetectedPoints = 1, RangeProfile = 2, NoiseFloorProfile = 3, AzimuthStaticHeatmap = 4,
  RangeDopplerHeatmap = 5, PerformanceStatistics = 6, SideInfoDetectedPoints = 7, AzimuthElevationStaticHeatmap = 8,
  TemperatureStatistics = 9
}
 

Public Member Functions

 Iwr6843aop ()
 
void setSyncInterval (Duration interval)
 
Duration getSyncInterval () const
 
void setControlResponseTimeout (Duration timeout)
 
Duration getControlResponseTimeout () const
 
bool configure (std::span< const char > configuration)
 
template<std::size_t N>
bool configure (const char (&configuration)[N])
 
bool sendCommand (std::span< const char > command, CommandResponse *response=nullptr)
 
template<std::size_t N>
bool sendCommand (const char (&command)[N], CommandResponse *response=nullptr)
 
bool sendCommandNoVerify (std::span< const char > command)
 
template<std::size_t N>
bool sendCommandNoVerify (const char (&command)[N])
 
bool sendSensorStop ()
 
bool processData ()
 Poll the data UART and parse all complete frames currently available.
 
bool getFrame (FrameType &frame)
 
bool hasFrame () const
 
Error getLastError () const
 
void clearError ()
 
bool hasError () const
 
uint32_t getParseErrorCount () const
 
uint32_t getConsecutiveParseErrorCount () const
 

Static Public Attributes

static constexpr std::array< uint8_t, 8 > SyncPattern
 
static constexpr std::size_t FrameHeaderLength {32}
 
static constexpr std::size_t TlvHeaderLength {8}
 
static constexpr std::size_t PointStructSize {16}
 
static constexpr std::size_t SideInfoStructSize {4}
 
static constexpr std::size_t PerformanceStatsSize {24}
 
static constexpr std::size_t TemperatureStatsSize {28}
 
static constexpr std::size_t MaxResponseLines {16}
 
static constexpr std::size_t MaxResponseLineLength {128}
 
static constexpr uint32_t MaxConsecutiveParseErrors {32}
 

Detailed Description

template<class ControlUart, class DataUart, class SyncPin = modm::platform::GpioUnused, std::size_t FrameQueueSize = 8, std::size_t MaxPointsPerFrame = 256, std::size_t MaxParserBufferSize = 4096>
class modm::iwr6843aop< ControlUart, DataUart, SyncPin, FrameQueueSize, MaxPointsPerFrame, MaxParserBufferSize >

TI xWRxx4x family radar UART driver.

The driver uses one UART for control commands and one UART for streaming point cloud data (TLV packet format). It should work for IWR1443, IWR1642, IWR1843, IWR6443 and IWR6843 and their automotive AWR* counterparts. The driver was tested with the prebuild binary version xWR64xx MMW Demo 03.06.02.00 on the IWR6843AOP chip. The binary is contained in the mmWaveSDK distributed at https://www.ti.com/tool/de-de/MMWAVE-SDK After installation, the sensor binary can be found at <INDUSTRIAL_TOOLBOX_INSTALL_DIR><VER>\68xx_aop_mmwave_sdk_hwa\prebuilt_binaries\xwr64xxAOP_mmw_demo.bin The binary is then flashed using Uniflash: https://www.ti.com/tool/en-us/UNIFLASH

Template Parameters
ControlUartUART type for the control channel (CLI)
DataUartUART type for the data channel
SyncPinGPIO pin used for optional sync pulse output
FrameQueueSizeNumber of parsed frames that can be queued
MaxPointsPerFrameMaximum number of detected points stored per frame
MaxParserBufferSizeSize of the binary parser buffer

Member Data Documentation

template<class ControlUart , class DataUart , class SyncPin = modm::platform::GpioUnused, std::size_t FrameQueueSize = 8, std::size_t MaxPointsPerFrame = 256, std::size_t MaxParserBufferSize = 4096>
constexpr std::array<uint8_t, 8> modm::iwr6843aop< ControlUart, DataUart, SyncPin, FrameQueueSize, MaxPointsPerFrame, MaxParserBufferSize >::SyncPattern
staticconstexpr
Initial value:
{0x02, 0x01, 0x04, 0x03,
0x06, 0x05, 0x08, 0x07}

The documentation for this class was generated from the following file: