Posts

Showing posts from January, 2024

LoRa 모듈 E22-900T22S Breakout Board 설계 2

Image
지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 3.3V 로 로직 컨버터를 거치지 않고 직접 통신할수 있는 포트를 구성하였다.  이 포트를 통해 3.3V 동작의 MCU를 사용할때 좀 더 빠르게 회로를 구성  할수 있을것으로 기대한다. 두 번째로 동작 전압 레벨이 서로 다른 MCU 와 Lora 모듈이 통신할때 사용할 기준전압을 직접 인가 할 수 있도록 하였다. 보드에는 위 와같은 점퍼가 주어지는데 3.3V 나 5V 로 점프 시키지 않을 경우 VREF 핀에 사용할 소스전압을 직접 인가해 주어야한다. 특수한 경우가 아니라면 Vref를 사용하는일은 없을것 같다. 위사 진들은 이번에 제작한 테스트 모듈이다.  왼쪽은 E22-900T22S 모듈이고 오른쪽은 ATmega328P/PB 3.3V 8Mhz 보드를 준비했다. 오른쪽의 보드는 ATmega328P/PB 를 모두 장착하여 사용할 수 있도록 설계했다. E22-900T22S 보드의 전체 회로는 다음과 같다. 동작 전압 레벨이 서로 다른 장치와 통신 할 수 있도록 레벨 컨버터를 추가 하였고, 핀 헤더를 장착하여 다른 MCU 보드와 통신하거나 점퍼를 수정해서 USB 시리얼 통신을 할수 있도록 했다. 모듈의 테스트는 mischianti의 E22 라이브러리 를 사용했다. 정리가 아주 잘 되어있는 라이브러리로 생각된다. 아래 코드는 라이브러리에 포함된 시리얼 입력을 LoRa 통신으로 전송하는 예제이다. Lora ATmega328p AUX D3 RX D4 TX D5 M1 D6/GND M0 D7/GND 송신측 코드 #include "Arduino.h" #include "LoRa_E22.h" LoRa_E22 e22ttl(4, 5, 3, 7, 6); void setup() { Serial.begin(9600); delay(500); // Startup all pins and UART e22ttl.begin(); Serial.println(&q

부스트 컨버터

Image
프로젝트를 진행하다 보면 순간적으로 높은 전류 소비, 다이오드, 레귤레이터 혹은 장치간 연결에 사용된 케이블 저항으로 인해  전원 공급이 불안정해 지는 상황이 발생한다. 이런 현상을 감안하여 실제 필요한 것보다 더 높은 출력을 갖고 있는 제품들이 있다. 이는 컴퓨터 주변기기에서도 불 수 있으며 USB 또 어댑터의 DC 출력이 정직하게 5.0V 가 아닌 5.1~5.2V 인 제품을 본 적 있을 것이다. 반대로 모자란 녀석들도 있다. 이렇게 타겟 장치가 요구하는 전압보다 어느 정도 높게 출력하면 선형 동작을 위한 헤드룸을 확보할 수 있다. (여유가 생긴다는 말이다.) 이번에 만들 회로는 TPS61090을 사용하여 리튬 이온/폴리머 전지의 3.7V 전압을 5.5V 로 만드는 회로이다. TPS61090 제품은 1.8V ~ 5.5V 의 입력 전압, 최대 5.5V 까지 조절 가능한 고정 출력, 저전압 감지, 절전 모드 등 96% 효율을 가진 부스트 컨버터 이며, 단가는 1릴 기준 $1.2 정도 된다.  무엇보다 출력 전압을 프로그래밍 할 수 있는 점이 나에게 챠밍 포인트로 다가왔다. 다음은 TPS61090 제품의 데이터 시트에 나와있는 회로도이다. R1, R2, R3, R4 의 저항으로 LBI/LBO 임계 전압과 출력 전압을 프로그래밍 할 수 있다.  방정식은 다음과 같다. 출력 전압 방정식 1 : R3 =  R4 * ( Vo / 500mV - 1 ) R4 에는 200KΩ 이하의 값을 권장하고 있는데, 만약 200KΩ 보다 너무 낮은 저항을 사용하게 되면 R3 에 추가적인 병렬 MLCC 사용을 권장하고 있다. 이때 MLCC 의 용량은 계산 방정식은 다음과 같다. R3 병렬 접속 MLCC 용량 방정식 2 :  Cr3 = 10pF * ( 200KΩ / R4 - 1 ) 임계 전압 방정식 3 :  R1 = R2 * ( Vbat / 500mV -1 ) R2 저항은 500KΩ이하의 값이 권장된다 . Vbat 에는 LBI/LBO 동작에 사용할 임계 전압을 넣으면 된다. TPS61090

