'SPI'에 해당되는 글 4건

  1. 2018.12.03 BitWizard ESC의 소개
  2. 2014.05.27 아두이노(Ardunio)의 장점(2)
  3. 2014.03.24 TWI(I2C) 통신이란?
  4. 2014.03.11 AVR이란?
Radio Control/ESC2018. 12. 3. 19:47


다음의 Benjamin Vedder의 VESC에 기반을 두지만 보다 개선하였다는 BitWizard ESC(BESC)의 소개입니다.

http://bitwizard.nl/shop/ESC/BitWizard-ESC



The BitWizard ESC is a VESC compatible Brushless DC motor controller. It is based on the VESC by Benjamin Vedder, but has a few interesting differences!

BitWizard ESC는 VESC 호환 Brushless DC 모터 제어기입니다. 이는 Benjamin Vedder의 VESC에 기반을 두었지만 몇 가지 흥미있는 차이점을 갖고 있습니다.


Instead of the single integrated DRV8302 chip, the BESC uses separate gate drivers, opamps and a stepdown converter. This provides slightly better gate drive, as well as a possible upgrade path to larger voltages later on. 

한 개의 집적화된 DRV8302 칩 대신에, BESC는 개별의 게이트 드라이버와 opamp, stepdown 컨버터를 사용합니다. 이는 보다 우수한 게이트 구동 능력을 제공하며, 나중에 더 높은 전압으로의 업데이트 가능성을 제공합니다.


LCD I2C/SPI Interface, with 20x4 LCD


The current design has an SPI connector allowing connection of a "console display". This feature is working right now. Another option for expansion through that connector is an SD card to allow logging your session. This may help in debugging problems with the performance.

현재의 설계는 "console display"의 연결을 위한 SPI 커넥터를 갖습니다. 이 특성은 지금 동작 가능하며 이 커넥터를 통한 또 다른 확장 옵션은 여러분의 session을 기록하게 하는 SD 카드입니다. 이는 성능과 문제점을 디버깅 하는데 도움을 줄 수 있습니다.


BitWizard ESC


Just like VESC, the BESC has(VESC와 같은 점):


    • 60V theoretical MAX. In practise, some margin is required. Running on 14S LIPO is not recommended. 13S is tested works fine.

    • 50A continuous motor current. There is a temperature sensor on the power board that instructs the CPU to reduce the current if things heat up too much.

    • CAN bus connectivity. (currently untested).

    • Uart connectivity.

    • USB connectivity.

    • A connector with "servo pinout" for PWM input, PWM output.

    • Analog input for analog throttles.


Unlike the VESC the BESC has(VESC와 다른 점):


    • A boot button. This allows you to use DFU(dfuse) to reflash your BESC no matter how messed up the firmware has become. No need for an STLINK debugger.

Boot 버튼. 이는 펌웨어가 아무리 뒤죽박죽 될지라도 여러분이 여러분의 BESC를 재기록하기 위해서 DFU(dfuse)를 사용하는 것이 가능하게 합니다. STLINK 디버거에 대한 필요가 없습니다.

    • Separate gate drivers for the FETs.

FET들의 별도의 게이트 드라이버.

    • All unused IOs of the CPU broken out to a testpad.

모든 사용되지 않는 CPU의 IO 핀들은 tespad로 마련되어 있습니다.

    • A separate power board with all the FETs on one side. This allows you to cool the FETs with a heatsink against the PCB. (note: it is of no use to cool the plastic package of the FET. Cooling the PCB is what works.)

한 면에 모든 FET를 실장하는 분리된 power board. 이는 여러분이 heatsink로 FET를 식히는 것이 가능하게 합니다(note: FET의 플라스틱 패키지를 식히는 것이 필요 없다면, PCB를 식히는 것이 동작하는 것입니다).


Separate power board


    • A stepdown from the motor voltage to 12V. This 12V is used for the gate drivers.

모터 전압을 12V로 stepdown. 이 12V는 게이트 드라이버를 위해서 사용됩니다.

    • A stepdown from the 12V intermediate voltage to 5V. This 5V is used as the source for the 3.3V LDO for the CPU, but also provided on serveral connectors as a convenience to power for example a hall-sensor-throttle. On the VESC, they say you can use 1A, on the BESC the limit is slightly lower.

12V 중간 전압을 5V로 stepdown. 이 5V는 CPU의 3.3V LDO를 위한 소스이지만 예를 들어 홀센서 스로틀의 전력공급을 위한 편의를 위해서 몇 개의 커넥터를 제공됩니다. VESC 상에 그들은 여러분이 1A를 사용할 수 있다고 말하지만, BESC에서 한계는 약간 낮습니다.


During development we've had a lot of convenience of the separate power board. This allowed us to test with other FETs and stuff like that. When all is said and done, the IRFS7530 is a quite good fit. I could allow you to buy a version with cheaper FETs, but compared to the cost of the control module it doesn't make much sense to provide cheaper(smaller mosfet) power boards. But if you're interested anyway, get in touch.

개발하는 동안에 우리는 별개의 power board가 많이 편리하였습니다. 이는 우리가 다른 FET와 그와 같은 것과 테스트하는 것이 가능하였습니다. 모든 것을 종합적으로 고려해 보아 IRFS7530가 매우 적합하였습니다. 저는 여러분이 저렴한 FET 버전을 구매하도록 하였을 수 있습니다. 그러나 제어 모듈의 비용과 비교하여 이는 저렴한(작은 mosfet) power board를 제공하는 것이 큰 의미가 있지는 않습니다. 하지만 여러분이 어쨌든 관심있다면 연락주세요.



'Radio Control > ESC' 카테고리의 다른 글

ESC32 V2 메뉴얼 - Firmware Flashing  (0) 2020.04.23
ESC32 V2 메뉴얼 - Connections & Wiring  (0) 2020.04.03
VESC 하드웨어(v4.x) 설정 메뉴얼  (0) 2018.01.24
대표적인 상업용 VESC 구입처  (1) 2018.01.22
PX4ESC의 스펙  (0) 2015.12.08
Posted by Nature & Life


아두이노(Arduino)가 오픈 소스 플랫폼으로 자리잡은 이유는 AVR 칩이 제공하는 Self-programming 기능으로 거슬러 올라갑니다. Self-programming 기능이란 칩의 퓨즈를 적절히 설정함으로써 부팅시 Application 영역이 아닌 Boot 영역으로 시작 지점이 변경된다는 것입니다.



한편, AVR 칩은 추가적인 하드웨어 구성 없이 USART나 TWI, SPI 등으로 통신이 가능한데, 칩이 Boot 영역에서 수신된 데이터를 감지하고 Application 영역을 변경할 수 있다는 것입니다. 이러한 기능은 3세대 AVR 칩에서 등장하여 펌웨어의 유지 및 보수 목적으로 특히 가혹한 원격지에서 펌웨어 업그레이드에 유연성을 주기 위함이었습니다.


따라서 이러한 기능이 가능하게끔 작성된 Bootloader를 최초 한번 JTAG이나 ISP를 이용하여 펌웨어를 프로그래밍을 하면 아두이노는 그 다음부터 ISP 없이 USART로 프로그램의 간단히 업로드가 가능하게 됩니다. 결국 아두이노 보드는 아래 회로도에서와 같이 별도의 ATmega16U2 칩을 이용해 USB로 데이터를 송수신하고, 이를 다시 ATmega328 칩에 USART 규격으로 통신하는 구조를 가집니다.



요약하면 아두이노 IDE 환경은 AVR 칩에 최초 Bootloader를 탑재하여 PC의 USB 포트로 C 코드인 스케치(Sketch) 파일을 컴파일하고 이를 아두이노 보드로 추가의 하드웨어 없이 전송하여 쉽고 빠른 개발환경을 제공한다는 것입니다. 게다가 아두이노 IDE 환경에서 함께 제공하는 Serial Monitor를 이용해서 클릭 한번으로 그 결과를 바로 확인할 수 있다는 장점을 가집니다.





