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

RP2040 개발보드 설계 1




RP2040 을 위한 새로운 개발 보드를 만들고 있다. 회로는 어느정도 완성이 되었지만 레아아웃은 계속 수정중이다. 가능하다면 리튬 배터리 충전 회로와 DC-DC 부스트 회로를 추가할 예정이다.

Pi Pico 보드와 여러가지 차이점을 주었다
첫 번째로 메모리 부분이다. 2MB인 Pi Pico 와 달리 16MB 의 QSPI 플래시 메모리를 사용하였고 별도로 EEPROM 을 장착할 수 있는 공간을 마련하였다. EEPROM의 동작을 LED 로 확인할수 있으며, 읽기/쓰기는 WP 점퍼를 통해 활성화 하거나 잠글 수 있도록 했다.

두 번째로 전원 필터에 LDO 를 사용하였다. Pi Pico 에 있는 스위칭 레귤레이터의 전압은 노이즈 때문에 ADC Vref 로 사용하기에 적합하지 않다는 평가를 자주 봤기때문에 간단하게 LDO를 사용해 구성하였고 LM4040로 VRef 회로를 구성해 ADC VRef 로 사용할수 있도록 하였다. 이 회로는 기본으로 점퍼가 열려 있으며 필요한 경우에 닫아서 사용할수 있다. 사실 일반적인 경우 LDO의 3.3V 를 바로 사용해도 문제는 없다고 생각한다.




세 번째로 이 보드에는 SD 카드 슬롯이 있다. SD 카드 슬롯의 경우 경우 모든 핀에 풀업을 사용하진 않았고 DATA1/DATA2/DATA3 에 만 풀업 저항을 사용하였다. 사실 저항값을 아끼면서 까지 뺄 필요는 없지만 요즘 SD 카드들은 풀업 저항이 꼭 필요하진 않은것 같다. 너무 오래된 SD 카드를 사용하는 것이 아니라면 풀업 저항 없이 SD 카드 만으로도 문제없이 작동할 것이다. 4비트 통신을 원하는 경우 DATA1/DATA3 를 바닥면에 있는 점퍼로 회로를 열거나 닫을 수 있다.



네 번째로 5V AVR 과 ISP 통신을 위한 로직 컨버터를 추가하였다. 이 부분은 AVR Prog 프로젝트에 사용하기위해 고안된 것으로 기본적으로 타겟 장치의 전압을 사용하도록 되어있지만 다이오드를 반대로 연결해서 타겟 장치로 전원을 공급할수도 있다. 그러나 가능하면 타겟 장치의 전원을 이용하는것이 좋다. (배터리 부스트회로를 추가한다면 이야기가 달라질듯..) 이 로직 컨버터 포트는 총 10개의 핀으로 구성 했지만 현재 6개의 핀만 사용중이고 나머지 4개의 핀에 기능을 추가할지 그냥 놔둘지가 고민이다. 



다섯 번째로 RP2040에는 두개의 I2C 버스가 있는데 하나는 EEPROM 에 사용했고 다른 하나는 소형 OLED 디스플레이를 연결하기 위한 I2C 포트로 구성하였다.




여섯 번째로 리셋 버튼이 있다. 공식 Pi Pico 보드와 가장 큰 차이점이라고 할 수 있다. 
Bootsel 버튼은 누른 상태에서 USB 를 연결하기 쉽도록  USB 포트와 가깝게 배치하였다.

Comments

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기