2017/04/13

STM32 + Raspberry PI 보드를 만들어보자 -- 03. PCB Artwork

다 그렸다...





































라즈베리파이로 공급하는 5V가 최대 2.5A 라길래 급히 5V/3A DCDC를 추가했다.


기존 설계파일과 같이 묶어서  v-cut으로 나눈 후 firstPCB에 발주보낼 예정이다.






















firstpcb.com에서 견적을 내보니 $81.90이다. 배송비 포함하면 100달러 조금 넘을듯.



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













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선으로 인터페이스해서 펌웨어 업그레이드는 가능해 보인다.

그럼 다음 단계로 넘어가자.

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으로 압축해서 보내야한다.
  • 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 어떻게 나올런지 모르것네. 조금 걱정되는걸