📄 imu_gw.h.bak
字号:
/*
* IMU *.h 包括了DSP6713 ADS8364 TLV2548 16L784功能
* All rights reserved. HT17@ht17.com
*/
#include <stdio.h>
#include <stdlib.h>
#include <csl.h>
#include <csl_cache.h>
#include <csl_pll.h>
#include <csl_timer.h>
#include <time.h>
#include <csl_emif.h>
/**************************************************************
XR16L784说明部分
**************************************************************/
//register
#define XR16L_BASE_ADDR 0XB0000000 /*XR16L784基地址*/
#define XR16L_CH0_REG_ADDR_OFFSET 0x00000000
#define XR16L_CH1_REG_ADDR_OFFSET 0x00000010
#define XR16L_CH2_REG_ADDR_OFFSET 0x00000020
#define XR16L_CH3_REG_ADDR_OFFSET 0x00000030
#define XR16L_CH_LENGTH 0x00000010
#define XR16L_CH_RHR_OFFSET 0
#define XR16L_CH_THR_OFFSET 0
#define XR16L_CH_DLL_OFFSET 0
#define XR16L_CH_DLM_OFFSET 0X1
#define XR16L_CH_IER_OFFSET 0X1
#define XR16L_CH_ISR_OFFSET 0X2
#define XR16L_CH_FCR_OFFSET 0X2
#define XR16L_CH_LCR_OFFSET 0X3
#define XR16L_CH_MCR_OFFSET 0X4
#define XR16L_CH_LSR_OFFSET 0X5
#define XR16L_CH_RS485_OFFSET 0X6
#define XR16L_CH_SPR_OFFSET 0X7
#define XR16L_CH_FCTR_OFFSET 0X8
#define XR16L_CH_EFR_OFFSET 0X9
#define XR16L_CH_TXCNT_OFFSET 0XA
#define XR16L_CH_TXTRG_OFFSET 0XA
#define XR16L_CH_RXCNT_OFFSET 0XB
#define XR16L_CH_RXTRG_OFFSET 0XB
#define XR16L_INT0_REG_OFFSET 0X80
#define XR16L_INT1_REG_OFFSET 0X81
#define XR16L_INT2_REG_OFFSET 0X82
#define XR16L_TIMECTRL_REG_OFFSET 0X84
#define XR16L_TIMER_REG_OFFSET 0X85
#define XR16L_TIMERLSB_REG_OFFSET 0X86
#define XR16L_TIMERMSB_REG_OFFSET 0X87
#define XR16L_X8MODE_REG_OFFSET 0X88
#define XR16L_REG1_REG_OFFSET 0X89
#define XR16L_RESET_REG_OFFSET 0X8A
#define XR16L_SLEEP_REG_OFFSET 0X8B
#define XR16L_DREV_REG_OFFSET 0X8C
#define XR16L_DVID_REG_OFFSET 0X8D
#define XR16L_REG2_REG_OFFSET 0X8E
/**************************************************************
TLV2548说明部分
**************************************************************/
/* Define McBSP0 Registers */
#define McBSP0_DRR 0x18c0000 /* Address of data receive reg. */
#define McBSP0_DXR 0x18c0004 /* Address of data transmit reg. */
#define McBSP0_SPCR 0x18c0008 /* Address of serial port contl. reg. */
#define McBSP0_RCR 0x18c000C /* Address of receive control reg. */
#define McBSP0_XCR 0x18c0010 /* Address of transmit control reg. */
#define McBSP0_SRGR 0x18c0014 /* Address of sample rate generator */
#define McBSP0_MCR 0x18c0018 /* Address of multichannel reg. */
#define McBSP0_RCER 0x18c001C /* Address of receive channel enable. */
#define McBSP0_XCER 0x18c0020 /* Address of transmit channel enable. */
#define McBSP0_PCR 0x18c0024 /* Address of pin control reg. */
#define PI 3.1415926
#define IO_PORT 0x90080000 /* I/O port Address,top byte valid data */
#define INTERNAL_MEM_SIZE (0x4000)>>2
#define EXTERNAL_MEM_SIZE (0x400000)>>2
#define FLASH_SIZE 0x20000
#define POST_SIZE 0x10000
#define FLASH_WRITE_SIZE 0x80
#define INTERNAL_MEM_START 0xc000
#define EXTERNAL_MEM_START 0x80000000
#define FLASH_START 0x90000000
#define POST_END 0x90010000
#define FLASH_ADR1 0x90005555
#define FLASH_ADR2 0x90002AAA
#define FLASH_KEY1 0xAA
#define FLASH_KEY2 0x55
#define FLASH_KEY3 0xA0
#define ALL_A 0xaaaaaaaa
#define ALL_5 0x55555555
#define CE1_8 0xffffff03 /* reg to set CE1 as 8bit async */
#define CE1_32 0xffffff23 /* reg to set CE1 as 32bit async */
#define ADC_SIZE 200
#define INT_EXT6 0x0040
// Software controlled operation of the TLV2548
#define channel0 0x0000
#define channel1 0x1000
#define channel2 0x2000
#define channel3 0x3000
#define channel4 0x4000
#define channel5 0x5000
#define channel6 0x6000
#define channel7 0x7000
#define read_CFR 0x9000
#define write_CFR 0xAC80 //internal reference 2V,short sampling,SCLK,single shot,INT
/**************************************************************
ADS8364说明部分
**************************************************************/
// Set clock speed and sample size
#define CONVCLK_PERIOD 5000
#define ADC_SAMPLE_SIZE 200
#define TIMER1_CTRL 0x01980000
#define TIMER1_PRD 0x01980004
#define TIMER1_COUNT 0x01980008
#define ADD_Mode 1
// Software controlled operation of the ADS8364
#define CR1 0x0080
#define A0 0x00
#define A1 0x01
#define B0 0x02
#define B1 0x03
#define C0 0x04
#define C1 0x05
#define CYCLE 0x06
#define FIFO 0x07
#define Add 0x08
#define Binary 0x10
#define Twos 0x00
#define CMD1 (CR1 | CYCLE | Twos)
#define CR0 0x000F
#define GBL_Reset 0x07
#define HoldA 0x0B
#define HoldB 0x0D
#define HoldC 0x0E
#define CMD0 (CR0 & HoldA & HoldB & HoldC )
// ADC Address
#define ADC_Base 0xa0000020
#define _A0 0xa0000020 // Channel A0
#define _A1 0xa0000024 // Channel A1
#define _B0 0xa0000028 // Channel A1
#define _B1 0xa000002C // Channel B1
#define _C0 0xa0000030 // Channel C0
#define _C1 0xa0000034 // Channel C1
#define _CYCLE 0xa0000038 // Cycle Mode
#define _FIFO 0xa000003C // FIFO Mode
#define CTL_BASE 0x3F00
#define ADD 0x02
#define HOLDA 0x01
#define HOLDB 0x08
#define HOLDC 0x04
#define RESET 0x20
#define RELEASE_HOLD 0x0D
#define INIT_SOFT 0x2D
/**************************************************************
DSP6713说明部分
**************************************************************/
/*sdram*/
#define SDRAM_ADDR 0x80000000
#define SDRAM_LENGTH 0x00800000
#define FLASH_BASE 0x90000000
#define FLASH_CTL555 (FLASH_BASE + (0x555 << 1))
#define FLASH_CTL2AA (FLASH_BASE + (0x2aa << 1))
#define FLASH_CTLAAA (FLASH_BASE + (0xaaa << 1))
#define PLL_BASE_ADDR 0x01b7c000
#define PLL_PID_IMU (PLL_BASE_ADDR + 0x000 )
#define PLL_CSR_IMU (PLL_BASE_ADDR + 0x100 )
#define PLL_MULT_IMU (PLL_BASE_ADDR + 0x110 )
#define PLL_DIV0_IMU (PLL_BASE_ADDR + 0x114 )
#define PLL_DIV1_IMU (PLL_BASE_ADDR + 0x118 )
#define PLL_DIV2_IMU (PLL_BASE_ADDR + 0x11C )
#define PLL_DIV3_IMU (PLL_BASE_ADDR + 0x120 )
#define PLL_OSCDIV1_IMU (PLL_BASE_ADDR + 0x124 )
#define CSR_PLLEN 0x00000001
#define CSR_PLLPWRDN 0x00000002
#define CSR_PLLRST 0x00000008
#define CSR_PLLSTABLE 0x00000040
#define DIV_ENABLE 0x00008000
/********************************************************/
/*功能函数 */
/********************************************************/
/*XR16L784*/
void XR16L_SendData( Uint8 chan, Uint8* pdata, Uint32 datanum);
void Initialize_XR16LChip();
void Initialize_XR16L_Chan(Uint8 chan);
interrupt void ext4_isr();
/*TLV2548*/
void DSP_init();
void enable_interrupt(unsigned int mask);
static void PllDelay( int Count );
void pll_set();
void Delay( int Count );
void McBSP0_init();
unsigned short McBSP0_rrdy();
void McBSP0_write(unsigned short cmd);
unsigned short McBSP0_read();
void ADC_init();
void ADC_read(unsigned short channel);
interrupt void ext6_isr();
interrupt void dummy_isr();
/*ADS8364*/
void dsp_init();
void init_timer0();
void delay();
void software_init_ADC();
void software_cfig(unsigned short cmd1);
void software_cnvt(unsigned short cmd0, unsigned short reset);
void software_read();
interrupt void ext5_isr();
/*DSP6713*/
void sdram_test(void);
void pll_set(void);
void flash_test(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -