음.. eeprom 자체에 바로 넣을수 있는 녀석도 있었다는 사실을 발견!

#define  PROGMEM   __ATTR_PROGMEM__
#define  EEMEM   __attribute__((section(".eeprom")))

[링크 :  http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html]
[링크 :  http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html]   

[링크 : http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=38417]

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

AVT FFT + DAC = 보청기?  (0) 2012.01.18
AVR TWI 예제  (0) 2012.01.11
AVR ATmega용 JTAG과 AVR32 호환성?  (0) 2011.12.29
ATMEL AVR 시리즈별 플래시 / 메모리 용량  (2) 2011.12.29
avr ddr pin port  (0) 2011.12.28
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 12. 29. 22:45
혹시나 AVR32에서도 ISP를 쓸수있나 찾아봤더니
데이터 시트에서도 ISP 검색은 하나도 안나와고 JTAG만 나오는데..
This is not for AVR32.
AVR32 is JTAG device and Atmel's Jtag mkII required.
While there are many mkII compatible devices for AVR8 the protocall and commands for supporting AVR32 are not known, so original mkII is the only choice at this time..... 

[링크 : http://www.edaboard.com/thread95651.html

JTAG도 ATmega용은 대부분 AT90, ATmega 시리즈만 지원한다고 되어 있다.
AVR 마이크로 컨트롤러 중에서
AT90CAN128,
ATmega128, ATmega16, ATmega162,  ATmega169, ATmega32, ATmega323, ATmega64만 지원합니다. 
 
[링크 : http://devicemart.co.kr/goods/view.php?seq=27471

아무튼, AVR32을 지원하다는 JTAG은 조금더 비싸긴한데..
AVR JTAG과 AVR32 JTAG을 구분해서 포트를 만들어 놓았고
VCC와 RST 관련이 조금 다른것 봐서는 호환이 안될수도 있을것 같긴한데...
써보기 전에는 알수도 없고... 써볼지도 모르는 상황이라 흐음...


[링크 : http://devicemart.co.kr/goods/view.php?seq=29653] 

흐음.. AVR JTAG MKII 를 검색해보니 아래의 하드웨어 지원목록이 나오는데.. 다른넘들은 우찌될랑가?
AT32 AT90 ATmega ATtiny ATtiny
AT32AP7000
AT32AP7001
AT32AP7002
AT32UC3A0128
AT32UC3A0256
AT32UC3A0512
AT32UC3A1128
AT32UC3A1256
AT32UC3A1512
AT32UC3A3128


AT32UC3A3128S
AT32UC3A3256
AT32UC3A3256S
AT32UC3A364
AT32UC3A364S
AT32UC3B0128
AT32UC3B0256
AT32UC3B064
AT32UC3B1128
AT32UC3B1256
AT32UC3B164

AT90CAN128
AT90CAN128
AT90CAN32
AT90CAN32
AT90CAN64
AT90CAN64

AT90PWM1
AT90PWM2
AT90PWM216
AT90PWM2B
AT90PWM3
AT90PWM316
AT90PWM3B
AT90USB1286

AT90USB1287
AT90USB162
AT90USB646
AT90USB647
AT90USB82

ATmega1280
ATmega1281 ATmega1284PATmega128   ATmega128A
ATmega128RZAV  ATmega128RZBV
ATmega16  ATmega162
ATmega164P  ATmega164P
ATmega164PA  ATmega165
ATmega165P  ATmega168
ATmega168  ATmega168P
ATmega168PA  ATmega169
ATmega169P  ATmega16A
ATmega16U2  ATmega16U4
ATmega2560  ATmega2561
ATmega256RZAV  ATmega256RZBV
ATmega32  ATmega324P
ATmega324P  ATmega324PA
ATmega325  ATmega3250
ATmega3250P  ATmega325P
ATmega328P  ATmega329
ATmega3290  ATmega3290P
ATmega329P  ATmega32A
ATmega32C1  ATmega32M1
ATmega32U2  ATmega32U4
ATmega406  ATmega48
ATmega48  ATmega48P
ATmega48PA  ATmega64
ATmega640  ATmega644
ATmega644P  ATmega644P
ATmega644PA  ATmega645
ATmega6450  ATmega649
ATmega6490  ATmega64A
ATmega64C1  ATmega64M1
ATmega64RZAPV  ATmega64RZAV
ATmega88  ATmega88
ATmega88P  ATmega88PA
ATmega8U2

ATtiny13
ATtiny13A
ATtiny167
ATtiny2313
ATtiny24
ATtiny24
ATtiny24A
ATtiny25
ATtiny25
ATtiny261
ATtiny261
ATtiny43U
ATtiny44
ATtiny44
ATtiny44A
ATtiny45
ATtiny45
ATtiny461
ATtiny461
ATtiny48
ATtiny84
ATtiny84
ATtiny85
ATtiny85
ATtiny861
ATtiny861
ATtiny87
ATtiny88

 
ATxmega128A1
ATxmega128A3

ATxmega128A4
ATxmega16A4
ATxmega192A1
ATxmega192A3
ATxmega256A1
ATxmega256A3
ATxmega256A3B
ATxmega32A4
ATxmega384A1
ATxmega64A1
ATxmega64A3
ATxmega64A4


[링크 : http://enshop.avrvi.com/index.php?route=product/product&product_id=35]

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

AVR TWI 예제  (0) 2012.01.11
AVR EEPROM / CODE section 관련  (0) 2012.01.03
ATMEL AVR 시리즈별 플래시 / 메모리 용량  (2) 2011.12.29
avr ddr pin port  (0) 2011.12.28
winAVR에서 코드 영역에 변수 선언하기  (4) 2011.12.26
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 12. 29. 19:31
내장 SRAM은 16KB가 최대이고, Flash는 128KB EEPROM은 4KB가 최대이다.


Device
Flash (Kbytes) SRAM (Kbytes) EEPROM (Bytes)
ATmega8 8 1 512
ATmega8515 8 0.5 512
ATmega8535 8 0.5 512
ATmega16 16 1 512
ATmega32 32 2 1024
ATmega64 64 4 2048
ATmega128 128 4 4096
ATmega162 16 1 512
ATmega48 4 0.5 256
ATmega88 8 1 512
ATmega168 16 1 512
AT90CAN128 128 4 4096
ATmega325 32 2 1024
ATmega3250 32 2 1024
ATmega6450 64 4 2048
ATmega645 64 4 2048
ATmega329 32 2 1024
ATmega3290 32 2 1024
ATmega649 64 4 2048
ATmega6490 64 4 2048
ATmega640 64 8 4096
ATmega1281 128 8 4096
ATmega2561 256 8 4096
ATmega2560 256 8 4096
ATmega1280 128 8 4096
ATmega644 64 4 2048
AT90CAN32 32 2 1024
AT90CAN64 64 4 2048
AT90USB1286 128 8 4096
AT90USB1287 128 8 4096
AT90USB647 64 4 2048
AT90USB646 64 4 2048
ATmega164P 16 1 512
ATmega324P 32 2 1024
ATmega165P 16 1 512
ATmega169P 16 1 512
ATmega644P 64 4 2048
AT90PWM1 8 0.5 512
ATmega329P 32 2 1024
ATmega3290P 32 2 1024
ATmega325P 32 2 1024
ATmega3250P 32 2 1024
AT90USB82 8 0.5 512
AT90USB162 16 0.5 512
AT90PWM216 16 1 512
AT90PWM316 16 1 512
ATmega48P 4 0.5 256
ATmega88P 8 1 512
ATmega168P 16 1 512
ATmega328P 32 2 1024
AT90PWM3B 8 0.5 512
AT90PWM2B 8 0.5 512
ATmega32U4 32 3.3 1024
ATmega1284P 128 16 4096
ATmega16U4 16 2.1 512
ATmega16A 16 1 512
ATmega32A 32 2 1024
ATmega88PA 8 1 512
ATmega324PA 32 2 1024
ATmega48PA 4 0.5 256
ATmega164PA 16 1 512
ATmega64A 64 4 2048
ATmega128A 128 4 4096
ATmega8A 8 1 512
ATmega168PA 16 1 512
ATmega8U2 8 0.5 512
ATmega16U2 16 0.5 512
ATmega32U2 32 1 1024
ATmega644PA 64 4 2048
ATmega16M1 16 1 512
ATmega32M1 32 2 1024
ATmega64M1 64 4 2048
ATmega169PA 16 1 512
ATmega48A 4 0.5 256
ATmega88A 8 1 512
ATmega168A 16 1 512
ATmega328 32 2 1024
ATmega164A 16 1 512
ATmega324A 32 2 1024
ATmega644A 64 4 2048
ATmega1284 128 16 4096
AT90PWM81 8 0.25 512
ATmega165PA 16 1 512
ATmega325A 32 2 1024
ATmega3250A 32 2 1024
ATmega645A 64 4 2048
ATmega645P 64 4 2048
ATmega6450P 64 4 2048
ATmega6450A 64 4 2048
ATmega169A 16 1 512
ATmega329A 32 2 1024
ATmega649A 64 4 2048
ATmega3290A 32 2 1024
ATmega649P 64 4 2048
ATmega6490A 64 4 2048
ATmega6490P 64 4 2048
ATmega329PA 32 2 1024




[링크 : http://atmel.com/dyn/products/param_table.asp?category_id=163&family_id=607&subfamily_id=760]
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 12. 28. 07:57
매번 헷갈리는 지라...
아무튼  PORT는 값을 쓰는 용도
PIN은 값을 읽어 들이는 용도
DDR은 읽는용으로 쓸지 쓰는 용으로 쓸지를 정해주는 용도이다.
DDR 값이 0 이면 PORT 에 쓰고
DDR 값이 1 이면 PIN 으로 읽어 오면 된다.

PORTA - Port A Data Register
DDRA  - Port A Data Direction Register
PINA  - Port A Input Pins Address 

The DDxn bit in the DDRx Register selects the direction of this pin.
If DDxn is written logic one, Pxn is configured as an output pin.
If DDxn is written logic zero, Pxn is configured as an input pin. 

Three I/O memory address locations are allocated for each port,

one each for the Data Register - PORTx,
Data Direction Register - DDRx,
and the Port Input Pins - PINx.

The Port Input Pins I/O location is read only, while the Data Register and the Data Direction Register are read/write.
In addition, the Pull-up Disable - PUD bit in SFIOR disables the pull-up function for all pins in all ports when set.

[링크 : http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf] 

[링크 : http://donghwada.tistory.com/entry/ATmega-Pin-Configurations-DDR-PORT-PIN]
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 12. 26. 17:13
PROGMEM 매크로는 RAM에 변수를 선언하는게 아니라
보조 기억 장치에 데이터를 저장하게 하는 선언이다.

#include <avr/pgmspace.h>
// #define PROGMEM   __ATTR_PROGMEM__
// #define pgm_read_byte ( address_short   )     pgm_read_byte_near(address_short)
// #define pgm_read_byte_far ( address_long   )     __ELPM((uint32_t)(address_long))
// #define pgm_read_byte_near ( address_short   )     __LPM((uint16_t)(address_short))
  
unsigned char mydata[11][10] PROGMEM; 
[링크 : http://blog.naver.com/6k5tvb/120124621988]



근데.. 그냥 c에서 이렇게 하는게 머더라... -_-

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

ATMEL AVR 시리즈별 플래시 / 메모리 용량  (2) 2011.12.29
avr ddr pin port  (0) 2011.12.28
AVR LIBC 사용자 설명서 (user manual)  (0) 2011.11.18
AVR Studio 5 + STK-500 + ATmega128 = fail  (6) 2011.11.15
AVR Studio 5  (4) 2011.11.12
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 11. 18. 11:09
avr stuio 5를 쓸일이 없어져서 상관은 없지만..
winavr 깔기 싫은데 설명서 확인해야 하면 하니까~


[링크 : http://www.nongnu.org/avr-libc/user-manual/]

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

avr ddr pin port  (0) 2011.12.28
winAVR에서 코드 영역에 변수 선언하기  (4) 2011.12.26
AVR Studio 5 + STK-500 + ATmega128 = fail  (6) 2011.11.15
AVR Studio 5  (4) 2011.11.12
nop  (2) 2011.10.31
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 11. 15. 20:54
Tools에서 "Add STK500" 을 하면


연결되어 있는 시리얼 포트를 검색해서 붙이는데


음... 음... 응?
ATmega128이 없다 -_- 


부랴부랴 릴리즈 노트를 뒤져보니
엌? ATmega128은 STK500을 통해 지원하지 않는다 -_-

[링크 : http://www.atmel.com/dyn/resources/prod_documents/as5installer-5.0.1160-release_note.pdf]


결론 : 그냥 AVR studio 4로 돌아가자 -_-t 

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

winAVR에서 코드 영역에 변수 선언하기  (4) 2011.12.26
AVR LIBC 사용자 설명서 (user manual)  (0) 2011.11.18
AVR Studio 5  (4) 2011.11.12
nop  (2) 2011.10.31
ATmega64 timer 설정  (0) 2011.10.28
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 11. 12. 19:57
오랫만에 다운로드 하러 갔더니 으억? 5 버전이 새로나왔다.
그런데 어째.. Visual Studio 2008/2010에 통합된듯한 기운이 폴폴 풍기는데.
.net 알레르기는 여전한데 깔아야 하나 -_-




용량의 압박.txt
AVR Studio 5 installer (includes VSS and .NET)
(602 MB, revision 5.0, updated 5/11)
This installer contains AVR Studio 5, Visual Studio Shell (Isolated mode) 2010 and .NET 4.0. 

Select this installer if you need all three or are unsure of what installer to use.

NOTE:
AVR Studio 5.0 cannot be upgraded from its beta versions. Please uninstall any beta versions of AVR Studio 5.0 from Add/Remove programs and reinstall.
 

[링크 : http://www.atmel.com/microsite/avr_studio_5/]
    [링크 : http://www.atmel.com/dyn/resources/prod_documents/as5installer-5.0.1163-full.exe]

---------------------------
설치화면 캡쳐
Visual Studio Isolated Shell은 머지 -ㅁ-?


음.. VS2010 이긴한데 먼지 모르겠네 -ㅁ-?


헐~ 무당벌레가 살아있어!!
예전에 아이콘은 그림이었다면 이제는 실사같은 느낌? ㅋ


실행했더니 VS2010의 느낌이 물씬~


About을 눌러도 별 티가 안나네 -ㅁ-


프로젝트 생성하면 VS2010용처럼 뜬다.


"C Executable Project"를 선택후 OK 하면 CPU 선택화면이 나온다.



써보니 조금 무거운 느낌도 들지만
Visual Assistant X까지 포함되서 썩 나쁘진 않은듯 

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

AVR LIBC 사용자 설명서 (user manual)  (0) 2011.11.18
AVR Studio 5 + STK-500 + ATmega128 = fail  (6) 2011.11.15
nop  (2) 2011.10.31
ATmega64 timer 설정  (0) 2011.10.28
AVR Studio 에서 ELF 생성시 에러발생  (0) 2011.07.27
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 10. 31. 16:45

nop

nop는 No Operation의 약자로
실제로는 계산하지 않지만 cpu에서 delay를 주기위해 주로 사용되는 어셈블리 명령어이다.

#define nop()  __asm__ __volatile__("nop")

[링크 : http://www.triplespark.net/elec/pdev/avr/

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

AVR Studio 5 + STK-500 + ATmega128 = fail  (6) 2011.11.15
AVR Studio 5  (4) 2011.11.12
ATmega64 timer 설정  (0) 2011.10.28
AVR Studio 에서 ELF 생성시 에러발생  (0) 2011.07.27
IAR compiler 컴파일시 이미지 크기 보기  (3) 2011.07.25
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2011. 10. 28. 17:35
Timer0 (8bit)짜리로 1mesc 만들기를 숙제로 받았다
그러고 보니 회사에서 처음 받는 숙제인듯?

아래의 코드를 참고하고, 도표를 참고하자면,
TCCR0 = 0x05;     // Prescaler 1/128
TCNT0 = 0x82;     // 125 clock tick = 1msec
TIMSK = 0x01;     // 오버플로우 인터럽트 허용
sei();                   // 인터럽트 허용

CPU가 16Mhz 일 경우,
프리스케일러를 설정함에 따라, timer 1번 발생시 시간은 TICK/msec를 참조하면 된다.
아무튼, cpu 클럭과 프리스케일러에 따라서 딱 떨어지는 시간이 있을수도 있고 없을수도 있는데
목표로 한 값이 1msec 이므로 곱해서 정수로 떨어지는 125 / 250 / 500 / 2000 회가 있지만
타이머가 8bit이므로 255를 초과할수 없고, 그로 인해 적당한 값은 1/128 프리스케일러를 설정하는 것이다.
그리고 타이머가 125번 오면 overflow 가 발생해야 하므로
TCNT0 = 255 - 125; 로 설정을 해주면 125 번의 tick 이후에 FF가 되어 타이머 인터럽트가 발생하게 된다.


2010/01/07 - [embeded/ATmega/ATtiny (AVR)] - atmega128 Timer 사용하기

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

AVR Studio 5  (4) 2011.11.12
nop  (2) 2011.10.31
AVR Studio 에서 ELF 생성시 에러발생  (0) 2011.07.27
IAR compiler 컴파일시 이미지 크기 보기  (3) 2011.07.25
PINA_Bit0 누구냐 넌! (IAR)  (0) 2011.03.31
Posted by 구차니