반응형

mcu 10

[아두이노] vscode 에서 아두이노 개발하기

잡담 - 포스팅 수정 190821 [아두이노] vscode 에서 아두이노 개발하기 아두이노의 기본 ide 개발환경이 너무 불편하여 vs code 로 아두이노 개발환경을 꾸민자료를 정리한다. 잡담) 오랜만에 펌웨어 개발하니 너무 잼난다. ㅎㅎ. 아두이노의 라이브러리들을 써서 개발하니 개발속도가 너무 빨라서 스스로도 뻘쭘할정도 ㅠㅠ 빨리 개발하고 일하는척하고 놀꺼다. ㅋㅋ vscode 플러그인설치 아두이노의 extension 을 설치한다. arduino 로 검색했을때 가장많이 다운로드 받은 공식 plugin 이다. 공식 github 저장소 : 매뉴얼 참고할것 https://github.com/Microsoft/vscode-arduino 위의 사이트에서 매뉴얼 및 소스코드등을 배포한다. 그냥 vs code 내..

HW 기초 2018.07.06

[아두이노] 아두이노 부트로더 확인 및 굽기 (AVR ISP 사용)

아두이노 부팅불가 굴러다니던 아두이노 우노를 이용하여 개발하려고 하니 부트로더가 이상한지 다음과 같은 로그만 계속뜬다. avrdude: stk500_recv(): programmer is not responding 일단 해당 메시지가 떴을때, 다음의 사항을 살펴보자. 1. USB 연결시 driver 가 잡히는지 확인해본다. 해당 메시지는 데이터를 아두이노에게 데이터를 전달할수 없다는 메시지다. 즉, 잘못된 포트를 정해줘도 위와같은 메시지가 뜬다. 그러므로 일단 포트가 제대로 잡히는지부터 확인한다. 2. 해당 포트를 직접 열어본다. 포트가 잡혔다면, 터미널 프로그램으로 해당 포트를 직접열어보자. 만약 열린후에는 막~~~!! 키보드를 쳐보자.. 그럼 아두보드의 uart RX 쪽 led 가 깜박일껏이다. 그래..

HW 기초 2016.01.28

ATmega 128 에서 MCP2515 돌리기

예제 소스코드 출처 ATmega128 과 MCP2515 의 예제 프로젝트가 있다. 다음의 링크에서 소스를 받아서 테스트하도록한다. http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515 실제 수정된 코드 : ATmega 128 에서 MCP2515 돌리기 위의 받은 소스코드에서.. 수정한사항은 다음과 같다. bool mcp2515_init(void) { unsigned int test_value; SET_OUTPUT(MCP2515_CS); SPI0_Init(); // reset MCP2515 by software reset. // After this he is in configuration mode. RESET(MCP2515_CS); spi_pu..

HW 기초 2014.02.12

FirmWare / AVR / 간단소스 / 시리얼 통신관련..(쉘만들기 기초)

이전에 프로젝트 했던걸 정리하는 차원에서 포스팅... 펌웨어 시리얼 통신 쉬운 예제가 이해하기 제일좋다. 통신초기화 관련 예제코드 void uart0_init(u32 baud) { /*================================ BAUD = F_CPU / (16 * (UBRR + 1) ) UBRR = (F_CPU / (16L*baud)) - 1 ==================================*/ baud = (F_CPU / (16L*baud)) - 1; // buad 로 인자로 받아온 buad로 초기화.. //uart1 register baud setting UBRR0H = (u08)(baud>>8); // 클경우 상위 8bit만 잘리기에.. UBRR0L = (u08)(bau..

HW 기초 2013.12.19

AVR / Compiler / AVR Studio 5 에서 USB - AVRISP mkii 사용하기

한참 해맸던 사항을 정리한다;; 기본 사항 AVR Studio 5 를 설치한다. (설치할때 jungo Driver 가 같이 설치된다.) AVRISP mkii 사용하기 AVR Studio 를 실행하여...빈 프로젝트를 만들고.. tools / option 에 들어간다. 위의 옵션에서 usb tool polling 을 true 로 하고 재시작한다. 그러면 tools / AVR Programming 에 들어가면 list 가 추가된것을 볼수있다. usb tool polling 을 true 로 하지 않으면 AVRISP mkii 가 리스트가 안뜬다!!! 이제 즐겁게 AVR 코딩을 시작한다!

HW 기초 2012.03.23

AVR / 기초개념 / 와치독 개념

ATmega128의 와치독 워치독 타이머는 타임아웃 되기전에 소프트웨어 명령으로 그 값을 클리어 시켜주지 않으면 MCU를 리셋 시킴으로써 시스템이 정상적으로 동작하고 있는지를 감시하는 마이크로 프로세서의 신뢰성 향상기술이다,. ATmega128에서는 내부에서 독립적으로 만들어지는 1Mhz의 오실레이터에서 클럭을 받아 동작하며 사용자가 이를 분주하여 8가지로 클럭주기를 변경시킬수있다. DRCR(Watchdog Timer Control Register) 레지스터 각 레지스터의 주소값을 외울 필요는 없다. 각 컴파일러가 갖고있는 iomap 헤더 파일안에는 해당 레지스터의 이름에 대해 메모리 맵핑이 되어있다. gcc컴파일러 안에있는 iom128.h의 내용 /* Watchdog Timer Control Regis..

HW 기초 2010.12.02

AVR / 예제소스 / EEPROM 기본개념

기타사항 : winAVR기준 / 틀린사항이나 오류발생시 댓글 부탁드립니다. eeprom? 대부분의 경우 eeprom에는 파라미터 같은 정보 (껐다 켜지더라도 계속 유지되어야 하는값과 비슷한것들..)을 넣는 역할을 하게된다. 이때는 내부 Flash Rom 과는 약간 다른역할을 하는듯하다. 추후 스터디하여 새로포스팅예정..;;; 기본적으로 read 함수구현 int8_t read_eeprom(u16 adr) { return (int8_t)eeprom_read_byte ((const uint8_t *)adr); } AVR의 경우 메모리맵 IO로 되어있다. 즉 EEPROM은 메모리의 어딘가에 할당이 되어있으며 해당 메모리 주소를 바로 접근하는 방식으로 EEPROM에 접근가능하다. eeprom_read_byte()..

HW 기초 2010.01.14

AVR / 기본개념 / SPI 기초, 예제코딩

기타사항 : ATmega128 에서 테스트완료 spi 개요. SPI는 serial peripheral interface의 약자로서 한마디로 말해서 주변 IC와 통신하기 위한 직렬통신장치입니다. 친절하게 해석해드리면 '시리얼 방식의 주변 장치 인터페이스' 정도 된다. 특히나 MCU의 GPIO 포트가 모자르거나, 데이터를 주고받는 프로토콜에 신경 쓰기 귀찮아하는 사람에게 딱좋은 방식입니다. 가장 많이 쓰는것들은.. PLL IC나 AUDIO관련 IC등을 제어하기 위한 장치죠. 보통 CLOCK,DATA,STOBE 이렇게 3단자또는 DATA IN,OUT 을 구분하여 4단자로 구성되어 있습니다. 물론 일반 PORT를 이용해 전송할수도 있지만 전용 SPI단자의 경우는 속도가 빠르고 간편하게 사용할수 있습니다. 때로는..

HW 기초 2010.01.11

C / AVR / sprintf 의 기본적인 코딩예제

기타사항 : ATmega128 / winAVR 테스트완료 sprintf 만들기 임베디드 환경에서의 printf 구현이 쉽지는 않다. 아래와 같은 코딩으로 불편하나마 printf()를 대체하여 쓸수가 있다. C 함수의 호출 원리를 이용한 sprintf() 의 약식 구현 이다. va_start() 나 va_end() 함수를 사용하여 구현할 수도 있지만, 이것도 stack의 동작을 숨기고 있어서 좀더 low level 로 구현하고자 한다. 스텍이나 메모리 상황이 안좋거나.. 타겟쪽에 라이브러리를 올리지 못하는 상황이라면 아래와같이 코딩하여 사용할수있을것이다.(컴파일이 된다면..) 소스원작자는 32bit ARM에서 target에 printf()관련 라이브러리를 통째로 올릴수없어서 코딩하였다고 한다. 예제코드… ..

HW 기초 2009.12.26
반응형