본문 바로가기

Architecture/LM3S8962

[LS3S8962]_Inter-Integrated Circuit (I2C) Interface LM3S8962의 I2C 인터페이스에 대하여 알아본다. 우선 Luminary 홈페이지에서 LM3S8962 Datasheet를 다운 받는다. Link : http://www.luminarymicro.com/products/LM3S8962.html#Datasheet 위의 링크에서 datasheet 및 각종 App Note, Software tool 등을 다운 받을 수 있다. Datasheet를 토대로 LM3S8962 I2C 인터페이스에 대하여 분석해 보도록 한다. Inter-Integrated Circuit (I2C) Interface I2C 버스는 two-wire를 통해 양방향 데이터 통신을 제공하고 serial memory, networking devices, LCDs, tone generators 등과.. 더보기
[LM3S8962] ADC Stellaris 제품군 ARM의 ADC모듈 기능 - 단일 및 치동 입력 구성 - 내부 온도 센서 - 샘플링 속도 500Ksps - 유연하게 구성 가능한 아날로그 to 디지탈 변환 - 플랙시블 트리거 컨트롤 : Controller(software), Timers, Analog Comparators, PWM, GPIO - 내부전압 3v 레퍼런스 이용 - 아날로그 회로의 파워와 그라운드는 디지털 파워와 그라운드와 구분되어 진다. 더보기
[LM3S8962] WatchDog 워치독 타이머 모듈의 기능은 시스템이 중단되지 않도록하는 것이다. 와치도그 타이머 모듈은 32bit 다운 카운터, programmable load register, interrupt generationn logic, locking register로 구성되어 있다. 워치독이란것은 말 그대로 해석하면 감시견이라고 할수 있다. 시스템이 이상이 생겨 비정상적으로 동작하면 자동으로 시스템을 리셋하여 다시 정상적으로 프로그램이 동작하도록 해주는 기능이다. 동작원리는 리셋이 가능한 타이며이며 타이머가 시간이 오버될때 리셋이 되도록 구성되어 있습니다. 그래서 워치독타이머를 활성화 한 상태에서 주기적으로 워치독타이머를 계속 초기화 해주어야 한다. 만일 메인 프로그램이 한번 돌때 한번씩 초기화 해준다고 할때 정상적일때는 .. 더보기
[LM3S8962] SysCtl - SysCtl은 디바이스의 클럭을 컨트롤하고 주변기기의 enable을 설정하고 디바이스를 구성하거나 reset시키고 디바이스의 정보를 보여준다. - Power Control 1. 내장 LDO LDO(Low Drop-Out)는 선형 레귤레이터 DC 전원 공급장치의 약자입니다. ARM의 Stellaris 제품군은 안정적으로 제공하기 위해 프로세서 코어와 온칩 주변 기기를 위한 내부 LDC 레귤레이터 통합 1.1 LDC 컨트롤 라이브러리 함수 SysCtlLDOSet - LDO 값 세팅 리셋 후, LDO를 출력 전압의 기본값은 2.50V SysCtlLDOGet - LDO 값 리턴 SysCtlLDOConfigSet - LDO 오류 컨트롤 관리에 사용, 일반적으로 사용되지 않음 2. 클럭제어 2.1 클럭 시스템 .. 더보기
[LM3s8962] GPIO 아래 링크에서 구할 수 있는 자료를 통해서 설명하도록 하겠습니다 자료 출처 링크 : http://www.zlgmcu.com/luminary/exploitation_guide.asp ※ GPIO port (Port A, Port B, Port C, Port D, Port E, Port F, Port G) 총 7개의 포트가 있으며 총 42개의 핀이 사용 가능합니다 ※ GPIO 핀을 세 종류의 모드를 포함한 다양한, 대한 더 많이 구성할 수있습니다 1. Input 모드 2. Output 모드 3. OutputOD (Output OpenDrain) 입력 전압 및 IC의 동작 전압과 다른 출력 전압을 얻고 싶을 때 주로 사용됩니다 스위치 출력이 "1"이 때, 연결이 끊어집니다 4. 클램핑 다이오드 역할은 외부 핀.. 더보기
[LM3S8962] Timer LM3S8962의 Timer에 대해서 알아본다. 우선 예제코드를 다운 받는다. Link : http://www.zlgmcu.com/luminary/exploitation_guide.asp 위의 링크된 사이트에서 timer 관련 파일을 모두 다운 받는다. timer 관련 문서 LM3SLib_Timer.pdf timer 관련 예제 코드 LM3SLib_Timer_16_CapCount.zip LM3SLib_Timer_16_CapTime.zip LM3SLib_Timer_16_OneShot.zip LM3SLib_Timer_16_Periodic.zip LM3SLib_Timer_16_PWM.zip LM3SLib_Timer_32_OneShot.zip LM3SLib_Timer_32_Periodic.zip LM3SLib_T.. 더보기
[LM3S8962] UART driverlib/uart.c driverlib/uart.h 1. UART 이용하기 1.1 UART 전제기능 Stellaris 제품군의 UART 특징 - IrDA를 지원하는 2개의 programmable 16C550-type UARTs 제공 - 16*8 bit receiver FIFO , 16*8 bit transmit FIFO 기능 - Baud rate를 설정 가능 (3.125Mbps까지) - 1/8, 1/4, 1/2, 3/4, 7/8의 FIFO 트리거 레벨 - IrDA serial-IR (SIR) encoder/decoder - DMA interface UARTIFLS - UART Interrupt FIFO Level Select UARTIM - UART Interrupt Mask UARTMIS - .. 더보기
[LM3S8962] SysTick 1. SysTick SysTick의 함수 prototype 1.1 SysTick의 간단한 소개 SysTick은 Cortex-M3 microprocessor의 NVIC controller에서 심플한 타이머의 한 부분 이다. 이것은 RTOS의 주기적인 인터럽트를 제공하기 위한 의도이지만 단순한 타이밍 목적으로도 사용한다. SysTick Interrupt 핸들러는 SysTick Interrupt Clear 소스가 필요하지 않다. SysTick 핸들러가 Call되었을때 자동적으로 처리한다. 1.2 SysTick의 기본 컨트롤/ 인터럽트 컨트롤 SysTickPeriodSet() 기능 SysTick Count의 주기를 세팅 원형 void SysTickPeriodSet(unsigned long ulPeriod) 변수.. 더보기
[LM3S8962] interrupt LM3S8962 Interrupt 예제에 대하여 분석해 보았다. 우선 예제코드를 다운받는다. Link : http://www.zlgmcu.com/luminary/exploitation_guide.asp 위의 링크된 사이트에 가서 3개의 파일 모두를 받는다. 맨 위의 pdf 문서는 interrupt libary를 설명한 문서이고, 아래의 두개의 zip 파일은 예제코드이다. 제1장. 인터럽트 제어 LM3SLib_Interrupt.pdf 문서의 초반부에 함수의 prototype에 대하여 설명하고 있다. 1.1 인터럽트 기본 프로그래밍 방법 Stellaris는 인터럽트를 위해 다음과 같은 Periperal Driver library가지고 있다. 1. Periperal 활성화 관련 인터럽트를 사용하기 위해서는 에.. 더보기
[LM3S8962] Bit band, 레지스터 접근법 Cortex-M3에서 제공되는 Bit Banding 기능을 알아보고 기존의 방식과 속도면에서 어떤 차이점이 있는지 어셈크드를 통해 알아보았다. 1. Bit Banding이란? Bit banding은 간단하게 말하면 bit operation을 빠르게 해줄 수 있는 방법을 제공, 즉 어떤 레지스터의 특정 비트를 1이나 0으로 변경하는 것을 매우 빠르고 쉽게 해줄 수 있는 것. 이것이 가능한 것은 하드웨어적으로 어떤 특정 비트를 각각 어떤 특정 어드레스에 할당을 해놓고 있는 것이다. SRAM부분과 Peripheral 부분에 이상한 형태의 내용이 있는 것이 보인다. bit band region 이라는 것이 있고, bit band alias라는 내용이 있다. 각각 공간은 1MB와 32MB가 잡혀 있다. alias.. 더보기
[LM3S8962] Microcontroller brief 더보기
[LM3S8962] Linker configuration file (qs_ek-lm3s8962.icf)의 분석 "C:\StellarisWare\boards\ek-lm3s8962\qs_ek-lm3s8962"에 있는 "qs_ek-lm3s8962.icf"를 분석해 보았다. //***************************************************************************** // // qs_ek-lm3s8962.icf - Linker configuration file for qs_ek-lm3s8962. // // Copyright (c) 2007-2009 Texas Instruments Incorporated. All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying th.. 더보기
[LM3S8962] 최신 라이브러리 다운로드 [1] Luminary 공식 웹사이트(http://www.luminarymicro.com/) 에서 최신 드라이버 라이브러리를 다운로드 한다. StellarisWare complete Firmware Development Package(SW-LM3S-5450)을 다운로드한다. Link : http://www.luminarymicro.com/products/software_updates.html [2] 기본 설정대로 install 한다. C:\StellarisWare 에 기본으로 install된다. 더보기
[LM3S8962] 'driverlib.a' Build 1. IAR EWARM을 시작하고 File 메뉴에서 "New -> Workspace"를 클릭하여 새로운 Workspace를 생성한다. 2. Project 메뉴에서 "Add Existing Project..."를 선택하고, "C:\StellarisWare\driverlib"에서 "driverlib.ewp" 프로젝트 파일을 추가한다. 정상적으로 등록되면 아래 처럼 등록된다. 3. "C:\StellarisWare\driverlib"에 "LM3S_DriverLib.eww" 로 Worksapce를 저장한다. 4. "driverlib - Debug"에 오른쪽 마우스를 클릭하여 "Options..."를 선택하고, 필요한 옵션을 지정한다. ● "Generral Options" Category에서 "Target" 탭을 .. 더보기