引言
由于目前灵动官网暂未发布正式版的PLUS-F5280开发板,可以使用现有的PLUS-F5270 v1.2开发板(下文简称PLUS-F5270开发版)替换为MM32F5280微控制器芯片,改装为PLUS-F5280开发板。本文记录了使用现有的PLUS-F5270开发板评估MM32F5280微控制器的软硬件调整过程。
硬件调整
PLUS-F5270 开发板上,使用MM32F5270微控制器的qspi接口对接了外置flash存储芯片。PLUS-F5270 板载华邦flash存储芯片的 W25Q64JVSIQ,容量为 8MB (64Mb),3.3V 供电,默认情况下,四线模式处于打开状态。
MM32F5270连接该 QSPI Flash 所使用的引脚号如图1所示:
图1 PLUS-F5270开发板上的spiflash原理图
MM32F5280微控制器芯片,是在MM32F5270微控制器的基础之上,在芯片内部合封了一块2MB容量的flash,合封flash芯片同MM32F5270的die也是通过qspi接口对接。但当前版本的PLUS-F5270开发板外界flash芯片的qspi引脚同MM32F5280合封内部使用的qspi引脚不相同。见表1所示。
表1 PLUS-F5270和MM32F5280的qspi引脚
MM32F5270微控制器芯片同MM32F5280除了合封qspi接口的引脚未引出,其余引脚完全相同,故改装后的PLUS-F5280可以使用绝大多数原PLUS-F5270开发板的功能,除了少量功能,包括:
ADC温感、电位器功能将无法使用
以太网功能将无法使用(原RMII模式连线已弃用)
软件调整
同时,需要在MindSDK为PLUS-F5270开发的样例工程中,修改pin_init.c文件中引脚复用配置。以spiflash_sfud_qspi工程为例。
原PLUS-F5270工程中的pin_init.c源文件:
void BOARD_InitPins(void)
{
...
/* PB10 - QSPI_CS. */
gpio_init.Pins = GPIO_PIN_10;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio_init);
GPIO_PinAFConf(GPIOB, gpio_init.Pins, GPIO_AF_10);
/* PG7 - QSPI_SCK. */
gpio_init.Pins = GPIO_PIN_7;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &gpio_init);
GPIO_PinAFConf(GPIOG, gpio_init.Pins, GPIO_AF_10);
/* PG6 - QSPI_IO0. */
gpio_init.Pins = GPIO_PIN_6;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &gpio_init);
GPIO_PinAFConf(GPIOG, gpio_init.Pins, GPIO_AF_10);
/* PA3 - QSPI_IO1. */
gpio_init.Pins = GPIO_PIN_3;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &gpio_init);
GPIO_PinAFConf(GPIOA, gpio_init.Pins, GPIO_AF_10);
/* PB3 - QSPI_IO2. */
gpio_init.Pins = GPIO_PIN_3;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio_init);
GPIO_PinAFConf(GPIOB, gpio_init.Pins, GPIO_AF_10);
/* PG8 - QSPI_IO3. */
gpio_init.Pins = GPIO_PIN_8;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &gpio_init);
GPIO_PinAFConf(GPIOG, gpio_init.Pins, GPIO_AF_10);
}
魔改PLUS-F5280工程中的pin_init.c源文件:
void BOARD_InitPins(void)
{
...
/* PF6 - QSPI_CS. */
gpio_init.Pins = GPIO_PIN_6;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &gpio_init);
GPIO_PinAFConf(GPIOF, gpio_init.Pins, GPIO_AF_10);
/* PG7 - QSPI_SCK. */
gpio_init.Pins = GPIO_PIN_7;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &gpio_init);
GPIO_PinAFConf(GPIOG, gpio_init.Pins, GPIO_AF_10);
/* PG6 - QSPI_IO0. */
gpio_init.Pins = GPIO_PIN_6;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &gpio_init);
GPIO_PinAFConf(GPIOG, gpio_init.Pins, GPIO_AF_10);
/* PF8 - QSPI_IO1. */
gpio_init.Pins = GPIO_PIN_8;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &gpio_init);
GPIO_PinAFConf(GPIOF, gpio_init.Pins, GPIO_AF_10);
/* PF10 - QSPI_IO2. */
gpio_init.Pins = GPIO_PIN_10;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &gpio_init);
GPIO_PinAFConf(GPIOF, gpio_init.Pins, GPIO_AF_10);
/* PG8 - QSPI_IO3. */
gpio_init.Pins = GPIO_PIN_8;
gpio_init.PinMode = GPIO_PinMode_AF_PushPull; //GPIO_PinMode_AF_OpenDrain
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &gpio_init);
GPIO_PinAFConf(GPIOG, gpio_init.Pins, GPIO_AF_10);
}
还要注意,因为新增使用了GPIOF端口,还需要在clock_init.c文件中启用GPIOF端口的总线访问时钟。
void BOARD_InitBootClocks(void)
{
CLOCK_ResetToDefault();
CLOCK_BootToHSE120MHz();
...
/* GPIOF. */
RCC_EnableAHB1Periphs(RCC_AHB1_PERIPH_GPIOF, true);
RCC_ResetAHB1Periphs(RCC_AHB1_PERIPH_GPIOF);
...
}
总结
魔改之后,可以使用MindSDK中为PLUS-F5270微控制器提供的软件包(启动代码、驱动程序、样例及演示工程),评估MM32F5280微控制器芯片。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/suyong_yq/article/details/129063606
|