- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
想问一下我把IMO从24MHz变为32MHz,HFClk和SysClk时钟也都是从24MHz变为32MHz,这样变更有问题吗,变更后会影响到哪些外设功能呢,比如说cyc时钟,adc,spi,处理时间之类的。
Solved! Go to Solution.
- Labels:
-
PSoC 4 MCU
- Tags:
- IMO时钟变更影响
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
在工程启动之前就改的化,没有影响的,但是如果在运行过程中改就有影响了,你在.cydwr中改的化,其它外设会自动去适配,比如uart,但是不一定会适配到你在24Mhz下面的波特率。主频时钟更改之后,外设时钟就会更改,是否可以找到合适的divider得到你原来配置的外设时钟,你要自己看一下。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你为什么更改时钟?你想在什么条件下更改?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
我只是想把系统时钟增大,让处理速度变得快一些,没有特别的需求。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你选择芯片的型号是什么?
按照我的理解,那个SPI的case不是由这个因素导致的,你的buffer开的是多少?硬件buffer是固定的,但是你可以通过软件buffer来扩充。
你可以看看你中断处理的方式。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
芯片型号是CY8C4146LQS-S423,buff开的是138,这个有可能是中断处理时间过长影响的吗?因为我确实只是改了一下时钟就可以了。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
我设置SPI的通信速率是2MHz,通信buff设置成138,而且在Master发送数据的同时Slave就要给出有效数据,请问您那有类似可以参考的例程吗?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你把你的测试工程发给我看一下
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
等到buffer里面存储了138个字节再读,这样就不会存在丢了字节的情况了。
你从PSoC Creator中直接找SPI的示例。如果你是主机发送138个字节你,你就把138个字节都收下来再处理。
void Slave_ISR()
{
uint8 i = 0u;
/* Sets global flag for use by background thread */
flag = 1;
set_r /* Waits for the end of the data transfer */
while (PACKET_SIZE != SPIS_SpiUartGetRxBufferSize());
/* Moves data from the Rx buffer into array */
while (0u != SPIS_SpiUartGetRxBufferSize())
{
tmpBuffer[i] = (uint8) SPIS_SpiUartReadRxData();
i++;
}
/* Clears out the Rx buffer */
SPIS_SpiUartClearRxBuffer();
/* Clears the interrupt source */
SPIS_ClearRxInterruptSource(SPIS_INTR_RX_NOT_EMPTY);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
IMO这个时钟即使我把它从24MHz改成36MHz,对功能外设会有什么影响吗?我理解应该只有单步的处理速度变快了吧,外设都在组件中设置的,时钟即使改了也会自动生成匹配?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
在工程启动之前就改的化,没有影响的,但是如果在运行过程中改就有影响了,你在.cydwr中改的化,其它外设会自动去适配,比如uart,但是不一定会适配到你在24Mhz下面的波特率。主频时钟更改之后,外设时钟就会更改,是否可以找到合适的divider得到你原来配置的外设时钟,你要自己看一下。