:::: MENU ::::

CP2104 레퍼런스 회로도

CP2014는 USB to UART bridge 칩이며, 데이터 시트에 보면 다음과 같은 레퍼런스 회로가 있다. REGIN 핀은 레귤레이터 입력핀인데, 이 회로도에서는 여기에 VBUS핀과 같이 연결을 해 놓고 있다. CP2104의 TX, RX가 시스템의 MCU의 RX, TX와 연결이 되어 있는 경우에는  일반적으로는 USB 케이블을 연결하는 순간 VBUS와 REGIN에 전압이 가해지면서CP2104의 TX값이 low로 되면서 시스템 MCU의  RX값이 바뀌게 된다. 따라서 시리얼 입력을  처리하는 루틴이 제대로 동작을 하지 않을 수 있다. 해결책은 REGIN의 입력을 VBUS가 아닌 시스템 전원으로 바꾸면 해결이 된다.


하드웨어 스타트업에서 제품 개발시 유의 사항

몇년전 킥스타터에서 펀딩에 성공한 프로젝트인 TIKO 3D프린터가 회사를 닫는다고 공지를 했다. 제품은 겨우 4천대 정도 미주지역에 배송을 했고, 전세계에 배송할 수만대분을 포기한 상태이다. 기술적인 혁신을 통해 비용을 줄여서 매우 값싼 3D 프린터를 개발한다고 되어 있었는데, 내용을 보니 기술적으로 해결하지 못한 부분도 있고, 프로토타입이 검증이 되기 전에 펀딩금액으로 이미 부품들을 주문해 버리기도 했으니, 어쩌면 당연한 결과이다.

하드웨어 스타트업에서 제품 개발시 유의 사항

고객군을 세분화하라.

Look for a sub-group of users in your target market and focus on them

제품의 기능을 설명하는 대신 혜택을 이야기 하라.

Most users care about what a product does, not how a product does it.

제품의 한가지 기능에 집중하라.

Focus on finding the single reason a customer would use this product and extend a limited feature set out of this single reason.

최종 제품전 작은 수의 시생산으로 제대로 동작하는 제품을 만들라.

The best hardware startups iterate early and often by making multiple runs of small numbers of units as they hone in on the right product.

참고자료: Hardware startups should lower user expectations


Makerbot, Prusa 그리고 3D 프린팅 시장

최근 메이커봇이 인원을 30% 감원한다는 기사

여기서 Makerbot과 Prusa의 현재 상황과 3D 프린팅 시장을 알 수 있다.

consumers are incapable of 3D design, fixing wonky machines and desire 3D models that aren’t easily found

  • 고객들이 아직은 3D 디자인을 할 수 없고
  • 기기에 문제가 생길 경우 해결이 안되며
  • 원하는 3D 모델을 찾기 여러움

그래서 시장은 아직 일반인 대상이 아니라 DIY community인데, 이쪽을 포커싱하고 있는 Prusa의 경우 90명 정도의 스텝이 월 3천대 이상을 판매한다고 함.


USB 하드웨어 디자인 가이드

USB 하드웨어 디자인 가이드

  • GND, 샤시에 FB
  • 15 Ohm Termination resistor
  • ESD 인증에 문제가 있을 경우 protection device – NXP IP4220CE6
  • Common mode choke – Murata plw3216s900sq2t1
  • 2개의 USB 신호쌍은  parallel 하게하며, 간극은 최대 150 mil을 넘지 않도록
  • 신호선의 최대 길이는 18인치를 넘지 않도록

참고자료


Ultimaker 3 내부 구성

Meet the new Ultimaker 3

Ultimaker 3의 특징 – Ultimaker 3 Spec.

  • 듀얼 노즐:서포트를 쉽게 제거하기 위해 물에 녹는 재질의 필라멘트 사용가능
  • 쉽게 교체 가능한 노즐
  • 향상된 쿨링 시스템
  • 상태를 나타내는 LED
  • Wi-Fi & USB stick 지원: Wi-Fi는 Local에서만 지원된다.
  • 카메라 지원
  • Active bed leveling

Ultimaker 3 내부 구성

A20 LIME2 Linux보드 & ATmega 보드

위 블럭다이어그램에서 보듯이기존 UM2의 경우에는 메인보드에 ATmega2560칩이 있었으나, UM3는 Connectivity를 추가하기 위해 A20 LIME2 Linux보드가 메인이 되고, 기존의 Atmega보드는 실시간 처리가 필요한 모터제어에만 사용이 되었다. 이 보드에 카메라 및 WiFI, Ethernet, USB Host, NFC 리더가 있는데, NFC리더는 필라멘트에 붙어 있는 NFC 테그를 태깅하기 위해 사용이 된다. WiFi의 경우 USB to WiFI 동글이 사용되는데, 앱을 확인해 보니 Local network에서만 사용이 된다.

프린터 헤드 보드

레벨링을 위한 센서 /  쿨링팬 / LED 제어 / 노즐의 온도 컨트롤 및 사용시간 체크를 위한 EEPROM이 있다.

네트웍을 통한 원격제어

REST API를 사용해서 원격 제어가 가능하다. 즉 http://10.180.1.209/api/v1/system/hostname 이런 형태로.. 관련 내용은 https://ultimaker.com/en/community/23283-inside-the-ultimaker-3-day-2-remote-access-part-1 에서 확인할 수 있다.

참고자료


Jlink를 사용한 nRF51 flashing

지난번 nRF51개발 환경 포스팅에 빠진 부분인 flashing 부분

nrfjprog – Programming Tool

nrfjprog는 nRF5x-Command-Line-Tools의 번들 프로그램으로 SWD를 이용해 펌웨어 이미지를 로딩한다.

nrfjprog:

/* Optional: erase target if not already blank */
nrfjprog --family <nRF51/52> -e 
/* Load FW image to target */
nrfjprog --family <nRF51/52> --program _build/<name>.hex
/* Reset and run */    
nrfjprog --family <nRF51/52> -r

JlinkExe:

/* Open Jlink Commander from terminal in _build directory */ 
JLinkExe -device <nRF51/nRF52>
> erase // Optional: erase target if not already blank
> loadfile <name>.hex // loads FW
> r // Reset and halt
> g // Run
> q // Exit

JlinkExe -device nrf51822_xxaa -if swd -speed 4000



Intel Hex 파일 포맷

Intel hex파일 포맷은 다음과 같은 형태이다.

:llaaaatt[dd...]cc
  • : 콜론은 레코드의 시작을 의미
  • ll  데이터의 길이 – 2 바이트
  • aaaa 어드레스
  • tt 레코드의 타입
    00 – data record
    01 – end-of-file record
    02 – extended segment address record
    04 – extended linear address record
    05 – start linear address record (MDK-ARM only)
  • dd 데이터
  • cc 체크섬. 계산은 레코드의 값을 모두 더하고 2의 보수를 취한다.
:020000040000FA

예를 들어 위와 같은 경우

  • 02 데이터 사이즈는 2
  • 0000 어드레스
  • 04  extended linear address record
  • 0000 upper 16 bits of the address.
  • FA 체크섬 01h + NOT(02h + 00h + 00h + 04h).

End of File의 레코드는 다음과 같다.

:00000001FF

참고


J-link 인터페이스

Segger사의 J-link 디버거는 JTAG과 SWD인터페이스를 제공한다.

JTAG  pin-out

SWD를 사용하기위해서는 위 20핀에서 필요한 4핀만 연결하면 된다. 여기서 VTref신호는 디버거에서 타겟보드의 전압을 체크하고 전압레퍼런스로 사용하기 때문에 타겟 보드의 전원을 연결하고, 프로그래밍을 할 MCU의 전압과 연결해야 한다. 그렇지 않을 경우 VTref is 0.xxxxV라고 에러메시지가 나면서 연결이 되지 않는다.

*참고로 J-link와 같은 디버거를 DIY형태로 개발을 해서 OSHW로 판매를 하는 것이 있다.  OSHChip_CMSIS_DAP_V1.0

