21ic问答首页 - gd32h759使用OSPI四线通信获取adc模块的值
gd32h759使用OSPI四线通信获取adc模块的值
该怎么使用OSPI技术,根据flah那种改的感觉不对,读到的值一直与示波器获取的波形对不起来。
void ad7380_read(uint8_t *pdata, ospi_parameter_struct *ospi_struct)
{
ospi_regular_cmd_struct cmd = {0};
cmd.operation_type = OSPI_OPTYPE_COMMON_CFG;//间接模式或自动轮询
// cmd.instruction = 0x00;
cmd.ins_size = OSPI_INSTRUCTION_16_BITS;
cmd.ins_mode = OSPI_INSTRUCTION_1_LINE;
// cmd.ins_mode = OSPI_INSTRUCTION_NONE;//clk就不执行了,不能无指令?
cmd.addr_mode = OSPI_ADDRESS_NONE;
cmd.alter_bytes_mode = OSPI_ALTERNATE_BYTES_NONE;// 无地址,无备用字节
cmd.data_mode = OSPI_DATA_4_LINES; // 固定
cmd.nbdata = 8; //读取8字节(4个通道 x 2字节)|16 bit :AD7380 每个通道数据是 16 位(2 字节),读取 4 个通道的数据,共需要 8 字节(4 * 2 字节)。
cmd.dummy_cycles = OSPI_DUMYC_CYCLES_0;// 当OSPI工作在2线、4线或者8线模式下从外部存储器中接收数据时,至少设置一个空指令周期,以确保数据的正确接收。
cmd.data_dtr_mode = OSPI_DADTR_MODE_DISABLE;
ospi_command_config(OSPI0, ospi_struct, &cmd);
//进入间接读模式
ospi_functional_mode_config(OSPI0, OSPI_INDIRECT_READ);
ospi_receive(OSPI0,pdata);
//增加延时,确保 AD7380 完成数据采样
rt_kprintf("AD7380 reading ...\n\r");
while(ospi_flag_get(OSPI0, OSPI_FLAG_BUSY)); // 等待读取完成
void ad7380_read(uint8_t *pdata, ospi_parameter_struct *ospi_struct)
{
ospi_regular_cmd_struct cmd = {0};
cmd.operation_type = OSPI_OPTYPE_COMMON_CFG;//间接模式或自动轮询
// cmd.instruction = 0x00;
cmd.ins_size = OSPI_INSTRUCTION_16_BITS;
cmd.ins_mode = OSPI_INSTRUCTION_1_LINE;
// cmd.ins_mode = OSPI_INSTRUCTION_NONE;//clk就不执行了,不能无指令?
cmd.addr_mode = OSPI_ADDRESS_NONE;
cmd.alter_bytes_mode = OSPI_ALTERNATE_BYTES_NONE;// 无地址,无备用字节
cmd.data_mode = OSPI_DATA_4_LINES; // 固定
cmd.nbdata = 8; //读取8字节(4个通道 x 2字节)|16 bit :AD7380 每个通道数据是 16 位(2 字节),读取 4 个通道的数据,共需要 8 字节(4 * 2 字节)。
cmd.dummy_cycles = OSPI_DUMYC_CYCLES_0;// 当OSPI工作在2线、4线或者8线模式下从外部存储器中接收数据时,至少设置一个空指令周期,以确保数据的正确接收。
cmd.data_dtr_mode = OSPI_DADTR_MODE_DISABLE;
ospi_command_config(OSPI0, ospi_struct, &cmd);
//进入间接读模式
ospi_functional_mode_config(OSPI0, OSPI_INDIRECT_READ);
ospi_receive(OSPI0,pdata);
//增加延时,确保 AD7380 完成数据采样
rt_kprintf("AD7380 reading ...\n\r");
while(ospi_flag_get(OSPI0, OSPI_FLAG_BUSY)); // 等待读取完成

问答
您需要登录后才可以回复 登录 | 注册