SF30147应用注意事项

bootloder开电

正常代码是只在大核开电,小核开电是通过核间通讯来完成的。

但是bootloder为了方便,也为了减少代码量。是没有采取添加驱动的方式来开电的,

而是直接通过控制寄存器来实现开电的。

下图是对应boot开电时直接控制寄存器打开外设供电的代码。

对于有外挂flash方案的需要注意是否在boot配置了SF30147开电。

../../_images/boot_power_on.png

下图是30147对应电源寄存器地址信息

../../_images/mcu_30147_reg.png

用户固件配置SF30147驱动开电

menuconifg打开PMIC_CTRL_ENABLE,SF30147 的驱动就会加入编译。

驱动加载到对应核,那个核就可以直接使用pmic_device_control直接控制30147。

另外一个核通过核间通信来调用驱动控制。

配置注意事项:

  • 驱动挂在hcpu注意事项

这里需要注意,大核会先关机(如果这时大核控制关掉了flash,小核有用到会导致系统异常)。

这种情况可以采用boot开电时直接写寄存器的方式直接小核控制来关闭flash电源。

../../_images/pmic_hcpu.png
../../_images/pmic_lcpu.png
  • 大小核都配置加载驱动

都配置可能会出现两个核同时去控制的场景,需要客户自己评估

pmic_device_control //驱动接口,pmic_controller.c

pmic_service_control //核间通讯接口,pmic_service.c

../../_images/pmic_ctrl.png
../../_images/pmic_service.png
../../_images/pmic_service_map.png

控制SF30147的不同LDO输出的不同电压

../../_images/pmic_ldo_vcc.png
../../_images/pmic_ldo_vcc1.png

代码里目前还没有提供接口,需要客户手动改下驱动代码。

每一路的LDO电压输出寄存器都是由4个位控制。0~F,步长 50mv。F对应3.4V

例:0xF对应3.4V,0xD对应3.3V,0x1对应2.7V,0x0对应2.65V