Posted by Nature & Life

 

 

통신약정(Protocol)이란 데이터를 보내는 사람과 받는 사람이 정보를 오류없이 원할히 주고 받을 수 있도록 쌍방간에 정하는 규칙 혹은 약정입니다. 이는 원거리 인터넷이나 FAX 통신도 혹은 PC와 그 주변기기와의 통신같은 근거리 통신에도 반드시 존재하며 자동차 내에서 혹은 한 보드내에서 칩과 칩 사이의 통신에도 적용됩니다.

 

AVR의 경우에는 다른 칩과의 통신방법으로 SPI(Serial Peripheral Interface)인 SCI(Serial Communication Interface, UART)나 TWI 통신을 지원합니다. 어느 정도 근거리 통신에서도 사용되어야 하기에 송수신에 앞서서 노이즈 등에 대비하여 신호의 크기를 키워야 할 필요가 하는데 이것이 PC 등에 사용되는 RS232C 트랜시버가 됩니다.

 

이러한 SPI 방식에서는 보내는 라인과 받는 라인 그리고 동기화된 클럭(Clock)으로 3가닥의 라인을 필요로 하였고, 한편 이 라인의 수를 더 간소화시켜 오직 2가닥 만으로 데이터의 송수신을 가능하게 한 새로운 인터페이스(Interface)를 제공하게 되었는데 이를 TWI라고 명명합니다.

 

TWI는 'Two Wire Interface'의 약자로 이를 통해서 AVR 칩은 오직 2가닥 만으로 128개의 다른 장치들과의 통신할 수 있다는 것입니다. TWI는 Atmel社 등이 주로 사용하지만 1980년대 Philips社에서 만든 I2C 인터페이스와 매우 유사하여 하드웨어의 별다른 수정없이 그대로 사용할 수 있다는 장점이 있습니다. 통상 I2C 인터페이스가 2가닥의 라인을 이용하므로 TWI라 부르게 되었습니다.

 

Philip社에서 제창한 I2C(IIC)는 칩(IC)간의 통신을 의미하는 'inter IC(Integrated Circuit)'의 준말로 'i square c'라고 읽으며, 비록 서로 다른 회사로부터 만들어졌지만 10-bit 주소나 고속 모드(high speed mode) 등에 차이를 제외하면 서로 호환가능하여 수정없이 사용할 수 있다는 것입니다.

 

TWI 통신이 가능한 장치는 데이터(SDA, Serial Data Line)와 클럭(SCL, Serial Clock) 라인이 공통 버스(bus)에 연결되어 고유의 주소값을 가져 다른 칩과 통신시 master와 slave의 관계를 번갈아가며 데이터의 송수신이 가능합니다. 표준 모드(standard mode)에서 100kbit/s로 통신할 수 있고 버스의 capacitance가 400pF을 넘지 않는 한도에서 칩을 계속 연결할 수 있다고 알려집니다.

 

 

 

 

간단하게 설명하면 아래 그림과 같이 데이터(SDA)를 클럭(SCK)에 동기화하여 주고 받는 방식으로 먼저 데이터를 주고 받고자하는 장치 주소(Address)를 1~7번 비트에 싣고 보낼지 읽을지에 따라서 8번 비트를 Read('1')나 Write('0')로 설정하며 그 다음에 데이터를 연속적으로 읽거나 실을 수가 있다는 것입니다.

 

 

 

여기서 ACK 비트는 정보의 송신자에게 직전 8-bit의 정보를 수신했는지의 여부를 확인하는 값입니다.

 

 

'Flight Controller 이해 > 인터페이스' 카테고리의 다른 글

CAN 통신이란?  (0) 2017.12.24
드론에서 사용되는 무선 통신  (1) 2017.03.09
Posted by Nature & Life
Embedded Programming/AVR 2014. 3. 11. 13:11

 

