國巨電阻的標識體系科學嚴謹,通過特定代碼組合可快速解析阻值、精度、封裝等關鍵參數。以下從標識結構、阻值表示、精度與封裝說明三方面進行詳細解讀: 一、標識結構解析 國巨電阻型號通常以?“R”+系列代碼
發表于 04-16 14:41
?116次閱讀
否有任何從 FRDM-MKL82 到 MKL81Z128CBH7R 的代碼移植指南?
發表于 03-26 07:28
二次電池(如筆記本電腦電池、數碼相機電池、攝像機電池、各種圓柱型電池、 無線通訊電池、便攜式DVD電池、CD和MP3播放器電池等)。
UN38.3是指在聯合國針對危險品運輸專門制定的《聯合國危險物品
發表于 02-12 08:54
UN38.3報告年度更新重要提示
一、檢測實驗室出具的報告要求:
1)更新空海運鑒定書需使用2024年鋰電池報告鑒定書更新表格(只限更新DGM鑒定書的報告),表格+UN全套報告+2024年航空
發表于 01-27 10:48
接入AI大模型,可實現語音交互、情緒識別、連續對話、中英雙語互動等功能,科技感滿滿。
發表于 12-26 14:20
?864次閱讀
替換MB85RS128,FRAM SF25C128應用于電力弧光保護裝置
發表于 11-11 09:51
?413次閱讀
想請教一下目前OPAMP TPA6138的Mute/Un-mute反應時間為多少?\"
也就是 MUTE PIN ON/OFF 時的TIMING
發表于 10-17 08:17
參考TI官方的原理圖LAUNCHXL-F28379D-R2.0,設計了兩個ADC的參考電壓VREFHIA和VREFHIB。現在遇到的問題是,由于圖中U29放大器OPA350的損壞,只能通過R128
發表于 08-13 08:20
移除;
移除VREFH-F網絡中的電阻R127,系統總電流從0.31A降到0.27A,OPA2277UA溫度降到60℃左右,移除VREFL-F網路中的電阻R128,總電流降到0.24A,OPA2277UA溫度降到30℃左右。
給DAC芯片SPI數據,VOUT輸出模擬電壓有
發表于 08-05 08:04
GPS車輛應用系統一般分為兩大類:分別是車輛跟蹤系統和車輛導航系統,它們在功能使用上截然不同,本期我們主要講的是關于車輛導航系統里的AT6558R芯片特性和應用場景推薦,如果有感興趣車輛跟蹤系統芯片
發表于 07-05 17:36
近日,國際知名的第三方檢測認證機構TüV南德意志集團(TüV SüD)正式向智己汽車科技有限公司頒發了UN R155車輛網絡安全管理體系(Cyber Security Management
發表于 06-26 18:24
?1474次閱讀
(PBN)水平制定可以接受的噪聲排放標準和承受極限。通過噪聲測試是一個標準流程,專門針對國際標準組織(ISO)362標準和歐盟經濟委員會(UN/ECE)R51法規
發表于 05-25 08:35
?721次閱讀
PWM
模塊介紹
脈沖寬度調制(PWM)是一種對模擬信號電平進行數字編碼的方法。通過高分辨率計數器的使用,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。PWM 具有以下特點:
支持脈沖(脈沖個數可配)、周期和互補對輸出;
支持捕捉輸入;
帶可編程死區發生器,死區時間可控;
0-24M/100M 輸出頻率范圍、0%-100% 占空比可調、最小分辨率 1/65536;
支持 PWM 輸出和捕捉輸入產生中斷;
支持 PWM 組模式,同組內各個通道起始相位可配置。
模塊配置
配置路徑如下:
Kernel Setup --->
Drivers Setup --->
SoC HAL Drivers --->
pwm devices --->
[*] enable pwm driver
源碼結構
rtos-hal/
|--hal/source/pwm/hal_pwm.c // hal層接口代碼
|--include/hal/sunxi_hal_pwm.h // 頭文件
模塊接口說明
頭文件
#include <sunxi_hal_pwm.h>
返回值枚舉
typedef enum {
HAL_PWM_STATUS_ERROR_PARAMETER = -3,
HAL_PWM_STATUS_ERROR_CHANNEL = -2,
HAL_PWM_STATUS_ERROR = -1,
HAL_PWM_STATUS_OK = 0
} hal_pwm_status_t;
PWM 初始化接口
PWM 模塊初始化,主要完成 clk 初始化
函數原型:
pwm_status_t hal_pwm_init(void)
參數:
返回值:
0:成功
負數:失敗
PWM 通道配置接口
配置 PWM 模塊某個通道,包括周期、占空比和極性
函數原型:
pwm_status_t hal_pwm_control(int channel, struct pwm_config *config_pwm)
參數:
channel 代表通道號
config_pwm 代表該通道的配置參數
返回值:
0:成功
負數:失敗
PWM 通道使能接口
使能 PWM 模塊某個通道
函數原型:
void hal_pwm_enable_controller(uint32_t channel_in)
參數:
channel_in 代表通道號
返回值:
無
PWM 去初始化接口
PWM 模塊去初始化,主要關閉 clk
函數原型:
pwm_status_t hal_pwm_deinit(void)
參數:
無
返回值:
0:成功
負數:失敗
模塊使用范例
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <hal_log.h>
#include <hal_cmd.h>
#include <sunxi_hal_pwm.h>
#if defined(CONFIG_ARCH_DSP)
#include <delay.h>
#define sleep(sec) msleep(sec * 1000)
#endif
#ifndef printfFromISR
#define printfFromISR printf
#endif
static int cmd_test_pwm(int argc, char **argv)
{
struct pwm_config *config;
uint8_t port;
//uint8_t ns;
int period, duty;
if (argc < 4)
{
hal_log_info(\"Usage: pwm port | duty | period\\\\n\");
return -1;
}
hal_log_info(\"Run pwm hal layer test case\\\\n\");
port = strtol(argv[1], NULL, 0);
hal_log_info(\"port = %d\", port);
duty = strtoul(argv[2], NULL, 0);
period = strtoul(argv[3], NULL, 0);
config = (struct pwm_config *)malloc(sizeof(struct pwm_config));
config->duty_ns= duty;
config->period_ns = period;
config->polarity= PWM_POLARITY_NORMAL;
hal_log_info(\"duty_ns = %d \\\\n\", config->duty_ns);
hal_log_info(\"period_ns = %d \\\\n\", config->period_ns);
hal_log_info(\"polarity = %d \\\\n\", config->polarity);
hal_pwm_init();
hal_pwm_control(port, config);
hal_log_info(\"control pwm test finish\\\\n\");
return 0;
}
FINSH_FUNCTION_EXPORT_CMD(cmd_test_pwm, hal_pwm, pwm hal APIs tests)
static int cmd_release_pwm_channel(int argc, char **argv)
{
struct pwm_config *config;
uint8_t port;
uint8_t ns;
ulong period, duty;
if (argc < 2)
{
hal_log_info(\"Usage: pwm port\\\\n\");
return -1;
}
hal_log_info(\"Run close pwm channel test case\\\\n\");
port = strtol(argv[1], NULL, 0);
hal_log_info(\"port = %d\", port);
hal_pwm_release(port);
hal_log_info(\"release pwm channel finish\\\\n\");
return 0;
}
FINSH_FUNCTION_EXPORT_CMD(cmd_release_pwm_channel, hal_pwm_close, release pwm channel hal APIs tests)
static void pwm_cap_callback(void* param)
{
hal_pwm_cap_info *info = (hal_pwm_cap_info *)param;
printfFromISR(\"pwm%d capture callback, cnt is %d, period is %d, duty is %d\\\\n\", info->channel, info->cnt, info->period, info->duty);
}
hal_pwm_status_t pwm_capture_init(uint32_t channel)
{
hal_pwm_cap_enable(channel, pwm_cap_callback);
return HAL_PWM_STATUS_OK;
}
hal_pwm_status_t pwm_capture_deinit(uint32_t channel)
{
hal_pwm_cap_disable(channel);
return HAL_PWM_STATUS_OK;
}
void cmd_pwm_capture_help(void)
{
printf(\"pwm capture test, stop capture after 10s\\\\n\");
printf(\"usage: pwm_capture_test<channel>\\\\n\");
printf(\"\\\\t<channel>: 0 ~ 15\\\\n\");
printf(\"eg: pwm_capture_test 0, pwm0 capture function\\\\n\");
}
int cmd_pwm_capture(int argc, char *argv[])
{
int count = 0;
if (argc != 2 || atoi(argv[1]) > 15) {
cmd_pwm_capture_help();
return -1;
}
/* capture setting */
pwm_capture_init(atoi(argv[1]));
for(count = 0; count < 10; count++) {
sleep(1);
}
/* disable */
pwm_capture_deinit(atoi(argv[1]));
printf(\"[%s]: pwm stop capture ssd\\\\n\", __func__);
return 0;
}
FINSH_FUNCTION_EXPORT_CMD(cmd_pwm_capture, pwm_capture_test, pwm capture test)
發表于 05-15 10:14
機制
對于 R128 平臺,CPU Remote ID如下
CPU
Remote ID
ARM M33 Star
0
RISC-V C906
1
HIFI5 DSP
2
模塊配置
配置路徑如下
發表于 05-15 09:58
評論