📄 drvuart.h
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2006-2007 MStar Semiconductor, Inc.
// All rights reserved.
//
// Unless otherwise stipulated in writing, any and all information contained
// herein regardless in any format shall remain the sole proprietary of
// MStar Semiconductor Inc. and be kept in strict confidence
// (¨MStar Confidential Information〃) by the recipient.
// Any unauthorized act including without limitation unauthorized disclosure,
// copying, use, reproduction, sale, distribution, modification, disassembling,
// reverse engineering and compiling of the contents of MStar Confidential
// Information is unlawful and strictly prohibited. MStar hereby reserves the
// rights to any and all damages, losses, costs and expenses resulting therefrom.
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __UART_H
#define __UART_H
#include "datatype.h"
#include "mreg51.h"
#include "board.h"
#define UARTMSG(x) // x
#ifdef _DRVUART_C_
#define INTERFACE
#else
#define INTERFACE extern
#endif
INTERFACE bit g_bUart0Detected; // decode command flag
INTERFACE U16 g_Uart0CheckTick;
//INTERFACE bit g_bUart1Detected; // decode command flag
INTERFACE U16 g_Uart1CheckTick;
INTERFACE bit g_bUart1WaitAck;
INTERFACE bit g_bUart1Ack;
#if (ENABLE_MSTV_UART_DEBUG)
/////////////////////////////////////////////
// Uart command structure
/////////////////////////////////////////////
typedef enum _UartCommadEnumType
{
_UART_CMD_CODE_,
_UART_CMD_INDEX1_,
_UART_CMD_INDEX2_,
_UART_CMD_INDEX3_,
_UART_CMD_INDEX4_,
_UART_CMD_INDEX5_,
_UART_CMD_INDEX6_,
_UART_CMD_INDEX7_,
_UART_CMD_INDEX8_,
_UART_CMD_INDEX9_,
_UART_CMD_INDEX10_,
_UART_CMD_INDEX11_,
_UART_CMD_INDEX12_,
_UART_CMD_INDEX13_,
_UART_CMD_INDEX14_,
_UART_CMD_INDEX15_,
_UART_CMD_INDEX16_,
_UART_CMD_LENGTH_
}UartCommadEnumType;
typedef struct _UartCommadType
{
U8 Buffer[_UART_CMD_LENGTH_]; // command buffer
// [Length+Command] - [Byte 2] - [Byte 3] - [Byte 4] - [Byte 5]
U8 Index; // buffer index
}UartCommadType;
typedef struct _UartCommadType1
{
U8 Buffer[20][30]; // command buffer
// [Length] -[Byte 0] -[Byte 1] - [Byte 2] -...... - [CRC]
U8 BuffIndex; // buffer index
U8 CommandIndex; // Command index
U8 CommandCRC; // Command CRC
U8 SendBuffer[10]; //SendBuffer
U8 CommandLength; // Command Length
}UartCommadType1;
typedef enum
{
MCU_P0,
MCU_P1,
MCU_P2,
MCU_P3,
MCU_P4,
MCU_TCON,
MCU_TMOD,
MCU_PCON,
MCU_IE,
MCU_IP,
MCU_SCON
} MCU_Reg;
/////////////////////////////////////////////
// Uart Variables
/////////////////////////////////////////////
INTERFACE bit g_bUartOutput; // output hexidecimal data flag
INTERFACE bit g_bDebugASCIICommandFlag;
INTERFACE bit g_bDebugProgStopFlag;
INTERFACE UartCommadType g_UartCommand; // Uart command struct
INTERFACE UartCommadType1 g_Uart1Command; // Uart1 command struct
INTERFACE U8 g_u8Uart1CommandIndex;
INTERFACE void MDrv_UART_Init(void);
INTERFACE void MDrv_UART_DecodeCommand(void);
INTERFACE void MDrv_UART_DecodeNormalCommand(void);
INTERFACE void MDrv_UART_DecodeExtCommand(void);
INTERFACE void MDrv_UART_ExecTestCommand(void);
INTERFACE void MDrv_UART1_SendSTR370Command(void);
#define UART_CMD_LENGTH (g_UartCommand.Buffer[_UART_CMD_CODE_] >> 5)
#define UART_CMD (g_UartCommand.Buffer[_UART_CMD_CODE_] & 0x1F)
#define UART_CMD_MS_REG (g_UartCommand.Buffer[_UART_CMD_INDEX1_])
#define UART_CMD_MS_DAT (g_UartCommand.Buffer[_UART_CMD_INDEX2_])
// for EXT Command
#define UART_EXT (UART_CMD_LENGTH == 7)
#define UART_CMD_EXT_LENGTH (g_UartCommand.Buffer[_UART_CMD_INDEX1_])
#define UART_EXT_DEV (g_UartCommand.Buffer[_UART_CMD_INDEX2_])
#define UART_EXT_CMD (g_UartCommand.Buffer[_UART_CMD_INDEX3_])
#define UART_EXT_CMD_MS_DAT1 (g_UartCommand.Buffer[_UART_CMD_INDEX4_])
#define UART_EXT_CMD_MS_DAT2 (g_UartCommand.Buffer[_UART_CMD_INDEX5_])
#define UART_EXT_CMD_MS_DAT3 (g_UartCommand.Buffer[_UART_CMD_INDEX6_])
#define UART_EXT_CMD_MS_DAT4 (g_UartCommand.Buffer[_UART_CMD_INDEX7_])
#define UART_EXT_CMD_MS_DAT5 (g_UartCommand.Buffer[_UART_CMD_INDEX8_])
#define UART_EXT_CMD_MS_DAT6 (g_UartCommand.Buffer[_UART_CMD_INDEX9_])
#define UART_EXT_CMD_MS_DAT7 (g_UartCommand.Buffer[_UART_CMD_INDEX10_])
#define UART_EXT_CMD_MS_DAT8 (g_UartCommand.Buffer[_UART_CMD_INDEX11_])
#define UART_EXT_CMD_MS_DAT9 (g_UartCommand.Buffer[_UART_CMD_INDEX12_])
#define UART_EXT_CMD_MS_DAT10 (g_UartCommand.Buffer[_UART_CMD_INDEX13_])
#define UART_EXT_CMD_MS_DAT11 (g_UartCommand.Buffer[_UART_CMD_INDEX14_])
#define UART_EXT_CMD_MS_DAT12 (g_UartCommand.Buffer[_UART_CMD_INDEX15_])
#define UART_EXT_CMD_MS_DAT13 (g_UartCommand.Buffer[_UART_CMD_INDEX16_])
#define UART_CMD_FLASH_LENGTH (g_UartCommand.Buffer[_UART_CMD_CODE_] >> 3)
#define UART_CMD_FLASH_ADDR0 (g_UartCommand.Buffer[_UART_CMD_INDEX1_])
#define UART_CMD_FLASH_ADDR1 (g_UartCommand.Buffer[_UART_CMD_INDEX2_])
#define UART_CMD_FLASH_ADDR2 (g_UartCommand.Buffer[_UART_CMD_INDEX3_])
#define UART_CMD_FLASH_DATA (g_UartCommand.Buffer[_UART_CMD_INDEX1_])
#define UART_FLASH_CMD (g_UartCommand.Buffer[_UART_CMD_CODE_] & 0x07)
// for UART1 Command
#define UART1_EXT_ID 0xF0
#define UART1_EXT_CMD_ID (g_Uart1Command.Buffer[g_Uart1Command.CommandIndex][_UART_CMD_CODE_] )
#define UART1_EXT_CMD_LENGTH (g_Uart1Command.Buffer[g_Uart1Command.CommandIndex][_UART_CMD_INDEX1_])
#define UART1_EXT_CMD_LENGTH_1 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX1_])
#define UART1_EXT_FUNC_CMD (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX2_])
#define UART1_EXT_VALUE1 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX3_])
#define UART1_EXT_VALUE2 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX4_])
#define UART1_EXT_VALUE3 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX5_])
#define UART1_EXT_VALUE4 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX6_])
#define UART1_EXT_VALUE5 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX7_])
#define UART1_EXT_VALUE6 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX8_])
#define UART1_EXT_VALUE7 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX9_])
#define UART1_EXT_VALUE8 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX10_])
#define UART1_EXT_VALUE9 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX11_])
#define UART1_EXT_VALUE10 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX12_])
#define UART1_EXT_VALUE11 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX13_])
#define UART1_EXT_VALUE12 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX14_])
#define UART1_EXT_VALUE13 (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX15_])
#define UART1_NEXT_PAGE (g_Uart1Command.Buffer[g_u8Uart1CommandIndex][_UART_CMD_INDEX3_]+1)
#define uartExtFunccmd_InitalSettings 0x00
#define uartExtFuncCmd_BriSettings 0x01
#define uartExtFuncCmd_HueSettings 0x02
#define uartExtFuncCmd_ContSettings 0x03
#define uartExtFuncCmd_PWMRGBSettings 0x04
#define uartExtFuncCmd_PWMRSettings 0x05
#define uartExtFuncCmd_PWMGSettings 0x06
#define uartExtFuncCmd_PWMBSettings 0x07
#define uartExtFuncCmd_VCOMDCSettings 0x08
#define uartExtFuncCmd_VCOMACSettings 0x09
#define uartExtFuncCmd_ComponentInput 0x10
#define uartExtFuncCmd_VGAInput 0x11
#define uartExtFuncCmd_Poweroff 0x12
#define uartExtFuncCmd_BackLightCont 0x20
#define uartExtFuncCmd_QueryInputType 0x30
#define uartExtFuncCmd_USBCont 0x31
#define uartExtFuncCmd_BTCont 0x32
#define uartExtFuncCmd_ClearAllOSD 0x33
#define uartExtFuncCmd_DisplayMenuIdx 0x40
#define uartExtFuncCmd_DisplayString 0x41
#define uartEXtFuncCmd_SpectrumReceive 0x42
#define uartExtFuncCmd_DislplayStrStatus 0x43
#define _EOS_ '\0' // end of string
#define uartWrite_MST_Bank_n 0x01
#define uartRead_MST_Bank_n 0x02
#define UART_OSD_BANK 0x21
#define uartRead_MCU_XDATA 0x04
#define uartWrite_MCU_XDATA 0x05
#define uartTest_Command 0x09
#define uartI2C_Device_Write 0x10
#define uartI2C_Device_Read 0x11
#define uartEEPROM_Write 0x12
#define uartEEPROM_Read 0x13
//---------------------------------
#define uartExtDev_I2C_DEVICE 0x00
#define uartExtDev_MstDlcTest 0x05
#define uartExtDev_SAMSUNG_S5H1409_DEMODE 0x10
//#if ((CHANNEL_SCAN_AUTO_TEST == 1) || (SFU_AUTO_TEST == 1))
#define uartExtDev_I2C_DEVICE_NEW 0x20
#define uartExtDev_SCAN_TUNER 0x30
#define uartExtDev_AUDIO_DEBUG 0x80
//#endif
#define uartExtDev_EEPROM_HDCP 0x03
#define URCMD_EEPROM_HDCP_GET_ADDR 0
#define URCMD_EEPROM_HDCP_WRITE 1
#define URCMD_EEPROM_HDCP_WRITE_END 2
#define URCMD_EEPROM_HDCP_GET_CHECKSUM 3
//---------------------------------
// kWrite_MST_Bank_n, kRead_MST_Bank_n
#define UART_CMD_MS_BANK (g_UartCommand.Buffer[_UART_CMD_INDEX1_])
#define UART_CMD_MS_REGINDEX (g_UartCommand.Buffer[_UART_CMD_INDEX2_])
#define UART_CMD_MS_REGDATA (g_UartCommand.Buffer[_UART_CMD_INDEX3_])
// kRead_MCU_XDATA, kWrite_MCU_XDATA
#define UART_CMD_MCU_IDX_H (g_UartCommand.Buffer[_UART_CMD_INDEX1_])
#define UART_CMD_MCU_IDX_L (g_UartCommand.Buffer[_UART_CMD_INDEX2_])
#define UART_CMD_MCU_DATA (g_UartCommand.Buffer[_UART_CMD_INDEX3_])
#define URCMD_MST_DLC_TEST_FORCE_PAUSE 0
#define URCMD_MST_DLC_TEST_FORCE_RUN 1
#define URCMD_MST_DLC_TEST_READ 2
#define URCMD_MST_DLC_TEST_WRITE_1 3
#define URCMD_MST_DLC_TEST_WRITE_2 4
#define URCMD_MST_DLC_TEST_REINIT 5
#define URCMD_MST_DLC_TEST_BOUNDARY_READ 6
#define URCMD_MST_DLC_TEST_BOUNDARY_WRITE 7
#if ((CHANNEL_SCAN_AUTO_TEST == 1) || (SFU_AUTO_TEST == 1))
// for uartExtDev_SCAN_TUNER
#define UART_SCAN_DATA1 (g_UartCommand.Buffer[_UART_CMD_INDEX4_])
#define UART_SCAN_DATA2 (g_UartCommand.Buffer[_UART_CMD_INDEX5_])
#define UART_SCAN_DATA3 (g_UartCommand.Buffer[_UART_CMD_INDEX6_])
#define UART_SCAN_DATA4 (g_UartCommand.Buffer[_UART_CMD_INDEX7_])
#define UART_SCAN_DATA5 (g_UartCommand.Buffer[_UART_CMD_INDEX8_])
#define UART_SCAN_DATA6 (g_UartCommand.Buffer[_UART_CMD_INDEX9_])
#define UART_SCAN_DATA7 (g_UartCommand.Buffer[_UART_CMD_INDEX10_])
#define UART_SCAN_DATA8 (g_UartCommand.Buffer[_UART_CMD_INDEX11_])
// for uartExtDev_AUDIO_DEBUG
#define UART_AUDIO_DATA1 (g_UartCommand.Buffer[_UART_CMD_INDEX4_])
#define UART_AUDIO_DATA2 (g_UartCommand.Buffer[_UART_CMD_INDEX5_])
#define UART_AUDIO_DATA3 (g_UartCommand.Buffer[_UART_CMD_INDEX6_])
#define UART_AUDIO_DATA4 (g_UartCommand.Buffer[_UART_CMD_INDEX7_])
#define UART_SCAN_CMD_SET_CH_CNT 0x00
#define UART_SCAN_CMD_SET_ANT 0x01
#define UART_SCAN_CMD_SET_CABLE_SYSTEM 0x02
#define UART_SCAN_CMD_START 0x03
#define UART_SCAN_CMD_END 0x04
#define UART_SCAN_CMD_POLL 0x05
#define UART_SCAN_CMD_READ_FOUND_CH_NUM 0x06
#define UART_SCAN_CMD_READ_SRV_INFO 0x07
#define UART_SCAN_CMD_READ_FOUND_SRV_NUM 0x08
#define UART_SCAN_CMD_SET_TUNER 0x09
#define UART_SCAN_CMD_SET_DEMOD 0x0A
#define UART_SCAN_CMD_SET_SPECTRUM 0x0B
#define UART_SCAN_CMD_SET_TUNE_TO_RFCH 0x0C
#define UART_SCAN_CMD_RETURN_TYPE 0x0D
#define UART_SCAN_CMD_READ_ONE_SRV_INFO 0x0E
#define UART_SCAN_CMD_READ_SRV_INFO2 0x0F
#define UART_SCAN_CMD_READ_ONE_SRV_INFO2 0x10
#define UART_SCAN_CMD_SET_PLUSCHANGE_ONE_CH 0x11
#define UART_SCAN_CMD_READ_MAINSTATE 0x12
#define UART_SCAN_CMD_SET_KEYVALUE 0x13
//for uartExtDev_AUDIO_DEBUG
#define UART_AUDIODBG_CMD_SET_BK9 0x00
#define SCAN_AUTOTEST_CMD_DUMP_CH_INFO 0x01
#define SCAN_AUTOTEST_CMD_DUMP_ONE_CH_INFO 0x02
#define SCAN_AUTOTEST_CMD_DUMP_CH_INFO2 0x04
#define SCAN_AUTOTEST_CMD_DUMP_ONE_CH_INFO2 0x08
#define SCAN_AUTOTEST_CMD_PLUSCHANGE_ONE_CH 0x10
#define SCAN_AUTOTEST_CMD_DUMP_MAINSTATE 0x20
#define SCAN_AUTOTEST_CMD_SETKEY 0x40
#define AUDIO_DEBUG_CMD_RWREG 0x80
typedef struct
{
U16 u12ChNum:11;
U16 f8Antenna:1;
U16 u2CableSystem:2;
U16 u2CableSystemSave:2;
U16 u12ChFoundNum:11;
U16 f8AntennaSave:1;
U16 fScanTypeSave:1;
U16 fCommand:1; // 0: stop; 1: Start.
U16 u2State:2; // 0: Normal; 1: Scanning; 2. Stopped
U16 u16SrvFoundNum;
} ScanAutoTestData;
typedef struct
{
U8 u8RegStartAddr;
U8 u8WriteData;
U8 u8ReadBytes;
} ScanAutoTestAU;
#endif
#endif
#define UART_CH_ADD 0x00
#define UART_CH_DEL_PHY 0x01
#define UART_CH_DEL_VIR 0x02
extern char kbhit(void);
#undef INTERFACE
#endif /* __UART_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -