embeded/Cortex-M4 Ti2016. 4. 12. 14:03

LM3S1607 사용중인데 단종시켜 버린진 좀 오래되었고

이제 시중에서도 재고 찾기가 힘들어지고 있어서

호환제품으로 가려는데 pin-to-pin 호환 모델은 없고

홈페이지에서 찾아보니 LM4S에서 개명된 TM4C 계열로(cortex-M4) 갈아타야 할 듯


TM4C1231E6PM

LM4F110E5QR 


아무래도 개발환경에서 신형 칩으로는 이름이 없을수도 있으니.. TM4C 대신 LM4F계열로 찾아도 되겠지?

----


LM3S1607 (NRND)

Stellaris LM3S Microcontroller

Stellaris LM3S1607 Microcontroller Data Sheet (Rev. H) 

Stellaris LM3S Sandstorm-, Fury-, and DustDevil-Class Microcontrollers Errata 

Stellaris DustDevil-Class Product Change Notice 

Stellaris Product Change Notice (PCN), Sept 2009 

ARM Cortex-M3 Errata (r1p1 and r2p0) 

LM3S1607 RevA Product Change Notice (PCN), May 2008 

[링크 : http://www.ti.com/product/lm3s1607]


Overview for Control + Automation MCUs

[링크 : http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/c2000_performance/control_automation/overview.page]


TM4C12x ARM® Cortex®-M4F core-based high-performance MCUs


[링크 : http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/c2000_performance/control_automation/tm4c12x/overview.page]



TM4C1231E6PM (ACTIVE)

High performance 32-bit ARM® Cortex®-M4F based MCU

Tiva™ C Series TM4C1231E6PM Microcontroller Data Sheet (Rev. E) 

Tiva C Series TM4C123x Microcontrollers Silicon Revisions 6 and 7 Errata (Rev. E) 

Stellaris LM4F110E5QR Rev A1/A3/B0 Errata (Rev. H) 

ARM® Cortex™-M4F Errata (v3) 

[링크 : http://www.ti.com/product/TM4C1231E6PM]



아무튼.. 50MHz -> 80MHz로 성능 향상.. 일려나?



+

ST에서도 있긴한데.. 애네는 active..

ti가 유별난건가..


[링크 : http://www2.st.com/content/st_com/.../stm32-32-bit-arm-cortex-mcus/stm32f1-series.html]

[링크 : http://www2.st.com/.../stm32f1-series/stm32f103.html?querycriteria=productId=LN1565]

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

TM4C1231E6PM ADC  (0) 2016.05.20
tm4c1231e6pm / lm3s1607 타이머 차이점...?  (0) 2016.05.06
keil/c99 에서 __inline ...?  (0) 2016.04.12
tm4c1231e6pm DIV400 ?  (0) 2016.04.12
cortex-m4용 ti 라이브러리 tivaware  (0) 2016.04.12
Posted by 구차니
Linux2016. 4. 12. 11:00


$ sudo chvt 1

$ chvt 1

Couldn't get a file descriptor referring to the console

$ tty

/dev/pts/3



음? 무슨 차이지?
그리고 왜... 안바뀌는거야?


/etc/init$ ls -al tty*
-rw-r--r-- 1 root root 348  4월 17  2012 tty1.conf
-rw-r--r-- 1 root root 333  4월 17  2012 tty2.conf
-rw-r--r-- 1 root root 333  4월 17  2012 tty3.conf
-rw-r--r-- 1 root root 333  4월 17  2012 tty4.conf
-rw-r--r-- 1 root root 232  4월 17  2012 tty5.conf
-rw-r--r-- 1 root root 232  4월 17  2012 tty6.conf

아무튼.. 6개의 가상 터미널은 /etc/init에서 tty?.conf를 통해 뜨게 되는건가?

/etc/init$ cat tty1.conf

# tty1 - getty

#

# This service maintains a getty on tty1 from the point the system is

# started until it is shut down again.


start on stopped rc RUNLEVEL=[2345] and (

            not-container or

            container CONTAINER=lxc or

            container CONTAINER=lxc-libvirt)


stop on runlevel [!2345]


respawn

exec /sbin/getty -8 38400 tty1




[링크 : http://computernetworkingnotes.com/linux-file-system-basic-commands/login-linux-terminal.html]

[링크 : http://computernetworkingnotes.com/system-administrations/inittab.html]

'Linux' 카테고리의 다른 글

cp -Lr  (0) 2016.06.14
libxml 크로스컴파일. (shared library)  (0) 2016.06.13
리눅스 콘솔에서 한글보기  (0) 2016.04.11
AMD avx 리눅스 식별자  (0) 2016.03.08
리눅스용 비디오 편집 프로그램  (0) 2016.03.02
Posted by 구차니
embeded/Cortex-M4 Ti2016. 4. 12. 08:54

욕같애...

stellarisware가 이름은 더 이뻤는데 흑.. ㅠㅠ



아마도.. 조만간 해야 할일..

stellarisware -> tivaware migration ㅠㅠ




[링크 : http://www.ti.com/lit/an/spma050a/spma050a.pdf]

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

TM4C1231E6PM ADC  (0) 2016.05.20
tm4c1231e6pm / lm3s1607 타이머 차이점...?  (0) 2016.05.06
keil/c99 에서 __inline ...?  (0) 2016.04.12
tm4c1231e6pm DIV400 ?  (0) 2016.04.12
lm3s1607 대체제 검색중..  (0) 2016.04.12
Posted by 구차니
embeded/arduino(genuino)2016. 4. 11. 18:33

믿을만 한건가...?


// Internal Temperature Sensor // Example sketch for ATmega328 types. // // April 2012, Arduino 1.0 void setup() {  Serial.begin(9600);  Serial.println(F("Internal Temperature Sensor")); } void loop() {  // Show the temperature in degrees Celcius.  Serial.println(GetTemp(),1);  delay(1000); } double GetTemp(void) {  unsigned int wADC;  double t;  // The internal temperature has to be used  // with the internal reference of 1.1V.  // Channel 8 can not be selected with  // the analogRead function yet.  // Set the internal reference and mux.  ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));  ADCSRA |= _BV(ADEN);  // enable the ADC  delay(20);            // wait for voltages to become stable.  ADCSRA |= _BV(ADSC);  // Start the ADC  // Detect end-of-conversion  while (bit_is_set(ADCSRA,ADSC));  // Reading register "ADCW" takes care of how to read ADCL and ADCH.  wADC = ADCW;  // The offset of 324.31 could be wrong. It is just an indication.  t = (wADC - 324.31 ) / 1.22;  // The returned temperature is in degrees Celcius.  return (t); }


실내온도 25도

손으로 대면 약간 따스함이 느껴지는걸 봐서는 37도~38도 정도 되지 않을까 싶은데...

19.4도는 손을 댄 시점..

20.2

20.2

20.2

21.1

20.2

20.2

20.2

21.1

20.2

21.1

20.2

20.2

19.4

19.4

18.6

19.4

19.4

20.2

19.4

20.2

21.1

20.2

20.2

20.2

20.2

20.2

20.2

21.1

20.2

21.1

20.2

21.1

20.2


그냥 레지스터 출력

349.0

349.0

349.0

348.0

348.0

348.0

348.0

348.0

349.0

349.0

348.0

349.0

349.0 


[링크 : http://playground.arduino.cc/Main/InternalTemperatureSensor]

2016/03/31 - [embeded/arduino(genuino)] - 아두이노 나노 내장 온도센서



아무튼.. 아래 계산식에 의해 349를 계산해보면

349 = (Vin * 1024) / 1.1

Vin = (349 * 1.1) / 1024

Vin = 0.37490234375 = 374mV 인가?



대충.. 10bit니까 1024.. rev가 1.1로 내장 전원을 쓰니

단순하게(?) 출력으로 나오는 값에서 10으로 나눠주면 되려나?

그런데.. k랑 Tos값은 제품 테스트의 일부로 EEPROM에 테스트 해서 저장해야 한다고?!?!


[링크 : http://www.atmel.com/images/...328p_datasheet_complete.pdf]



[링크 : https://www.arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf]


AREF는 0.0V로 연결되서.. 코드에서 내부 1.1V로 설정한 듯?


ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));

Internal 1.1V Voltage Reference with external capacitor at AREF pin



회로도에서 찾아 보니.. AVcc는 5V랑 묶여 있으니..

데이터시트에서 해당내용을 찾아 변경하면..


음.. 너무 빠듯하게 나오네..


ADMUX = (_BV(REFS0) | _BV(MUX3)); // (_BV(REFS1) | 


79.0

79.0

79.0

79.0

79.0

79.0

79.0 



+

offset도 .. gain도 많이 다르네?


static const float offset = 335.2; // change this by calibration result

static const float gain = 1.06154;

[링크 : http://www.avdweb.nl/arduino/hardware-interfacing/temperature-measurement.html]

Posted by 구차니
Linux2016. 4. 11. 14:28

어? 입력도 되나 모르겠네?

음.. xterm에서 한글에 나오게 하는게 아니라

jfbterm 이라는 걸 통해서 하는거라 해당 세션을 종료하면 한글이 안나온다는데 흐음..


[링크 : http://bakyeono.net/post/2015-12-31-linux-hangul-console.html]

[링크 : https://jfbterm.osdn.jp/]

'Linux' 카테고리의 다른 글

libxml 크로스컴파일. (shared library)  (0) 2016.06.13
chvt - change Virtual Termianl  (0) 2016.04.12
AMD avx 리눅스 식별자  (0) 2016.03.08
리눅스용 비디오 편집 프로그램  (0) 2016.03.02
objdump  (0) 2016.02.18
Posted by 구차니
embeded/arduino(genuino)2016. 4. 9. 23:27

올... 이미 다 설정이 있네? ㄷㄷ

조금 번거로워도.. 거상인 GS-08A Atmega8 을 이걸 가지고

조금 수정해서

3.3V 용으로 퓨즈비트랑 설정한 다음 stk-500 계열로 avrisp 이용해서 구으면 될려나?




[링크 : https://learn.sparkfun.com/tutorials/using-the-arduino-pro-mini-33v]

[링크 : https://www.sparkfun.com/products/11114]

Posted by 구차니
파일방2016. 4. 8. 09:47

몰래 채팅을 위해서 리눅스에 깔아 볼까했는데 ㄷㄷㄷ

이걸 이용해서 리눅스 서버 상태 불러오는 짓을 할수 있다니!!


[링크 : http://truefeel.tistory.com/224]  <<<

    [링크 : http://reqres.tistory.com/25]


[링크 : https://github.com/vysheng/tg]

    [링크 : https://telegram.org/apps]

'파일방' 카테고리의 다른 글

캐논 셔터 컷수 확인하기  (0) 2016.04.26
ti - energia  (0) 2016.04.14
avidemux 간단한 사용법 / 리눅스가 낫네!  (0) 2016.03.28
notepad++ for linux?  (0) 2016.03.22
photostitcher  (0) 2016.03.15
Posted by 구차니
embeded/arduino(genuino)2016. 4. 7. 10:25

기본값으로 설치되었다는 전제하에

아래 경로에 플래시 구울때 사용하는 설정들이 존재한다.


아두이노는 기본적으로 USB 파워나 외부 전원을 통해(7805) 5V를 공급하도록 되어있는데

7805를 들어내거나 결선을 바꾸거나 외부 Vcc에다가 3.3V를 넣어 주고

클럭을 다운시켜 작동하면 좀 간편할지도?


아니면 프로미니 3.3V 이런거라던가?


ATmega328 running at 8MHz with external resonator (0.5% tolerance)

Low-voltage board needs no interfacing circuitry to popular 3.3V devices and modules (GPS, accelerometers, sensors, etc)

[링크 : https://www.sparkfun.com/products/11114]


C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt

##############################################################


nano.name=Arduino Nano


nano.upload.tool=avrdude

nano.upload.protocol=arduino


nano.bootloader.tool=avrdude

nano.bootloader.unlock_bits=0x3F

nano.bootloader.lock_bits=0x0F


nano.build.f_cpu=16000000L

nano.build.board=AVR_NANO

nano.build.core=arduino

nano.build.variant=eightanaloginputs


## Arduino Nano w/ ATmega328

## -------------------------

nano.menu.cpu.atmega328=ATmega328


nano.menu.cpu.atmega328.upload.maximum_size=30720

nano.menu.cpu.atmega328.upload.maximum_data_size=2048

nano.menu.cpu.atmega328.upload.speed=57600


nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF

nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA

nano.menu.cpu.atmega328.bootloader.extended_fuses=0x05

nano.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex


nano.menu.cpu.atmega328.build.mcu=atmega328p


## Arduino Nano w/ ATmega168

## -------------------------

nano.menu.cpu.atmega168=ATmega168


nano.menu.cpu.atmega168.upload.maximum_size=14336

nano.menu.cpu.atmega168.upload.maximum_data_size=1024

nano.menu.cpu.atmega168.upload.speed=19200


nano.menu.cpu.atmega168.bootloader.low_fuses=0xff

nano.menu.cpu.atmega168.bootloader.high_fuses=0xdd

nano.menu.cpu.atmega168.bootloader.extended_fuses=0x00

nano.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex


nano.menu.cpu.atmega168.build.mcu=atmega168 


[링크 : https://forum.arduino.cc/index.php?topic=236128.0]



Arduino Duemilanove or Nano w/ ATmega328


Low Fuse 0xFF

High Fuse 0xDA

Extended Fuse 0x05 


[링크 : http://www.codingwithcody.com/2011/04/arduino-default-fuse-settings/]

[링크 : http://www.engbedded.com/fusecalc/] 퓨즈비트 계산기



+

어제 퇴근길에 본거 겨우 링크 찾았네..

[링크 : http://www.ba0sh1.com/tutorial-3-3v-hacking-for-arduino-nano/]

Posted by 구차니
embeded/arduino(genuino)2016. 4. 7. 09:58

툴에서 설정을 해놨다면 그걸 이용해서

스케치 - 프로그래머를 이용해 업로드

를 함으로서 stk500 호환 usbisp 등을 이용해 업로드가 가능해진다.





[링크 : https://www.arduino.cc/en/Hacking/Bootloader?from=Tutorial.Bootloader]


Tools->Boards->Your Board

Tools->Programmer->Your Programmer

Sketch->Upload Using a Programmer

[링크 : https://www.arduino.cc/en/Hacking/Programmer]

Posted by 구차니
embeded/arduino(genuino)2016. 4. 6. 23:41



 

예전에 가지고 있던 녀석으로 구워볼려고 했더니..

프로그래머 이녀석은... 굽는 용도가 아닌가? 안되지 왜?

(어쩌면 보드를 정해줘서 그런걸지도..)


아무튼 STK500 개발보드로 하니 USBISP로 구워진다

[링크 : http://www.us-technology.co.kr/product/product_main.asp?mode=5&smode=5]



근데.. 메시지가 머이리 길어?

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500 -PCOM6 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m


avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         Copyright (c) 2007-2009 Joerg Wunsch


         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"


         Using Port                    : COM6

         Using Programmer              : stk500

         AVR Part                      : ATmega328P

         Chip Erase delay              : 9000 us

         PAGEL                         : PD7

         BS2                           : PC2

         RESET disposition             : dedicated

         RETRY pulse                   : SCK

         serial program mode           : yes

         parallel program mode         : yes

         Timeout                       : 200

         StabDelay                     : 100

         CmdexeDelay                   : 25

         SyncLoops                     : 32

         ByteDelay                     : 0

         PollIndex                     : 3

         PollValue                     : 0x53

         Memory Detail                 :


                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------

           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff

           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff

           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00


         Programmer Type : STK500V2

         Description     : Atmel STK500

         Programmer Model: AVRISP

         Hardware Version: 2

         Firmware Version Master : 2.10

         Vtarget         : 5.0 V

         SCK period      : 43.5 us


avrdude: AVR device initialized and ready to accept instructions


Reading | ################################################## | 100% 0.09s


avrdude: Device signature = 0x1e950f

avrdude: erasing chip

avrdude: reading input file "0x3F"

avrdude: writing lock (1 bytes):


Writing | ################################################## | 100% 0.04s


avrdude: 1 bytes of lock written

avrdude: verifying lock memory against 0x3F:

avrdude: load data lock data from input file 0x3F:

avrdude: input file 0x3F contains 1 bytes

avrdude: reading on-chip lock data:


Reading | ################################################## | 100% 0.03s


avrdude: verifying ...

avrdude: 1 bytes of lock verified

avrdude: reading input file "0x05"

avrdude: writing efuse (1 bytes):


Writing | ################################################## | 100% 0.03s


avrdude: 1 bytes of efuse written

avrdude: verifying efuse memory against 0x05:

avrdude: load data efuse data from input file 0x05:

avrdude: input file 0x05 contains 1 bytes

avrdude: reading on-chip efuse data:


Reading | ################################################## | 100% 0.03s


avrdude: verifying ...

avrdude: 1 bytes of efuse verified

avrdude: reading input file "0xDA"

avrdude: writing hfuse (1 bytes):


Writing | ################################################## | 100% 0.03s


avrdude: 1 bytes of hfuse written

avrdude: verifying hfuse memory against 0xDA:

avrdude: load data hfuse data from input file 0xDA:

avrdude: input file 0xDA contains 1 bytes

avrdude: reading on-chip hfuse data:


Reading | ################################################## | 100% 0.03s


avrdude: verifying ...

avrdude: 1 bytes of hfuse verified

avrdude: reading input file "0xFF"

avrdude: writing lfuse (1 bytes):


Writing | ################################################## | 100% 0.03s


avrdude: 1 bytes of lfuse written

avrdude: verifying lfuse memory against 0xFF:

avrdude: load data lfuse data from input file 0xFF:

avrdude: input file 0xFF contains 1 bytes

avrdude: reading on-chip lfuse data:


Reading | ################################################## | 100% 0.02s


avrdude: verifying ...

avrdude: 1 bytes of lfuse verified


avrdude done.  Thank you.


C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500 -PCOM6 -Uflash:w:C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:i -Ulock:w:0x0F:m 


avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         Copyright (c) 2007-2009 Joerg Wunsch


         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"


         Using Port                    : COM6

         Using Programmer              : stk500

         AVR Part                      : ATmega328P

         Chip Erase delay              : 9000 us

         PAGEL                         : PD7

         BS2                           : PC2

         RESET disposition             : dedicated

         RETRY pulse                   : SCK

         serial program mode           : yes

         parallel program mode         : yes

         Timeout                       : 200

         StabDelay                     : 100

         CmdexeDelay                   : 25

         SyncLoops                     : 32

         ByteDelay                     : 0

         PollIndex                     : 3

         PollValue                     : 0x53

         Memory Detail                 :


                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------

           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff

           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff

           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00


         Programmer Type : STK500V2

         Description     : Atmel STK500

         Programmer Model: AVRISP

         Hardware Version: 2

         Firmware Version Master : 2.10

         Vtarget         : 5.0 V

         SCK period      : 43.5 us


avrdude: AVR device initialized and ready to accept instructions


Reading | ################################################## | 100% 0.09s


avrdude: Device signature = 0x1e950f

avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed

         To disable this feature, specify the -D option.

avrdude: erasing chip

avrdude: reading input file "C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex"

avrdude: writing flash (32670 bytes):


Writing | ################################################## | 100% 0.00s


avrdude: 32670 bytes of flash written

avrdude: verifying flash memory against C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:

avrdude: load data flash data from input file C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:

avrdude: input file C:\Program Files (x86)\Arduino\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex contains 32670 bytes

avrdude: reading on-chip flash data:


Reading | ################################################## | 100% 0.00s


avrdude: verifying ...

avrdude: 32670 bytes of flash verified

avrdude: reading input file "0x0F"

avrdude: writing lock (1 bytes):


Writing | ################################################## | 100% 0.09s


avrdude: 1 bytes of lock written

avrdude: verifying lock memory against 0x0F:

avrdude: load data lock data from input file 0x0F:

avrdude: input file 0x0F contains 1 bytes

avrdude: reading on-chip lock data:


Reading | ################################################## | 100% 0.04s


avrdude: verifying ...

avrdude: 1 bytes of lock verified


avrdude done.  Thank you. 


Posted by 구차니