⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpradio.inc

📁 the newest cypress wirelessusb LP and PROC LP radio driver
💻 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 + -