/** * \file phy_at86rf212b.h * * \brief Physical Layer Abstraction for AT86RF212B addon interface * * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries. * * \asf_license_start * * \page License * * Subject to your compliance with these terms, you may use Microchip * software and any derivatives exclusively with Microchip products. * It is your responsibility to comply with third party license terms applicable * to your use of third party software (including open source software) that * may accompany Microchip software. * * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. * * \asf_license_stop * */ /* * Support and FAQ: visit Microchip Support */ #ifndef _DRV_AT86RF212B_H_ #define _DRV_AT86RF212B_H_ #define AES_BLOCK_SIZE 16 #define AES_CORE_CYCLE_TIME 24 /* us */ #define RANDOM_NUMBER_UPDATE_INTERVAL 1 /* us */ /*- Types ------------------------------------------------------------------*/ #define CC_CTRL_0_REG 0x13 #define CC_CTRL_1_REG 0x14 #define RF_CTRL_0_REG 0x16 #define RF_CTRL_1_REG 0x19 /* Only in AT86RF212 */ #define AES_STATUS_REG 0x82 #define AES_CTRL_REG 0x83 #define AES_KEY_REG 0x84 #define AES_STATE_REG 0x84 #define AES_CTRL_M_REG 0x94 /* TRX_STATUS */ #define CCA_DONE 7 #define CCA_STATUS 6 #define TRX_STATUS 0 /* TRX_STATE */ #define TRAC_STATUS 5 #define TRX_CMD 0 /* TRX_CTRL_0 */ #define PAD_IO 6 #define PAD_IO_CLKM 4 #define CLKM_SHA_SEL 3 #define CLKM_CTRL 0 /* PHY_TX_PWR */ #define PA_BOOST 7 #define GC_PA 5 #define TX_PWR 0 /* PHY_RSSI */ #define RX_CRC_VALID 7 #define RND_VALUE 5 #define RSSI 0 /* PHY_CC_CCA */ #define CCA_REQUEST 7 #define CCA_MODE 5 #define CHANNEL 0 /* CCA_THRES */ #define CCA_CS_THRES 4 /* Only in AT86RF212B */ #define CCA_ED_THRES 0 /* RX_CTRL */ #define JCM_EN 5 /* TRX_CTRL_2 */ #define RX_SAFE_MODE 7 #define TRX_OFF_AVDD_EN 6 #define OQPSK_SCRAM_EN 5 #define OQPSK_SUB1_RC_EN 4 /* Only in AT86RF212 */ #define ALT_SPECTRUM 4 /* Only in AT86RF212B */ #define BPSK_OQPSK 3 #define SUB_MODE 2 #define OQPSK_DATA_RATE 0 #define PHY_MOD_BPSK20_CHAN_0 (0x00) //((0x00) || (0< 127) #warning "Maximum application payload RX BUFFER SIZE is 94" #endif #else #define RX_PACKET_SIZE (RX_BUFFER_SIZE+PROTOCOL_HEADER_SIZE+MY_ADDRESS_LENGTH+MY_ADDRESS_LENGTH+12) #if (RX_PACKET_SIZE > 127) #warning "Maximum application payload RX BUFFER SIZE is 99" #endif #endif #if RX_PACKET_SIZE > 127 #undef RX_PACKET_SIZE #define RX_PACKET_SIZE 127 #endif #endif