https://www.st.com/en/ecosystems/x-nucleo-plm01a1.html MBED driver for the ST7580 IC.

Revision:
0:e88514a784bb
Child:
1:edbcde816013
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7580_codes.h	Mon Apr 15 06:41:00 2019 +0000
@@ -0,0 +1,175 @@
+
+/***********************Uncomment the PLC Modem Operating mode*****************/
+//#define USE_PHY_DATA
+#define USE_DL_DATA
+/******************************************************************************/
+
+#define BPSK                        0
+#define QPSK                        1
+#define PSK8                        2
+#define BFSK                        3
+#define BPSKCOD                     4
+#define QPSKCOD                     5
+#define BPSKCODPEAKAV               7
+
+/***********************Set configuration parameters **************************/
+#define CUSTOM_MIB_FREQUENCY        0
+#define FREQUENCY_OVERWRITE         0
+#define FREQUENCY_SET               1
+#define GAIN_SELECTOR               0
+
+#define FRAME_MODULATION            BPSKCOD
+#define ZERO_CROSS_SYNC             0
+
+#if CUSTOM_MIB_FREQUENCY
+  #define TXFREQ1                   0
+  #define TXFREQ2                   0
+  #define TXFREQ3                   0
+#endif
+
+#if GAIN_SELECTOR
+  #define TXGAIN                    0                         
+#endif
+/******************************************************************************/
+
+//#define DATA_OPT 0x44
+#define DATA_OPT                    ((CUSTOM_MIB_FREQUENCY) | \
+                                     (FREQUENCY_OVERWRITE << 1) | \
+                                     (FREQUENCY_SET << 2) | \
+                                     (GAIN_SELECTOR << 3) | \
+                                     (FRAME_MODULATION << 4) | \
+                                     (ZERO_CROSS_SYNC << 7))
+
+#define IND_FRAMES_QUEUE_LEN        6    /* Indication Frames Queue length */
+#define PHY_DATALEN_MAX             250
+#define DL_DATALEN_MAX              242
+#define SS_DATALEN_MAX              226
+
+/**
+ * @brief  Timeout parameters
+ */
+#define IC_TMO                      10   /* Intercharacter timeout msec */
+#define ACK_TMO                     40   /* ACK timeout msec */
+#define STATUS_MSG_TMO              200  /* Status Message timeout msec */
+#define CMD_TMO                     4000 /* Comand timeout */
+#define RESET_IND_TMO               4000 /* Reset Indication timeout */
+
+#define N_TIMEOUTS                  4    /* Three different kind of timeouts */
+#define IC_TMO_IDX                  0    /* Intercharacter timeout ID */
+#define ACK_TMO_IDX                 1    /* ACK timeout ID  */
+#define STATUS_MSG_TMO_IDX          2    /* Status Message timeout ID */
+#define CMD_TMO_IDX                 3    /* Comand timeout ID */
+
+/**
+ * @brief  Functions returns codes
+ */
+#define ST7580_OK                   0   /* Req/Res exchange ok */
+#define ST7580_TX_IN_PROGRESS       -1  /* Tx in course */
+#define ST7580_ERR_CONFIRM          -2  /* Wrong confirm code */
+#define ST7580_ERR_BUF_LEN          -3  /* Wrong received buffer length */
+#define ST7580_ERR_TIMEOUT          -4  /* Timeout on response */
+#define ST7580_ERR_PING             -5  /* Pong data doesn't match Ping data */
+#define ST7580_ERR_ARGS             -6  /* Wrong function's argument */
+#define ST7580_UNEXPECTED_FRAME     -7  /* Unexpected local frame received */
+#define ST7580_RCV_BUF_TOO_SMALL    -8  /* Receive buffer too small */
+
+#define ST7580_TXERR_NAK            -10 /* NAK received */
+#define ST7580_TXERR_NO_STATUS      -11 /* No status received */
+#define ST7580_TXERR_ACK_TMO        -12 /* No ack received */
+#define ST7580_TXERR_BUSY           -13 /* ST7580 busy */
+
+/**
+ * @brief  Acknoledgement codes
+ */
+#define ST7580_ACK                  0x06 /* ST7580 ACK */
+#define ST7580_NAK                  0x15 /* ST7580 NACK */
+#define BUSY_MASK                   0x06 
+
+/**
+ * @brief  Start of frames codes
+ */
+#define ST7580_STX_02               0x02
+#define ST7580_STX_03               0x03
+#define ST7580_STX_STATUS           0x3F
+
+/**
+ * @brief  Command codes
+ */
+#define CMD_RESET_REQ               0x3C  /* Reset request command */
+#define CMD_RESET_CNF               0x3D  /* Reset confirmation command */
+#define CMD_RESET_IND               0x3E  /* Reset indication command */
+#define CMD_RESET_ERR               0x3F  /* Reset error command code */
+
+#define CMD_MIB_WRITE_REQ           0x08  /* MIB Write request command */
+#define CMD_MIB_WRITE_CNF           0x09  /* MIB Write confirmation command */
+#define CMD_MIB_WRITE_ERR           0x0B  /* MIB Write error command */
+
+#define CMD_MIB_READ_REQ            0x0C  /* MIB Read request command */
+#define CMD_MIB_READ_CNF            0x0D  /* MIB Read confirmation command */
+#define CMD_MIB_READ_ERR            0x0F  /* MIB Read error command */
+
+#define CMD_MIB_ERASE_REQ           0x10  /* MIB Erase request command */
+#define CMD_MIB_ERASE_CNF           0x11  /* MIB Erase confirmation command */
+#define CMD_MIB_ERASE_ERR           0x13  /* MIB Erase error command */
+
+#define CMD_PING_REQ                0x2C  /* PING request command */
+#define CMD_PING_CNF                0x2D  /* PING confirmation command */
+
+#define CMD_PHY_DATA_REQ            0x24  /* PHY Data request command */
+#define CMD_PHY_DATA_CNF            0x25  /* PHY Data confirmation command */
+#define CMD_PHY_DATA_IND            0x26  /* PHY Data indication command */
+#define CMD_PHY_DATA_ERR            0x27  /* PHY Data error command */
+
+#define CMD_DL_DATA_REQ             0x50  /* DL Data request command */
+#define CMD_DL_DATA_CNF             0x51  /* DL Data confirmation command */
+#define CMD_DL_DATA_IND             0x52  /* DL Data indication command */
+#define CMD_DL_DATA_ERR             0x53  /* DL Data error command */
+#define CMD_DL_SNIFFER_IND          0x5A  /* DL Sniffer indication command */
+
+#define CMD_SS_DATA_REQ             0x54  /* SS Data request command */
+#define CMD_SS_DATA_CNF             0x55  /* SS Data confirmation command */
+#define CMD_SS_DATA_IND             0x56  /* SS Data indication command */
+#define CMD_SS_DATA_ERR             0x57  /* SS Data error command */
+#define CMD_SS_SNIFFER_IND          0x5E  /* SS Sniffer indication command */
+
+#define CMD_SYNTAX_ERR              0x36  /* Syntax error command code */
+
+/* 
+ * Returns true of the given command code is an indication, false otherwise
+ */
+#define IS_INDICATION(CMD)          ((CMD == CMD_RESET_IND) || \
+                                     (CMD == CMD_PHY_DATA_IND) || \
+                                     (CMD == CMD_DL_DATA_IND) || \
+                                     (CMD == CMD_DL_SNIFFER_IND) || \
+                                     (CMD == CMD_SS_DATA_IND) || \
+                                     (CMD == CMD_SS_SNIFFER_IND))
+
+/**
+ * @brief  Indexes
+ */
+#define IND_FRAME_PAYLOAD_IDX       0x04  /* Payload offset inside packet */
+
+
+/**
+ * @brief  MIBs Objects
+ */
+#define MIB_MODEM_CONF              0x00  /* Modem configuration MIB */
+#define MIB_PHY_CONF                0x01  /* PHY configuration MIB */
+#define MIB_SS_KEY                  0x02  /* SS key MIB */
+#define MIB_LAST_DATA_IND           0x04  /* Last data indication MIB */
+#define MIB_LAST_TX_CNF             0x05  /* Last TX confirm MIB */
+#define MIB_PHY_DATA                0x06  /* PHY Data MIB */
+#define MIB_DL_DATA                 0x07  /* DL Data MIB */
+#define MIB_SS_DATA                 0x08  /* SS Data MIB */
+#define MIB_HOST_IF_TOUT            0x09  /* Host interface timeout MIB */  
+#define MIB_FW_VERSION              0x0A  /* Firmware version MIB */
+ 
+#define ST7580_MOD_BPSK             (0 << 4)  /* B-PSK modulation */
+#define ST7580_MOD_QPSK             (1 << 4)  /* Q-PSK modulation */
+#define ST7580_MOD_8PSK             (2 << 4)  /* 8-PSK modulation */
+#define ST7580_MOD_BFSK             (3 << 4)  /* B-FSK modulation */
+#define ST7580_MOD_BPSK_COD         (4 << 4)  /* B-PSK coded modulation */
+#define ST7580_MOD_QPSK_COD         (5 << 4)  /* Q-PSK coded modulation */
+#define ST7580_MOD_BPSK_COD_PNA     (7 << 4)  /* B-PSK coded with Peak \
+                                              Noise Avoidance modulation */
+#define ST7580_ZC                   (1 << 7)  /* Zero crossing synchronization */
\ No newline at end of file