퇴사

하드웨어 개발자로 4년간 일한 회사에서 아무런 준비 없이 퇴사를 하게 되었다. 내가 원한 결말은 아니지만 아무것도 하지 않을 수 있는 기회가 왔다고 생각했다. 이런 고양감은 고등학교를 졸업하고 대학에 입학했을 때 느껴보고 오랜만인 것 같았다. 0교시가 있어 새벽 같이 입실 해야 했던 학교, 자정이 넘어서도 가야 했던 학원으로부터의 해방이 바로 그것이라 생각 했다. 당장은 내가 아무것도 하지 않아도 된다는 생각이 나를 지배했지만 보름 만에 싫증이 나기 시작했다. 쉬게 되어서 좋았던 것 같은데 왜 싫은 기분인지 알 수 없었다. 나는 일하면서 안되는 문제가 발생했을 때 그것을 다양한 방법으로 해결하려는 시도를 매우 좋아했다. 그리고 문제가 있는 걸 계속 가지고 가는 것 보다는 다시 시작할 줄도 알아야 한다고 생각한다. 문제가 있다는 사실을 발견하면 못 견디는 것 같기도 하고 하드웨어 개발을 거의 전담했기 때문에 나만의 생각에 갇혀서 그랬던 것 같기도 하다. 잘 만들었다고 생각하면 코스트가 맞질 않고 코스트에 맞추면 개발이 어려워진다. 내가 저렴하게 잘 만들었다 생각 해도 사업부에서 비싸다고 하면 그 순간 비싼거다. 뭐든지 코스트가 맞추기가 가장 어려웠던 것 같다. 모래사장에서 바늘 찾는 것 처럼 IC 부품들을 찾고 있을 때마다 필요한 스팩 적어 줄 터이니 누군가 리서치 좀 대신 해줬으면 좋겠다 생각도 했었다. 머릿속에 아직도 퇴사한 회사 일로만 가득한 것이 문제로 생각되었고 이 싫증은 일을 하지 않아서 그런 것 같다는 결론을 내렸다. 이참에 개인 프로젝트로 간단한 개발 보드 카피를 하나씩 만들어볼 예정이다. 회로도 작성부터 아트워크, 샘플 제작 정도를 해볼까 한다. 평소에 오픈소스 하드웨어를 벤치마킹하는 것을 좋아했기 때문에 가볍게 해보려고 한다.  그렇다고 마냥 놀 수 만은 없고 2분기나 3분기에는 재취업 해야지. 

짱구개미와 곡물 창고

Image
짱구 개미를 위해 곡물 창고를 만들었다.  씨앗을 넣어주면 아래 구멍으로 씨앗들이 조금씩 나오는 원리다 그러나 이것 또한 개미들의 쓰레기 통이 될 수 있다.  왜냐하면 지금까지 여러 형태의 먹이 그릇을 만들어주었지만,  받은 먹이를 다 먹었거나 메뉴가 마음에 들지 않으면,  밥그릇이 쓰레기통이 되는 것을 어김없이 봐왔기 때문이다.  그래서 이번에는 쓰레기통을 쓰지 못 하도록 뚜껑을 만들었다.   바로 관심을 보여서 만족스러웠으나  선호하는 씨앗을 고르는 건지 쓰레기라 보는 것인지  씨앗을 뽑아서 집으로 가져가지 않고 주변에 둔다.  개미들은 재미있는 것이 어지럽히는가 싶을 때 그대로 방치하면,  어느새 알아서 청소하고 정리를 해준다. 가끔 보면 분리수거도 하는 것 같다. 곡물 창고의 구멍 크기를 조절해서 급수타워로 사용해도 좋을 것 같다. 제발 홍수만은 피하자