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

📄 hamaro_sts.h

📁 机顶盒Hamaro解调器驱动。包含自动搜台
💻 H
📖 第 1 页 / 共 2 页
字号:
/* hamaro_sts.h */
/*+++ *******************************************************************\
*
*  Abstract:
*
*       Hamaro Scan-the-sky Main FSM header.
*
*  Created: 07/15/2005
*
*
*  Copyright and Disclaimer: 
*  
*     --------------------------------------------------------------- 
*     This software is provided "AS IS" without warranty of any kind, 
*     either expressed or implied, including but not limited to the 
*     implied warranties of noninfringement, merchantability and/or  
*     fitness for a particular purpose.
*     --------------------------------------------------------------- 
*     
*   Author: Amar Puttur
*   
*   Module Revision Id:
*
*       $Header: hamaro_sts.h, 7, 2006-10-20 7:15:10, Sunbey (VSS Migration)$
*
*     Copyright (c) 2005 Conexant Systems, Inc. 
*     All rights reserved. 
*
\******************************************************************* ---*/
#ifndef _HAMARO_STS_H_
#define _HAMARO_STS_H_

#include "hamaro.h"
#include "hamaro_defs.h"
#include "hamaro_fsm.h"

#if HAMARO_WIN_DEBUG
#include "hamaro_windbg.h" /* debug */
#endif /* HAMARO_WIN_DEBUG*/


#if HAMARO_SCAN_THE_SKY

#define  STS_MAX_NUM_OF_SCAN_SEGMENTS   32

#define  STS_MAX_INDEX                  (450 * STS_MAX_NUM_OF_SCAN_SEGMENTS)

#define  STS_MAX_SCAN_REFRESH_CYCLES    10

#define  STS_MAX_SUB_INDEX              500
#define  STS_MAX_SYMBOL_RATE_MHZ        45       
#define  STS_MIN_SYMBOL_RATE_MHZ        1 

/* match filter */
#define  STS_MATCH_FILTER_CONSTANT      80
#define  STS_MAX_MATCH_FILTER_CLK_MHZ   45       
#define  STS_MIN_MATCH_FILTER_CLK_MHZ   1 
#define  STS_MATCH_FILTER_CLK_MAIN      (4) //30 /* main buffer */
#define  STS_MATCH_FILTER_CLK_SUB       4  /* sub buffer */       

/* scan parameters for main buffer */
#define  STS_STEP_SIZE_KHZ_MAIN         100
#define  STS_SEARCH_SPAN_MHZ_MAIN       38
#define  STS_START_FREQ_HZ              950000000

/* scan parameters for sub buffer */
#define  STS_STEP_SIZE_KHZ_SUB          10
#define  STS_SEARCH_SPAN_MHZ_SUB        2
#define  STS_NARROW_TUNER_BW_SYMB_RATE  10

/* scan parameters for fine scan */
#define  STS_STEP_SIZE_KHZ_FINE         50
#define  STS_SEARCH_SPAN_MHZ_FINE       2
#define  STS_NARROW_TUNER_BW_SYMB_RATE_FINE  10

/* scan */
#define  STS_MIN_STEP_SIZE_KHZ          10
#define  STS_MAX_STEP_SIZE_KHZ          1000 

#define  STS_PLL_MULT                   59
#define  STS_MAX_SPAN_MHZ               45       
#define  STS_MAX_FREQ_MEM_REGISTERS     96

#define  STS_MIN_FREQ_STEP_KHZ          10
#define  STS_MAX_FREQ_STEP_KHZ          1000

#define  STS_MAX_SCAN_CHANNELS          200
#define  STS_MAX_SCAN_CANDIDATES        200

#define  STS_FINDRISE_DEFAULT_STEP_SIZE 6//4 
#define  STS_FINDFALL_DEFAULT_STEP_SIZE 6//4

#define  STS_FALLEDGE_START_INDEX_OFFSET    0//30

#define  STS_OBSERVATION_WINDOW_2POW24  (unsigned short)(15)   /* 2^(24)  */
#define  STS_OBSERVATION_WINDOW_2POW23  (unsigned short)(14)   /* 2^(23)  */
#define  STS_OBSERVATION_WINDOW_2POW22  (unsigned short)(13)   /* 2^(22)  */
#define  STS_OBSERVATION_WINDOW_2POW21  (unsigned short)(12)   /* 2^(21)  */
#define  STS_OBSERVATION_WINDOW_2POW20  (unsigned short)(11)   /* 2^(20)  */
#define  STS_OBSERVATION_WINDOW_2POW19  (unsigned short)(10)   /* 2^(19)  */
#define  STS_OBSERVATION_WINDOW_2POW18  (unsigned short)(9)    /* 2^(9+9)  */
#define  STS_OBSERVATION_WINDOW_2POW17  (unsigned short)(8)    /* 2^(9+8)  */
#define  STS_OBSERVATION_WINDOW_2POW16  (unsigned short)(7)    /* 2^(9+7)  */
#define  STS_OBSERVATION_WINDOW_2POW15  (unsigned short)(6)    /* 2^(9+6)  */
#define  STS_OBSERVATION_WINDOW_2POW14  (unsigned short)(5)    /* 2^(9+5)  */
#define  STS_OBSERVATION_WINDOW_2POW13  (unsigned short)(4)    /* 2^(9+4)  */
#define  STS_OBSERVATION_WINDOW_2POW12  (unsigned short)(3)    /* 2^(9+3)  */
#define  STS_OBSERVATION_WINDOW_2POW11  (unsigned short)(2)    /* 2^(9+2)  */
#define  STS_OBSERVATION_WINDOW_2POW10  (unsigned short)(1)    /* 2^(9+1)  */
#define  STS_OBSERVATION_WINDOW_2POW09  (unsigned short)(0)    /* 2^(9+0)  */

