구현 기준 주의: mic_ssl_params_t.noise_floor_dbfs_per_sqrt_hz=0은 현재 SDK 기본값 -120 dBFS/√Hz를 선택하고, min_signal_snr_db=0은 10 dB를 선택합니다. mic_ssl_process_probability_map_bytes()의 posterior_temperature는 ABI 호환용으로 현재 무시되므로 0을 전달하십시오. PCM에 직접 SSL을 적용할 때는 mic_ssl_set_sensor_layout()을 먼저 호출해야 합니다.

Signal Processing Interface

MIC0528 / SM3324 Customer C API Reference · 2026-09-20

고객용 API 정본. 2026-09-20 기준 공개 헤더 sdk/include/mic_sdk/*.h와 구현을 기준으로 작성되었습니다. 아래의 분류기·멀티모달 항목은 헤더에는 ABI 예약 선언만 있고 현재 호출하면 MIC_ENOT_IMPLEMENTED를 반환합니다. 내부 구조체에 접근하지 말고, out 핸들/행렬은 대응 destroy 또는 release 함수로 해제하십시오.
PCM16 규칙
signed little-endian, frame-interleaved. frames는 시간 프레임 수이며 총 샘플 수는 frames * channels입니다.
소유권
mic_audio_block_t.interleaved는 SDK 소유이며 다음 read/close 전까지만 유효합니다. out_* 객체는 호출자가 해제합니다.

공통 상태코드

값의미
MIC_OK성공. out 값 유효.
MIC_EINVAL / MIC_ENOMEM잘못된 NULL·범위·형식 / 메모리 부족.
MIC_ENOTFOUND / MIC_EBUSY / MIC_EIO장치 없음 / 다른 프로세스 점유 / USB·CDC·UAC I/O 오류.
MIC_ETIMEOUT / MIC_ENOT_READY대기 시간 내 데이터 없음 / 장치는 열렸지만 유효 데이터가 아직 없음. 스트리밍에서는 재시도 가능.
MIC_EUNSUPPORTED / MIC_ECONFLICT지원하지 않는 포맷·플랫폼·모델 / SYNC 등 설정 충돌.
MIC_ENOT_IMPLEMENTED / MIC_EINTERNAL선언만 있는 예약 API / 내부 오류.

모든 공개 구조체·열거형

형식필드 또는 값설명
불투명 핸들module_t,mic_context_t,mic_device_t,mic_stream_t,sm3324_t,mic_ssl_t,mic_vad_t,mic_stt_t,ts_classifier_t,multimodal_session_t내부 필드에 접근 금지. context는 destroy, module은 release, stream/분석기는 대응 close/destroy로 해제. ts_classifier_t와 multimodal_session_t는 현재 예약 핸들입니다.
module_kind_tUNKNOWN, MIC0528, SM3324, CAMERAmodule의 실제 장치 종류.
module_stream_kind_tNONE, AUDIO, TIMESERIES, VIDEOmodule이 제공하는 주 스트림 종류.
mic_vec3f_tx_m,y_m,z_m미터 단위 3D 좌표.
mic_euler_deg_troll_deg,pitch_deg,yaw_degdegree 단위의 오른손 장치 자세. SDK는 로컬 MEMS 좌표에 Rz(yaw)*Ry(pitch)*Rx(roll)을 적용합니다.
mic_device_geometry_tdevice_origin_m,device_rotation_deg,mic_pos_m[6],mic_count,valid장치 world 원점·자세, MEMS 로컬 좌표, 4/5 MEMS 수, geometry 유효 플래그. 다중 SSL에 필수.
mic_open_params_tsample_rate_hz,channels,require_sync,remove_sync_marker,interpolate_sync_marker,preserve_sync_marker,read_block_frames1ch: 24/48/96/192/384 kHz, 6ch: 24/48/96 kHz. 그룹 stream은 require_sync=1이며 정확히 한 MASTER와 나머지 FOLLOWER가 필요합니다. 동기화하지 않는 다중 장치 녹음은 장치별 단일 stream을 각각 엽니다. remove는 마지막 marker 채널 자체를 제거하고, preserve=1은 marker를 원본 그대로 남기며, 그 외 interpolate=1은 marker sample만 보간합니다.
mic_audio_block_tinterleaved,frames,channels,sample_rate_hz,sample_index,monotonic_time_ns,flags스트림이 준 PCM16과 메타데이터. interleaved는 SDK 소유. flags의 MIC_AUDIO_BLOCK_FLAG_SYNC_LOCKED는 동기화 lock, MIC_AUDIO_BLOCK_FLAG_DISCONTINUITY는 OS가 보고한 UAC/WASAPI 데이터 불연속을 뜻합니다.
mic_usb_pair_tusb_path,audio_path,cdc_path,firmware_id,has_mic5,handle열거 결과. has_mic5는 보수적 값이므로 필요하면 detect 호출. handle은 장기 보관 금지.
dsp_input_kind_t
dsp_sample_format_t
kind: DSP_INPUT_NONE, DSP_INPUT_AUDIO_BYTES, DSP_INPUT_AUDIO_STREAM, DSP_INPUT_MIC_DEVICE.
format: DSP_SAMPLE_FORMAT_UNKNOWN, S16LE, F32.
dsp_source_t union의 활성 멤버와 PCM 표본 형식을 명시합니다.
dsp_source_tkind,sample_rate_hz,channels,u.bytes(data,size_bytes,sample_format),u.stream,u.micSSL/VAD/STT 입력. kind에 맞는 union 멤버만 채웁니다. PCM16 bytes 권장.
mic_spectrogram_params_tfft_size,hop_frames,channel_index,min_db,max_dbFFT는 64..16384 2의 거듭제곱. 특정 인터리브 채널과 dB clamp 범위 선택.
mic_spectrogram_twidth,height,sample_rate_hz,fft_size,hop_frames,min_db,max_db,dbdb[time * height + frequency], 저주파부터 고주파. destroy 필요.
mic_feature_matrix_twidth,height,sample_rate_hz,hop_frames,valuesMel/MFCC 행렬, row-major. destroy 필요.
mic_time_stretch_params_ttime_ratio,pitch_semitones,cheaper_preset시간비 1.0은 유지, 피치는 반음 단위, cheaper는 낮은 부하 preset.
mic_offline_sync_params_tchannels,marker_channel,marker_threshold,max_consecutive_missing_markers,minimum_marker_pairs완전 녹음본의 marker 기반 정렬 설정.
mic_offline_sync_result_ttarget_to_reference_offset_samples,target_to_reference_ratio,matched_marker_pairs,ignored_reference_markers,ignored_target_markersreference = target * ratio + offset 변환과 marker 통계.
sm3324_timeseries_tchannels[16],channel_count,sample_count,sample_rate_hz,first_time_ns,last_time_ns채널별 double 배열 시계열. reset으로 배열 해제.
ts_series_tdomain,sample_rate_hz,channel_count,sample_count,channels[32],attached_feature_count,attached_features,first_time_ns,last_time_ns분류 예약용 범용 float 시계열. attached feature는 SSL/STT/VAD 결과 결합용.
ts_inference_result_ttask_name,field_count,fields,window_start_ns,window_end_ns분류 예약 결과.
multimodal_source_binding_tmodule,channel_or_plane_count,selected_channel_index,use_for_ssl/use_for_stt/use_for_vad/use_for_classifier/use_for_recording,logical_name멀티모달 예약 입력 binding.
STT 후처리 옵션
mic_stt_params_t는 enable_post_correction, post_correction_python_exe, post_correction_script_path를 추가로 받습니다. 이 옵션을 켜면 STT 결과 반환 직전에 SDK가 언어별 단어 교정기를 호출합니다. 현재 기본 교정 대상 언어는 한국어, 영어, 일본어, 중국어입니다.
함수인자설명
mic_stt_set_post_correction_enabled(stt,enable)enable: 0/1.단어 교정 후처리 사용 여부를 전환합니다.
mic_stt_set_post_correction_python_exe(stt,python_exe)python_exe: Python 실행 파일 경로 또는 이름.후처리 스크립트를 실행할 Python 런타임을 지정합니다.
mic_stt_set_post_correction_script_path(stt,script_path)script_path: stt_post_correct.py 경로.후처리 백엔드 스크립트 경로를 지정합니다.

컨텍스트·모듈 API

함수모든 인자기능·성공 결과·대표 오류
mic_create_context(out_ctx)out_ctx: 새 context 수신 포인터.context 생성. 성공 시 *out_ctx 유효, destroy 필요. NULL이면 EINVAL.
mic_destroy_context(ctx)ctx: 생성 context, NULL 허용.context의 module cache와 context 메모리만 해제, 반환 없음. 호출자가 모든 stream을 stop/close하고 취득한 module을 release한 뒤 호출해야 합니다.
mic_set_log_callback(ctx,cb,user)cb: void(*)(void*,const char*) 또는 NULL; user: 사용자 포인터.SDK 로그 callback 설정. ctx NULL은 EINVAL.
module_enumerate(ctx,items,capacity,out_count)items: module 포인터 배열 또는 NULL; capacity: 배열 길이; out_count: 전체 수신.모든 장치 열거. items에는 capacity개까지 기록, out_count는 전체 수.
mic_enumerate_devices(ctx,items,capacity,out_count)items: mic_usb_pair_t 배열 또는 NULL; capacity/out_count 동일.MIC0528 열거 후 CDC ID를 질의합니다. 같은 context가 이전에 확인한 USB/CDC/ID 쌍은 기억되므로 CDC가 이미 점유된 재열거에서도 저장 ID로 반환됩니다. 저장 ID가 없고 CDC도 열 수 없는 장치만 결과에서 제외하며, 한 장치의 CDC 실패 때문에 전체 열거가 실패하지 않습니다.
module_open_by_usb_path(ctx,usb_path,out_module)usb_path: 열거 USB path; out_module: 공통 handle 수신.경로로 종류 불문 장치 열기. 없으면 ENOTFOUND. release 필요.
mic_open_device_by_usb_path(ctx,usb_path,out_dev)usb_path: MIC path; out_dev: MIC handle.MIC0528 열기.
mic_open_device_by_id(ctx,firmware_id,out_dev)firmware_id: 0..255 CDC ID; out_dev: MIC handle.ID 일치 MIC 열기. 중복 ID는 설치 전 해결.
mic_open_device_by_com_port_idx(ctx,com_port_idx,out_dev)com_port_idx: COM33이면 33; out_dev: MIC handle.COM 번호로 MIC 열기.
sm3324_open_by_usb_path(ctx,path,out_sm)path: USB path; out_sm: SM handle.SM3324 USB 경로로 열기.
sm3324_open_by_com_port_idx(ctx,n,out_sm)n: COM 번호; out_sm: SM handle.COM 번호로 SM 열기.
module_retain(mod) / module_release(mod)mod: 열린 module. release는 NULL 허용.참조 수 증가/감소. retain NULL은 EINVAL; 마지막 release가 장치 해제.
module_get_kind(mod) / module_get_stream_kind(mod)mod: module 또는 NULL.즉시 enum 반환. NULL은 UNKNOWN/NONE.
module_get_name(mod) / module_get_serial(mod) / module_get_usb_path(mod)mod: module 또는 NULL.SDK 소유 NUL 문자열 반환. NULL은 빈 문자열; 장기 보관 시 복사.

MIC0528 CDC 장치 제어 API

persist=1은 펌웨어 flash 저장입니다. 설치 확정 시에만 사용하십시오. 모든 dev는 열린 mic_device_t*이고, status 함수 성공은 MIC_OK입니다.
함수모든 인자기능·성공 결과·대표 오류
mic_query_device_id(dev,out_id)out_id: 0..255 ID 수신.CDC i 질의, *out_id 설정.
mic_set_device_id(dev,id,persist)id: 새 ID; persist: 0 RAM/1 flash.CDC ID 변경.
mic_set_device_geometry(dev,geometry)
mic_get_device_geometry(dev,out_geometry)
geometry/out_geometry: mic_device_geometry_t.SDK geometry 저장/복사. 다중 SSL 전 각 장치에 설정.
mic_geometry_local_to_world(geometry,local,out_world)geometry: 원점·roll/pitch/yaw 포함 geometry; local: 장치 로컬 MEMS 좌표; out_world: 변환된 world 좌표 수신.Rz(yaw)*Ry(pitch)*Rx(roll)을 local에 적용 후 원점을 더합니다. 모두 degree이며 NULL 인자는 MIC_EINVAL. SSL 엔진도 이와 같은 변환을 사용합니다.
mic_set_recording_volume(dev,volume_scalar)
mic_get_recording_volume(dev,out_volume_scalar)
volume_scalar: 0.0..1.0 선형값; out_volume_scalar: 현재값 수신.OS UAC capture endpoint의 master volume을 설정/질의합니다. Windows에서 0.5는 녹음 볼륨 50%이며 firmware gain 설정이 아닙니다. 범위 오류는 EINVAL, 미지원 OS는 EUNSUPPORTED.
mic_query_mic_count(dev,out_mic_count)
mic_detect_mic_count(dev,out_mic_count)
out_mic_count: 4 또는 5 수신.CDC m 질의의 m4/m5 응답을 읽습니다. 펌웨어 부팅 시 SPI 하드웨어 프로브 결과이며 UAC를 열거나 음량으로 추정하지 않습니다. mic_detect_mic_count는 호환 별칭입니다.
mic_restore_factory_defaults(dev)추가 인자 없음.CDC r 공장 초기화.
mic_set_ssl_cdc_enabled(dev,enable,persist)enable: 0/1; persist: 0/1.펌웨어 내장 SSL CDC p0/p1 출력 설정.
mic_set_sync_mode(dev,mode,persist)mode: OFF=0/FOLLOWER=1/MASTER=2; persist.SYNC 설정. 다중 녹음은 MASTER 정확히 1, 나머지 FOLLOWER. MASTER만 PA11을 구동하며 rising pulse는 TIM7 한 tick(약 166.7 us), 시작 간격은 20 ms x10 뒤 24 ms x2로 반복되어 248 ms cycle입니다. 마지막 UAC marker 채널에는 각 rising edge가 1 frame으로 기록됩니다.
mic_query_sync_mode(dev,out_mode)out_mode: mode 수신.현재 SYNC 모드 질의.
mic_set_sync_enabled(dev,enable,persist)enable: 1 FOLLOWER, 0 OFF; persist.호환 함수. MASTER 선택 불가.
mic_set_status_cdc_enabled(dev,enable,persist)enable,persist: 0/1.CPU/온도 t0/t1 출력 설정.
mic_set_barometric_enabled(dev,enable,persist)enable,persist: 0/1.기압 b0/b1 출력 설정.
mic_set_led_manual_level(dev,led_index,level,persist)led_index: LED 번호; level: 0..7 수동, 8 자동; persist.LED 설정. 범위 밖 EINVAL.
mic_gpio_set_direction(dev,is_output)is_output: 0 input/1 output.GPIO 방향 설정. SYNC와 충돌 가능.
mic_gpio_set_rate(dev,rate_hz)rate_hz: 0..100.GPIO 주기 설정.
mic_gpio_write_bits(dev,ascii01,len)ascii01: '0'/'1' 버퍼; len: 바이트 길이.GPIO 출력 비트열 전송.
mic_gpio_read_once(dev,dst,capacity)dst: NUL 문자열 버퍼; capacity: 바이트.GPIO 입력 한 줄 수신. 응답 없음 ETIMEOUT.
mic_read_status_line(dev,dst,capacity,timeout_ms)dst/capacity: 수신 문자열; timeout_ms: 최대 대기 ms.상태 CDC 한 줄 수신.
mic_read_barometric_line(dev,dst,capacity,timeout_ms)동일.기압 CDC 한 줄 수신.
mic_read_device_ssl_line(dev,dst,capacity,timeout_ms)동일.펌웨어 내장 SSL CDC 한 줄 수신. Host SSL 결과와 다름.

UAC 녹음·온라인 동기화 API

다중 장치: device_count>1이고 require_sync=1이면 정확히 한 MASTER와 나머지 FOLLOWER가 필수입니다. SDK는 최초 lock에서 각 master–follower 쌍의 공통 20 ms → 특수 marker → 24 ms cadence를 찾아 FIFO delay를 설정합니다. 초기 lock 뒤에는 특수/일반 marker를 구별하지 않고, 각 follower가 master와 공통으로 관측한 일반 marker로만 해당 follower의 delay를 갱신합니다. marker가 빠진 쌍은 그 시점의 offset을 유지하고, 해당 쌍이 3초 이상 동기화하지 못하면 그 쌍만 초기 lock 탐색으로 돌아갑니다. preserve_sync_marker=1이면 marker를 마지막 출력 채널에 남기며, interpolate_sync_marker=1이고 preserve가 0이면 marker sample만 보간합니다. 펌웨어 cycle은 248 ms입니다.
함수모든 인자기능·성공 결과·대표 오류
mic_open_recording(devices,device_count,params,out_stream)devices: 열린 MIC 배열; device_count: 1 이상; params: mic_open_params_t; out_stream: stream 수신.단일 또는 동기화 그룹 녹음 생성. device_count>1은 require_sync=1, 정확히 한 MASTER와 나머지 FOLLOWER가 아니면 ECONFLICT. 5th MEMS 없는 192/384k 1ch는 EUNSUPPORTED.
mic_open_stream(dev,params,out_stream)dev: 한 MIC; params/out_stream 동일.단일 MIC 단축형. 고속 1ch는 5th MEMS 검증.
mic_open_stream_group(devices,device_count,params,out_group_stream)open_recording과 동일.그룹 스트림 단축 별칭.
mic_start_stream(stream)stream: 열린 stream.UAC 시작. endpoint 점유 시 EBUSY/EIO.
mic_read_stream(stream,out_block,timeout_ms)out_block: PCM block 수신; timeout_ms: 대기 ms.다음 block 수신. timeout ETIMEOUT, 반복 0 PCM ENOT_READY. PCM 포인터는 다음 read/close 전까지 유효.
mic_stop_stream(stream)stream: 시작 stream.캡처 중지.
mic_close_stream(stream)stream: 열린 stream, NULL 허용.UAC와 sync 버퍼 해제, 반환 없음.

스펙트럼·특징·PCM 변환 API

함수모든 인자기능·성공 결과·대표 오류
mic_spectrogram_default_params(out_params)out_params: parameter 수신.기본값: FFT 1024, hop 256, ch0, -100..0 dB. 반환 없음.
mic_spectrogram_from_pcm16(pcm,frames,channels,rate,params,out_spectrogram)pcm PCM16; frames/channels/rate; params NULL이면 기본; out_spectrogram 수신.STFT dB 행렬 생성. frames<FFT, 잘못된 FFT/ch는 EINVAL. destroy 필요.
mic_spectrogram_destroy(spectrogram)spectrogram: 생성 결과, NULL 허용.db와 구조체 해제, 반환 없음.
mic_mel_spectrogram_from_pcm16(pcm,frames,channels,rate,params,mel_bins,min_hz,max_hz,out_mel)mel_bins: 1..256; min/max_hz: 0이면 SDK 기본 범위; out_mel 수신.Mel 특징 행렬 생성, destroy 필요.
mic_mfcc_from_pcm16(pcm,frames,channels,rate,params,mel_bins,mfcc_count,out_mfcc)mel_bins, mfcc_count, out_mfcc: 결과 행렬.MFCC 특징 행렬 생성, destroy 필요.
mic_feature_matrix_destroy(matrix)matrix: Mel/MFCC 결과, NULL 허용.values와 구조체 해제.
mic_spectrogram_save_png(spectrogram,path)spectrogram: 유효 STFT; path: PNG 출력 경로.8-bit grayscale PNG 저장. 파일 I/O 실패 EIO.
mic_resample_pcm16(input,input_frames,channels,input_rate,output_rate,output,output_capacity_frames,out_frames)input PCM, frames/channels/rates; output: NULL이면 크기 질의; output_capacity_frames; out_frames: 필요/결과 프레임.선형 보간 리샘플. 용량/rate 오류 EINVAL.
mic_time_stretch_pcm16(input,input_frames,channels,rate,params,output,output_capacity_frames,out_frames)input PCM; channels/rate; params time stretch; output/capacity/out_frames는 위와 동일.시간 신장 및 피치 이동. output NULL이면 필요한 frame 수 질의.

SSL · VAD · STT API

형식필드·값 설명
mic_ssl_result_tsource_id,time_ms,azimuth_deg,elevation_deg,center_hz,activity,level_db: 소스 ID, 시각, 방향, 분석창에서 계산한 실제 스펙트럼 중심 주파수(Hz), 활성도, 레벨(dBFS).
mic_ssl_probability_point_tazimuth_deg,elevation_deg,probability: 전체 SSL 격자의 한 셀. 한 번 반환된 모든 probability의 합은 1.0입니다. 이는 한 음원이 활성 상태라는 조건에서의 공간 사후확률 질량이며 절대 음원 존재확률은 아닙니다.
mic_ssl_output_space_tHEMISPHERE(모든 센서 공평면), SPHERE(비평면 geometry).
mic_ssl_backend_tSRP_EXPERIMENTAL, MUSIC_HARK_COMPAT, TOPS/CSSM/ADAPTIVE/DPD_MUSIC_EXPERIMENTAL. 고객 배포는 MUSIC_HARK_COMPAT 권장, EXPERIMENTAL은 검증용.
mic_ssl_music_algorithm_tSEVD, GEVD, GSVD.
mic_ssl_window_policy_tPAST, MIDDLE, FUTURE.
mic_ssl_spectrum_weight_tUNIFORM, A_CHARACTERISTIC.
mic_ssl_peak_search_tLOCAL_MAXIMUM, HILL_CLIMBING.
mic_ssl_params_tbackend,fft_size,max_sources,accuracy_angle_deg,azimuth_step_deg,elevation_step_deg,music_algorithm,correlation_window_frames,correlation_window_policy,ssl_period_frames,spectrum_weight_type,a_characteristic_scaling,enable_eigenvalue_weight,enable_hierarchical_refine,peak_search_algorithm,min_freq_hz,max_freq_hz,speed_of_sound_mps,steering_distance_m,max_source_angular_speed_deg_s,noise_floor_dbfs_per_sqrt_hz,min_signal_snr_db: SSL 탐색·창·물리 파라미터 전체. 잡음 RMS가 대역폭의 제곱근에 비례하도록 noise_floor_dbfs_per_sqrt_hz는 원본 PCM의 진폭 스펙트럼 밀도(0이면 기본 -120 dBFS/√Hz), min_signal_snr_db는 필요한 여유(0이면 기본 10 dB)를 지정합니다. SSL은 입력 볼륨/피크 정규화를 하지 않습니다.
mic_vad_params_t / resultparams: mode,frame_ms,speech_ratio_threshold. result: is_speech,speech_probability,time_ns. bytes 입력은 channel 0을 mono 16 kHz로 처리하고, mic_vad_process_pcm16은 channel_index로 분석 채널을 선택합니다.
mic_stt_model_preset_tCUSTOM_PATH, NEMOTRON_STREAMING_MULTILINGUAL, PARAKEET_REALTIME_EOU_120M.
mic_stt_params_tmodel_preset,model_path,model_dir,language,n_threads,translate,detect_language,use_gpu_if_available. language NULL/""은 자동 감지, 언어 지정 시 detect_language=0 권장.
mic_stt_realtime_params_tstep_ms: 갱신 간격; stable_decode_count: host측 안정화 힌트. parakeet streaming backend가 직접 확정 텍스트를 낼 때는 보조값으로만 사용된다.
STT 구조체·상태 보충 (위 표의 간략 표기를 대체): mic_stt_params_t의 전체 필드는 model_preset, model_path, model_dir, language, n_threads, translate, detect_language, use_gpu_if_available, enable_post_correction, post_correction_python_exe, post_correction_script_path입니다. mic_stt_set_language()는 다음 추론 언어를 설정하면서 realtime 누적 PCM·확정/변동 텍스트·정규화 상태를 초기화합니다. mic_stt_set_realtime_params()의 step_ms와 stable_decode_count는 모두 0보다 커야 하며, 변경하면 다음 realtime preview 갱신 시점을 다시 계산합니다.
실시간 Host SSL 기본 동작: 원본 PCM을 정규화하지 않고 100 ms 분석창, 25 ms hop(75% overlap)으로 처리합니다. 첫 유효 프레임은 즉시 출력하며, 이후 방향은 max_source_angular_speed_deg_s와 탐색 격자 간격을 함께 사용해 순간적인 오검출 peak로 크게 튀지 않도록 추적합니다. 음파 카메라 확률 등고선은 동일한 100 ms 원본 PCM 창으로 200 ms마다 갱신합니다.
평면 배열의 고각: 4-MEMS처럼 모든 센서가 한 평면에 있으면 SDK는 구별 가능한 대표 반구를 -90° ≤ elevation ≤ 0°로 반환합니다. 평면 반대편의 +|elevation| 해는 물리적으로 동일하므로 대시보드는 posterior 등고선과 argmax 십자가를 양쪽 고각에 대칭 표시합니다. 구 배열은 실제 -90°…+90°를 한 번만 표시합니다.
확률맵 정의: mic_ssl_process_probability_map_bytes()는 backend score를 min/max 정규화하거나 temperature softmax한 값이 아니라, channel-power 정규화 복소 공분산에서 잡음 + 1개 평면파 방향 가설의 bin별 profile likelihood를 누적하여 전체 grid에서 정규화한 조건부 posterior를 반환합니다. 반환 확률은 셀의 posterior이며 위도/고도 셀 면적 가중을 적용하지 않습니다. posterior_temperature는 ABI 호환용 예약 인자이므로 0을 전달하며 결과에는 영향을 주지 않습니다. 지도 십자가와 등고선은 이 map의 동일한 argmax/posterior만 사용해야 합니다. 녹음 PCM만으로 사용할 때는 먼저 mic_ssl_set_sensor_layout()을 호출하고, 디버그 격자 계산에는 mic_ssl_debug_process_pcm_s16() 또는 mic_ssl_debug_process_pcm_s16_full_grid()을 사용합니다.
함수모든 인자기능·성공 결과·대표 오류
mic_create_ssl(params,out_ssl) / mic_ssl_destroy(ssl)params: SSL 설정; out_ssl: handle 수신; ssl: 생성 handle.SSL 엔진 생성/해제. create는 잘못된 FFT/범위 EINVAL.
mic_ssl_attach_stream(ssl,stream,geometry_override)stream: 열린 stream; geometry_override: NULL이면 장치 geometry.6ch 일반 스트림 또는 동기화된 1ch 고속 그룹 스트림의 채널과 센서 좌표를 매핑합니다. 1ch 192/384 kHz에서는 각 MIC0528의 채널 0을 그 장치의 5번째 float MEMS 좌표에 대응시키므로, float MEMS가 있는 MIC0528이 최소 4개 필요합니다. 다중 장치 1ch 사용에는 동기화와 장치별 geometry가 필요합니다. 센서 4개 미만은 MIC_EUNSUPPORTED, float MEMS geometry 없음은 MIC_ENOT_READY입니다.
mic_ssl_set_sensor_layout(ssl,sensor_positions,channel_indices,sensor_count,source_channels,output_space)sensor_positions: sensor_count개 world 좌표; channel_indices: 각 센서가 읽을 interleaved source 채널 또는 NULL; sensor_count: 1 이상; source_channels: 이후 PCM 입력 채널 수; output_space: HEMISPHERE/SPHERE.장치를 열지 않고 녹음 PCM 또는 사용자 PCM용 SSL layout을 설정합니다. channel_indices가 NULL이면 0부터 sensor_count-1까지 연속 매핑입니다. 이후 DSP_INPUT_AUDIO_BYTES는 반드시 source_channels와 일치해야 합니다.
mic_ssl_process_bytes(ssl,src,items,capacity,out_count)src: dsp_source; items: 결과 배열; capacity: 최대; out_count: 실제 수.PCM bytes SSL. 반환 방향은 시간 추적·평활화된 source track이며 center_hz는 분석창의 실제 스펙트럼 중심입니다. 1ch 고속 그룹에 attach된 경우 192/384 kHz와 장치 수만큼의 합쳐진 채널을 허용합니다. 분석 대역 RMS에서 10*log10(대역폭 Hz)를 뺀 진폭 밀도가 설정 잡음 밀도와 SNR 여유의 합보다 작으면 MIC_OK와 out_count=0을 반환합니다. capacity 부족 시 일부 결과만 기록 가능.
mic_ssl_process_probability_map_bytes(ssl,src,posterior_temperature,points,capacity,out_count,out_level_db,out_center_hz)ssl: stream 또는 sensor layout이 설정된 SSL handle; src: 동일 채널 배치의 PCM16; posterior_temperature: ABI 호환용으로 현재 무시되며 0 권장; points/capacity: 출력 격자 배열과 용량; out_count: 기록 셀 수; out_level_db: 정규화하지 않은 원본 PCM의 분석 대역 RMS dBFS; out_center_hz: 실제 스펙트럼 중심 Hz. 마지막 두 출력은 NULL 허용.음파 카메라용 현재 프레임의 전체 공간 조건부 posterior를 반환합니다. points의 확률 합은 1.0이며 셀 면적 가중을 적용하지 않습니다. 진폭 밀도/SNR 게이트를 통과하지 못하면 MIC_OK, out_count=0, out_center_hz=0을 반환하므로 기존 등고선과 십자가를 지워야 합니다. 십자가는 반드시 probability가 가장 큰 셀(argmax)에 표시하며, 추적·평활화된 process_bytes 좌표와 혼용하지 않습니다. MIC 내장 SSL에는 이 map이 없으므로 Host SDK SSL에서만 등고선을 그립니다. MIC_EINVAL은 버퍼/용량/FFT 길이 오류, MIC_ENOT_READY는 미attach, MIC_ECONFLICT는 채널 불일치입니다.
mic_ssl_debug_process_pcm_s16(...) / mic_ssl_debug_process_pcm_s16_full_grid(...)params, sensor_positions, sensor_count, output_space, sample_rate_hz, PCM16, frames, channels, score/azimuth/elevation 출력 배열, capacity, out_count.디버그/시각화용 후보 score 계산 함수입니다. 첫 함수는 내부 선택 grid, full_grid 함수는 peak reduction 전 전체 grid 결과를 반환합니다. 제품 UI의 확률 등고선에는 probability-map API를 사용하십시오.
mic_ssl_process_live(ssl,mic,run_ms,items,capacity,out_count)mic: 한 MIC; run_ms: capture 시간; 나머지는 위와 동일.단일 MIC 6ch live 편의 함수. 1ch 고속 SSL은 센서 수가 부족하므로 최소 4개 MIC의 동기화 group stream을 attach하고 bytes 경로를 사용합니다.
mic_create_vad(params,out_vad) / mic_vad_destroy(vad)params: NULL이면 기본; out_vad: handle; vad: 생성 handle.VAD 생성/해제.
mic_vad_process_bytes(vad,src,out_result)src: AUDIO_BYTES PCM16; out_result: VAD result.버퍼 VAD.
mic_vad_process_pcm16(vad,pcm,frames,channels,rate,channel_index,out_result)PCM 형식과 분석 channel_index, result 수신.직접 PCM16 VAD. channel 범위 밖 EINVAL.
mic_vad_process_live(vad,mic,run_ms,out_result)mic: MIC; run_ms: 처리 시간; out_result.장치 직접 live VAD.
mic_stt_resolve_model_preset(preset,model_dir,out_path,capacity)preset; model_dir; out_path/용량.preset의 GGUF STT 모델 경로 조합. 버퍼 부족 EINVAL.
mic_create_stt(params,out_stt) / mic_stt_destroy(stt)params: 모델·언어; out_stt: handle; stt: handle.parakeet/Nemotron streaming 모델 load/unload. 파일 없음 ENOTFOUND/EIO.
mic_stt_set_language(stt,language)language: ko/en/ja 등, NULL/"" 자동 감지.다음 추론 언어 설정. 자동 감지는 전사를 중단하지 않는다.
mic_stt_set_realtime_params(stt,params)params: step/stability.실시간 decode 간격과 host 안정화 규칙 설정. 값 변경 시 이전 비교 상태는 폐기한다.
mic_stt_feed_bytes(stt,src)src: AUDIO_BYTES PCM16.SDK가 16 kHz mono로 변환한 뒤 50% peak 자동 레벨 정규화를 적용해 비실시간 입력을 누적하며, 이후 flush한다.
mic_stt_feed_realtime_bytes(stt,src)src: 작은 realtime PCM block.SDK가 연속 위상을 유지해 16 kHz mono로 변환하고 50% peak 자동 레벨 정규화를 적용한 뒤 realtime buffer에 공급한다. 포락선은 상승 즉시, 하강 0.5 Hz이며 10%를 최저 기준으로 한다.
mic_stt_poll_realtime(stt,confirmed,confirmed_capacity,out_confirmed_len,unstable,unstable_capacity,out_unstable_len)확정/변동 UTF-8 출력 버퍼·용량·길이 수신 포인터.대기 audio decode. confirmed는 누적 후 변경되지 않고 unstable은 다음 decode에서 변경 가능. 버퍼가 작아도 out_*_len에는 NUL을 제외한 텍스트 바이트 수가 반환되므로 capacity를 out_*_len+1 이상으로 확장한 뒤 재호출할 수 있다.
mic_stt_run_live(stt,mic,run_ms)mic: MIC; run_ms: capture 시간.장치에서 비실시간 입력을 누적, 결과는 flush.
mic_stt_process_realtime_bytes(stt,src,confirmed,confirmed_capacity,out_confirmed_len,unstable,unstable_capacity,out_unstable_len)src와 poll의 모든 출력 인자.feed+decode 일괄.
mic_stt_process_realtime_live(stt,mic,run_ms,confirmed,confirmed_capacity,out_confirmed_len,unstable,unstable_capacity,out_unstable_len)mic/run_ms와 위 출력 인자.capture+realtime decode 일괄.
mic_stt_finalize_realtime(stt,confirmed,capacity,out_len)confirmed UTF-8 buffer/용량/길이.남은 realtime buffer를 확정 텍스트로 종료.
mic_stt_flush(stt,utf8_text,capacity,out_len)최종 UTF-8 buffer/용량/길이.비실시간 누적 audio 전사 후 비우고 리샘플러·정규화 상태도 초기화한다.

SM3324 API

SM3324 시계열 장치는 COM 포트 또는 USB 경로로 열고, 스트리밍 또는 일괄 수집 결과를 공통 프레임 API로 받습니다.

sm3324_mode_t 값의미
STOP('o')측정 중지.
V,C,Y,Z,P,Q,Gvoltage/current/ADC1/ADC2/PT1/PT2/gas, 각 300 kS/s 단일 모드.
F,X,Rvoltage+current / ADC dual / PT dual, 150 kS/s.
A모든 채널 37.5 kS/s.
v,c,y,z,p,q,g각 단일 채널 18.75 kS/s.
f,x,r각 복합 채널 9.375 kS/s.
a모든 채널 2.34375 kS/s.
O,LIMU attitude / IMU calibration.
함수모든 인자기능·성공 결과·대표 오류
sm3324_connect(dev) / sm3324_disconnect(dev)dev: 열린 SM handle.CDC 연결/해제. I/O 실패 EIO.
sm3324_start_mode(dev,mode)mode: 위 enum 또는 ASCII 값.측정 시작. 잘못된 mode EINVAL/EUNSUPPORTED.
sm3324_stop_mode(dev)dev.측정 중지.
sm3324_read_text_window(dev,dst,capacity,wait_ms)dst NUL buffer/바이트 용량; wait_ms.원시 텍스트 window 수신. 데이터 없음 ETIMEOUT.
sm3324_ekf_read_all(dev,dst,capacity)dst/capacity.EKF 설정 전체 읽기.
sm3324_ekf_apply_text(dev,text)text: 적용 EKF 설정 문자열.EKF 설정 적용.
sm3324_ekf_save_flash(dev)dev.EKF 설정 flash 저장.
sm3324_start_calibration(dev) / sm3324_calibration_next(dev)dev.IMU calibration 시작/다음 단계.
sm3324_capture_timeseries(dev,mode,duration_ms,out_series,out_stats)mode; duration_ms; out_series: timeseries 수신; out_stats: 예약 통계 포인터.지정 시간 캡처 후 배열 기록. out_series는 reset 필요.
sm3324_append_frames_to_timeseries(dev,frame_bytes,size_bytes,io_series,io_stats)raw frame bytes/길이; 누적 series; 예약 stats.수신 frame을 해석해 누적. 직접 read loop용.
sm3324_reset_timeseries(series)series: 초기화할 결과.채널 배열 해제와 필드 0 초기화.

오프라인 SYNC API

함수모든 인자기능·성공 결과·대표 오류
mic_offline_sync_estimate_pcm16(reference_pcm,reference_frames,target_pcm,target_frames,params,out_result)두 complete raw PCM16, 각각 frames; params: channels/marker 설정; out_result: affine 변환.marker 손실(max_consecutive_missing_markers)을 허용해 reference = target * ratio + offset 추정. pair 부족은 ENOT_READY/EINVAL.

분류기·멀티모달 예약 API

현재 미구현: 다음 함수는 모두 MIC_ENOT_IMPLEMENTED를 반환합니다. ABI 예약용이며 제품 코드에서 사용하지 마십시오.
함수모든 인자의도된 기능·현재 반환
ts_classifier_create(params,out_classifier)params: 향후 모델 설정; out_classifier: handle.분류기 생성 예정 / ENOT_IMPLEMENTED.
ts_classifier_load_model(classifier,model_path)classifier; model_path: 모델 파일.모델 load 예정 / ENOT_IMPLEMENTED.
ts_classifier_describe_schema(classifier,out_schema)classifier; out_schema: 예약 schema.입력 schema 조회 예정 / ENOT_IMPLEMENTED.
ts_classifier_process_series(classifier,series,out_result)classifier; series: ts_series_t; out_result.정상/비정상 추론 예정 / ENOT_IMPLEMENTED.
multimodal_session_create(ctx,out_session)ctx; out_session.MIC/SM 결합 session 생성 예정 / ENOT_IMPLEMENTED.
multimodal_session_add_mic(session,binding)
multimodal_session_add_sm3324(session,binding)
session; binding: multimodal_source_binding_t.입력 source 추가 예정 / ENOT_IMPLEMENTED.
multimodal_session_start(session)
multimodal_session_stop(session)
session.session 시작/정지 예정 / ENOT_IMPLEMENTED.
multimodal_session_build_series(session,out_series)session; out_series.audio/current/SSL/STT/VAD feature 정렬 예정 / ENOT_IMPLEMENTED.
multimodal_session_run_classifier(session,classifier,out_result)session; classifier; out_result.session 분류 실행 예정 / ENOT_IMPLEMENTED.

Include는 #include <mic_sdk/mic_sdk.h> 하나면 충분합니다. DLL 배포 시 mic_sdk와 parakeet runtime 및 선택한 GGUF 모델 파일을 함께 배포하십시오. CUDA는 선택이며 use_gpu_if_available=1은 가능한 경우에만 사용합니다. CAMERA는 module enum에 예약되어 있으나 현재 공개 camera C API는 없습니다.

정확한 typedef 이름 보충

typedef값 또는 필드용도
mic_status_tMIC_OK, MIC_EINVAL, MIC_ENOMEM, MIC_ENOTFOUND, MIC_EBUSY, MIC_EIO, MIC_ETIMEOUT, MIC_EUNSUPPORTED, MIC_ENOT_READY, MIC_ECONFLICT, MIC_ENOT_IMPLEMENTED, MIC_EINTERNAL모든 status API의 반환형.
mic_sync_mode_tMIC_SYNC_MODE_OFF=0, MIC_SYNC_MODE_FOLLOWER=1, MIC_SYNC_MODE_MASTER=2mic_set_sync_mode와 mic_query_sync_mode의 설정/반환형.
mic_vad_result_tis_speech, speech_probability, time_nsVAD bytes/PCM/live 함수의 결과 구조체.

API Revision

함수인자반환 및 기능
mic_query_mic_count(dev,out_mic_count)
mic_detect_mic_count(dev,out_mic_count)
dev: 열린 MIC0528 핸들; out_mic_count: 4 또는 5 수신.CDC m을 전송해 펌웨어 응답 m4 또는 m5를 읽습니다. 결과는 부팅 시 SPI 하드웨어 프로브로 확정되며 UAC를 열거나 오디오 진폭을 추정하지 않습니다. mic_detect_mic_count는 기존 코드 호환 별칭입니다.
SYNC physical waveformMASTER f2.PA11 HIGH is exactly one 6 kHz TIM7 tick, about 166.7 us. Starts repeat at 20 ms x 10 then 24 ms x 2, a 248 ms cycle.
mic_send_cdc_text(dev,command)dev: 열린 MIC0528 핸들; command: 개행 없는 CDC 명령 문자열.MIC_OK이면 한 줄을 전송합니다. 진단용 API이며, 일반 제어에는 형식이 보장된 개별 설정 함수를 우선 사용합니다. NULL·빈 문자열은 MIC_EINVAL.

Actuator Dashboard C API

sigprocsdk actuator supplement · 2026-10-15

구현 가능 범위: 웹 actcontrol 대시보드의 모터 통신·상태 조회·설정·목표 명령은 공개 C API로 구현할 수 있습니다. SDK는 창, 그래프, 위젯 등 UI 프레임워크를 제공하지 않으므로 C 프로그램이 화면과 그래프를 직접 구성해야 합니다. 현재 제공되는 풀 대시보드 예제는 원본 HTML을 WebView2로 표시하는 Windows 호스트이며, 그 호스트는 C++입니다. 하드웨어 요청은 sigprocsdk의 C actuator API를 사용합니다. 이 예제를 순수 C UI 예제라고 간주하지 마십시오.

연결과 통신 경로

서보는 항상 actcontrol USB CDC 브리지에 연결된 가상 COM/TTY 포트를 통해 제어합니다. SDK 호스트가 서보 UART에 직접 연결하지 않습니다. Windows 예: COM12; Linux 예: /dev/ttyACM0. USB CDC 호스트 baud는 115200으로 열며, 서보의 baud 레지스터 설정과 별개입니다.

대시보드 동작SDK API / 구현 방법참고
연결·해제actuator_open_actcontrol(path,&bus), actuator_close(bus)actuator_open_serial은 호환 별칭입니다. 두 함수 모두 actcontrol USB CDC 포트를 엽니다.
선택한 모터 상태 새로고침·주기 조회actuator_read_state(bus,id,&state,timeout_ms)요청/응답 방식의 동기 API입니다. UI 응답성을 위해 타이머 작업자나 별도 worker에서 호출하고, 결과를 UI 스레드로 전달하십시오.
토크 활성·비활성, 모드, 위치·속도·전류 목표actuator_servo_set_torque, actuator_servo_set_mode, actuator_servo_set_goal_position/velocity/currenttyped 서보 API는 ID 0–250을 받습니다. 위치 ±3600 deg, 속도 ±1500 deg/s, 전류 ±200 mA 범위이며 목표 명령 전에 해당 제어 모드를 먼저 설정하십시오.
운전 모드ACTUATOR_MODE_CURRENT, _VELOCITY, _POSITION, _CONTINUOUS_POSITION, _RAW_PWM레지스터 값은 각각 0x01, 0x02, 0x04, 0x0C, 0xFF입니다.
여러 ID 그래프·이력ID마다 actuator_read_state를 호출하고 앱에서 시각·이력 버퍼를 저장·그리기SDK가 그래프 위젯이나 샘플 이력 저장소를 제공하지는 않습니다.
서보 한계·ID·baud·reverse·zero·PID/AW·reboot·factory resetactuator_read_registers, actuator_write_registers; 비연속 주소는 actuator_build_packet + actuator_send_packet + 필요 시 actuator_read_packet레지스터 주소·길이·단위는 DRV256 레지스터 표를 따르십시오. ACK 쓰기는 wait_for_ack != 0 또는 해당 ACK 패킷 명령을 사용합니다.
패킷 빌더·원시 TX/RX·로그actuator_build_packet, actuator_send_packet, actuator_read_packet송수신 바이트 및 로그 표시는 호출 앱이 관리합니다.

읽을 수 있는 상태

actuator_state_t 필드의미
id, is_esc, valid응답 ID, ESC 레지스터 맵 여부, 유효 상태 표시.
torque_enabled, operating_mode, hardware_error, moving토크 상태, 운전 모드, 장치 오류 비트, 이동/회전 상태.
position_deg, velocity, current_ma현재 위치(deg), 속도(서보 deg/s 또는 ESC RPM), 전류(mA).
goal_position_deg, goal_velocity, goal_current_ma목표 레지스터 값. ESC에서 position은 지원되지 않으며 ESC 목표 값은 장치 레지스터 단위입니다.
pwm_command, torque_or_throttle, voltage_v, temperature_c서보 PWM 명령 또는 ESC raw PWM, 출력 전력(W) 또는 ESC throttle(4096 단위), 전압(V), 온도(°C).

서보 ID는 0–250, ESC ID는 251–254입니다. actuator_read_state는 ESC ID에서 ESC 맵을 해석하지만, 위의 typed actuator_servo_* 제어 함수는 서보 ID만 허용합니다. 미지원 ESC 값은 장치가 정의한 sentinel일 수 있습니다.

순수 C 프로그램 예제

아래 코드는 C 앱에서 SDK를 직접 호출해 actcontrol 포트 연결, 상태 조회, 목표 명령을 수행하는 최소 예입니다. 반복 조회·그래프·입력 위젯은 이 호출 주위에 앱 코드로 구현합니다.

#include <stdio.h>
#include "mic_sdk/mic_sdk.h"

int main(void) {
    actuator_t *bus = NULL;
    actuator_state_t state;
    mic_status_t status;

    status = actuator_open_actcontrol("COM12", &bus);
    if (status != MIC_OK) {
        fprintf(stderr, "actcontrol open failed: %d\n", (int)status);
        return 1;
    }

    status = actuator_read_state(bus, 1, &state, 500);
    if (status == MIC_OK) {
        printf("ID %u: %.1f deg, %.1f deg/s, %.0f mA\n",
               state.id, state.position_deg, state.velocity, state.current_ma);

        /* Dashboard slider equivalent: select mode, then issue goal. */
        status = actuator_servo_set_mode(bus, 1,
                  ACTUATOR_MODE_CONTINUOUS_POSITION, 500);
        if (status == MIC_OK)
            status = actuator_servo_set_goal_position(bus, 1, 90.0, 500);
    }

    actuator_close(bus);
    return status == MIC_OK ? 0 : 1;
}
동기 호출: 읽기 함수는 응답 또는 timeout까지 호출 스레드를 기다립니다. 그래프 갱신 주기와 UI 입력이 막히지 않도록 통신을 별도 작업자에서 수행하고, 각 ID의 조회를 순차 큐에 넣으십시오. 한 포트에는 한 통신 소유자만 두어 동시 송수신 경합을 피하십시오.

