CPU频率跑792Mhz
内存跑 408Mhz
AHB总线跑 300Mhz
APB总线 150Mhz
void gpio_a_set(uint8_t pin, uint8_t value)
{
if(value>=1)
(*(volatile unsigned int *)(addr_a)) |= (1<<pin);
else
(*(volatile unsigned int *)(addr_a)) &= ~(1<<pin);
}
void main(void)
{
初始化。。。。。
while(1){
gpio_a_set(CLK0,1);
gpio_a_set(CLK0,0);
}
}
裸机程序跑这段代码,但是测试这个I/O输出频率只能最高到 4Mhz左右,这么高的总线速度和CPU速度,怎么I/O口的速度这么低,我这个应用希望I/O数据能达到15Mhz左右,最低也需要10Mhz,这个是不是那个地方没设置好,还是本身CPU的I/O速度就达不到这么高?
离线
用程序翻转都这样的了,STM32也是一样,要快,用TMR + DMA翻转
离线
因为需要和一片外部的芯片通信,这个芯片不是标准的SPI接口协议,需要I/O软件模拟时序,外部芯片支持的CLK速度可达几十M,但是MCU I/O模拟的速度太慢了,不知道有没有大牛用过I/O做类似的通信,有没有好的建议?
离线
你用SOC去干这事,只能是这速度
离线
IO反转这速度还勉强可以了,试试外部中IO中断你就知道这个芯片直接操作IO口有多慢了
离线
感谢各位大佬,用这个SOC跑比较高的I/O的速度有点难为它了,准备外面挂一个协处理器来实现一些有时序要求的功能
离线
我51的翻转速度都可以到5Mhz啦
离线
感谢各位大佬,用这个SOC跑比较高的I/O的速度有点难为它了,准备外面挂一个协处理器来实现一些有时序要求的功能
可以尝试CPLD或者FPGA,如果要求高。要求低就MCU吧
离线
MPU干MPU的活,MCU就干MCU的活
离线
时序放内存 然后dma给端口 会是什么样子
离线
时序放内存 然后dma给端口 会是什么样子
这个可是一个真实可行的例子. 这样的话无法保证别的IO口的工作状态.
离线