📄 lpradio.inc
字号:
;--------------------------------------------------------------------------
;
; Filename: lpRadio.inc
;
; Description: Include file which defines the macros for the LP radio
; driver.
;
;--------------------------------------------------------------------------
; WirelessUSB LP Radio Driver Version 1.4
;--------------------------------------------------------------------------
;
; Copyright 2005-2007, Cypress Semiconductor Corporation.
;
; This software is owned by Cypress Semiconductor Corporation (Cypress)
; and is protected by and subject to worldwide patent protection (United
; States and foreign), United States copyright laws and international
; treaty provisions. Cypress hereby grants to licensee a personal,
; non-exclusive, non-transferable license to copy, use, modify, create
; derivative works of, and compile the Cypress Source Code and derivative
; works for the sole purpose of creating custom software in support of
; licensee product to be used only in conjunction with a Cypress integrated
; circuit as specified in the applicable agreement. Any reproduction,
; modification, translation, compilation, or representation of this
; software except as specified above is prohibited without the express
; written permission of Cypress.
;
; Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
; WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
; Cypress reserves the right to make changes without further notice to the
; materials described herein. Cypress does not assume any liability arising
; out of the application or use of any product or circuit described herein.
; Cypress does not authorize its products for use as critical components in
; life-support systems where a malfunction or failure may reasonably be
; expected to result in significant injury to the user. The inclusion of
; Cypress' product in a life-support systems application implies that the
; manufacturer assumes all risk of such use and in doing so indemnifies
; Cypress against all charges.
;
; Use may be limited by and subject to the applicable Cypress software
; license agreement.
;
;--------------------------------------------------------------------------
;-----------------------------------------------------------------------------
;
; LP_SPI selects whether a PSOC or EnCoReII/PRoC-LP SPI module is used
;
;-----------------------------------------------------------------------------
LP_SPI: EQU 1 ; 1 = PSoC
; 0 = enCoRe II or PRoC-LP
;-----------------------------------------------------------------------------
; enCoRe2 or PRoC-LP: PSoC Designer provides only the _MASK definition for
; I/O pins, it FAILS to provide the _Data_ADDR port
; assignment, so YOU MUST MANUALLY DEFINE PORT
; ASSIGNMENTS FOR LP_IRQ and LP_nSS.
;-----------------------------------------------------------------------------
IF LP_SPI
ELSE ; enCoRe2 or PRoC-LP - Manually define _Data_ADDR
LP_IRQ_Data_ADDR: EQU *defineHere* ; {PRT0DR, PRT1DR, PRT2DR}
LP_nSS_Data_ADDR: EQU *defineHere* ; {PRT0DR, PRT1DR, PRT2DR}
ENDIF
;-----------------------------------------------------------------------------
;
; THREE_WIRE_SPI selects whether 3 or 4 wire SPI interface is used
;
;-----------------------------------------------------------------------------
THREE_WIRE_SPI: EQU 0
;-----------------------------------------------------------------------------
;
; MUXED_IRQ selects whether MOSI is multiplexed with Radio's IRQ output
;
;-----------------------------------------------------------------------------
MUXED_IRQ: EQU 0
;-----------------------------------------------------------------------------
;
; PORT_SHADOW_ENABLE - For SPI Slave Select (LP_nSS bit)
;
; Different PSoC I/O Drive Modes can cause side-effects on bits adjacent to
; LP_nSS bit, depending on how Drive Modes are configured.
; Using "PORT_SHADOW_ENABLE" prevents this by using a RAM Shadow Register,
; but results in a larger and slower driver. See PSoC Technical Reference
; Manual, Section B.6.1.1 "Digital IO" for details on side-effects on ports.
;
; PORT_SHADOW_ENABLE enables this LP_nSS output write-through-shadow feature.
; If used, all other output bits on this bidirectional port MUST maintain
; the shadow variable Port_?_Data_SHADE for at least the LP_nSS port.
;
; EXPORT_PORT_SHADE causes the shadow variables to be allocated and exported
; by the radio driver to ensure that they're placed on RAM Page 0.
; The only reason NOT to export shadow variables is if PSoC Express is used.
; (but you wouldn't be reading this if you're using PSoC Express).
;-----------------------------------------------------------------------------
PORT_SHADOW_ENABLE: EQU 0 ; Do nSS port-write thru port shadow RAM var
EXPORT_PORT_SHADE: EQU 0 ; LP Driver exports Port_x_Data_SHADE vars
;-----------------------------------------------------------------------------
;
; NOTES ON THE PSoC LARGE MEMORY MODEL (LMM) .vs. SMALL MEMORY MODEL (SMM)
;
; The file <memory.inc> indicates whether LMM or SMM is used.
; LMM is available for devices with more than 256 Bytes of RAM and the
; (Project,Settings,Compiler,Enable paging) box is checked in PSoC Designer.
; Checking the Enable paging box sets SYSTEM_LARGE_MEMORY_MODEL: equ 1
; in <memory.inc>.
;
; When using the Small Memory Model, the macros in <memory.inc> reduce to
; nothing, and the resulting LMM paging overhead in Radio Driver disappears.
;
; Using the LMM imposes certain assumptions on the user's application. See
; Cypress AN2218 for details, a "summary" is below, but please obtain and
; understand AN2218 before proceeding.
;
; 1) All internal radio driver variables are placed on Page 0.
; 2) Rx and Tx bulk data buffers may be placed on any Page.
; 3) Radio driver exit w/Page Mode bits UNCHANGED or set to NATIVE_PAGING
; 4) Radio driver exits with only STK_PP preserved, except for ISR exit.
;
; This is consistent with the ImageCraft compiler, however calls from
; assembly need to handle possible loss of Page Pointers and Page Mode
; changes to NATIVE_PAGING.
;
;-----------------------------------------------------------------------------
;=============================================================================
;=============================================================================
;=============================================================================
;
;
; Everything beyond this point is NOT NORMALLY changed by users
;
;
;=============================================================================
;=============================================================================
;=============================================================================
LP_nSS_Port: EQU (LP_nSS_Data_ADDR>>2) ; Port # where nSS resides
; The name "LP_nSS_Port" is from PSoC Express and
; is an offset into the Port_x_Data_SHADE array.
IF (MUXED_IRQ)
LP_IRQ_MASK: EQU SPIM_Radio_SDIO_MASK
ENDIF
CPU_F: EQU 0xF7
; LP SPI Interface definitions:
;
mSPI_ADDRESS: EQU 0x3F
bSPI_WRITE: EQU 0x80
bSPI_AUTO_INC: EQU 0x40
;
; RADIO_STATE definitions:
;
RADIO_IDLE: EQU 0x00
RADIO_RX: EQU 0x80
RADIO_TX: EQU 0x20
RADIO_SOP: EQU SOFDET_IRQ
RADIO_DATA: EQU RXB1_IRQ
RADIO_COMPLETE: EQU RXC_IRQ ; Code assumes these two bits are BOTH
RADIO_ERROR: EQU RXE_IRQ ; in the RX_CTRL_ADR register.
//
// Return value for a RadioAbort completed successfully. Otherwise the return value
// is the length of the packet received (without error).
//
RADIO_ABORT_SUCCESS: EQU 0xFF
; ############################################################################
; END OF lpRadio.inc
; ############################################################################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -