다 그렸다...
라즈베리파이로 공급하는 5V가 최대 2.5A 라길래 급히 5V/3A DCDC를 추가했다.
기존 설계파일과 같이 묶어서 v-cut으로 나눈 후 firstPCB에 발주보낼 예정이다.
firstpcb.com에서 견적을 내보니 $81.90이다. 배송비 포함하면 100달러 조금 넘을듯.
2017/04/13
STM32 + Raspberry PI 보드를 만들어보자 -- 02. Schematic...
STM32CubeMX로 필요한 기능을 정리해봤다.
남는 핀은 40핀 헤더로 죄다 뽑아낼 예정이다.
활성화한 Peripheral을 순서대로 나열하자면
1. CAN1 Master Mode
2. I2C1
3. SDIO MMC 4 bits Wide bus
4. SPI1 Full-Duplex Master
5. SPI2 Full-Duplex Slave
6. SYS JTAG(5 pins)
7. USART2
8. USART3
9. USART6
10. USB_OTG_FS ORG/Dual_Role_Device
메인 기능은 일단 이걸로 하고 회로도 슬슬 그려보자.
24V, 5V, 3.3V 전원부부터
uart, usb, can, 485 등등
microSD
라즈베리파이 인터페이스용 40핀 헤더
MCU 파트
대충 그렸다.
자 다음... PCB
자 다음... PCB
2017/04/12
STM32 + Raspberry PI 보드를 만들어보자 -- 01. OpenOCD로 stm32 프로그래밍하기
써먹을데가 좀 있을거같다.
처음 생각해본 컨셉은
1. 리눅스가 돌아가는 초저가 SBC를 메인 GUI로 사용하자.
2. Real Time 제어는 STM32에서 담당하자.
3. 라즈베리와 STM32 둘 사이의 통신은 UART or SPI
4. 라즈베리에서 다이렉트로 STM32의 플래시 프로그래밍이 가능했으면...
요정도로 시작한다.
라즈베리로 STM32를 프로그래밍 가능하도록 OpenOCD 기능을 먼저 테스트해보자.
adafruit의 문서를 참고했다.
여기서 사용하는 라즈베리는 Raspberry PI 3 model B 다.
1. sudo apt-get update
2. sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev
3. git clone git://git.code.sf.net/p/openocd/code openocd-code
openocd-code 폴더가 보인다.
4. cd openocd-code
./bootstrap
5. ./configure --enable-sysfsgpio --enable-bcm2835gpio
6. make
sudo make install
먼지 모르겠다만 여기까지 따라왔다. openOCD의 설정은 여기까지고 다음부턴 물리적인 연결이다.
별 어려운건 없다. GND, nRST, SWDIO, SWDCLK 요 4개의 핀만 연결하면 됨.
Adafruit의 설명은 at91samd 디바이스로 설명해놔서 STM32로 수정해서 진행한다.
openocd.cfg 파일을 만든다
=====================================================
source [find interface/raspberrypi2-native.cfg]
transport select swd
set CHIPNAME stm32f4
source [find target/stm32f4x.cfg]
# did not yet manage to make a working setup using srst
#reset_config srst_only
reset_config srst_nogate
adapter_nsrst_delay 100
adapter_nsrst_assert_width 100
init
targets
reset halt
program hello_world_01.bin verify reset exit 0x08000000
reset
shutdown
=====================================================
내용은 === 제외하고 복붙 하면 된다.
내가 쓰는건 STM32F439이므로 다른걸 쓴다면 약간 변경해야 한다.
source [find target/stm32f4x.cfg] 이 부분은 해당하는 mcu의 cfg로 변경해줘야 한다.
/usr/local/share/openocd/scripts/tartget 에 cfg 파일들이 모여있으니 이 중 적당한걸 선택한다.
stm32를 쓴다면 stm32f0x.cfg, stm32f1x.cfg, stm32f2x.cfg, stm32f3x.cfg, stm32f4x.cfg, stm32f7x.cfg 파일만 쓰면 된다.
program hello_world_01.bin verify reset exit 0x08000000 이 부분은 업로드할 이미지 파일을 지정해 주는부분이다.
hello_world_00.bin 바이너리를 설정하고
sudo openocd로 실행하면
이런식으로 실행되고
흠...굳
hello_world_01.bin 바이너리를 설정하고
sudo openocd로 실행하면
실행은 화면은
라즈베리파이와 STM32를 4선으로 인터페이스해서 펌웨어 업그레이드는 가능해 보인다.
그럼 다음 단계로 넘어가자.
처음 생각해본 컨셉은
1. 리눅스가 돌아가는 초저가 SBC를 메인 GUI로 사용하자.
2. Real Time 제어는 STM32에서 담당하자.
3. 라즈베리와 STM32 둘 사이의 통신은 UART or SPI
4. 라즈베리에서 다이렉트로 STM32의 플래시 프로그래밍이 가능했으면...
요정도로 시작한다.
라즈베리로 STM32를 프로그래밍 가능하도록 OpenOCD 기능을 먼저 테스트해보자.
adafruit의 문서를 참고했다.
여기서 사용하는 라즈베리는 Raspberry PI 3 model B 다.
1. sudo apt-get update
2. sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev
3. git clone git://git.code.sf.net/p/openocd/code openocd-code
openocd-code 폴더가 보인다.
4. cd openocd-code
./bootstrap
5. ./configure --enable-sysfsgpio --enable-bcm2835gpio
6. make
sudo make install
먼지 모르겠다만 여기까지 따라왔다. openOCD의 설정은 여기까지고 다음부턴 물리적인 연결이다.
별 어려운건 없다. GND, nRST, SWDIO, SWDCLK 요 4개의 핀만 연결하면 됨.
Adafruit의 설명은 at91samd 디바이스로 설명해놔서 STM32로 수정해서 진행한다.
openocd.cfg 파일을 만든다
=====================================================
source [find interface/raspberrypi2-native.cfg]
transport select swd
set CHIPNAME stm32f4
source [find target/stm32f4x.cfg]
# did not yet manage to make a working setup using srst
#reset_config srst_only
reset_config srst_nogate
adapter_nsrst_delay 100
adapter_nsrst_assert_width 100
init
targets
reset halt
program hello_world_01.bin verify reset exit 0x08000000
reset
shutdown
=====================================================
내용은 === 제외하고 복붙 하면 된다.
내가 쓰는건 STM32F439이므로 다른걸 쓴다면 약간 변경해야 한다.
source [find target/stm32f4x.cfg] 이 부분은 해당하는 mcu의 cfg로 변경해줘야 한다.
/usr/local/share/openocd/scripts/tartget 에 cfg 파일들이 모여있으니 이 중 적당한걸 선택한다.
stm32를 쓴다면 stm32f0x.cfg, stm32f1x.cfg, stm32f2x.cfg, stm32f3x.cfg, stm32f4x.cfg, stm32f7x.cfg 파일만 쓰면 된다.
program hello_world_01.bin verify reset exit 0x08000000 이 부분은 업로드할 이미지 파일을 지정해 주는부분이다.
hello_world_00.bin 바이너리를 설정하고
sudo openocd로 실행하면
이런식으로 실행되고
흠...굳
hello_world_01.bin 바이너리를 설정하고
sudo openocd로 실행하면
실행은 화면은
라즈베리파이와 STM32를 4선으로 인터페이스해서 펌웨어 업그레이드는 가능해 보인다.
그럼 다음 단계로 넘어가자.
2017/04/03
Seeed Studio Fusion PCB, FirstPCB
샘플 PCB 해주는 중국 저가형 PCB 업체들이다.
나중에 더 나은 업체들을 조금씩 업데이트 해나가는게 좋을거같군.
일단 Seeed Studio의 Fusion PCB를 살펴보자.
오오 $9.9...
양면 100*100사이즈가 PCB가 이가격이라니...
Fusion PCB Specification을 살펴보자.
링크는 여기
거버파일 : 거버는 RS-274X 포맷으로 아래 내용을 .rar이나 .zip으로 압축해서 보내야한다.
아 놔 이거 이글캐드 기준 거버 출력파일인거 같은디...나 이런 확장자 처음봄.ㅠㅠ
PADS에서 이 파일 출력이 가능한지 모르것네.
일단 테스트용 PCB 파일 열어서 cam 출력한 다음, 거버파일 확장자만 바꿔서 seeed studio 홈페이지의 거버 뷰어로 확인해보자.
이 PCB 파일에서 거버를 출력한다음 확장자만 바꿔서 업로드 후 거버 뷰어 화면으로 넘어간다.
나오는거 같은데...드릴 파일이 인식이 안돼는거 같다.
seeed studio의 Fusion PCB 스펙 페이지를 보다보니 아래 내용이 나온다.
이거 대체 무슨 말이여?
여기는 거버 출력파일 확장자 때문에 못쓸거같군.
이글캐드를 써야할 이유가 조금씩 늘어가네. 알티움의 경우 이 회사에서 요구하는 거버 출력파일을 뽑을수 있는거같다.
그럼 다음은 FirstPCB를 살펴보자.
일단 가입하자.
가입하는게 단촐하다.
여기 PCB 스펙은 아래와 같다.
링크는 여기
PCB 스펙 자체는 한샘디지텍과 크게 차이 없는듯.
거버파일은 274X 면 된다는거 같은데...
테스트용 PCB의 거버를 PADS에서 출력한 후 압축해서 주문보내보자.
홈페이지의 Start Quote를 클릭하면 주문화면으로 넘어간다.
여기서 자기 PCB의 사이즈, 수량 등등을 입력하고 Add to Cart를 클릭하자.
참고로 316*120, 20장, Min tracing/spacing 0.2mm, Smallest hole : 0.3mm으로 $104.01 이 나온다.
Add to Cart 클릭하자.
그럼 Cart 화면으로 넘어간다.
여기서 Proceed to Checkout을 클릭하면 결제화면으로 넘어간다.
배송지 지정하고, 지불방법 선택하고 결재를 해부렀다. 잘하는짓인지 모르것네.
배송비는 $42.72... 토탈 $146.73
결재하고나면 이런 화면을 볼 수 있다.
v-cut 어떻게 나올런지 모르것네. 조금 걱정되는걸
나중에 더 나은 업체들을 조금씩 업데이트 해나가는게 좋을거같군.
일단 Seeed Studio의 Fusion PCB를 살펴보자.
오오 $9.9...
양면 100*100사이즈가 PCB가 이가격이라니...
Fusion PCB Specification을 살펴보자.
링크는 여기
거버파일 : 거버는 RS-274X 포맷으로 아래 내용을 .rar이나 .zip으로 압축해서 보내야한다.
- top : pcbname.GTL
- soldermask top : pcbname. GTS
- silkscreen top : pcbname.GTO
- bot : pcbname.GBL
- soldermask bot : pcbname.GBS
- silkscreen bot : pcbname.GBO
- drills : pcbname.txt
- board outline : pcbname.GML/GKO
- inner layer2 : pcbname.gl2
- inner layer3 : pcbname.gl3
아 놔 이거 이글캐드 기준 거버 출력파일인거 같은디...나 이런 확장자 처음봄.ㅠㅠ
PADS에서 이 파일 출력이 가능한지 모르것네.
일단 테스트용 PCB 파일 열어서 cam 출력한 다음, 거버파일 확장자만 바꿔서 seeed studio 홈페이지의 거버 뷰어로 확인해보자.
이 PCB 파일에서 거버를 출력한다음 확장자만 바꿔서 업로드 후 거버 뷰어 화면으로 넘어간다.
나오는거 같은데...드릴 파일이 인식이 안돼는거 같다.
seeed studio의 Fusion PCB 스펙 페이지를 보다보니 아래 내용이 나온다.
- 2. Drill file(pcbname.TXT) should be Excellon format.
이거 대체 무슨 말이여?
여기는 거버 출력파일 확장자 때문에 못쓸거같군.
이글캐드를 써야할 이유가 조금씩 늘어가네. 알티움의 경우 이 회사에서 요구하는 거버 출력파일을 뽑을수 있는거같다.
그럼 다음은 FirstPCB를 살펴보자.
일단 가입하자.
가입하는게 단촐하다.
여기 PCB 스펙은 아래와 같다.
링크는 여기
PCB 스펙 자체는 한샘디지텍과 크게 차이 없는듯.
거버파일은 274X 면 된다는거 같은데...
테스트용 PCB의 거버를 PADS에서 출력한 후 압축해서 주문보내보자.
홈페이지의 Start Quote를 클릭하면 주문화면으로 넘어간다.
여기서 자기 PCB의 사이즈, 수량 등등을 입력하고 Add to Cart를 클릭하자.
참고로 316*120, 20장, Min tracing/spacing 0.2mm, Smallest hole : 0.3mm으로 $104.01 이 나온다.
Add to Cart 클릭하자.
그럼 Cart 화면으로 넘어간다.
여기서 Proceed to Checkout을 클릭하면 결제화면으로 넘어간다.
배송지 지정하고, 지불방법 선택하고 결재를 해부렀다. 잘하는짓인지 모르것네.
배송비는 $42.72... 토탈 $146.73
결재하고나면 이런 화면을 볼 수 있다.
v-cut 어떻게 나올런지 모르것네. 조금 걱정되는걸
피드 구독하기:
글 (Atom)