随着电动汽车与电网双向交互(V2G)技术的快速发展,充电桩与车辆间的高效通信成为实现智能能源管理的关键。SECC作为充电桩的通信控制核心,其与电力线载波通信芯片的适配尤为重要。本文将分享基于米尔核心板,调试联芯通MSE102x GreenPHY芯片的实战经验,为V2G通信开发提供参考。
联芯通MSE102x系列芯片是一款专注于电动汽车充电通信和智能能源管理的GreenPHY电力线载波通信芯片,MSE102x支持RMII和SPI两种主机接口,可根据具体应用场景灵活选择。本文主要介绍如何基于RMII和SPI两种不同的接口方式来驱动MSE102x。
- PC
- :~/myir-st-linux$
- vi arch/arm/boot/dts/myb-stm32mp135x-base.dtsi
- ð1 {
- status = "okay";
- pinctrl-0 = <ð1_rmii_pins_a>;
- pinctrl-1 = <ð1_rmii_sleep_pins_a>;
- pinctrl-names = "default", "sleep";
- phy-mode = "rmii";
- max-speed = <100>;
- nvmem-cells = <ðernet_mac1_address>;
- nvmem-cell-names = "mac-address";
- st,ext-phyclk;
- mdio1 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "snps,dwmac-mdio";
- };
- fixed-link {
- speed = <100>;
- full-duplex;
- };
- };
2、引脚复用配置
- PC
- :~/myir-st-linux$
- vi arch/arm/boot/dts/myb-stm32mp13-pinctrl.dtsi
- eth1_rmii_pins_a: eth1-rmii-1 {
- pins1 {
- pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RMII_TXD0 */
- <STM32_PINMUX('G', 14, AF11)>, /* ETH_RMII_TXD1 */
- <STM32_PINMUX('A', 11, AF11)>, /* ETH_RMII_ETHCK */
- <STM32_PINMUX('B', 11, AF11)>, /* ETH_RMII_TX_EN */
- <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
- <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
- bias-disable;
- drive-push-pull;
- slew-rate = <1>;
- };
- pins2 {
- pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RMII_RXD0 */
- <STM32_PINMUX('C', 5, AF11)>, /* ETH_RMII_RXD1 */
- <STM32_PINMUX('A', 7, AF11)>; /* ETH_RMII_CRS_DV */
- bias-disable;
- };
- };
- eth1_rmii_sleep_pins_a: eth1-rmii-sleep-1 {
- pins1 {
- pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RMII_TXD0 */
- <STM32_PINMUX('G', 14, AF11)>, /* ETH_RMII_TXD1 */
- <STM32_PINMUX('B', 11, AF11)>, /* ETH_RMII_TX_EN */
- <STM32_PINMUX('A', 11, AF11)>, /* ETH_RMII_ETHCK */
- <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
- <STM32_PINMUX('G', 2, AF11)>, /* ETH_MDC */
- <STM32_PINMUX('C', 4, AF11)>, /* ETH_RMII_RXD0 */
- <STM32_PINMUX('C', 5, AF11)>, /* ETH_RMII_RXD1 */
- <STM32_PINMUX('A', 7, AF11)>; /* ETH_RMII_CRS_DV */
- };
- };
测试结果:
系统成功识别eth1网络设备,可通过标准网络工具进行通信测试,为V2G通信提供稳定的网络基础。
RMII接口测试效果
方案二:SPI接口调试
硬件连接:
MSE102x作为SPI从设备连接到米尔核心板MYC-YF13X的SPI1接口,适用于需要灵活布板的场景。
软件配置关键步骤:
1、SPI设备树配置
- PC
- :~/myir-st-linux$
- vi arch/arm/boot/dts/myb-stm32mp135x-base.dtsi
- ............
- &spi1 {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&spi1_pins_a>;
- pinctrl-1 = <&spi1_sleep_pins_a>;
- cs-gpios = <&gpioa 4 0>;
- status = "okay";
- mse102x[url=/u/0]@0[/url] {
- compatible = "vertexcom,mse1021";
- reg = <0>;
- interrupt-parent = <&gpioi>;
- interrupts = <1 IRQ_TYPE_EDGE_RISING>;
- spi-cpha;
- spi-cpol;
- spi-max-frequency = <7142857>;
- };
- };
2、SPI引脚的配置
- PC
- :~/myir-st-linux$
- vi arch/arm/boot/dts/myb-stm32mp13-pinctrl.dtsi
- ............
- spi1_pins_a: spi1-0 {
- pins1 {pinmux = <STM32_PINMUX('C', 3, AF6)>, /* SPI1_SCK */
- <STM32_PINMUX('A', 3, AF5)>; /* SPI1_MOSI */
- bias-disable;
- drive-push-pull;
- slew-rate = <1>;
- };
- pins2 {
- pinmux = <STM32_PINMUX('A', 6, AF5)>; /* SPI1_MISO */
- bias-disable;
- };
- };
- spi1_sleep_pins_a: spi1-sleep-0 {
- pins {
- pinmux = <STM32_PINMUX('C', 3, ANALOG)>, /* SPI1_SCK */
- <STM32_PINMUX('A', 6, ANALOG)>, /* SPI1_MISO */
- <STM32_PINMUX('A', 3, ANALOG)>; /* SPI1_MOSI */
- };
- };
测试结果:
系统启动时正确识别MSE102x设备,生成对应的网络接口,可通过PLC链路建立V2G通信连接。
SPI接口测试效果
结语
通过MYC-YF13X核心板与MSE102x的成功适配,我们建立了一套完整的SECC GreenPHY通信解决方案。该方案不仅为V2G应用提供了技术支撑,也展示了米尔核心板在能源互联网领域的灵活性和可靠性。