'AVR Studio'에 해당되는 글 2건

  1. 2014.06.19 RapidESC, 오픈 소스 펌웨어 개발 사이트
  2. 2014.03.11 AVR이란?
Radio Control/ESC2014. 6. 19. 11:52



다음은 Simon Kirby(http://0x.ca/)의 오픈 RapidESC 펌웨어 개발 사이트입니다.


https://github.com/sim-/tgy


This tree contains Atmel AVR assembly code for ATmega-based 3-phase sensor-less motor electronic speed control (ESC) boards, originally for Turnigy and similar models. This work is based on Bernhard Konze's "tp-18a" software, which was a port from his earlier personal work to the TowerPro 18A and original (not current!) Turnigy Plush boards. Please see tgy.asm for Bernhard's license.

이 목록은 ATmega 기반의 3상 브러쉬리스 모터 전자 속도 제어기(ESC) 보드를 위한 Atmel AVR 어셈블리 코드를 포함합니다. 원래는 Turnigy와 유사한 모델을 위한 것이었습니다. 이 프로젝트는 Bernhard Konze의 'tp-18a' 소프트웨어에 기반을 둡니다. 이것은 TowerPro 18A과 원래의 Turnigy Plush 보드의 그의 앞선 개인적인 프로젝트를 포트(port)한 것이었습니다. Bernhard의 라이센스에 대해서 tgy.asm을 보시기 바랍니다.


Patches and comments are always welcome! Let me know how it goes!

패치와 주석은 항상 환영합니다. 알려주세요!


Features

    • 16MHz operation on most boards

    • 16-bit output PWM with full clock rate resolution (~18kHz PWM with a POWER_RANGE of 800 steps)

    • 24-bit timing and PWM pulse tracking at full clock rate resolution

    • ICP-based pulse time recording (on supported hardware) for zero PWM input control jitter

    • Immediate PWM input to PWM output for best possible multicopter response (but NOT where soft start or really any significant current limiting is needed!)

    • Accepts any PWM update rate (minimum ~5microseconds PWM low time)

    • Optimized interrupt code (very low minimum PWM and reduced full throttle bump)

    • Configurable board pin assignments by include file

    • Smooth starting in most cases

    • Forward and reverse commutation supported, including RC-car style reverse-neutral-forward PWM ranges, with optional braking


Hardware

See http://wiki.openpilot.org/display/Doc/RapidESC+Database and/or https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE for a more complete list. Some board pictures here: http://0x.ca/sim/esc/

http://wiki.openpilot.org/display/Doc/RapidESC+Database 그리고/또는 좀더 완전한 목록을 위해서 https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE을 보시기 바랍니다. 일부 보드의 그림은 여기에 있습니다: http://0x.ca/sim/esc/


Tested boards by target:

    • afro2:

        • AfroESC 2 (prototype)

    • afro_hv:

        • AfroESC HV (high voltage, with all-N FETs and drivers)

    • afro_nfet:

        • AfroESC with all-N FETs (revision 3)

    • birdie70a:

        • Hobby King Birdie 70A (BIRD-60A)

        • Hobby King Red Brick 200A (RB200A, black board)

    • bs:

        • Hobby King 6A (HK_261000001)

        • Hobby King 10A (HK_261000002)

        • Hobby King 40A (F-40A)

        • Hobby King 60A (F-60A)

    • bs_nfet:

        • Hobby King 20A (F-20A)

        • Hobby King 30A (F-30A)

    • bs40a:

        • Hobby King BlueSeries 40A (and some Mystery 40A boards)

    • dlu40a:

        • Pulso Advance Plus DLU40A with opto-isolated inverted PWM input

        • Hobby King Multistar 45A

    • dlux:

        • Turnigy dlux 20A SBEC

    • hk200a:

        • Hobby King SS Series 190-200A (HK-SS200ALV)

        • RCTimer 50A TQFP version

    • kda:

        • Keda 12A rev B with inverted PWM input (30A should also work)

        • Dynam 18A, 25A with Blue Heat Shrink

        • Hobby King Multistar series (30A and under)

    • maytech30a:

        • Maytech 30A and 20A, complementary PWM

    • maytech40a:

        • Maytech 40A, complementary PWM

    • maytech60a:

        • Maytech 60A, complementary PWM

    • mkblctrl1:

        • MikroKopter BL-Ctrl v1.x (flashable by ISP only)

    • rb50a.hex

        • Hobby King Red Brick 50A (RB50-ESC)

    • rb70a.hex

        • Hobby King Red Brick 70A (RB70A)

        • Hobby King Red Brick 200A (RB200A-BTO, black board)

    • rct50a:

        • RCTimer 50A older MLF version

    • tbs:

        • Team BlackSheep TBS 30A ESC (ICP input version)

    • tp:

        • Original TowerPro 17A, 25A

        • Hobby King SS models without "-HW" in part number

    • tp_8khz:

        • tp at 8kHz PWM (workaround for DYS/HK-SS clones with PWM noise problems)

    • tp_i2c:

        • tp modified for I2C input (old ADC4 routed to ADC1)

    • tp_nfet:

        • Newer TowerPro 25A with inverted low side (BL8003 drivers)

    • tp70a:

        • TowerPro 70A with BL8003 FET drivers (inverted low side)

        • tgy (these boards typically have no external resonator):

        • Original TowerPro 18A

        • Original Turnigy Basic and Turnigy Plush 10A, 18A, and 25A (Hobbywing OEM)

        • RCTimer 10A, 18A, 20A, 30A, 40A (18A, 20A, 30A are same board with more or less FETs)

        • Hobby King SS models with "-HW" in part number

    • tgy6a:

        • Original Turnigy Plush 6A


Turnigy Plush 18A


Notes

    • If it breaks, you get to keep both pieces! (만일 부러지면, 두 조각을 그대로 유지하면 됩니다!)

    • Use at your own risk, and always test first without propellers! (손상을 감안해야 하며 항상 프롭 없이 테스트를 먼저 해야 합니다!)

    • New Turnigy Plush, Basic, Sentry and Pentium boards (Hobbywing OEM) have all switched to SiLabs C8051F334, d'oh! (새로운 Turnigy Plush, Basic, Sentry 그리고 Pentium 보드들(Hobbywing OEM)은 모두 SiLabs사의 C8051F334으로 전환한 상태입니다.)

    • If your ESC has 6 pads and an AVR, it's probably compatible; the pads are MOSI, MISO, SCLK, GND, VCC, and RESET. If it has 4 pads, it is probably a newer SiLabs-based one, for which this code will not work. (Except HK_261000001 which has 4 pads but has an AVR.) (여러분의 ESC가 6개의 패드와 AVR을 사용한다면 아마도 호환가능할 것입니다; 패드는 MOSI, MISO, SCLK, GND, VCC, 그리고 RESET입니다. 만일 4개의 패드를 가지고 있다면, 아마도 이것은 이 코드에서 동작하지 않는 새로운 SiLabs 칩을 사용하는 보드일 것입니다.(HK_261000001는 예외로 4개의 패드를 갖지만 AVR을 사용합니다))

    • I build and maintain this in Linux with AVRA (1.3.0 or newer). Patches welcome for AVR Studio APS files, etc. (저는 AVRA (1.3.0 or newer)로 Linux 상에서 컴파일하였습니다. AVR Studio *.aps 파일의 패치 또한 환영합니다.)

    • The TowerPro/Turnigy Plush type boards typically do not come with external oscillators, which means their frequency drifts a bit with temperature and between boards. Multicopters and RC-car/boat controllers (with a neutral deadband) would probably be better on a board with an external oscillator. The Mystery/BlueSeries boards typically have them, as well as most higher current boards. (TowerPro/Turnigy Plush 타입의 보드는 전형적으로 외장 오실레이터를 갖지 않는데 이것은 ESC의 주파수가 온도와 보드 사이에서 약간 변동될 수 있음을 의미합니다. (데드밴드를 가진) 멀티콥터와 RC자동차/보트 콘트롤러는 아마도 외장 오실레이터를 가진 보드에서 더 좋을 수 있습니다. Mystery/BlueSeries 보드는 전형적으로 외장 오실레이터를 가집니다. 게다가 가장 높은 전류를 갖는 보드입니다.)

    • This doesn't yet check temperature or battery voltage. This is not desired on multi-rotor platforms; however, people still want to use this on planes, cars, boats, etc., so I suppose I'll add it. (이것은 아직 온도와 밧데리 전압을 체크하지 않습니다. 이것은 멀터로터 플랫폼에서 요구되는 것이 아닙니다; 그러나 사람들이 비행기나 자동차, 보트 등에 이를 사용하기를 원한다면 저는 이 기능을 추가할 수 있습니다)






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

PX4ESC의 스펙  (0) 2015.12.08
ESC32의 스펙  (0) 2015.12.04
RapidESC FAQ's  (0) 2014.06.11
RapidESC Flashing  (0) 2014.06.03
RapidESC란?  (0) 2014.05.26
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