#!/bin/bash # 20 份经典 BLDC/FOC 应用笔记批量下载 DIR="/root/personal/learn/lectures/BLDC_FOC" mkdir -p "$DIR/ST_AN" "$DIR/Microchip_AN" "$DIR/NXP_AN" "$DIR/Infineon_AN" "$DIR/ADI_AN" "$DIR/Renesas_AN" error_log="$DIR/AN_Index/download_errors.log" > "$error_log" dl() { local name="$1" url="$2" out="$3" echo "Downloading: $name ..." wget -q --show-progress -O "$out" "$url" 2>>"$error_log" && echo " OK: $name" || echo " FAIL: $name (see log)" } # ===== STMicroelectronics (5) ===== dl "ST_AN4220_Sensorless_6Step_BLDC" \ "https://www.st.com/resource/en/application_note/an4220-bldc-motor-control-with-6step-on-stm32-stmicroelectronics.pdf" \ "$DIR/ST_AN/ST_AN4220_Sensorless_6Step_BLDC.pdf" dl "ST_AN4776_GPIO_FOC_Tuning" \ "https://www.st.com/resource/en/application_note/dm00287805-stm32-general-purpose-timer-optimization-for-foc-motor-control-stmicroelectronics.pdf" \ "$DIR/ST_AN/ST_AN4776_FOC_Timer_Optimization.pdf" dl "ST_UM2538_FOC_SDK_MCSDK" \ "https://www.st.com/resource/en/user_manual/um2538-stm32-motorcontrol-pack-using-the-foc-algorithm-for-threephase-lowvoltage-and-lowcurrent-motor-evaluation-stmicroelectronics.pdf" \ "$DIR/ST_AN/ST_UM2538_FOC_SDK_MCSDKv6.pdf" dl "ST_AN5136_Current_Sensing" \ "https://www.st.com/resource/en/application_note/an5136-current-sensing-in-motor-control-applications-stmicroelectronics.pdf" \ "$DIR/ST_AN/ST_AN5136_Current_Sensing.pdf" dl "ST_AN5464_STM32_MotorControl_HSO_ZeST" \ "https://www.st.com/resource/en/application_note/an5464-high-sensitivity-observer-and-zero-speed-full-torque-algorithms-for-stm32-motor-control-stmicroelectronics.pdf" \ "$DIR/ST_AN/ST_AN5464_HSO_ZeST.pdf" # ===== Microchip (5) ===== dl "MCHP_AN1078_SMO_FOC_PMSM" \ "https://ww1.microchip.com/downloads/en/Appnotes/01078B.pdf" \ "$DIR/Microchip_AN/MCHP_AN1078_SMO_FOC_PMSM.pdf" dl "MCHP_AN1299_SingleShunt_FOC" \ "https://ww1.microchip.com/downloads/en/AppNotes/01299A.pdf" \ "$DIR/Microchip_AN/MCHP_AN1299_SingleShunt_FOC.pdf" dl "MCHP_AN1160_Sensorless_BLDC" \ "https://ww1.microchip.com/downloads/en/AppNotes/01160b.pdf" \ "$DIR/Microchip_AN/MCHP_AN1160_Sensorless_BLDC.pdf" dl "MCHP_AN2590_Luenberger_FOC" \ "https://ww1.microchip.com/downloads/en/Appnotes/Sensorless-FOC-for-PMSM-Using-Reduced-Order-Luenberger-Observer-Application-Note-DS00002590B.pdf" \ "$DIR/Microchip_AN/MCHP_AN2590_Luenberger_FOC.pdf" dl "MCHP_AN4398_SMO_PMSM" \ "https://ww1.microchip.com/downloads/en/Appnotes/Sensorless-Field-Oriented-Control-for-a-PMSM-Using-Sliding-Mode-Observer-AN4398.pdf" \ "$DIR/Microchip_AN/MCHP_AN4398_SMO_PMSM.pdf" # ===== NXP (4) ===== dl "NXP_AN12435_S32K144_Sensorless_BLDC" \ "https://www.nxp.com/docs/en/application-note/AN12435.pdf" \ "$DIR/NXP_AN/NXP_AN12435_S32K144_Sensorless_BLDC.pdf" dl "NXP_AN14454_S32M244_FOC" \ "https://www.nxp.com/webapp/Download?colCode=AN14454" \ "$DIR/NXP_AN/NXP_AN14454_S32M244_FOC.pdf" dl "NXP_AN12881_FreeRTOS_MotorCtrl" \ "https://www.nxp.com/docs/en/application-note/AN12881.pdf" \ "$DIR/NXP_AN/NXP_AN12881_FreeRTOS_MotorCtrl.pdf" dl "NXP_DRM148_PMSM_FOC_Theory" \ "https://www.nxp.com/docs/en/reference-manual/DRM148.pdf" \ "$DIR/NXP_AN/NXP_DRM148_PMSM_FOC_Theory.pdf" # ===== Infineon (3) ===== dl "IFX_AP16097_Motor_Control_iMOTION" \ "https://www.infineon.com/dgdl/Infineon-AP16097_Motor_Control_Solutions-ApplicationNotes-v01_00-EN.pdf?fileId=5546d462518ffd850152910907b12730" \ "$DIR/Infineon_AN/IFX_AP16097_iMOTION_MotorControl.pdf" dl "IFX_AP32382_drive_for_BLDC" \ "https://www.infineon.com/dgdl/Infineon-AP32382_XC878_Leveraging_BLDC_Drive-ApplicationNotes-v01_02-EN.pdf?fileId=db3a30432e3e71da012e7c39ef530c73" \ "$DIR/Infineon_AN/IFX_AP32382_BLDC_Drive.pdf" dl "IFX_AN2018_Motor_Control_AppKit" \ "https://www.infineon.com/dgdl/Infineon-AP32369_XMC1300_Motor_Control_Application_Kit-ApplicationNotes-v01_01-EN.pdf?fileId=db3a304338e1f3b80138e4b52d570286" \ "$DIR/Infineon_AN/IFX_AP32369_XMC_MotorControl.pdf" # ===== ADI (2) ===== dl "ADI_CN0549_Industrial_Drive" \ "https://www.analog.com/media/en/reference-design-documentations/reference-designs/CN0549.pdf" \ "$DIR/ADI_AN/ADI_CN0549_Industrial_Drive.pdf" dl "ADI_MT-097_Current_Sensing" \ "https://www.analog.com/media/en/training-seminars/tutorials/MT-097.pdf" \ "$DIR/ADI_AN/ADI_MT097_Current_Sense.pdf" # ===== Renesas (1) ===== dl "REN_R12AN0095_RX_BLDC" \ "https://www.renesas.com/us/en/document/apn/r12an0095eu0100-sensorless-bldc-motor-control-using-rx26t" \ "$DIR/Renesas_AN/REN_R12AN0095_RX_BLDC.pdf" echo "" echo "===== Download Summary =====" echo "Total attempted: 20" echo "Errors logged to: $error_log" find "$DIR/ST_AN" "$DIR/Microchip_AN" "$DIR/NXP_AN" "$DIR/Infineon_AN" "$DIR/ADI_AN" "$DIR/Renesas_AN" -name "*.pdf" -exec ls -lh {} \; 2>/dev/null