DRV256 서보 대시보드 레지스터 대응

주소대시보드 항목표현·단위
0x82, 0x83, 0x85ID, 서보 baud code, operating mode각 1 byte. baud code는 서보 측 설정이며 actcontrol USB CDC의 115200 baud와 다릅니다.
0x86, 0x8E–0xA9zero offset, 온도·전압·전류·속도·가속도·위치 한계각 레지스터 정의의 정수 폭과 부호를 따릅니다. 위치 한계는 0.1 deg, 전압 한계는 1 mV 단위입니다.
0xB7–0xC7Position / Velocity / Current PID P,I,D오름차순 16-bit gain 9개; 18 bytes.
0xC9, 0xCA, 0xCC, 0xCE방향 반전, Current / Velocity / Position anti-windup shiftreverse는 1 byte; AW 값은 각각 16-bit.
0xD0–0xE1토크, 오류·이동 상태, 목표 current/velocity/position, profile 설정목표 current는 mA, velocity는 0.1 deg/s, position은 0.1 deg 레지스터 단위.
0xE8–0xFA현재 전류·출력·속도·위치·전압·온도·PWM 텔레메트리정확한 필드별 폭·단위·sentinel은 제품 레지스터 표를 따릅니다.
0xD2, 0xD3Factory reset, reboot 요청각 요청 바이트에 1을 써서 실행합니다. reset/reboot는 복구 불가능한 설정 변경이나 재시작을 유발할 수 있으므로 명시적 UI 동작으로 연결하십시오.