참고: https://www.segger.com/interface-description.html


Puck.JS 사용법

FEATURES

  • Bluetooth Low Energy
  • Espruino JavaScript interpreter pre-installed
  • nRF52832 SoC – 64MHz Cortex M4, 64kB RAM, 512kB Flash
  • 8 x 0.1″ GPIO (capable of PWM, SPI, I2C, UART, Analog Input)
  • 9 x SMD GPIO (capable of PWM, SPI, I2C, UART)
  • ABS plastic rear case with lanyard mount
  • Silicone cover with tactile button
  • MAG3110 Magnetometer
  • IR Transmitter
  • Built in thermometer, light and battery level sensors
  • Red, Green and Blue LEDs
  • NFC tag programmable from JavaScript
  • Pin capable of capacitive sensing
  • Weight: 14g in plastic case, 20g in packaging
  • Dimensions of cardboard box: 64mm x 62mm x 16mm
  • Dimensions of plastic case: 36mm dia, 12.5mm thick
  • Dimensions of bare PCB: 29mm dia, 9mm thick

회로도 및 PCB Layout Eagle File

ON-BOARD LEDS, BUTTON AND GPIO

LEDs

  • Red LED on: digitalWrite(LED1,1), Off: digitalWrite(LED1,0)
  • LED2 : green, LED3: blue
  • LED1.write(1) or  LED1.write(0)
  • LED1.set(), LED1.reset()
  • 3개의 LED 한꺼번에 제어 digitalWrite([LED3,LED2,LED1], 7)

Button

  • digitalRead(BTN) or BTN.read()
  • 버튼 상태를 Polling 하는 것은 power 소모가 심하므로, setWatch 함수를 사용해서 버튼 상태가 바뀌는 것을 체크함.

    setWatch(function() { console.log(“Pressed”);}, BTN, {edge:”rising”, debounce:50, repeat:true});

GPIO pins

  • GPIO 핀은 D0 부터 D31까지.  digitalWrite/digitalRead 커맨드를 사용할 수 있고 PWM, I2C, SPI and Analog 사용 가능

ON-BOARD PERIPHERALS

  • Magnetometer
  • IR / Infrared
  • NFC – Near Field Communications
  • Light sensor
  • Bluetooth
  • Temperature
  • Battery level
  • Capacitive sense
  • SERIAL CONSOLE

FIRMWARE UPDATES

via nRF Toolbox App (Android & iOS)

  • On your Bluetooth LE capable phone, install the nRF Toolbox app
  • Download the latest espruino_xxx_puckjs.zip file from the binaries folder
  • Reset Puck.js with the button held down – the Green LED should be lit
  • Release the button within 3 seconds of inserting the battery – the Red LED should light instead. If it doesn’t, you’ll need to try again, holding the button down for less time after inserting the battery.
  • Open the nRF Toolbox app
  • Tap the DFU icon
  • Tap Select File, choose Distribution Packet (ZIP), and choose the ZIP file you downloaded
  • Tap Select Device and choose the device called DfuTarg
  • Now tap Upload and wait. The LED should turn blue and the DFU process will start – it will take around 90 seconds to complete

Espruino IDE 사용하기

  • Web Bluetooth 사용 설정: Mac에서 BLE가 지원되는지 확인하는 법은 “이 Mac에 관하여” > 시스템 리포트 > 하드웨어 > Bluetooth 항목아래 ” Bluetooth 저에너지 기술이 지원됨” 이 “예”라고 표시되어 있는지 확인한다.
  • 크롬에서 주소표시줄에 chrome://flags를 입력하고, ” #enable-web-bluetooth” 항목을 사용하도록 설정하고 브라우저를 다시 시작함.
  • https://www.espruino.com/ide/ 에서 Web IDE를 시작한다.
  • Web IDE에서 연결 버튼을 클릭하고, Port설정에서 Web Bluetooth를 선택한다.

참고: https://www.espruino.com/Puck.js+Quick+Start


Pages:1234567...42