본문 바로가기
반응형

전자1643

I2C 풀업 저항값 I2C 출력은 오픈 드레인 출력으로 외부에 풀업 저항을 달아야 한다. 오픈드레인 출력이기 때문에 Low에서 High로 될때 캐패시턴스 성분에 따라 상승시간이 매우 길어진다. 저항의 최대값은 버스의 캐패시턴스에 따라 달라진다. 저항의 최소값은 흐르는 전류와 Low로 인식되는 전압에 의해 결정된다. 저항의 최대값(왼쪽)과 최소값(오른쪽)은 다음과 같다. Standard-mode에서 +5V 신호의 선로 임피던스가 200pF라면 최소 저항은 1.2kΩ이고 최대 저항은 6kΩ으로 2~6kΩ 범위의 저항을 사용해야 한다. Standard-mode는 100kHz이고 Fast-mode는 400kHz이고 Fast-mode plus는 1MHz이다. 클럭 속도가 높을수록 풀업저항값을 낮춰야 한다. ☞ I2C 통신 2021. 7. 2.
STM32 HAL 인터럽터와 DMA 함수 사용시 주의사항 STM32의 HAL에서 HAL_I2C_Master_Transmit_IT또는 HAL_I2C_Master_Transmit_DMA와 같은 함수를 사용할 때 이상한 데이터가 송수신되는 경우가 있다. 위와 같은 함수에서 전달되는 변수는 글로벌 변수를 사용해야 한다. 만약 로컬 변수를 사용하면 로컬 변수가 스택에서 해제되면 데이터가 유지되지 않기 때문에 이상한 데이터가 송수신 될 수 있다. 인터럽터나 DMA는 함수 실행이 끝나도 계속 동작하기 때문에 송수신할 데이터를 글로벌 변수에서 계속 유지하고 있어야 한다. 2021. 7. 1.
I2C로 EEPROM 데이터를 읽고 쓰는 방법 1) EEPROM 쓸 때 I2C를 사용하는 EEPROM에서 데이터를 쓸 때 I2C 프레임은 다음과 같다. 첫번째 바이트는 Start로 시작하여 Write 속성으로 EEPROM 슬레이브 주소를 전송한다. 두번째와 세번째 바이트는 읽을 데이터의 주소를 전송한다. 네번째 바이트는 쓸 데이터를 전송한다. 2) EEPROM 읽을 때 I2C를 사용하는 EEPROM에서 데이터를 읽을 때 I2C 프레임은 다음과 같다. 첫번째 바이트는 Start로 시작하여 Write 속성으로 EEPROM 슬레이브 주소를 전송한다. 두번째와 세번째 바이트는 읽을 데이터의 주소를 전송한다. 여기까지는 쓸 때와 동일하다. 네번째는 Start로 시작하여 Read 속성으로 EEPROM 슬레이브 주소를 전송한다. 다섯번째는 EEPROM에서 마스터.. 2021. 7. 1.
I2C의 Clock Stretching I2C는 SDL과 SCL의 2개 선으로 통신하며 두 신호는 오픈 드레인 출력으로 외부에 풀업 저항을 연결해야 한다. SCL은 마스터에서 출력되는 클럭신호이다. 슬레이브에서 SCL 신호 수신 중 SCL를 Low로 잡을 수가 있다. 슬레이브에서 SCL을 Low로 잡으면 마스터는 Slave가 신호를 놓아 High가 될때까지 기다린다. 이것을 SCL Stretching이라고 한다. SCL Stretching는 슬레이브에게 데이터를 처리할 시간을 가지기 위해 사용된다. I2C 신호선은 오픈 드레인 출력이기 때문에 연결된 노드 중 하나에서 Low 출력을 내면 다른 노드에서 High 출력을 내어도 신호선은 Low가 된다. 2021. 7. 1.
STM32의 HAL_SPI_TransmitReceive_IT 함수 동작원리 HAL_SPI_TransmitReceive_IT 함수이 실행되면 SPI 인터럽터가 실행되면서 SPI에 데이터를 쓰고 읽는다. 매 바이트마다 인터럽터 함수가 실행된다. SPI 인터럽터 함수는 stm32l1xx_it.c 파일에 있다. void SPIx_IRQHandler(void) { HAL_SPI_IRQHandler(&SpiHandle); } 인터럽터가 발생하면 실행되는 HAL_SPI_IRQHandler 함수는 stm32l1xx_hal_spi.c 파일에 정의되어 있다. 이 함수에서 SPI에 데이터를 쓰고 읽는다. HAL_SPI_IRQHandler 함수에서 송수신이 종료되면 HAL_SPI_TxRxCpltCallback 함수를 호출하고 에러가 발생하며 HAL_SPI_ErrorCallback 함수를 호출한다. .. 2021. 6. 30.
PL2303 드라이버 PL2303을 사용한 USB-UART 컨버터에서 장치관리자에서 PL2303HXA PHASED OUT SINCE 2012. PLEASE CONTACT YOUR SUPPLIER라는 메세지가 뜨면 이전 버전의 PL2303 드라이버를 설치하면 된다. 아래 드라이버를 설치하면 된다. 2021. 6. 30.
SPI의 CPOL과 CPHA SPI는 CPOL (Clock Polarity)와 CPHA (Clock Phase)를 설정할 수 있다. CPOL과 CPHA에 따른 파형은 다음과 같다. CPOL은 통신을 하지 않을 때 클럭이 High인지 Low인지를 나타낸다. CPHA가 0일 때는 첫번째 엣지에서 데이터를 인식하고 CPHA가 1일 때는 두번째 엣지에서 데이터를 인식한다. 2021. 6. 29.
PL2303 USB-UART 컨버터 USB-UART 컨버터는 USB에 연결하여 TTL 신호의 UART를 입출력하는 장치이다. 위의 USB-UART 컨버터는 Prolific의 PL2303HXD를 사용한다. PL2303HXD는 USB의 +5V을 입력받아 동작하여 내부에 레귤레이터가 내장되어 있어 +3.3V를 출력할 수 있다. 위의 컨버터에서 +5V는 USB 전원이고 3V3은 PL2302HXD에서 출력하는 전압이다. PL2303HXD의 드라이버는 다음과 같은 속도만 지원한다. 2021. 6. 28.
블루투스 모듈 HC-06 블루투스 모듈 HC-06의 전원은 +3.6~+6V를 인가해야 한다. HC-06 보드의 IC는 +3.3V로 동작하고 보드에 +3.3V 레귤레이터가 내장 되어 있다. RX와 TX 신호는 +3.3V 신호이다. 아두이노에 연결한다면 TXD는 아두이노에 직접 연결할 수 있지만 RXD는 저항으로 2/3만큼 분압하여 아두이노에서 HC-06로 전달해야 한다. ☞ HC-06 명령어 2021. 6. 28.
ST SWIM 디버거 ST의 SWIM(Single Wire Interface Module)은 8비트 MCU인 STM8에서 사용되는 디버거이다. 이름이 나타내는 바와 같이 선 1개로 통신한다. ST-Link V2에서 SWIM은 다음과 같이 연결한다. SWIM의 4핀은 다음과 같다. 2021. 6. 28.
중국 짝퉁 ST-Link V2 중국에서 만든 짝퉁 ST-Link V2이다. 가격은 4천원 이하이다. JTAG은 되지 않고 SWD와 SWIM을 지원한다. RST, SWCLK, SWDIO 핀이 SWD로 사용되고 SWIM 핀이 SWIM으로 사용된다. +3.3V와 +5V 전원이 출력되기 때문에 외부 전원이 없어도 타겟 보더를 동작시킬 수 있다. 오리지날 ST-Link V2는 전원이 출력되지 않는다. 2021. 6. 28.
PCB 제작할 때 마지막으로 체크해야 할 것 PCB 아트웍을 잘못하여 PCB를 제작했을 때 점퍼를 날려 임시로 사용할 있는 경우가 많다. 하지만, 점퍼로 해결할 수 없고 PCB를 다시 제작해야 하는 경우도 있다. 다음과 같은 경우는 점퍼로 해결할 수 없을 가능성이 높다. 1. QFP 패캐지 부품의 풋프린트를 잘못 그렸을 경우 - 특히 MCU와 같은 중요 부품일 경우 2. QFP 패캐지 부품에서 대량으로 핀 연결이 잘못 되었을 경우 PCB 아트웍을 하고 PCB 제작을 맡길 때 체크해야 하는 것은 다음과 같다. 1. QFP 패키지 부품의 풋프린트와 핀 연결을 확인한다. 2. 아트웍 프로그램에서 다음을 검사한다. - Clearance 검사 - Connection 검사 QFP 패캐지 부품은 핀수가 많기 때문에 점퍼 날리기가 매우 어렵다. QFP 부품은 P.. 2021. 6. 25.
CAM350 거리 측정 CAM350의 Info 메뉴의 Measure - Point-point를 선택한다. 측정하는 원하는 2 지점을 클릭하면 거리가 표시된다. 2021. 6. 24.
TQFP와 LQFP의 차이 TQFP(Thin QFP)와 LQFP(Low-profile QFP)의 차이는 두께이다. TQFP가 LQFP보다 두께가 작다. TQFP와 LQFP는 모두 0.4mm, 0.5mm, 0.65mm, 0.8mm, 1mm 등의 다양한 핀 피치가 있다. 그래서, PCB 아트웍할 때 TQFP 또는 LQFP의 이름 만으로는 부품 풋프린트를 알 수 없고 부품의 데이터시트를 반드시 확인해야 한다. STM32의 64핀 LQFP는 다음과 같다. 핀 피치는 0.5mm이다. ATmega64의 TQFP는 다음과 같다. 핀 피치는 0.8mm이다. 2021. 6. 24.
스텝 모터 회전속도와 펄스 주파수 스텝모터 풀스텝 스텝각이 1.8도일 때 스텝모터 회전속도가 1500RPM이라면 풀스텝으로 5kHz 펄스를 인가해야 한다. 하프스텝이라면 10kHz이고 8 마이크로스텝이라면 40kHz(25us)이다. 풀스텝 : 1500 rpm / 60 x 200 = 5 kHz 하프스텝 : 1500 rpm / 60 x 200 x 2 = 10 kHz 8 마이크로 스텝 : 1500 rpm / 60 x 200 x 8 = 40 kHz 회전속도가 1RPM이라면 풀스텝으로 3.333Hz 펄스를 인가해야 하고 하프스텝이라면 6.666Hz이고 8 마이크로스텝이라면 26.666Hz(375ms)이다. 풀스텝 : 1 rpm / 60 x 200 = 3.333 kHz 하프스텝 : 1 rpm / 60 x 200 x 2 = 6.666 kHz 8 마이.. 2021. 6. 24.
LRC 체크썸 계산 LRC(Longitudinal Redundancy Check)의 C 코드는 다음과 같다. lrc = 0; for(i=0; i 2021. 6. 24.
Modbus RTU 통신 프레임 타이밍 Modbus RTU는 바이너리 통신이기 때문에 프레임을 시간으로 판단한다. 다음과 같이 3.5 char 이상 데이터가 없으면 프레임 종료로 판단한다. 한 프레임 내의 데이터는 연속이어야 한다. 데이터 사이가 1.5 char 이상이면 에러로 처리한다. 2021. 6. 23.
STM32 DMA 레지스터 STM32의 레지스터는 다음과 같다. 1. DMA interrupt status register (DMA_ISR) TEIF는 에러 플랙, HTIF는 Half 전송 플랙, TCIF는 전송 완료 플랙, GIF는 앞의 3개 중 하나가 발생하는 1이 되는 플랙이다. 2. DMA interrupt flag clear register (DMA_IFCR) 이 레지스터에 1을 쓰면 위의 DMA_ISR 플랙이 0으로 클리어 된다. 3. DMA channel x configuration register (DMA_CCRx) 모드, 데이터 비트, 우선순위 등을 설정한다. 0비트의 EN은 DMA를 Enable/Disable 설정하는 비트이다. 4. DMA channel x number of data register (DMA_C.. 2021. 6. 22.
L297 스텝 모터 컨트롤러 L297 스텝 모터 컨트롤러는 풀스텝 또는 하프 스텝 제어 신호를 출력하는 IC이다. CW/CCW 방향 신호와 CLOCK 신호를 입력받으면 풀스텝 또는 하프 스텝 트랜지스터 제어신호를 출력한다. 저항을 통해 전류를 측정하여 전류를 제한하는 기능이 있다. ☞ 스텝모터 정전압과 전전류 구동방식 2021. 6. 21.
스텝 모터 스텝각 스텝모터에서 스텝각(Step angle)은 Full step에서 한 스텝에 회전하는 각이다. 풀스텝의 한 주기는 4스텝이다. 그래서, 스텝각이 1.8도일 때 풀스텝 한 주기에는 7.2도가 회전한다. 스텝각은 풀스텝일 때 각도이기 때문에 하프 스텝일 때는 스텝각이 1/2이 되고 마이크로 스텝을 사용하면 스텝각이 감소한다. 스텝각이 1.8도인 스텝모터는 풀스텝으로 200스텝일 때 한 바퀴 회전한다. 하프 스텝일 때는 0.9도 단위로 회전하고 400 스텝일 때 한 바퀴 회전한다. 256 마이크로 스텝은 풀스텝의 한 스텝을 256 단계로 나눈 것이다. 256 마이크로 스텝은 한 바퀴 회전에 51200 스텝(=256x200)이 필요하다. ☞ 풀스텝 방식 ☞ 마이크로 스텝 파형 2021. 6. 21.
PADS Color Configuration File 위치 PADS에서 색깔을 설정하여 저장하면 Color Configuration File이 저장되는데 저장되는 위치는 다음과 같다. C:\MentorGraphics\9.5PADS\SDD_HOME\Settings 컬러 설정 파일은 위 폴더에서 확장자 CCF 파일이다. 2021. 6. 21.
PADS 구매 가격 PADS 가격은 모델에 따라 약 1,400만원~2,500만원까지 이다. 다나와 기준으로 가장 싼 PADS Standard 노드락은 13,662,000원 정도이고 PADS Professional 노드락은 25,500,000원이다. PADS Standard와 Professional은 전혀 다른 프로그램이다. Standard는 이전부터 사용해왔던 프로그램이고 Profession은 Xpedition 기술을 사용한 새로운 프로그램이다. 노드락 라이센스가 네트워크 라이센스보다 싸다. 노드락 라이센스는 하나의 컴퓨터에서만 설치하여 사용할 수 있지만 네트워크 라이센스는 여러 컴퓨터에서 사용할 수 있다. 하지만 동시에 사용할 수는 없고 동시에 하나만 사용할 수 있다. 2021. 6. 20.
PADS Standard와 Professional 차이 PADS는 Standard와 Professional이 있다. PADS standard는 이전의 전통적인 PADS와 동일한 형태의 프로그램이다. PADS Professional은 Xpedition을 다운그레이드한 프로그램으로 이전의 PADS와 전혀 다른 프로그램이다. Siemens EDA (이전의 Mentor)에서는 PADS Professional 또는 Xpedition에 집중하고 있다. 2021. 6. 20.
PCB 아트웍 계산기 PCB 아트웍할때 패터 폭이나 간격 등의 계산이 필요할 때가 있다. PCB 계산 사이트도 있지만 KiCad에도 PCB 계산기가 내장되어 있다. 아래와 같이 KiCad에서 계산기 아이콘을 선택한다. 2021. 6. 19.
I2C 통신 개요 I2C 통신은 SDA와 SCL의 2개선으로 멀티 드랍 형식으로 연결된다. SDA는 데이터선이고 SCL은 클럭선이다. 2선에는 풀업 저항이 연결되어야 한다. I2C 통신은 멀티마스터가 가능하다. I2C 통신 파형은 다음과 같다. Start에서는 SCL이 1일때 SDA가 1->0이 되고 Stop에서는 SCL이 1일때 SDA가 0->1이 된다. SCL이 1일 때 SDA에 데이터가 0 또는 1로 설정되어 있어야 한다. 클럭 속도는 Standard는 100kHz이고 Fast는 400kHz이고 Fast plus는 1MHz이다. 통신 프레임 구조는 다음과 같다. Read/Write Bit가 0이면 다음 데이터 프레임을 전송이고 1이면 다음 데이터 프레임을 수신한다. I2C 통신 순서는 다음과 같다. 1) 마스터에서 .. 2021. 6. 19.
PCB 전류에 따른 패턴폭 1oz 이고 10도 상승일 때 전류에 따른 패턴폭은 다음과 같다. 전류 [A] 내층 패턴폭 [mm] 외층 패턴폭 [mm] 1 0.781 0.300 2 2.031 0.781 3 3.56 1.37 4 5.29 2.03 5 7.19 2.77 6 9.25 3.56 7 11.4 4.40 8 13.8 5.29 9 16.2 6.22 10 18.7 7.19 15 32.7 12.6 20 48.7 18.7 25 66.2 25.5 30 85.2 32.7 ☞ PCB 비아 전류 2021. 6. 16.
CADSTAR (캐드스타) CADSTAR는 회로도와 PCB 아트웍을 할 수 있는 EDA 프로그램이다. 비슷한 프로그램으로는 OrCAD와 PADS와 Altium 등이 있다., CADSTAR는 1988년 영국의 Racal-Redac에서 DOS 버전으로 처음 출시 되었고 1994년 윈도우용이 나왔다. 1994년 일본의 Zuken에서 CADSTAR를 인수하여 영국에 있는 Zuken 기술센터에서 개발하고 있다. 2021. 6. 13.
PADS 라우팅할 때 레이어 변경이 되지 않을 때 라우팅할 때 F4를 누르면 Toggle layer가 실행되어 비어가 생성되면서 Top과 Bottom으로 전환된다. Top에서 Bottom으로 전화되지 않고 VCC나 GND의 내층으로 전환된다면 다음을 확인한다. Design Rules 메뉴에서 Default - Routing을 선택하면 다음 창이 뜬다. 여기서 Selected layers에 Top과 Bottom이 있는지 확인한다. Tools 메뉴에서 Options에서 Layer pair를 확인한다. 2021. 6. 12.
저항 TCR 계산 저항의 TCR(Temperature Coefficient of Resistance)은 온도에 따른 저항값의 변화를 나타내는 지수이다. 저항의 TCR의 정의는 다음과 같다. TCR이 100 ppm/℃일 때 25℃에서 저항이 1이라면 125℃이라면 저항 변동은 다음과 같다. △R = (125-25)℃ x 100 ppm/℃ = 0.01Ω R = 1.01Ω ppm은 1/1,000,000 (백만분의 1)을 의미한다. 2021. 6. 10.
PADS 버전 호환 Mentor PADS의 최신 버전은 PADS VX 2.8이다. PADS VX에서 PADS 9.5 파일을 읽을 수 있다. PADS Layout은 9.5에서 VX 파일을 읽을 수 없다. 하지만, PADS Logic은 PADS 9.5에서 VX 버전 파일을 읽을 수 있다. Layout 9.5에서 Layout VX 파일을 읽기 위해서는 Layout VX에서 파일을 9.5 버전으로 Export 시키고 Layout 9.5에서 Import 시켜야 한다. 2021. 6. 10.
반응형