일반 연속 레지스터는 actuator_read_registers/actuator_write_registers로 처리합니다. 서로 떨어진 주소를 한 요청에 묶거나 전체 packet editor를 구현할 때는 주소 배열을 actuator_build_packet에 전달합니다. WRITE 계열은 주소마다 1 byte씩 전송 데이터를 전달하고, 다중 byte 레지스터는 little-endian으로 직렬화하십시오. ACK packet은 동기화된 TX/RX로 처리하십시오.

예제·소스 위치

항목내용
sdk/examples/actuator_dashboard.cC 콘솔 예제. 빌드 산출 이름은 actuator_cli입니다.
sdk/examples/actuator_dashboard_host.cppWindows WebView2 대시보드 호스트. C++ WebView2 래퍼와 기존 HTML을 사용하며 C SDK actuator API로 하드웨어를 조작합니다.
sdk/examples/dashboard_web_native_actuator/index.html웹 actcontrol 대시보드 UI. native host 경로에서는 웹의 Web Serial 대신 SDK host message bridge를 사용합니다.
sdk/include/mic_sdk/actuator.h공개 actuator C API의 선언 정본.

이 보충 내용은 기존 MIC/SM API 표를 대체하지 않습니다. SDK 공개 include는 #include "mic_sdk/mic_sdk.h"이며, actuator 부분만 필요하면 #include "mic_sdk/actuator.h"를 포함할 수 있습니다. 실제 레지스터의 세부 정의는 배포된 DRV256 펌웨어/제품 문서 및 drv256_dashboard.html의 레지스터 테이블과 함께 확인하십시오.