embeded/AVR (ATmega,ATtiny)2011. 3. 12. 22:13
WINAVR로 프로그램을 하긴 했지만, sizeof로 일일이 확인해본게 아니라 긴가민가 했는데
일단 ATMEGA128은 8bit 프로세서이고, int 형은 2byte이다.


ATmega128   8-bit AVR Microcontroller, 128KB Flash, 64-pin
                   View Parameters



[링크 : http://blog.daum.net/lucifer_blog/38]

 The concept is quite simple. The file types.h includes the ANSI-required file limits.h. It then explicitly tests each of the predefined data types for the smallest type that matches signed and unsigned 1-, 8-, 16-, and 32-bit variables. The result is that my data type UCHAR is guaranteed to be an 8-bit unsigned variable, INT is guaranteed to be a 16-bit signed variable, and so forth. In this manner, the following data types are defined: BOOLEAN, CHAR, UCHAR, INT, UINT, LONG, and ULONG.

Posted by 구차니
embeded/ARM2010. 7. 16. 01:46
저번에 디바이스 마트에서 구매해온 Wiggler 호환 NTC사의 JTAG을 오늘에야 테스트를 해보았다.

일단 설명서에 자사 홈페이지에서 강좌/프로그램을 확인해보라길래 갔더니 요런 내용이 있다.
강좌


[링크 : http://newtc.co.kr/]

일단은 전체강좌를 받고 강좌 1을 읽으니 H-JTAG이라는 녀석을 사용하라고 해서 다운로드 고고싱~
RAR 분할 압축으로 되어있는데  Firefox에서는 이상하게 확장자 없이 저장이 되니 확장자를 붙여주어야 한다.
그리고 빵집 4.0 에서 RAR 이 이상하게 제대로 보이지 않아 그냥 알아서 풀기를 하니 덩그러니 설치파일이 나왔다.
[링크 : http://www.hjtag.com/]

Step 1. 처음 실행하면 아래와 같이 UNKNOWN 으로 나오고,
           기본값은 USB JTAG으로 설정되어있다.

Step 2. Setting - "USB/LPT Selection" 을 선택하면

Step 3. 아래와 같은 다이얼로그가 나오고 LPT로 바꾸어 주면 자동검색한다.


2010.07.17 추가
Contorl - Detect Target을 하면 마지막으로 설정된 포트(USB/LPT)로 타겟 CPU를 확인한다.




Step 4. 자작했다면 핀배열이 다를수 있으므로 "LPT Jtag Setting" 메뉴에서 맞추어 주면된다.

Step 5. 예전에도 드물었겠지만, 프린터 포트가 여러개일 경우 포트를 고르는 화면이다.
           이 경우에는 "LPT Port Setting" 메뉴에서 맞추어 주면된다.

아무튼, 예전에 구매한 NTC JTAG은 이상없이 작동하는 것을 확인했고
아쉽게도.. 예전에 케이블이랑 사와서 낑낑대며 만든 JTAG 케이블은 작동하지 않았다 ㅠ.ㅠ

'embeded > ARM' 카테고리의 다른 글

ARM NEON  (0) 2011.08.04
arm용 linux 패치  (0) 2011.06.20
ARM용(암용) 툴체인, 컴파일러 - arm-linux-gcc : tool chain for ARM  (0) 2010.07.03
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
ARM JTAG - Wiggler 14pin , 20pin pinout  (0) 2010.06.26
Posted by 구차니
embeded/ARM2010. 7. 3. 01:13

'embeded > ARM' 카테고리의 다른 글

arm용 linux 패치  (0) 2011.06.20
ARM JTAG / Wiggler + H-JTAG  (0) 2010.07.16
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
ARM JTAG - Wiggler 14pin , 20pin pinout  (0) 2010.06.26
Cortex-A8 ?  (2) 2010.05.10
Posted by 구차니
embeded/ARM2010. 7. 1. 00:21

1  -Vddh (+3.3v)

2  - Vss (ground)

3  - nTRST

4  - Vss (ground)

5  - TDI

6  -Vss (ground)

7  - TMS

8  -Vss (ground)

9  - TCK

10-Vss (ground)

11- TDO

12-nRST (optional)

13- Vddh (+3.3v)

14-Vss (ground)

 

 

 

 

 

 

1  - Vddh (+3.3v)

2  - Vddh (+3.3v)

3  - nTRST

4-Vss (ground)

5  - TDI

6-Vss (ground)

7  - TMS

8-Vss (ground)

9  - TCK

10-Vss (ground)

11 --------

12-Vss (ground)

13 TDO

14-Vss (ground)

15 nRST

16-Vss (ground)

17---------

18-Vss (ground)

19---------

20-Vss (ground)


14핀은 2x7이고
20핀은 2x10이다.

일단 20pin에서 15번 nRST만 아니면 14핀으로도 충분할텐데 조금 아쉬운 감이 있다.
20핀이 없어서 10핀(2x5)로 사왔는데 6핀(2x3)을 사올걸 그랬나보다.

아무튼,
13 -> 2 (반대편 가장 윗줄로)
11 -> 13(뽑아서 아래로 한칸)
12 -> 15(위에넘 옆에꺼 뽑아서 꼽은넘 아래로)
13 -> 12(처음 뽑은넘을 남는 곳으로)
이렇게만 약간 이동시켜 주면 간단하게 해결될 것으로 보인다.


2010/06/26 - [embeded processor/ARM] - ARM JTAG - Wiggler 14pin , 20pin pinout
Posted by 구차니
embeded/ARM2010. 6. 26. 08:09
위글러는 14핀과 20핀을 주로 지원한다. 이번에 업어온게 14pin인데 내꺼는 20pin. OTL
변환젠더를 만들던 아니면 보드쪽을 20pin으로 바꾸던 해야 하는지라.. 일단 데이터 수집!
음.. 근데 14핀이 저 자주 이용되고, 20핀은 간혹인가 ㄱ-


1.7.        What is a usual JTAG header pin-out?

 

More pin-outs see at http://www.ocdemon.net/pinouts.pdf

1.7.1.   14-pin JTAG header

Usual pin-out for 14-pin JTAG header (often used for ARM)

 

1  -Vddh (+3.3v)

2  - Vss (ground)

3  - nTRST

4  - Vss (ground)

5  - TDI

6  -Vss (ground)

7  - TMS

8  -Vss (ground)

9  - TCK

10-Vss (ground)

11- TDO

12-nRESET (optional)

13- Vddh (+3.3v)

14-Vss (ground)

 

1.7.2.   20-pin JTAG header

Usual pin-out for 20-pin JTAG header (sometimes used for ARM)

1  - Vddh (+3.3v)

2  - Vddh (+3.3v)

3  - nTRST

4-Vss (ground)

5  - TDI

6-Vss (ground)

7  - TMS

8-Vss (ground)

9  - TCK

10-Vss (ground)

11 --------

12-Vss (ground)

13 –TDO

14-Vss (ground)

15 – nRST

16-Vss (ground)

17---------

18-Vss (ground)

19---------

20-Vss (ground)

 

1.7.3.   8-pin JTAG header

Usual pin-out for 8-pin JTAG header, often used for PLD programming

1 – vddh (+3.3v)

2 – TDO

3 – TDI

4 – nTRST

5

6 – TMS

7 – vss (ground)

8 – TCK


[링크 : http://hri.sourceforge.net/tools/jtag_faq_org.html#_Toc63218715]

'embeded > ARM' 카테고리의 다른 글

ARM용(암용) 툴체인, 컴파일러 - arm-linux-gcc : tool chain for ARM  (0) 2010.07.03
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
Cortex-A8 ?  (2) 2010.05.10
별 시덥지 않은 이야기 (ST40 core 와 ARM)  (0) 2010.05.03
ARM JTAG DIY  (0) 2010.05.03
Posted by 구차니
embeded/ARM2010. 5. 10. 18:26
코어텍스-A8은 ARMv7 구조/아키텍쳐 기반의 프로세서이다.
300mW의 소비전력과 600Mhz~1Ghz의 클럭을 지원하며 2000 DMIPS의 프로그램을 처리할수 있다.
라고 해석하면 되려나?

Cortex-A8 Processor

The ARM Cortex™-A8 processor is based on the ARMv7 architecture and has the ability to scale in speed from 600MHz to greater than 1GHz. The Cortex-A8 processor can meet the requirements for power-optimized mobile devices needing operation in less than 300mW; and performance-optimized consumer applications requiring 2000 Dhrystone MIPS.

[링크 : http://www.arm.com/products/processors/cortex-a/cortex-a8.php]

머.. 갑자기 Cortex가 떨어진건 아니고 Cortex-M 시리즈도 있었군

ARM9은 ARMv9이 아니라 ARMv5 기반의 프로세서이다.
현재까지는 ARMv7가 가장 최신 아키텍쳐인것으로 보이며
결론은 ARM7과 ARMv7은 천지차이(결론이 이상해!)

[링크 : http://www.arm.com/products/processors/index.php]

 
[링크 : http://www.ti.com/ww/kr/embedded/arm/index.html]

DMIPS / Dhrystone MIPS
Dhrystone is a synthetic computing benchmark program developed in 1984 by Reinhold P. Weicker intended to be representative of system (integer) programming. The Dhrystone grew to become representative of general processor (CPU) performance until it was superseded by the CPU89 benchmark suite from the Standard Performance Evaluation Corporation, today known as the "SPECint" suite. The name is a pun on a different benchmark algorithm called Whetstone.

The Dhrystone benchmark contains no floating point operations, thus the name is a pun on the then-popular Whetstone benchmark for floating point operations. The output from the benchmark is the number of Dhrystones per second (the number of iterations of the main code loop per second).

[링크 : http://en.wikipedia.org/wiki/Dhrystone]

Posted by 구차니
embeded/ARM2010. 5. 3. 01:42
문득 회사에서 사용하는 JTAG인 STmicroconnect를 ARM 코어에서 사용이 가능할까?
라는 의문이 들었다.

이것저것 찾아봤지만 아마도 결론은 사용불능

일단 셋탑박스에서 사용하는 칩셋은 ARM 코어가 아닌 SH(SuperH / Hitachi core) 이라는 점
물론 ST에서 ARM 코어를 판매하지만 모델이 STi 가 아닌 STR 모델이다.

STR71x       STR71x: 144/64-pin ARM7TDMI MCU with up to 256KB FLASH, 64KB RAM and EMI
[링크 : http://www.st.com/mcu/devicedocs-STR710FZ1-86.html]

  • Samsung (ARM7/ARM9/Cortex-M3 Family)
    S3C2410A, S3C2440A, S3C44B0X, S3C4510B
  • XScale (ARM7/ARM9/ARM11 Family)
    PXA210, PXA255, PXA270
  • STMicroelectronics (ARM7/ARM9/Cortex-M3 Family)
    STR710FZ1, STR710FZ2, STR711FR0, STR711FR1, STR711FR2,
    STR712FR0, STR712FR1, STR712FR2, STR715FR0, STR730FZ1, STR730FZ2, STR731FV0, STR731FV1,
    STR731FV2, STR735FZ1, STR735FZ2, STR736FV0, STR736FV1, STR750FL2, STR750FV0, STR750FV1,
    STR750FV2, STR751FR0, STR751FR1, STR751FR2, STR752FR0, STR752FR1, STR752FR2, STR755FR0,
    STR755FR1, STR755FR2, STR755FV0, STR755FV1, STR755FV2, STR910FM32, STR910FW32, STR911FM42,
    STR911FM44, STR912FW42, STR912FW44, STR10XX, STM32F10xx
  • Analog Devices (ARM7/ARM9/Cortex-M3 Family)
    ADuC7019, ADuC7020, ADuC7021, ADuC7022,
    ADuC7024, ADuC7025, ADuC7026, ADuC7027, ADuC7032, ADuC7033, ADuC7128, ADuC7129
  • Atmel (ARM7/ARM9/Cortex-M3 Family)
    AT91C140, AT91F40416, AT91F40816, AT91FR40162,
    AT91FR4042, AT91FR4081, AT91M40400, AT91M40800, AT91M40807, AT91M42800A, AT91M43300,
    AT91M55800A, AT91M63200, AT91R40008, AT91R40807, AT91RM3400, AT91RM9200, AT91SAM7A1,
    AT91SAM7A2, AT91SAM7A3, AT91SAM7S128, AT91SAM7S256, AT91SAM7S32, AT91SAM7S64,
    AT91SAM7SE256, AT91SAM7SE32, AT91SAM7SE512, AT91SAM7X128, AT91SAM7X256, AT91SAM7XC128,
    AT91SAM7XC256, AT91SAM9260, AT91SAM9261
  • Freescale Semiconductor (ARM7/ARM9/Cortex-M3 Family)
    MAC7101, MAC7104, MAC7105, MAC7106,
    MAC7111, MAC7112, MAC7114, MAC7115, MAC7116, MAC7121, MAC7122, MAC7124, MAC7125, MAC7126,
    MAC7131, MAC7134, MAC7135, MAC7136, MAC7141, MAC7142, MAC7144
  • Luminary Micro (ARM7/ARM9/Cortex-M3 Family)
    LM3S101, LM3S102, LM3S301, LM3S310, LM3S315,
    LM3S316, LM3S328, LM3S601, LM3S610, LM3S611, LM3S612, LM3S613, LM3S615, LM3S628, LM3S801,
    LM3S811, LM3S812, LM3S815, LM3S828
  • NXP (founded by Philips) (ARM7/ARM9/Cortex-M3 Family)
    LPC2101, LPC2102, LPC2103, LPC2104,
    LPC2105, LPC2106, LPC2114, LPC2119, LPC2124, LPC2129, LPC2131, LPC2132, LPC2134, LPC2136,
    LPC2138, LPC2141, LPC2142, LPC2144, LPC2146, LPC2148, LPC2194, LPC2210, LPC2212, LPC2214,
    LPC2220, LPC2290, LPC2292, LPC2294, LPC2364, LPC2366, LPC2368, LPC2378, LPC2458, LPC2468,
    LPC2880, LPC2888, LPC3180
  • OKI (ARM7/ARM9/Cortex-M3 Family)
    ML674000, ML674001, ML674002, ML674003, ML675001, ML675002,ML675003, ML67Q4050, ML67Q4051, ML67Q4060, ML67Q4061, ML696201, ML69Q6203
  • Sharp (ARM7/ARM9/Cortex-M3 Family)
    LH75400, LH75401, LH75410, LH75411
  • TI (ARM7/ARM9/Cortex-M3 Family)
    TMS470R1A128, TMS470R1A256, TMS470R1A288, TMS470R1A384,
    TMS470R1A64, TMS470R1B1M, TMS470R1B512, TMS470R1B768

[링크 : http://www.devicemart.co.kr/mart7/mall.php?cat=010001000&query=view&no=24495]

아무튼 이녀석들이라면 Wiggler 호환 JTAG으로 사용이 가능할듯!

'embeded > ARM' 카테고리의 다른 글

ARM용(암용) 툴체인, 컴파일러 - arm-linux-gcc : tool chain for ARM  (0) 2010.07.03
ARM JTAG 14pin / 20pin 변환하기  (0) 2010.07.01
ARM JTAG - Wiggler 14pin , 20pin pinout  (0) 2010.06.26
Cortex-A8 ?  (2) 2010.05.10
ARM JTAG DIY  (0) 2010.05.03
Posted by 구차니
embeded/ARM2010. 5. 3. 01:04
암용 JTAG 중에 자작가능한 것으로 Wiggler 라는 녀석이 있다.
eleparts에서 완제품 팔기도 하고, 회로도 구해서 만들수도 있다.
예전에 주워온 PalmPalm 보드에서 지원가능한지는 모르겠다.

아무튼 74AC244 칩이 핵심인듯
그러고 보니.. AVR에는 74HC244인데 호환이 되려나?


[링크 : http://www.eleparts.co.kr/front/productdetail.php?productcode=017023007001000006&sort=]


[링크 : http://www.frozeneskimo.com/electronics/arm-tutorials/jtag-wiggler-clone/]

검색을 해보니
74HC/HCT vs.74AC/ACT

"AC / ACT stands for Advanced CMOS Logic (ACL for short).
 HC / HCT stands for High-speed CMOS Logic (HCL).

The AC and ACT subfamilies are faster than the HC and HCT subfamilies, and draw some more power in some circuits. All chips in the AC* subfamily have lower output resistance than HC* and can sink and source 24 mA at logic levels and up 70 mA (typ) per gate for motor loads. As a result AC* gates can handle more than twice the current of HC* gates (50 - 70 mA vs. 24 mA). Note, though, that while most HC* chips have a 25 mA limit, the HC* driver chips such as the 74HC240 and the 74HC245 (i.e., buffers) can handle 35 mA per device, and a maximum of 75 mA per chip.

The AC & ACT families also draw about twice as much current as the HC & HCT chips (but we speaking here of microamps, so it's usually not a huge deal).

It is occasionally possible to find (high quality) motors that you can drive directly from an HC chip. For intermittent operation, such as you get with a quadcore, you COULD drive very efficient (i.e., very low-current) motors directly. You would definitely need a capacitor (say 0.47 uF) across each motor to keep the noise under control.

[링크 : http://www.extremetesting.tv/forums/showthread.php?t=16755]

머.. 결론은 It works! 라는데.. 흐음..

아래 문서에는 74HC244로 되어있다.
[링크 : http://files.tomek.cedro.info/electronics/doc/jtag/doc/openocd_preliminary_20060102.pdf]

아무튼, PalmPalm은 PXA255 칩이고 이녀석은 ARMv5TE 계열이고 Intel XScale 인데
[링크 : http://en.wikipedia.org/wiki/XScale]

일단은 Wiggler에서 지원하니 Wiggler 호환에서도 되지 않을려나?
[링크 : http://www.macraigor.com/cpus.htm]
Posted by 구차니
원래 목적은, 임의의 인터럽트를 소프트웨어적으로 발생시키는 건데
딱히 그에 맞는 문서를 발견하지 못했다.

그와 유사한 것은
외부 인터럽트의 경우 입력으로 설정되어 있더라도, 핀값을 설정해서 임의로 인터럽트를 발동시킬수 있다고 한다.

[링크 : http://gnc.chungbuk.ac.kr/?module=file&act=procFileDownload&file_srl=38154&sid=bdc58bb2e09e0bbfb91e3d176e68a1cf]
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2010. 2. 16. 22:46
별건 아니지만, 예전 프로그램을 조합+개조하여 만들어 본 녀석인데..
흐음.. 엔터를 두번이나 눌러야 하다니 이걸 어떻게 개선을 해야 하려나..

아무튼 이녀석의 목적은
- 서보모터를 시리얼 포트를 통해 값을 입력받아 제어한다.

일단 약간의 버그로 인해
- 숫자 입력후 엔터를 두번 눌러야 각도가 변경되고
- 엔터만 눌러대거나, 이상한 각도를 입력하면 서보가 길길댄다.

입력가능한 숫자 범위는 서보마다 다르겠지만
ES-311 엘레파츠의 저렴한 모터로는
32~112 값으로 0도에서 180도까지 이동이 가능하다(정확하게는 한 160도 정도 되는듯?)

Posted by 구차니