寄存器地址
#define INT_SHIELD_REG 0x0000u
#define CONFIGURE_REG1 0x0001u
#define CONFIGURE_REG2 0x0002u
#define RESET_REG 0x0003u
#define BC_RT_CMDREG 0x0003u
#define BC_RT_CTRL_REG 0x0004u
#define TICK_REG 0x0005u
#define INT_STATE_REG 0x0006u
#define CONFIGURE_REG3 0x0007u
#define CONFIGURE_REG4 0x0008u
#define CONFIGURE_REG5 0x0009u
#define RT_MT_DATA_REG 0x000au
#define BC_FRAME_TIME_REG 0x000bu
#define BC_MSG_TIME_REG 0x000cu
#define DBC_INIT_MSG_REG 0x000du
#define RT_STATE_REG 0x000eu
#define RT_BYTE_REG 0x000fu
#define TEST_REG0 0x0010u
#define TEST_REG1 0x0011u
#define TEST_REG2 0x0012u
#define TEST_REG3 0x0013u
#define TEST_REG4 0x0014u
#define TEST_REG5 0x0015u
#define TEST_REG6 0x0016u
#define TEST_REG7 0x0017u
#define CONFIGURE_REG6 0x0018u
#define CONFIGURE_REG7 0x0019u
#define BC_CONDITON_REG 0x001bu
#define BC_GENERAL_REG 0x001bu
#define IN_TEST_STATE_REG 0x001cu
#define INT_SHIELD_REG2 0x001du
#define INT_STATE_REG2 0x001eu
#define BC_RT_MT_GENERAL_REG 0x001fu
#define RT_A_STACK_START 0x0000u
#define RT_A_STACK_END 0x00ffu
#define POINTER_A_STACK 0x0100u
#define POINTER_B_STACK 0x0104u
#define MODE_CODE_TABLE_STATR 0x0108u
#define MODE_CODE_TABLE_END 0x010fu
#define MODE_CODE_DATA_START 0x0110u
#define LOOK_TABLE_A_START 0x0140u
#define LOOK_TABLE_A_END 0x01bfu
#define LOOK_TABLE_B_START 0x01C0u
#define LOOK_TABLE_B_END 0x023fu
#define BUSY_LOOK_TABLE_START 0x0240u
#define BUSY_LOOK_TABLE_END 0x0247u
#define DATA_BLOCK_BASE_ADDR_0 0x0260u
#define DATA_BLOCK_BASE_ADDR_1_4 0x0280u
#define DATA_BLOCK_SIZE 0x001fu
#define DATA_BLOCK_SPECIAL_ADDR_5 0x4000u
#define DATA_BLOCK_ADDR(x) \
((x) == 0 ? DATA_BLOCK_BASE_ADDR_0 : \
((x) >= 1 && (x) <= 4 ? DATA_BLOCK_BASE_ADDR_1_4 + ((x) - 1) * DATA_BLOCK_SIZE : \
((x) == 5 ? DATA_BLOCK_SPECIAL_ADDR_5 : \
\
DATA_BLOCK_BASE_ADDR_1_4 + 4 * DATA_BLOCK_SIZE + ((x) - 6) * DATA_BLOCK_SIZE)))
#define ILLEGAL_COMMAND_TABLE_START 0x0300u
#define ILLEGAL_COMMAND_TABLE_END 0x03ffu
#define RECV_LOOK_TABLEA_START 0x0140u
#define RECV_LOOK_TABLEA_END 0x015fu
#define SEND_LOOK_TABLEA_START 0x0160u
#define SEND_LOOK_TABLEA_END 0x017fu
#define RADIO_LOOK_TABLEA_START 0x0180u
#define RADIO_LOOK_TABLEA_END 0x019fu
#define ADDR_CTRL_BYTE_TABLEA_START 0x01a0u
#define ADDR_CTRL_BYTE_TABLEA_END 0x01bfu
#define RECV_LOOK_TABLEB_START 0x01c0u
#define RECV_LOOK_TABLEB_END 0x01dfu
#define SEND_LOOK_TABLEB_START 0x01e0u
#define SEND_LOOK_TABLEB_END 0x01ffu
#define RADIO_LOOK_TABLEB_START 0x0200u
#define RADIO_LOOK_TABLEB_END 0x021fu
#define ADDR_CTRL_BYTE_TABLEB_START 0x0220u
#define ADDR_CTRL_BYTE_TABLEB_END 0x023fu
BC模式
WR_1553B_REG(0x0003,0x0001);
WR_1553B_REG(0x0007,0x8000);
WR_1553B_REG(0x0007,0x8000);
WR_1553B_REG(0x0000,0x0000);
WR_1553B_REG(0x0001,0x0170);
WR_1553B_REG(0x0002,0x8400);
WR_1553B_REG(0x0005,0x0000);
WR_1553B_REG(0x0008,0x1060);
WR_1553B_REG(0x0009,0x0902);
WR_1553B_REG(0x000D,0x0008);
WR_1553B_MEM(0x0100,0x0000);
WR_1553B_MEM(0x0101,0xFFFE);
WR_1553B_MEM(0x0102,0x0000);
WR_1553B_MEM(0x0103,0xFFFE);
WR_1553B_MEM(0x0000,0x0000);
WR_1553B_MEM(0x0001,0x0000);
WR_1553B_MEM(0x0002,0x0000);
WR_1553B_MEM(0x0003,0x0108);
WR_1553B_MEM(0x0108,0x0180);
WR_1553B_MEM(0x0109,0x0820);
for(int i=0;i<0x20;i++)
{
WR_1553B_MEM(0x010A+i,0x0060+i);
}
WR_1553B_MEM(0x012A,0x0000);
WR_1553B_MEM(0x012B,0x0000);
WR_1553B_REG(0x0003,0x0002);
RT模式
WR_1553B_REG(0x0003,0x0001);
WR_1553B_REG(0x0007,0x8000);
WR_1553B_REG(0x0000,0x0000);
WR_1553B_REG(0x0002,0xB803);
WR_1553B_REG(0x0007,0x809D);
WR_1553B_REG(0x0008,0x2008);
WR_1553B_REG(0x0009,0x0902);
BlockWR_1553B_MEM(0x0000,0x00FF,0x0000);
WR_1553B_MEM(0x0100,0x0000);
WR_1553B_MEM(0x0120,0x1122);
BlockWR_1553B_MEM(0x0140,0x015F,0x0400);
BlockWR_1553B_MEM(0x0160,0x017F,0x0800);
BlockWR_1553B_MEM(0x01A0,0x01BF,0x0000);
WR_1553B_MEM(0x01A1,0x0000);
BlockWR_1553B_MEM(0x0240,0x0247,0x0000);
BlockWR_1553B_MEM(0x0300,0x03FF,0x0000);
for(int i=0;i<32;i++)
{
WR_1553B_MEM(0x0800+i,0x00A0+i);
}
WR_1553B_REG(0x0001,0x8F80);
MT模式
WR_1553B_REG(0x0003,0x0001);
WR_1553B_REG(0x0007,0x8000);
WR_1553B_REG(0x0007,0x8D00);
WR_1553B_REG(0x0001,0x5000);
WR_1553B_MEM(0x0102,0x0400);
WR_1553B_MEM(0x0103,0x0800);
for(i=0;i<0x80;i++)
{
WR_1553B_MEM(0x0280+i,0xFFFF);
}
WR_1553B_REG(0x0003,0x0002);