#define  STS_MAX_OBSERVATION_WINDOW_INDEX   (16)  

#define  STS_OBERVATION_WINDOW_MAIN     (STS_OBSERVATION_WINDOW_2POW18)
#define  STS_OBERVATION_WINDOW_SUB      (STS_OBSERVATION_WINDOW_2POW18)

/* Timeouts */
#define  STS_WAIT_FOR_MEASUREMENT_TIMEOUT   (10)

/* selection */
#define  STS_SAMPLE_LEFT                (unsigned char)0
#define  STS_SAMPLE_MIDDLE              (unsigned char)1
#define  STS_SAMPLE_RIGHT               (unsigned char)2

/* limits */
#define  TUNER_LOW_LIMIT                950000000UL
#define  TUNER_HIGH_LIMIT               2150000000UL

#define  SCAN_LOW_LIMIT                 940000000UL
#define  SCAN_HIGH_LIMIT                2160000000UL

/* constants */
#define  STS_PATTERN_TEST_DELTA                 (short)(0)
#define  STS_PATTERN_DELTA_CONSTANT             (unsigned short)(128)
#define  STS_POWER_THRESH                       (int)1500
#define  STS_METRIC_THRESH                      (int)200000
#define  STS_MIN_PATTERN_DELTA                  (unsigned short)(75)
#define  STS_CURVATURE_TEST_THRESH              0
#define  STS_RIGHT_INFLECTION_POWER_THRESH      2000 /* left inflection point plus this constant */  

/* register map */
#define  STS_BASE_ADDRESS               0x304E1000
#define  HAMARO_BASE_ADDRESS            0x304E0000

#define  STS_PAGE_MASK                  0x00000300
#define  STS_ADDR_MASK                  0x0000007F

#define  STS_PAGE_0_SEL                 0x00000000  /* STS registers */
#define  STS_PAGE_1_SEL                 0x00000100  /* Frequency memory */
#define  STS_PAGE_2_SEL                 0x00000200  /* Power memory */
#define  STS_PAGE_3_SEL                 0x00000300  /* pdmf data memory */

/* Bit check */
#define  STS_REG_READABLE               0x01
#define  STS_REG_WRITEABLE              0x02

/* Bitfield positions */
#define  STS_MAP_READABLE               0x00200000
#define  STS_MAP_WRITEABLE              0x00400000
#define  STS_MAP_RW                     0x00600000
#define  STS_MAP_RMW                    0x00800000


/* demod handle bitfields defined for SBRead/SBWrite calls */
#define  STS_APPLY_BASE_ADDRESS         0x00000400  /* Specifies the host SW to use STS base address and do a STS IO */
#define  STS_PAGE_NUMBER_SHIFT          11UL

/*  -- Register map -- */
/*  Bit positions and meaning:
 *  31	30	29	28	27	26	25	24	23	22	21	20	19	18	17	16	15	14	13	12	11	10	9	8	7	6	5	4	3	2	1	0
 *  B	B	B	N	N	N	N	N	RMW	W	R	E	S	S	S	S	P	P	P	P	A	A	A	A	A	A	A	A	A	A	A	A
 *
 *  A = address, P = page, S = start_bit, R = Readable, W = Writable, RMW = Read-Modify-Write, N = number_of_bits, x = reserved.
 *  B = number of units to read [0 = default/native unit (For STS = 2 bytes), 1 = 1 byte, 2 = 2 bytes, 3 = 3 bytes and 4 = 4 bytes.].
 *  E = Endianism; 0 = little (0x12345678), 1 = big (0x78563412)
 */
/* - STS registers : Page0 - */
/* address = 0 */
#define STS_ENABLE_BITMAP             (0x01000000|STS_MAP_RW)             /* N=0x01 S=0x0 [P,A]=[0x0,0x000]; */
#define STS_FIFO_ERR_BITMAP           (0x01010000|STS_MAP_READABLE)       /* N=0x01 S=0x1 [P,A]=[0x0,0x000]; */
#define STS_FSM_ERR_BITMAP            (0x01020000|STS_MAP_READABLE)       /* N=0x01 S=0x2 [P,A]=[0x0,0x000]; */

/* address = 1 */
#define STS_CENTER_FREQ_BITMAP        (0x10000001|STS_MAP_RW)             /* N=0x10 S=0x0 [P,A]=[0x0,0x001]; */

/* address = 2 */
#define STS_VERSION_BITMAP            (0x04000002|STS_MAP_READABLE)       /* N=0x04 S=0x0 [P,A]=[0x0,0x002]; */
#define STS_TEST_MODE_BITMAP          (0x01040002|STS_MAP_RW|STS_MAP_RMW) /* N=0x01 S=0x4 [P,A]=[0x0,0x002]; */

/* address = 3 */
#define STS_LEN_SEL_BITMAP            (0x04000003|STS_MAP_RW|STS_MAP_RMW) /* N=0x04 S=0x0 [P,A]=[0x0,0x003]; */
#define STS_LEN_BITMAP                (0x04040003|STS_MAP_READABLE)       /* N=0x04 S=0x4 [P,A]=[0x0,0x003]; */
#define STS_FIFO_FILLED_4RD_BITMAP    (0x01080003|STS_MAP_READABLE)       /* N=0x01 S=0x8 [P,A]=[0x0,0x003]; */ 

/* address = 4 */
#define STS_FREQ_CNT_BITMAP           (0x07000004|STS_MAP_RW)             /* N=0x07 S=0x0 [P,A]=[0x0,0x004]; */

/* address = 5 */
#define STS_CLR_BITMAP                (0x10000005|STS_MAP_RW)             /* N=0x10 S=0x0 [P,A]=[0x0,0x005]; */
#define STS_READY_BITMAP              (0x01000005|STS_MAP_READABLE)       /* N=0x01 S=0x0 [P,A]=[0x0,0x005]; */
#define STS_BUSY_BITMAP               (0x01010005|STS_MAP_READABLE)       /* N=0x01 S=0x1 [P,A]=[0x0,0x005]; */
#define STS_AUTO_MODE_BITMAP          (0x01040005|STS_MAP_RW|STS_MAP_RMW) /* N=0x01 S=0x4 [P,A]=[0x0,0x005]; */

/* address = 6 */
#define STS_READY_CLR_BITMAP          (0x01000006|STS_MAP_WRITEABLE)      /* N=0x01 S=0x0 [P,A]=[0x0,0x006]; */
#define STS_ERR_CLR_BITMAP            (0x01010006|STS_MAP_WRITEABLE)      /* N=0x01 S=0x1 [P,A]=[0x0,0x006]; */

/* - STS frequency memory registers : Page1 - */
#define STS_FREQ_MEM0_BITMAP          (0x0C001000|STS_MAP_RW)             /* N=0x0C S=0x0 [P,A]=[0x1,0x000]; */

/* - STS power memory registers : Page2 - */
#define STS_POWER_ACCUM_SCALED_BITMAP (0x10002000|STS_MAP_READABLE)       /* N=0x10 S=0x0 [P,A]=[0x2,0x000]; */

/* Patterns */
typedef enum _pattern 
{
	PATTERN_UNKNOWN=0,
	PATTERN_UPHILL,
	PATTERN_DOWNHILL,
	PATTERN_FLAT,
	PATTERN_PEAK,
	PATTERN_TROUGH
} HAMARO_STS_PATTERN;

/*******************************************************************************************************/
/* HAMARO_STS_PROGRESS */
/*******************************************************************************************************/
typedef enum _hamaro_sts_progress { /* Scan-the-sky progress */
  HAMARO_STS_POWER_METER_SCAN=1,  /* Get power spectrum for 950-2150MHz span */         
  HAMARO_STS_PROCESSING_BUFFER,   /* Processing power spectrum buffer data */                            
  HAMARO_STS_CHANNEL_SENSING,     /* Spectrum analysis to get coarse channel parameters - CF and SR */
  HAMARO_STS_CHANNEL_EXTRACTION,  /* Symbol rate binning to get all channel parameters - fine CF, fine SR, CR, SI, etc */
  HAMARO_STS_COMPLETE,            /* Scan-the-sky complete */  
  HAMARO_STS_PROGRESS_UNDEF=0                          
} HAMARO_STS_PROGRESS;

/*******************************************************************************************************/
/* HAMARO_STS_MODULE_STATE */
/*******************************************************************************************************/
typedef enum _hamaro_sts_module_state {
  HAMARO_STS_MODULE_OFF=1,               /* Scan-the-sky is disabled (demod can be operated)    */                 
  HAMARO_STS_MODULE_ON,                  /* Scan-the-sky is enabled  (demod cannot be operated) */     
  HAMARO_STS_MODULE_UNDEF=0
} HAMARO_STS_MODULE_STATE;

/* Curvatures */
typedef enum _curvature
{
	CURVATURE_UNKNOWN=0,
	CURVATURE_CONCAVE,
	CURVATURE_CONVEX,
	CURVATURE_STRAIGHT
} HAMARO_STS_CURVATURE;

typedef struct _hamaro_sts_status_
{
    HAMARO_STS_PROGRESS     progress;
    HAMARO_STS_MODULE_STATE module_state;
} HAMARO_STS_STATUS;

/* STS sample data */
typedef struct _hamaro_sts_sample_
{   /* freq (left, mid, right) */
    unsigned long*  p_freq[3];
    /* power (left, mid, right) */
    unsigned short* p_power[3];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -