embeded/Cortex-M4 Ti2016. 9. 28. 20:00

lm3s에서 tm4c로 바꾸었는데.. (아니 바꾸는 중?)

웬지 모르게 uart1의 RX가 5byte buffer(fifo)를 가지고 덜 뱉어내는 기분?


분명히


UARTFIFODisable(UART0_BASE);

UARTFIFODisable(UART1_BASE);


을 해줘서 둘다 fifo를 껐는데도 왜이러지? ㅠㅠ


[링크 : https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/323362]

[링크 : https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/264861]


[링크 : http://www.deyisupport.com/.../an01296-Differences-Between-TM4C123x-and-TM4C129x-MCUs.pdf]

'embeded > Cortex-M4 Ti' 카테고리의 다른 글

tm4c ..어라? hibernate...  (0) 2016.10.20
tm4c123 rtc hibernate module  (0) 2016.09.28
lm3s tm4c 시스템 클럭 차이점  (0) 2016.09.24
ek-tm4c123gxl launchpad 클럭  (0) 2016.09.24
tm4c 에서 8 MHz 클럭으로 adc 작동...  (0) 2016.09.24
Posted by 구차니
embeded/Cortex-M4 Ti2016. 9. 24. 12:19

lm3s1607 메인 클럭 트리

tm4c1231 메인 클럭 트리

PLL 이후 DIV400 이라는 녀석이 추가 되었다.


데이터 시트 상으로는 2_5 이런식으로 되어 있는 클럭으로 설정하면 80MHz를 쓸 수 있을 것 같은데

막상 설정해보니 부팅이 안되네.. 다른 무언가가 있는건가?

(아니면 새로뜬 보드가 잘못 설계되었거나?)


런치패드에서 빌드가 되어서 돌아가는 거 봐서는..

회로 레벨에서 무언가 차이가 있는 건가?

'embeded > Cortex-M4 Ti' 카테고리의 다른 글

tm4c123 rtc hibernate module  (0) 2016.09.28
tm4c uart fifo/buffer 문제  (0) 2016.09.28
ek-tm4c123gxl launchpad 클럭  (0) 2016.09.24
tm4c 에서 8 MHz 클럭으로 adc 작동...  (0) 2016.09.24
lm3s tm4c 내장 온도센서 범위  (0) 2016.09.24
Posted by 구차니
embeded/Cortex-M4 Ti2016. 9. 24. 11:39

데이터 시트 / 메뉴얼? 상에는 일단 16MHz 크리스탈과

하이버네이트 모듈을 위한 32.768KHz 의 크리스탈이 달려있는데


16MHz 짜리는 검은색 반도체 같이 생겨 먹었고

32.768KHz 짜리는 일반적인 깡통형이다.


걍.. 16MHz 짜리 쓸까.. 속편하게..


[링크 : http://www.ti.com/lit/ug/spmu296/spmu296.pdf]






Posted by 구차니
embeded/Cortex-M4 Ti2016. 9. 24. 11:27

와.. 손 데는 줄 -_-


코드는 작동하는데

원인불명으로 온도가 80~90도 정도 까지 3~4초 내로 치솟는다..


근데.. 얘가 ADC 떄문인지 먼진 모르겠는데..

아무튼 ADC 자체가 작동하는 걸봐서는..

System Clock 이라서 OSC와는 별개로 작동하는게 아닌가 싶다.


뜨거워지는 원인을 찾아야겠네...




2016/05/20 - [embeded/Cortex-M4 Ti] - TM4C1231E6PM ADC


'embeded > Cortex-M4 Ti' 카테고리의 다른 글

lm3s tm4c 시스템 클럭 차이점  (0) 2016.09.24
ek-tm4c123gxl launchpad 클럭  (0) 2016.09.24
lm3s tm4c 내장 온도센서 범위  (0) 2016.09.24
lm3s -> tm4c i2c 마이그레이션... 망할!  (2) 2016.09.22
tm4c tivaware 버전관련  (0) 2016.09.01
Posted by 구차니
embeded/Cortex-M4 Ti2016. 9. 24. 11:08

lm3s

2.7V ~ 0.3V

-55C ~ 125C



tm4c

2.5V ~ 0.833V

-40C ~ 85C




예제 소스상에서도

tm4c

    uint32_t pui32ADC0Value[1];

    ui32TempValueC = ((1475 * 1023) - (2250 * pui32ADC0Value[0])) / 10230;


lm3s

    unsigned long ulADC0_Value[1];

    ulTemp_ValueC = ((1475 * 1023) - (2250 * ulADC0_Value[0])) / 10230;



하지만 수식 자체는 변화하지 않았는데


인터넷 뒤져보니 온도가 마이너스로 나온다고 해서 비슷한 유형 발견!

[링크 : https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/427716]

[링크 : https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/277685]


아무튼 실험적으로

ulTemp_ValueC = (1475 - (75 * 33 * ulADC0_Value) / 4096) / 10;

이렇게 쓰긴 해보는데 맞나 모르겠네...



일단 열풍기로 50도 맞추고 측정해 보니까 대충은 맞게 나오는 듯

Posted by 구차니
embeded/Cortex-M4 Ti2016. 9. 22. 11:17

master_slave_loopback.c 파일을 보고 따라해보니 이제야 되는 기분


예전 lm3s 에서는 GPIOPinConfigure() 요런거 쓴적이 없는데 tm4c로 오면서 생긴건가?...

마이그레이션 문서에도 크게 언급된게 없어서 넘어갔었는데

이걸 추가해주니 이제야 i2c가 되네 ㅠㅠ


    //

    // The I2C0 peripheral must be enabled before use.

    //

    SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);


    //

    // For this example I2C0 is used with PortB[3:2].  The actual port and

    // pins used may be different on your part, consult the data sheet for

    // more information.  GPIO port B needs to be enabled so these pins can

    // be used.

    // TODO: change this to whichever GPIO port you are using.

    //

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);


    //

    // Configure the pin muxing for I2C0 functions on port B2 and B3.

    // This step is not necessary if your part does not support pin muxing.

    // TODO: change this to select the port/pin you are using.

    //

    GPIOPinConfigure(GPIO_PB2_I2C0SCL);

    GPIOPinConfigure(GPIO_PB3_I2C0SDA);


    //

    // Select the I2C function for these pins.  This function will also

    // configure the GPIO pins pins for I2C operation, setting them to

    // open-drain operation with weak pull-ups.  Consult the data sheet

    // to see which functions are allocated per pin.

    // TODO: change this to select the port/pin you are using.

    //

    GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2);

    GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3); 


'embeded > Cortex-M4 Ti' 카테고리의 다른 글

tm4c 에서 8 MHz 클럭으로 adc 작동...  (0) 2016.09.24
lm3s tm4c 내장 온도센서 범위  (0) 2016.09.24
tm4c tivaware 버전관련  (0) 2016.09.01
오늘의 지름.. 개발보드  (0) 2016.08.24
TM4C1231E6PM ADC  (0) 2016.05.20
Posted by 구차니
embeded/Cortex-M4 Ti2016. 9. 1. 12:37

음? 2.1을 써도 안되는 내가 바보?!?! ㅠㅠ




TivaWare 1.0 and 1.1 Software defect and StellarisWare code migration issue


[링크 : http://processors.wiki.ti.com/index.php/Tiva_C_Series_TM4C123G_LaunchPad]

Posted by 구차니
embeded/Cortex-M4 Ti2016. 8. 24. 15:11

걍 내가 꿀꺽하게 내 돈으로 지름.

회사에서 구매하려니 금액도 적은데 이것저것 해야 해서 귀찮....



'embeded > Cortex-M4 Ti' 카테고리의 다른 글

lm3s -> tm4c i2c 마이그레이션... 망할!  (2) 2016.09.22
tm4c tivaware 버전관련  (0) 2016.09.01
TM4C1231E6PM ADC  (0) 2016.05.20
tm4c1231e6pm / lm3s1607 타이머 차이점...?  (0) 2016.05.06
keil/c99 에서 __inline ...?  (0) 2016.04.12
Posted by 구차니
embeded/Cortex-M4 Ti2016. 5. 20. 20:01

adc 쓸려면 클럭 소스가 16Mhz 여야 한다는건가?

아니면.. 시스템 클럭이 16Mhz 여야 한다는건가..

예제는 DIV/10 16Mhz.. 아마도 20Mhz 일거 같은데...

XTAL이 16Mhz 이어야 하는 거에 한표인가?



'embeded > Cortex-M4 Ti' 카테고리의 다른 글

tm4c tivaware 버전관련  (0) 2016.09.01
오늘의 지름.. 개발보드  (0) 2016.08.24
tm4c1231e6pm / lm3s1607 타이머 차이점...?  (0) 2016.05.06
keil/c99 에서 __inline ...?  (0) 2016.04.12
tm4c1231e6pm DIV400 ?  (0) 2016.04.12
Posted by 구차니
embeded/Cortex-M4 Ti2016. 5. 6. 18:02

자꾸 이상해서 데이터시트 비교하니..

헐.. 16bit 모드로 2개씩 쓰는게 불가능한건가?


아무튼.. timer match던 interval load던 lm3s에서는 둘다 쪼개져 있던게 

tm4c에서는 하나로 합쳐져 있다...


얘는 lm3s1607

#define TIMER_CFG_16_BIT_PAIR   0x04000000  // Two 16-bit timers


// Set the global timer configuration.

HWREG(ulBase + TIMER_O_CFG) = ulConfig >> 24; 

CFG에 24비트 쉬프트 해서 하는데.. GPTMCFG의 값이 그러면...

0x4로 16bit timer 로 설정되고..





얘는 tm4c1231e6pm


#define TIMER_CFG_SPLIT_PAIR     0x04000000  // Two half-width timers


HWREG(ui32Base + TIMER_O_CFG) = ui32Config >> 24;



얘도.. 쪼개서 쓰는게 있긴한데...


+

되긴 되는데.. 클럭의 차이로 인해서(50MHz / 80Mhz) 타이머 load 값에 차이가 생기니까..

그게 문제인듯...

50,000,000 를 /1000 하면 50,000 으로 65535를 안넘는데

80,000,000 을 /1000 하면 80,000 으로 65525를 넘어서서 오작동 하는 듯...

아무튼 프리스케일러 써봐야하나...

'embeded > Cortex-M4 Ti' 카테고리의 다른 글

오늘의 지름.. 개발보드  (0) 2016.08.24
TM4C1231E6PM ADC  (0) 2016.05.20
keil/c99 에서 __inline ...?  (0) 2016.04.12
tm4c1231e6pm DIV400 ?  (0) 2016.04.12
lm3s1607 대체제 검색중..  (0) 2016.04.12
Posted by 구차니