안녕하세요. LowLevel 연구소의 MachineJW 입니다.
개인적인 비용을 투자하여 진행했던 프로젝트 Embedded PLC 보드 2.0v을 제작해보았습니다.
기존 회로의 문제점을 보완하고 양면 SMT에서 단면 SMT로 설계를 변경해보았습니다. (제조 단가를 절감하기 위해)
1. 2.0v 변경사항
- 문제가 있었던 GP8403 칩의 전원 부에 1W 출력 12V 스위칭 레귤레이터를 사용했습니다.
- 기존에 24V 전원을 입력해서 아날로그 출력 TVS 12V 다이오드가 탔던 문제가 있었습니다, 알고보니 아날로그 출력부에 24V가 그대로 출력되고 있었던 게 원인이였습니다. (데이터시트에는 분명 36 V까지 지원했었던....ㅠ)
- PCF8574의 초기 출력 상태를 제어할 수 없어 MCP23017로 변경했습니다. (전원 부팅 초기화 전에 디지털 출력이 HIGH가 유지되는 이슈 -> 대략 0.5초? 정도)
- 16bit Digital I/O (MCP23017)로 확장된 만큼 디지털 출력과 입력 채널을 1채널 씩 늘렸습니다. (디지털입력 6채널, 디지털출력 6채널)
- 4~20mA 전류 입력을 4채널에서 2채널로 줄이고 0~10V 전압 입력 2채널을 추가하였습니다. (당연히 회로도 변경을 진행했습니다.)
- 무엇보다 PCB를 양면 SMT 조립에서 단면 SMT 조립으로 바꾼 것이 가장 컸습니다.
2. 제조단가 절감
- 결과적으로 보드 단가를 10장 이상 주문 가정 시에 단가 11,000원 정도가 줄었습니다.
- 부품이 추가되었는데도 불구하고 제조단가를 줄인 것은 어느정도 만족하고 있습니다.
3. 수령 후 개봉
- 배송은 UPS에서 진행 했고 빠른 제조, 배송을 위해 초록색 보드로 주문하였는데도 불구하고 13일 정도 걸렸습니다.
4. I2C 주소 인식 테스트
- 보드 장치를 USB에 연결하여 CP2102가 인식되는 것을 확인 후에 I2C 스캐너 펌웨어 업로드를 진행하였습니다.
- I2C는 설계한 대로 주소 값이 인식되는 것을 확인하였습니다.
5. 디지털 INPUT/OUTPUT 테스트 구현
- 디지털 입력 단자에 24V를 직접 인가하여 육안으로 회로가 작동함을 확인해보았습니다.
- 이후 간단한 펌웨어 작업 후 OUTPUT 단자와 INPUT 단자를 연결하여 입출력이 정상 동작하고 있음을 확인하였습니다.
6. 아날로그 0 ~ 10V 출력 테스트 구현
- GP8403 I2C 제어 펌웨어를 작성 후 적용하여 0~10V 출력을 테스트를 진행 하였습니다.
- 원했던 값보다 0.3V 정도 오차를 보이다가 MAX 출력에서 10V를 정확하게 출력하고 있습니다.
- 실제로 현장에 적용해보면 어떨 지 기대를 해보고 있습니다.
7. 아날로그 0 ~ 10V 입력 테스트 구현
- 전압분배 + OPAMP 전압팔로워 회로가 성공적으로 작동함을 테스트하였습니다.
- 역시 0~10V 신호발생기와는 조금 오차가 발생하였습니다. (10V를 9.4V까지로 인식)
- 이는 임베디드 S/W 상에서 선형 보간 조정 알고리즘 으로 어느정도 조정할 수 있습니다. (노가다가 조금 필요하긴 하지만...)
8. 아날로그 4~20mA, 0~10V 입력 선형 보간 알고리즘 조정
- 4~20mA 전류, 0~10V 신호발생기 기준으로 출력 Value과 입력 Value를 비교하여 오차를 비교하는 시트를 만든 후 선형 보간 알고리즘 조정을 진행하였습니다. (대략적으로 200번 이상의 비교 노가다를 진행..)
- 임베디드 S/W 상에서 선형 보간 알고리즘을 적용 후 오차가 없는 것을 확인할 수 있었습니다.
- H/W 상에서 아날로그 신호를 이상적으로 필터링하는 데에는 한계가 있는 것 같습니다.
'임베디드 프로젝트 > 디바이스 구현' 카테고리의 다른 글
Embedded PLC 장치 브링업 (Bring Up) (0) | 2025.03.14 |
---|---|
임베디드 (ESP32) 보드 개발 이슈 사항 (1) | 2025.01.27 |
PNP BJT 스위칭 출력 이슈 (0) | 2024.09.05 |
전류 CT 센서 인터페이스 모듈 - RMS 취득 펌웨어 (0) | 2024.08.21 |
전류 CT 센서 인터페이스 모듈 - 브링업(Bring Up) (0) | 2024.08.12 |