본문 바로가기
반응형

전자1644

직렬 LR 회로 응답특성 직렬 LR 회로는 다음과 같다. 위 회로의 방정식은 다음과 같다. 위 식의 전달함수는 다음과 같은 1차 시스템이다. 위 1차 시스템의 시정수는 다음과 같다. 저항이 작아질수록 시정수는 증가한다. 즉, 저항이 작아질 수록 전압에 의한 전류의 변화가 작다. ☞ 1차 시스템의 응답특성 ☞ DC 모터 방정식 2023. 4. 24.
PMSM 방정식과 역기전력 PMSM 방정식은 다음과 같다. 역기전력은 q 축 방정식의 마지막 항에 있다. 역기전력은 q축에서만 발생한다. 하지만, BLDC 모터와 같이 역기전력 파형이 정현파가 아니라면 역전력 성분이 d축에도 나타날 수 있다. PMSM에서는 정속도일 때 역기전력 크기는 일정한 값을 가지지만 BLDC 모터에서는 속도가 일정해도 역기전력 성분이 진동할 수 있다. 2023. 4. 23.
모터 돌극 뜻 모터에서 돌극(Sailency)이란 돌출된 형태를 가진 회전자 또는 정지자를 의미한다. 돌극에 대비하여 원통형(Non-sailency, Round)이 있다. 모터 회전자와 고정자의 돌극형과 원통형 조합은 다음과 같다. 가장 왼쪽은 회전자와 정지자 모두 원통형이고 가장 오른쪽은 회전자와 정지자 모두 돌극형이다. 돌극형은 회전자 위치에 따라 인턱턴스가 달라지고 토크 리플이 크고 소음과 진동이 크다. 2023. 4. 21.
74 로직 IC를 이용한 SPI 구현 74HC595를 이용하여 SPI의 출력을 구현하는 방법은 다음과 같다. (CPOL=1,CPHA=1) 74HC165를 이용하여 SPI의 입력을 구현하는 방법은 다음과 같다. (CPOL=1,CPHA=0) ☞ SPI의 CPOL과 CPHA 차이 2023. 4. 20.
DC 모터 제어 IC - DRV8876 DRV8876은 풀브릿지 IC로 구조는 다음과 같다. 핀 설명 nSLEEP Sleep 모드 EN/IN1 - 풀브릿지 제어 입력 - PMODE에 따라 다른 동작 PH/IN2 - 풀브릿지 제어 입력 - PMODE에 따라 다른 동작 PMODE nSLEEP=0일 때 설정됨 0 : PH/EN 모드 1 : PWM 모드 Hi-Z : 독립 제어 모드 IMODE 전류 제어 모드 GND : Quad-Level 1 20kΩ : Quad-Level 2 60kΩ : Quad-Level 3 Hi-Z : Quad-Level 4 VREF 전류 제어를 위한 입력 IPROPI - 브릿지 회르에 흐르는 전류에 비례한 전류 출력 - 1000uA / A nFAULT Fault일 때 출력 - UVLO, CPUV, OCP, TSD 파라미터 값 .. 2023. 4. 20.
TI DSP의 사용하지 않는 핀 처리 TI DSP의 GPIO 디폴트 상태는 내부 Pull-up이 Disable 된 입력 상태이다. GPIO 핀은 다음 중 하나의 상태가 되어야 한다. 1) Input 상태일 때 외부 다른 부품의 출력과 연결됨 2) Input 상태일 때 내부 pull-up enable 됨 3) Output 상태 사용하지 않는 핀은 pull-up enable을 해야 한다. Pull-up enable 디폴트로 하지 않는 이유: 처음 파워를 켤때 High가 되면 안 되는 IC가 연결되어 있을 때는 pull-up이 디폴트로 되면 오동작을 일어킬 수 있다. ☞ 사용하지 않는 핀을 플로팅 시키면 안되는 이유 2023. 4. 19.
[Matlab] 디지털 필터 대역폭 구하기 Matlab에서 디지털 필터의 -3dB 대역폭을 구하는 방법은 다음과 같다. a = 0.1; b = 1 - a;; num = [a]; den = [1 -b]; [h,f] = freqz(num,den,100000,1000); plot(f,abs(h),'r','LineWidth',1); grid on; hold on; [val,idx]=min(abs(abs(h)-(1/sqrt(2)))); abs(h(idx)) f(idx) % 대역폭 주파수 위에서 1000은 샘플링 주파수로 단위는 Hz이다. 출력되는 f도 단위는 Hz이다. 2023. 4. 19.
IIR 필터의 대역폭 단순한 IIR 필터는 다음과 같다. y[n] = a*x[n] + (1-a)*y[n-1] 샘플링 주파수가 1kHz일 때 a 값에 따른 주파수 응답특성은 다음과 같다. 가장 밑의 그래프는 a가 0.1이고 0.1씩 증가하여 가장 위의 그래프의 a는 0.9이다. 위 그래프에서 3dB로 떨어지는 대역폭은 다음과 같다. a 대역폭 [Hz] 0.1 16.785 0.2 35.665 0.3 57.380 0.4 83.130 0.5 115.03 0.6 157.31 0.7 220.66 0.8 352.42 0.9 x ☞ IIR 필터 시간 응답특성 ☞ Matlab 주파수 대역폭 구하기 ☞ FIR 필터 주파수 응답 특성 2023. 4. 19.
만능기판 영어로 만능기판을 영어로는 Perfboard(퍼프보드)라고 한다. DOT PCB라고도 한다. ☞ 만능기판을 이용한 프로토타입 보드 제작 2023. 4. 18.
로봇 컨트롤러의 구조 로봇 컨트롤러를 구성하는 주요 요소는 모터를 제어하는 서보 드라이브와 모션 컨트롤러이다. 2023. 4. 17.
모터 드라이버의 구성과 데이터 모터 드라이버의 구성은 다음과 같다. 모터 드라이버의 주요한 데이터는 다음과 같다. 1) 모터 전압 2) 모터 전류 3) 모터 위치 4) 지령(Command) 위의 4가지 데이터를 처리하고 조합하여 다양한 정보를 생성할 수 있다. DC 모터는 전압와 전류 데이터가 각각 1개씩이지만 3상 모터는 전압과 전류가 각각 3개이기 때문에 처리할 데이터 양이 매우 많아진다. 위치 데이터를 이용하여 위치, 속도, 위상각 등의 정보를 구할 수 있다. 2023. 4. 17.
모터 드라이버 PH/EN 신호 풀브릿지 모터 드라이버 IC에서 PH/EN 신호는 Phase/Enable을 의미하고 다음과 같이 동작한다. EN=1일 때 PH에 인가되는 PWM의 듀티가 50%일 때는 모터가 정지하고 100%일 때는 정방향으로 회전하고 0%일 때는 역방향으로 회전한다. 이와 같은 방식의 PWM을 Bipolar Q4라고 한다. 이 방식은 PWM 신호를 한개만 사용할 수 있고 션트 저항 1개를 사용할 때 션트 저항에 전류가 항상 흐르는 장점이 있다. ☞ PWM 방식 2023. 4. 16.
BLDC 모터 컨트롤러 IC - AMT49413 Allegro의 BLDC 모터 컨트롤러 IC AMT49413의 구조는 다음과 같다. MOSFET은 내장되어 있지 않다. PWM - PWM 입력은 홀센서 신호에 따라 3상 중 하나의 MOSFET으로 출력된다. - PWM 신호는 외부에서 줄 수도 있고 내부 PWM을 사용할 수도 있다. 둘다 사용할 수도 있다. - 내부 PWM은 RC 핀에 연결된 RC에 따른 주파수의 PWM 신호를 사용한다. REF - REF에 인가되는 전압에 따라 전류 제한이 된다. CSOUT - CSOUT 핀에 모터에 흐르는 전류에 비례하는 전압이 출력된다. COAST - COAST 핀이 Low가 되면 모든 MOSFET이 OFF가 된다. TACHO / DIRO - TACHO와 DIRO은 모터 속도와 방향에 따른 펄스를 출력한다. MODE .. 2023. 4. 14.
[CCS] TMU 함수 TMU(Trigonometric Math Unit)는 일부 C2000 DSP 모델에 내장된 삼각함수를 계산 하드웨어 모듈이다. C에서 사용하기 위한 함수는 다음과 같다. TMU 함수를 사용하기 위해서는 CCS에서 --tmu_support=tmu0 옵션을 사용해야 한다. 2023. 4. 11.
[CCS] 함수 선언하지 않을 때 이상동작 CCS(Code Compuser Studio)에서 함수를 선언하지 않고 사용하면 다음과 같은 '#225-D function declared implicitly' waring 메세지가 뜬다. 컴파일은 되지만 동작은 이상하게 된다. warning이 아니라 error로 봐야 한다. 이 warning을 error로 표시하고 컴파일이 되지 않게 하는 방법은 다음과 같이 Treat diagonositc as error에 225를 등록하고 아래 Treat diagonositc as warning에서 225를 삭제하면 된다. 2023. 4. 10.
[CCS] C2000의 sin 함수 C의 sin 함수는 double 변수를 사용한다. sin 함수에 float 변수를 사용하면 sin 함수 호출전 float을 long double로 변환하고 연산 후에는 long double을 float로 다시 변환한다. 변환에는 F32TOF64와 F64TOF32 명령어를 사용하고 각 명령어 실행에 1cycle을 사용한다. float 변수에는 sinf 함수를 사용해야 한다. C2000는 표준과 달리 float과 double이 32비트이고 long double이 64비트이다. 2023. 4. 10.
[CCS] fp_moode와 fp_reasonoc 설정 Code Composer Studio에서 fp_mode는 strict 또는 relaxed로 설정할 수 있다. strict는 표준에 따라 동작하는 것이고 relaxed는 정밀도는 줄지만 속도는 높아진다. relaxed로 설정하면 다음과 같은 동작을 한다. - 상수로 나누는 식은 역수로 곱한 식으로 변환 - sqrt, sin, cos, atan, atan2 함수를 inline 함수로 변환 - 하드웨어 TMU 사용 fp_reassoc는 부동소수점 연산에 결합법칙(Reassociation)을 적용 또는 미적용한다. 부동소수점 숫자는 원래 결합법칙이 적용되지 않는다. 결합법칙을 적용하면 정밀도가 조금 줄어 든다. 부동소수점은 다음과 같이 결합법칙이 성립하지 않는다. (1 + 3e100) - 3e100 ≠ 1 + .. 2023. 4. 10.
Op-amp 반전 증폭기 (Reference 전압) Reference 전압이 있는 비반전 증폭 회로와 식은 다음과 같다. Differential 증폭 회로와 식은 다음과 같다. 여기서 RG=R1이고 RF=R2이다. 2023. 4. 10.
Synchronous 스위칭 레귤레이터 일반적으로 사용하는 Nonsynchronous 스위칭 레귤레이터는 스위칭 MOSFET 1개와 다이오드를 사용한다. 하지만, Synchronous 스위칭 레귤레이터는 다이오드 대신 2개의 MOSFET을 사용하는 방식이다. TI의 Synchronous 스위칭 레귤레이터(LMR36502)의 내부 구조는 다음과 같다. 내부에 MOSFET 2개가 있다. Nonsynchronous 스위칭 레귤레이터보다 Synchronous 스위칭 레귤레이터의 효율이 더 높다. 2023. 4. 7.
PMSM 모터 토크 계산식 표면부착형 PMSM인 SMPM의 토크는 다음 식과 같다. 매입형 PMSM인 IMPM의 토크는 다음 식과 같다. SPMSM은 q 전류에만 비례하지만 IPMSM은 q와 d 전류 모두의 영향을 받는다. 2023. 4. 7.
PMSM 동기모터의 방정식 PMSM 동기모터의 회전좌표계에서의 방정식은 다음과 같다. 위 방정식에서 d 축과 q 축에는 상호간섭 성분과 역기전력 성분이 있다. 역기전력 성분은 q 축에만 있다. 전류제어기에서 위 두 성분을 Feedforward로 제어할 수 있다. 이 때 전류를 실제 측정한 값을 사용할 수도 있고 지령값을 사용할 수도 있는데 실제 측정값을 사용하면 측정 노이즈에 민감해진다. 2023. 4. 5.
스텝모터 구동 파워 IC (DRV8412/DRV8432) DRV8412/DRV8432는 풀브릿지 회로 2개가 내장된 IC로 스텝모터 1개 또는 DC 모터 2개를 구동할 수 있다. DRV8412는 방열패드가 IC 밑면에 있고 1개 브릿지 회로의 최대 출력전류는 3A이다. DRV8432는 방열패드가 IC 윗면에 있고 1개 브릿지 회로의 최대 출력전류는 7A이다. 브릿지 회로를 병렬로 사용한다면 DRV8412는 최대 6A이고 DRV8432는 최대 14A이다. 단락 보호, 과전류 보호, 과온 보호, 저전압 기능을 내장하고 있다. 외부 저항으로 값을 조절할 수 있는 CBC(Cycle-by-cycle) 전류 제한 기능을 내장하고 있다. 2023. 4. 4.
[CCS] 변수 메모리 부족 에러 Code Composer Studio 에러 메세지 program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section ".bss" cmd 파일을 다음과 같이 설정하면 RAM 공간은 충분한데도 위의 에러 메세지가 뜬다. RAMLS0 : origin = 0x008000, length = 0x000800 RAMLS1 : origin = 0x008800, length = 0x000800 .bss : > RAMLS0 |.. 2023. 4. 2.
[CCS] 자동 괄호 삽입 하지 않기 CCS(Code Composer Studio)에서 자동 괄호 삽입 하지 않게하기 위해서는 다음과 같이 체크해제한다. 괄호 이외에 스트링 등의 자동 완성을 해제할 수 있다. 창 아래의 Show advanced settings를 해야 C/C++이 나타난다. 2023. 3. 28.
C2000 DSP 데이터 타입 TI의 C2000 DSP의 데이터 타입은 다음과 같다. char는 16비트로 8비트 데이터가 없다. int는 16비트이고 long이 32비트이다. printf(" %d ")의 스트링 포맷에서 int 변수는 %d %u를 사용하고 long 변수는 %ld %lu을 사용해야 한다. 2023. 3. 27.
[CCS] 한글깨짐 해결 CCS (Code Composer Studio)에서 한글이 깨질때는 Window 메뉴에서 Preferences를 선택하고 다음과 같이 UTF-8을 선택하며 해결된다. 2023. 3. 26.
[CCS] Symbol 'IER' could not be resolved 에러 CCS (Code Composer Studio)에서 다음과 같은 Symbol '~' could not be resolved 에러는 Eclipse IDE에서 변수 등을 찾지 못할 때 발생한다. IDE에서는 찾지 못하지만 컴파일과 실행은 정상적으로 될수 있다. 컴파일은 정상적으로 된다면 IDE 문제이므로 다음과 같은 방법으로 에러 표시를 안하게 할 수 있다. 에러에서 마우스 우클릭한 후 Quick Fix를 선택한다. Quick Fix 창에서 Suppress problem "Symbol is not resolved"를 선택하고 Finish 버턴을 클릭한다. 에러가 난 문장에서 // @suppress("Symbol is not resolved") 라는 주석이 자동으로 생기면서 에러가 더 이상 표시되지 않는다. 2023. 3. 24.
[CCS] 다른 컴퓨터에서 컴파일 에러 TI의 CCS(Code Composer Studio)의 프로젝트를 다른 폴더로 복사하여 컴파일하면 컴파일이 안되는 경우가 있다. 폴더가 바뀔 때 프로젝트의 Properties에서 아래의 2개가 마음대로 바뀌는 경우가 있다. Configuation을 다시 설정하고 Linker command file은 Browse로 프로젝트의 cmd 파일로 다시 설정한다. CCS는 매우 불안정한 프로그램으로 버그가 많고 예상할 수 없는 동작을 많이 한다. 2023. 3. 24.
TMS30F28388D 메모리맵 아래 메모리맵에서 (1)~(4)로 표기된 것외는 CPU1과 CPU2가 동일한 메모리맵을 가지고 있다. (Datasheet p.246) 주요 데이터의 시작 주소는 다음과 같다. - 벡터테이블 : 0000 0D00 - RAM : 0000 8000 - FLASH : 0008 0000 - User OTP : 0007 8000 - Boot ROM : 003E 8000 위의 메모리맵에서 Boot ROM은 다음과 같다. 2023. 3. 23.
HWBIST 뜻 HWBIST는 Hardware Build-In-Selft Test Reset의 약자로 하드웨어 Build-In-Selft Test 후 되는 리셋을 뜻한다. TMS320F28388 메뉴얼에는 HWBIST에 대한 설명이 없고 28377 메뉴얼에 있다. 2023. 3. 23.
반응형