[TI]/LM3S89622011. 11. 14. 15:15

LM3S8962 ADC 테스트

LM3S8962 ADC 테스트


Sample rate of 500 thousand samples/second

Converter uses an internal 3-V reference



LM3S8962 ADC블록도





LM3S8962 ADC초기화 함수

//ADC Initialize

void AdcInit(void)

{

SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);      //ADC enable   


//ADCProcessorTrigger()에서 ADC 시작. 프로세서 트리거가 일어날때 작동한다.   

ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);   

//ADC0의 sequence를 구성한다.sequence number 0인 ADC를 single ended mode로 setting   

ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_IE | ADC_CTL_END | ADC_CTL_CH0);   

//ADC를 사용 가능하게 해준다.   

ADCSequenceEnable(ADC_BASE, 0);  

}



LM3S8962 ADC Read 함수

//Read ADC Value

unsigned int AdcRead(unsigned char port)

{

unsigned long cnt;

unsigned long adc_result = 0;

ADCProcessorTrigger(ADC_BASE, 0);   


//sample sequence 가 완료될때 까지 대기한다.   

while(!ADCIntStatus(ADC_BASE, 0, false)){}  

ADCSequenceDataGet(ADC_BASE, port, &adc_result);


return adc_result;

}





LM3S8962 ADC Test 예제 소스코드


//-----------------------------------------------------------------------------

int main(void)

{

    unsigned long adc_result;

//시스템 초기화

SystemInit();

//LED포트 초기화

Led1Init();

Led1On();


DebugInit(BAUD_115200);

DebugPrint("LM3S8962 EVM ADC Test Program.\r\n");

//ADC 초기화

AdcInit();

while(1)

{

adc_result = AdcRead(0);

                DebugPrint("%ld\r\n", adc_result);

Delay(100);

}

}

//-----------------------------------------------------------------------------









LM3S8962 Internal Temperature Sensor

SENSO = 2.7 - ((T + 55) / 75)

Posted by nexp

댓글을 달아 주세요

[TI]/LM3S89622011. 9. 1. 11:31

[LM3S8962 EVM] 이더넷 포팅 하기 정리

[LM3S8962 EVM] 이더넷 포팅 하기 정리

먼저 lwip스택을 사용하기 위해 TI에서 제공하는 third_party, utils 폴더를 drv폴더에 복사 한다.


util/lwiplib.c 를 프로젝트에 삽입한다.
컴파일 하면 아래 링크가 없다고 나온다.
#include "lwip/opt.h"

패스 설정에서 아래와 같이 잡아 주면 된다.
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.2\src\include\

또 아래 링크도 없다고 나오는데...
#include "lwipopts.h"

TI예제 폴더에 보면 정의되어 있으므로 현재 프로젝트 루트로 복사 한다.

이후 아래 링크 에러가 발생하며 각각 패스를 잡아 주면 된다.
#include "arch/cc.h"
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.2\ports\stellaris\include\

#include "lwip/ip.h"
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.2\src\include\ipv4

결론적으로 아래 패스를 잡아 주면 된다.
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.2\src\include\
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.2\ports\stellaris\include\
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.2\src\include\ipv4


\01_drv\driverlib\rom_map.h
파일을 최신으로 업데이트 해야 에러가 발생하지 않는다.


startup_ewarm.c

    lwIPEthernetIntHandler,                      // Ethernet





Posted by nexp

댓글을 달아 주세요

[TI]/LM3S89622010. 5. 23. 19:54

[LM3S8962 EVM] 웹서버 테스트

[LM3S8962 EVM] 웹서버 테스트



LM3S8962는 Cortex-M3코어에 Ehternet MAC + Phy가 포함되어 있는 MCU로 상당히 간단하게 임베디드 이더넷을 구현할 수 있다.
무료 TCP/IP protocol stack 인 lwIP를 이용해서 임베디드 웹서버 테스트를 진행 했다.
간단한 스텍임에도 속도 빠르고 여러가 다양한 프로토콜을 지원하고 있다.

먼저 luminary micro에서 포팅해서 third party로 제공하는  lwip-1.3.0폴더를 복사하고 패스를 잡아 준다.

$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\src\include\
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\src\include\ipv4\
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\apps\httpserver_raw
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\ports\stellaris\include




웹페이지를 제작하고 롬파일 시스템을 제작하면 된다. 롬파일 시스템은 여러 툴이 있지만 makefsfile를 이용하면 쉽게 제작 할 수 있다.



LM3S8962 WebServer 테스트 동영상




예제 소스코드
LM3S8962 이더넷 관련 초기화

    // LM3S8962 이더넷 Controller 초기화 및 리셋
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
    SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);

    // Ethernet LED 초기화
    //  LED0        Bit 3   Output
    //  LED1        Bit 2   Output

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3,  GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);


    // Enable processor interrupts.
    IntMasterEnable();


MAC어드레스는 임의로 할당했다. lwIPInit() 함수로 설정 가능하다. IP는 IP공유기를 이용하므로 DHCP에서 자동으로 할당받도록 했다. 예전의 DHCP프로토콜은 공유기에 따라 고려해야 할 사항이 많았었는데... 요즘에는 상다히 간단히 처리 가능하다.

    pMACArray[0] = 1;
    pMACArray[1] = 2;
    pMACArray[2] = 3;
    pMACArray[3] = 4;
    pMACArray[4] = 5;
    pMACArray[5] = 6;
 
   
    // MAC초기화 및 DHCP 사용 설정
    lwIPInit(pucMACArray, 0, 0, 0, IPADDR_USE_DHCP); 


LM3S8962 웹서버 초기화

    // Initialize a sample httpd server.
    httpd_init();

    // Pass our tag information to the HTTP server.
    http_set_ssi_handler(SSIHandler, g_pcConfigSSITags,  NUM_CONFIG_SSI_TAGS);

    // Pass our CGI handlers to the HTTP server.
    http_set_cgi_handlers(g_psConfigCGIURIs, NUM_CONFIG_CGI_URIS);

    // Initialize IO controls
    io_init();


main 소스코드

/*
 - LM3S8962 Webserver Test
*/

#include "system.h"
#include "serial.h"
#include "ether_io.h"

int main()
{
 SystemInit(); 

 Led1Init();
 Led1Off();
 
 Led2Init();
 Led2Off(); 

 //Serial Init
 DebugInit(BAUD_115200);
 DebugPrint("LM3S8962 Ethernet Test Program.\r\n");

 EtherNetInit();
 
 DebugPrint("Ethernet I/O Init\r\n");
 
 while(1)
 {
  
  ProcessWebServer();
 }
}

Posted by nexp

댓글을 달아 주세요

  1. ykryden

    항상 멋진 물건을 만들어 내시는 주인장님 대단하십니다^^

    저는 lm3s8962로 http프로토콜을 구현해서 웹서버 파싱을 해보고 싶은데

    혹시 한번 테스트해주실 수는 없으신지요...

    제가 내공이 워낙 딸린 관계로 맨땅에 헤딩하려니 죽겠습니다..ㅠㅠ

    2010.05.28 23:52 [ ADDR : EDIT/ DEL : REPLY ]
  2. STM32F103 + Ethernet(10/100) 개발보드를 구매하고 싶습니다. (sdkim365@gmail.com)

    2010.09.19 13:09 [ ADDR : EDIT/ DEL : REPLY ]
  3. 비밀댓글입니다

    2010.09.21 11:23 [ ADDR : EDIT/ DEL : REPLY ]
  4. 각이

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.06.19 23:39 [ ADDR : EDIT/ DEL : REPLY ]
  5. 승진

    관리자의 승인을 기다리고 있는 댓글입니다

    2012.05.22 09:40 [ ADDR : EDIT/ DEL : REPLY ]

[TI]/LM3S89622010. 5. 23. 17:07

[LM3S8962 EVM] COM26T2844 TFT LCD 테스트

[LM3S8962 EVM] COM26T2844 TFT LCD 테스트



[LCD-EXP EVM]
보드를 이용하여 COM26T2844 TFT LCD테스트 진행을 했다. LM3S8962는 MAC, Phy가 포함되어 있으므로 추후 이더넷을 이용하여 TFT LCD제어에 사용할 예정이다.

LCD-EXP보드의 핀맵



LM3S8962 보드 핀맵



핀맵 정의
//LM3S8962 EVM TFT LCD Pin Map defination
#define LCD_EN_BIT      BIT1
#define LCD_EN_PORT      PORTG
#define LCD_ENABLE()     Cbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_DISABLE()     Sbi(LCD_EN_PORT, LCD_EN_BIT)

#define LCD_RST_BIT      BIT6
#define LCD_RST_PORT     PORTC
#define LCD_RST_ON()     Sbi(LCD_RST_PORT, LCD_RST_BIT)
#define LCD_RST_OFF()     Cbi(LCD_RST_PORT, LCD_RST_BIT)

#define LCD_RS_BIT      BIT7
#define LCD_RS_PORT      PORTC
#define LCD_RS_OFF()     Cbi(LCD_RS_PORT, LCD_RS_BIT)
#define LCD_RS_ON()      Sbi(LCD_RS_PORT, LCD_RS_BIT)

define LCD_WR_BIT      BIT7
#define LCD_WR_PORT      PORTA
#define LCD_WR_OFF()     Cbi(LCD_WR_PORT, LCD_WR_BIT)
#define LCD_WR_ON()      Sbi(LCD_WR_PORT, LCD_WR_BIT)

#define LCD_RD_BIT      //BIT6
#define LCD_RD_PORT      //PORTA
#define LCD_RD_OFF()     //Cbi(LCD_RD_PORT, LCD_RD_BIT)
#define LCD_RD_ON()      //Sbi(LCD_RD_PORT, LCD_RD_BIT)

#define LCD_BL_BIT      BIT0
#define LCD_BL_PORT      PORTF
#define LCD_BL_OFF()     Cbi(LCD_BL_PORT, LCD_BL_BIT)
#define LCD_BL_ON()      Sbi(LCD_BL_PORT, LCD_BL_BIT)


LM3S8962 TFT LCD(COM26T2844 ) 테스트 동영상


Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.06.23 14:44 [ ADDR : EDIT/ DEL : REPLY ]
  2. 박현일

    전자재품 특허등록받은 사람입니다 제품을 만들려고 하는데 모듈에 관하여 상담좀 하고 싶습니다 연락좀 부탁 드리겠습니다 010-8239-3737

    2010.06.23 14:45 [ ADDR : EDIT/ DEL : REPLY ]

[TI]/LM3S89622010. 5. 23. 13:01

[LM3S8962 EVM] 보드제작 - LM3S8962 관련 자료

[LM3S8962 EVM] 보드제작 - LM3S8962 관련 자료


Luminary Micro Cortex-M3 LM3S8962 EVM 보드를 제작 했다. [M-Type EVM] 표준으로 제작해 기존 보드와 호환이 되도록 했다.
LM3S8962는 50Mhz Cortex-M3 코어에 Ethernet MAC, Phy를 포함하고 256k Flash, 64k Ram으로 이더넷 제어용으로 상당히 편리하다.






LM3S8962 확장 테스트 보드





LM3S8962 테스트 동영상



LM3S8962 TFT LCD테스트



LM3S8962 회로도




on board LED - PE0/PWM4, PE1/PWM5


on Board Swtich - PG0, UART




Posted by nexp

댓글을 달아 주세요

  1. 이규대

    저 궁금한게 있어 이렇게 덧글을 남깁니다.
    위에서 쓰신 RJ-45 말인데요.. 모델명 좀 알 수 있을까요? 트랜스포머 내장되어 있는건지 아닌지 알고 싶습니다.

    2010.07.23 13:58 [ ADDR : EDIT/ DEL : REPLY ]