AVR(Atmel AVR)은 8bit RISC 단일칩(onechip) 마이크로컨트롤러(Microcontroller) 혹은 마이크로컴퓨터(Microcomputer, Micom)로 일반적으로 마이컴이라고 부릅니다. 1996년에 美 Atmel社가 하버드 아키텍처(Harvard architecture)로 수정하여 개발한 구조로 프로그램을 저장하기 위해 타사 마이컴처럼 ROM, EPROM 또는 EEPROM을 사용하지 않고 단일칩 플래시메모리(Flash memory)를 처음 사용하였다고 전해집니다.

 

AVR 마이컴은 중앙처리장치(CPU)와 소용량 플래시메모리가 하나의 IC에 집적되어 있으며 프로그램과 데이터 영역의 메모리가 분리된 형태로 특수 명령어로 프로그램을 데이터 영역으로 읽어들일 수 있습니다. 마이컴에 프로그램을 탑재하기 위해서는 ISP(in-system programming) 방식으로 Reset을 추가한 SPI 프로토콜로 업로드가 가능합니다.

 

http://www.atmel.com/

 

 

 

무엇보다도 AVR은 ISP 기능을 통해 매우 저렴하게 개발환경을 구축할 수 있다는 점과 한 cycle에 한 개의 명령(instruction)을 수행하는 파이프 라인 방식으로 연산 속도가 빠르며, 하버드 아키텍처의 특징으로 C언어에서 우수한 성능을 발휘하며 게다가 우수한 각종 컴파일러(Compiler)와 디버거 툴인 AVR Studio를 무료로 제공한다는 특징을 가집니다. 이밖에도 A/D 변환기, PWM, SPI 등의 고기능을 손쉽게 구현할 수 있다는 장점이 있습니다.

 

AVR은 위와 같은 특징으로 말미암아 대중화되었으며 근래에는 보다 상위개념의 ARM 프로세서가 출시되어 아이폰이나 최신기기에 탑재되지만, 저렴하여 가격대비 성능면에서 우수하여 여전히 중소 규모의 다양한 기기에 여전히 활용되고 있으며, 드론(Drone)이나 기타 RC에 사용되는 장치에는 다른 마이컴인 PIC 보다 처리 속도가 빠르고, 8051 계열보다 자원이 풍부한다는 장점으로 보다 널리 사용되고 있는 실정입니다.

 

 

 

다음은 AVR의 일반적인 특징을 요약하였습니다.

 

  • ISP(In System Programming) 기능이 있어 AVR을 장치에 부착한 상태에서 내부 메모리에 프로그램이 가능합니다.

  • RISC 구조로 동일 클럭(clock)으로 동작 시 PIC보다 4배 빠르고, 8051보다 10배 이상 빠릅니다. 예를 들어 1MHz에 1MIPS의 처리 능력이 있어 20MHz로 동작하는 경우 20MIPS의 처리 능력을 가집니다.

  • CPU 설계 단계에서 레지스터/메모리/명령어가 C 언어에 적합하도록 설계되어 C 언어를 사용하면 개발 기간을 단축하고 유지 보수가 편리하다는 것입니다.

  • 다양한 AVR 제품군이 있어 저가의 적합한 소자의 선정 및 사용이 가능하고 풍부한 저가의 개발 환경 및 응용 기술 자료가 많다는 것입니다.

  • SRAM, 통신포트, A/D 변환기, Watchdog, 타이머, PWM, I/O포트 등의 풍부한 내부 장치를 구비하여 외부에 별도로 주변장치를 부착하지 않아도 된다는 것입니다.

 

 

'Embedded Programming > AVR ' 카테고리의 다른 글

다양한 AVR Package 비교  (0) 2014.06.14
변수 vs. 메모리  (0) 2014.04.20
AVR의 메모리 구조  (3) 2014.04.20
부트로더란?  (0) 2012.12.10
Posted by Nature & Life