Changeset 90 for ctrl/firmware/Main/CubeMX
- Timestamp:
- Feb 12, 2025, 3:03:55 PM (3 months ago)
- Location:
- ctrl/firmware/Main/CubeMX
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.c
r89 r90 23 23 FATFS SDFatFS; /* File system object for SD logical drive */ 24 24 FIL SDFile; /* File object for SD */ 25 26 /* USER CODE BEGIN Variables */ 27 25 28 uint8_t retEEPROM; /* Return value for USER */ 26 29 char EEPROMPath[4]; /* USER logical drive path */ 27 FATFS USERFatFS;/* File system object for USER logical drive */30 FATFS EEPROMFatFS; /* File system object for USER logical drive */ 28 31 FIL EEPROMFile; /* File object for USER */ 29 30 /* USER CODE BEGIN Variables */31 32 32 33 /* USER CODE END Variables */ … … 36 37 /*## FatFS: Link the SD driver ###########################*/ 37 38 retSD = FATFS_LinkDriver(&SD_Driver, SDPath); 38 /*## FatFS: Link the USER driver ###########################*/39 retEEPROM = FATFS_LinkDriver(&EEPROM_Driver, EEPROMPath);40 39 41 40 /* USER CODE BEGIN Init */ 42 41 /* additional user code for init */ 42 43 retEEPROM = FATFS_LinkDriver(&EEPROM_Driver, EEPROMPath); 44 43 45 /* USER CODE END Init */ 44 46 } -
ctrl/firmware/Main/CubeMX/FATFS/App/fatfs.h
r89 r90 27 27 #include "ff_gen_drv.h" 28 28 #include "sd_diskio.h" /* defines SD_Driver as external */ 29 #include "eeprom_diskio.h" /* defines USER_Driver as external */30 29 31 30 /* USER CODE BEGIN Includes */ 32 31 32 #include "eeprom_diskio.h" /* defines USER_Driver as external */ 33 34 extern uint8_t retEEPROM; /* Return value for USER */ 35 extern char EEPROMPath[4]; /* USER logical drive path */ 36 extern FATFS EEPROMFatFS; /* File system object for USER logical drive */ 37 extern FIL EEPROMFile; /* File object for USER */ 38 33 39 /* USER CODE END Includes */ 34 40 35 extern uint8_t retSD; /* Return value for SD */ 36 extern char SDPath[4]; /* SD logical drive path */ 37 extern FATFS SDFatFS; /* File system object for SD logical drive */ 38 extern FIL SDFile; /* File object for SD */ 39 extern uint8_t retEEPROM; /* Return value for USER */ 40 extern char EEPROMPath[4]; /* USER logical drive path */ 41 extern FATFS EEPROMFatFS; /* File system object for USER logical drive */ 42 extern FIL EEPROMFile; /* File object for USER */ 41 extern uint8_t retSD; /* Return value for SD */ 42 extern char SDPath[4]; /* SD logical drive path */ 43 extern FATFS SDFatFS; /* File system object for SD logical drive */ 44 extern FIL SDFile; /* File object for SD */ 43 45 44 46 void MX_FATFS_Init(void); -
ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.c
r89 r90 34 34 35 35 /* Includes ------------------------------------------------------------------*/ 36 #include <stdio.h> 36 37 #include <string.h> 38 37 39 #include "ff_gen_drv.h" 40 41 #include "eeprom_diskio.h" 42 #include "eeprom_conf.h" 43 #include "m24256e.h" 38 44 39 45 /* Private typedef -----------------------------------------------------------*/ … … 44 50 static volatile DSTATUS Stat = STA_NOINIT; 45 51 52 uint8_t M24256E_CDA_DevSelCode = 0xB0; 53 uint8_t M24256E_IDPage_DevSelCode = 0xB0; 54 uint8_t M24256E_Memory_DevSelCode = 0xA0; 55 56 static M24256E_EEPROM_CommonDrv_t *M24256EDrv[EEICA1_M24_INSTANCES_NBR]; 57 void *M24256ECompObj[EEICA1_M24_INSTANCES_NBR]; 58 46 59 /* USER CODE END DECL */ 60 61 static int32_t M24256E_Probe(void); 62 int32_t M24256E_IsDeviceReady(uint32_t Instance, const uint32_t Trials); 63 int32_t M24256E_ReadPage(uint32_t Instance, uint8_t * const pData, const uint32_t TarAddr, const uint16_t Size); 47 64 48 65 /* Private function prototypes -----------------------------------------------*/ … … 77 94 * @retval DSTATUS: Operation status 78 95 */ 79 DSTATUS EEPROM_initialize ( 80 BYTE pdrv /* Physical drive nmuber to identify the drive */ 81 ) 82 { 83 /* USER CODE BEGIN INIT */ 96 DSTATUS EEPROM_initialize (BYTE pdrv /* Physical drive nmuber to identify the drive */ 97 ) 98 { 99 /* USER CODE BEGIN INIT */ 100 UNUSED(pdrv); // We have only one EEPROM on the bus 101 84 102 Stat = STA_NOINIT; 103 104 if (M24256E_Probe() == BSP_ERROR_NONE) 105 Stat = 0; 106 85 107 return Stat; 86 108 /* USER CODE END INIT */ 87 109 } 88 110 … … 96 118 ) 97 119 { 98 /* USER CODE BEGIN STATUS */ 120 /* USER CODE BEGIN STATUS */ 121 UNUSED(pdrv); // We have only one EEPROM on the bus 99 122 Stat = STA_NOINIT; 123 124 if (M24256E_IsDeviceReady(EEICA1_M24256E, MAX_TRIALS) == BSP_ERROR_NONE) 125 Stat = 0; 126 100 127 return Stat; 101 128 /* USER CODE END STATUS */ 102 129 } 103 130 … … 117 144 ) 118 145 { 119 /* USER CODE BEGIN READ */ 146 /* USER CODE BEGIN READ */ 147 UNUSED(pdrv); 148 printf("Requested %u sectors starting at %lu.\n", count, sector); 149 150 if (M24256E_ReadPage(EEICA1_M24256E, buff, sector * _MIN_SS, count * _MIN_SS) != BSP_ERROR_NONE) 151 return RES_ERROR; 152 120 153 return RES_OK; 121 154 /* USER CODE END READ */ 122 155 } 123 156 … … 159 192 ) 160 193 { 161 /* USER CODE BEGIN IOCTL */ 194 /* USER CODE BEGIN IOCTL */ 195 UNUSED(pdrv); 196 162 197 DRESULT res = RES_ERROR; 198 199 if (Stat & STA_NOINIT) return RES_NOTRDY; 200 201 switch (cmd) 202 { 203 case CTRL_SYNC: // Make sure that no pending write process 204 res = RES_OK; 205 break; 206 207 case GET_SECTOR_COUNT: // Get number of sectors on the disk (DWORD) 208 *(DWORD*)buff = M24256E_MEMORYSIZE / _MIN_SS; 209 res = RES_OK; 210 break; 211 212 case GET_SECTOR_SIZE: // Get R/W sector size (WORD) 213 *(WORD*)buff = _MIN_SS; 214 res = RES_OK; 215 break; 216 217 218 case GET_BLOCK_SIZE: // Get erase block size in unit of sector (DWORD) 219 *(DWORD*)buff = 1; 220 res = RES_OK; 221 break; 222 223 default: 224 res = RES_PARERR; 225 } 226 163 227 return res; 164 228 /* USER CODE END IOCTL */ 165 229 } 166 230 #endif /* _USE_IOCTL == 1 */ 167 231 232 //------------------------------------------------------------------------------ 233 234 /** 235 * @brief Reads complete page from the memory at page start address 236 * @param Instance : I2C EEPROM instance to be used 237 * @param pData : pointer to the data to read 238 * @param TarAddr : starting page address to read 239 * @param Size : Size in bytes of the value to be written 240 * @retval BSP status 241 */ 242 int32_t M24256E_ReadPage(uint32_t Instance, uint8_t * const pData, const uint32_t TarAddr, const uint16_t Size) 243 { 244 int32_t ret = BSP_ERROR_NONE; 245 246 if ((TarAddr + Size)> M24256E_MEMORYSIZE) 247 return BSP_ERROR_WRONG_PARAM; 248 249 uint32_t iNumberOfPage = (TarAddr + Size) / M24256E_PAGESIZE; 250 uint32_t iRemainder = (TarAddr + Size) % M24256E_PAGESIZE; 251 252 uint32_t PageAddress = TarAddr * M24256E_PAGESIZE; 253 uint32_t iPageNumber = TarAddr; 254 if (iRemainder != 0U) 255 { 256 iNumberOfPage += 1U; 257 } 258 259 if (iNumberOfPage <= 1U) 260 { 261 if (M24256EDrv[Instance]->ReadPage(M24256ECompObj[Instance], pData, PageAddress, M24256E_PAGESIZE) != BSP_ERROR_NONE) 262 { 263 ret = BSP_ERROR_COMPONENT_FAILURE; 264 } 265 else 266 { 267 ret = BSP_ERROR_NONE; 268 } 269 } 270 else 271 { 272 for (uint32_t iCounter=0; iCounter<iNumberOfPage; iCounter++) 273 { 274 uint32_t iPageAddress = iPageNumber * M24256E_PAGESIZE; 275 ret = M24256EDrv[Instance]->ReadPage(M24256ECompObj[Instance], &pData[0U + (iCounter*M24256E_PAGESIZE)], iPageAddress, M24256E_PAGESIZE); 276 iPageNumber++; 277 HAL_Delay(5); 278 } 279 } 280 281 return ret; 282 } 283 284 //------------------------------------------------------------------------------ 285 286 /** 287 * @brief Checks if the memory is available 288 * @param Instance : I2C EEPROM instance to be used 289 * @param Trials : Number of trials 290 * @retval BSP status 291 */ 292 int32_t M24256E_IsDeviceReady(uint32_t Instance, const uint32_t Trials) 293 { 294 int32_t ret; 295 296 if (M24256EDrv[Instance]->IsReady(M24256ECompObj[Instance], Trials) != BSP_ERROR_NONE) 297 { 298 ret = BSP_ERROR_COMPONENT_FAILURE; 299 } 300 else 301 { 302 ret = BSP_ERROR_NONE; 303 } 304 return ret; 305 } 306 307 //------------------------------------------------------------------------------ 308 309 /** 310 * @brief Register Bus IOs for instance M24256E 311 * @retval BSP status 312 */ 313 static int32_t M24256E_Probe(void) 314 { 315 M24256E_IO_t io_ctx256; 316 int32_t ret = BSP_ERROR_NONE; 317 static M24256E_Object_t M24256_obj_0; 318 319 io_ctx256.Address = M24256E_CDA_DevSelCode; 320 io_ctx256.Init = EEICA1_I2C_INIT; 321 io_ctx256.DeInit = EEICA1_I2C_DEINIT; 322 io_ctx256.ReadReg = EEICA1_I2C_READREG; 323 io_ctx256.WriteReg = EEICA1_I2C_WRITEREG; 324 io_ctx256.ReadReg16 = EEICA1_I2C_READREG16; 325 io_ctx256.WriteReg16 = EEICA1_I2C_WRITEREG16; 326 io_ctx256.Transmit = EEICA1_I2C_SEND; 327 io_ctx256.IsReady = EEICA1_I2C_ISREADY; 328 io_ctx256.Delay = EEICA1_M24_DELAY; 329 330 if (M24256E_RegisterBusIO(&M24256_obj_0, &io_ctx256) != M24_OK) 331 { 332 ret = BSP_ERROR_UNKNOWN_COMPONENT; 333 } 334 335 M24256ECompObj[EEICA1_M24256E] = &M24256_obj_0; 336 M24256EDrv[EEICA1_M24256E] = (M24256E_EEPROM_CommonDrv_t *)(void *)&M24256E_i2c_Drv; 337 338 if (M24256EDrv[EEICA1_M24256E]->Init(M24256ECompObj[EEICA1_M24256E]) != M24_OK) 339 { 340 ret = BSP_ERROR_COMPONENT_FAILURE; 341 } 342 else 343 { 344 ret = BSP_ERROR_NONE; 345 } 346 return ret; 347 } 348 349 //------------------------------------------------------------------------------ -
ctrl/firmware/Main/CubeMX/FATFS/Target/eeprom_diskio.h
r89 r90 32 32 /* Exported types ------------------------------------------------------------*/ 33 33 /* Exported constants --------------------------------------------------------*/ 34 35 #define M24256E_PAGESIZE 64U 36 #define M24256E_MEMORYSIZE 32768U // in bytes, do not change 37 38 #define EEICA1_M24_INSTANCES_NBR 2U 39 #define EEICA1_M24256E 0U 40 #define EEICA1_M24xx 1U 41 42 #define MAX_TRIALS 3U 43 34 44 /* Exported functions ------------------------------------------------------- */ 35 45 extern Diskio_drvTypeDef EEPROM_Driver; -
ctrl/firmware/Main/CubeMX/charger.ioc
r89 r90 110 110 Dma.USART3_TX.2.SyncSignalID=NONE 111 111 FATFS.BSP.number=1 112 FATFS.IPParameters=_USE_FIND,_USE_EXPAND,_USE_LABEL,_USE_LFN,_LFN_UNICODE,_MULTI_PARTITION,_FS_EXFAT,_USE_MUTEX,_FS_REENTRANT,_FS_NORTC,_NORTC_YEAR,_NORTC_MDAY,_NORTC_MON,_STRF_ENCODE,_USE_STRFUNC,_MAX_SS 112 FATFS.IPParameters=_USE_FIND,_USE_EXPAND,_USE_LABEL,_USE_LFN,_LFN_UNICODE,_MULTI_PARTITION,_FS_EXFAT,_USE_MUTEX,_FS_REENTRANT,_FS_NORTC,_NORTC_YEAR,_NORTC_MDAY,_NORTC_MON,_STRF_ENCODE,_USE_STRFUNC,_MAX_SS,_VOLUMES 113 113 FATFS._FS_EXFAT=0 114 114 FATFS._FS_NORTC=0 … … 127 127 FATFS._USE_MUTEX=1 128 128 FATFS._USE_STRFUNC=0 129 FATFS._VOLUMES=2 129 130 FATFS0.BSP.STBoard=false 130 131 FATFS0.BSP.api=Unknown … … 289 290 Mcu.Pin55=PB9 290 291 Mcu.Pin56=VP_FATFS_VS_SDIO 291 Mcu.Pin57=VP_F ATFS_VS_Generic292 Mcu.Pin58=VP_ FREERTOS_VS_CMSIS_V2293 Mcu.Pin59=VP_RTC_VS_RTC_ Activate292 Mcu.Pin57=VP_FREERTOS_VS_CMSIS_V2 293 Mcu.Pin58=VP_RTC_VS_RTC_Activate 294 Mcu.Pin59=VP_RTC_VS_RTC_Calendar 294 295 Mcu.Pin6=PF1 295 Mcu.Pin60=VP_ RTC_VS_RTC_Calendar296 Mcu.Pin61=VP_ SYS_VS_tim7297 Mcu.Pin62=VP_TIM 3_VS_ClockSourceINT298 Mcu.Pin63=VP_TIM 6_VS_ClockSourceINT299 Mcu.Pin64=VP_TIM8_VS_C ontrollerModeReset300 Mcu.Pin65=VP_ TIM8_VS_ClockSourceINT301 Mcu.Pin66=VP_ MEMORYMAP_VS_MEMORYMAP296 Mcu.Pin60=VP_SYS_VS_tim7 297 Mcu.Pin61=VP_TIM3_VS_ClockSourceINT 298 Mcu.Pin62=VP_TIM6_VS_ClockSourceINT 299 Mcu.Pin63=VP_TIM8_VS_ControllerModeReset 300 Mcu.Pin64=VP_TIM8_VS_ClockSourceINT 301 Mcu.Pin65=VP_MEMORYMAP_VS_MEMORYMAP 302 Mcu.Pin66=VP_STMicroelectronics.X-CUBE-EEPRMA1_VS_BoardOoPartJjEEPROM_5.1.0_5.1.0 302 303 Mcu.Pin7=PH0-OSC_IN 303 304 Mcu.Pin8=PH1-OSC_OUT … … 305 306 Mcu.PinsNb=67 306 307 Mcu.ThirdParty0=STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0 307 Mcu.ThirdPartyNb=1 308 Mcu.ThirdParty1=STMicroelectronics.X-CUBE-EEPRMA1.5.1.0 309 Mcu.ThirdPartyNb=2 308 310 Mcu.UserConstants= 309 311 Mcu.UserName=STM32H723ZETx … … 617 619 ProjectManager.UAScriptBeforePath= 618 620 ProjectManager.UnderRoot=true 619 ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_MDMA_Init-MDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-MX_USART3_UART_Init-USART3-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-SystemClock_Config-RCC-false-HAL-false,10-MX_FATFS_Init-FATFS-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_SPI2_Init-SPI2-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART10_UART_Init-USART10-false-HAL-true,15-MX_TIM6_Init-TIM6-false-HAL-true,16-MX_I2C1_Init-I2C1-false-HAL-true, 0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true621 ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_MDMA_Init-MDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-MX_USART3_UART_Init-USART3-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-SystemClock_Config-RCC-false-HAL-false,10-MX_FATFS_Init-FATFS-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_SPI2_Init-SPI2-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART10_UART_Init-USART10-false-HAL-true,15-MX_TIM6_Init-TIM6-false-HAL-true,16-MX_I2C1_Init-I2C1-false-HAL-true,17-MX_I2C2_Init-I2C2-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true 620 622 RCC.ADCFreq_Value=125000000 621 623 RCC.AHB12Freq_Value=100000000 … … 758 760 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0_IsAnAzureRtosMw=true 759 761 STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0_SwParameter=InterfacesCcFileOoSystemJjFileXOoSDOointerface\:true;ThreadXCcRTOSJjThreadXJjLowOoPowerOosupport\:true;FileXCcFileOoSystemJjFileXJjCore\:true;ThreadXCcRTOSJjThreadXJjCore\:true; 762 STMicroelectronics.X-CUBE-EEPRMA1.5.1.0.BoardOoPartJjEEPROM_Checked=true 763 STMicroelectronics.X-CUBE-EEPRMA1.5.1.0.EEPROMCcBoardOoPartJjM24256EAaFJjM24256EAaF=true 764 STMicroelectronics.X-CUBE-EEPRMA1.5.1.0.EEPROMCcBoardOoPartJjM24JjM24XX=true 765 STMicroelectronics.X-CUBE-EEPRMA1.5.1.0.IPParameters=EEPROMCcBoardOoPartJjM24JjM24XX,EEPROMCcBoardOoPartJjM24256EAaFJjM24256EAaF 766 STMicroelectronics.X-CUBE-EEPRMA1.5.1.0_SwParameter=EEPROMCcBoardOoPartJjM24JjM24XX\:true;EEPROMCcBoardOoPartJjM24256EAaFJjM24256EAaF\:true; 760 767 TIM3.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE 761 768 TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 … … 784 791 USART3.SwapParam=ADVFEATURE_SWAP_ENABLE 785 792 USART3.VirtualMode-Asynchronous=VM_ASYNC 786 VP_FATFS_VS_Generic.Mode=User_defined787 VP_FATFS_VS_Generic.Signal=FATFS_VS_Generic788 793 VP_FATFS_VS_SDIO.Mode=SDIO 789 794 VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO … … 796 801 VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar 797 802 VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar 803 VP_STMicroelectronics.X-CUBE-EEPRMA1_VS_BoardOoPartJjEEPROM_5.1.0_5.1.0.Mode=BoardOoPartJjEEPROM 804 VP_STMicroelectronics.X-CUBE-EEPRMA1_VS_BoardOoPartJjEEPROM_5.1.0_5.1.0.Signal=STMicroelectronics.X-CUBE-EEPRMA1_VS_BoardOoPartJjEEPROM_5.1.0_5.1.0 798 805 VP_SYS_VS_tim7.Mode=TIM7 799 806 VP_SYS_VS_tim7.Signal=SYS_VS_tim7
Note: See TracChangeset
for help on using the changeset viewer.