Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 6063 | 답변완료icc avr로 디버깅하는 기능 및 소스질문입니다! | 채종수 | 2011-01-16 | 1,450 |
|
Atmega128(kd-128pro)공부를 시작하는데요
icc-avr 이라는 툴을 사용하더군요.
디버깅어떻게하나요?
씨언어할때 사용하는 visual studio6.0처럼 디버깅하고싶은 부분에 F9찍고
디버깅시작하면 F10이나 F11으로 다음줄로 넘어가는형태로 디버깅하면서 공부하고 싶거든요 ㅠㅠ
두번째 질문이요! kd-129pro 키트 시디안에 있는 ex_sevensegment에 있는 소스를 다운해
연습을 하는데요
이부분이 이해가안가요 ㅠㅠ 주석이 없어서..
void timer0_ovf_isr(void)
{
TCNT0 = 0x06; //reload counter value
digit_num++;
digit_num = digit_num%4;
PORTC = 0x0f;
PORTA = segment_data[display_num[digit_num]];
PORTC = ~(0x01 << digit_num);
} //이함수는 언제실행되는거죠? 마지막에 왼쪽시프트한것을 왜 not을 하는지도
//모르겠구요,,, 한줄씩 알려주세요ㅠㅠ
답변해주시면 감사하겠습니다!!!
관리자 답변
안녕하세요
코드 디버깅은 ICCAVR 에서 할수 없습니다.
칩사에서 제공되는 avrstudio 라는 툴에서 에서 가능합니다.
장비는 USBISP로 디버깅이 불가능 하면, JTAG 이라는 장비를 사용 하셔야합니다.
함수는 타이머 인터럽터라는 함수 입니다.
특정시간 마다 그 함수가 실행 됩니다.
사람눈으로 보이지는 않치만 FND를 순차적으로 점등 시킬때 보통 타이머를 이용하여
FND 순차적으로 점등시켜 값을 표시합니다.
> PORTA = segment_data[display_num[digit_num]];
FND에 값을 표시할때
> PORTC = ~(0x01 << digit_num);
FND4개중 1를 선택
not들어 가는 이유는 LED 소자에 대해 찾아 보셔야합니다.
LED로 묶어서 사용하는것이 FND 입니다.
LED 는 극성이 존재합니다. 들어가는 전압으로 틀려야 불이 들어옵니다.
수고하세요
>Atmega128(kd-128pro)공부를 시작하는데요
>
> icc-avr 이라는 툴을 사용하더군요.
>
>디버깅어떻게하나요?
>
>씨언어할때 사용하는 visual studio6.0처럼 디버깅하고싶은 부분에 F9찍고
>
>디버깅시작하면 F10이나 F11으로 다음줄로 넘어가는형태로 디버깅하면서 공부하고 싶거든요 ㅠㅠ
>
>
>
>
>
>두번째 질문이요! kd-129pro 키트 시디안에 있는 ex_sevensegment에 있는 소스를 다운해
>연습을 하는데요
>이부분이 이해가안가요 ㅠㅠ 주석이 없어서..
>
>
>void timer0_ovf_isr(void)
>{
> TCNT0 = 0x06; //reload counter value
> digit_num++;
> digit_num = digit_num%4;
> PORTC = 0x0f;
> PORTA = segment_data[display_num[digit_num]];
> PORTC = ~(0x01 << digit_num);
>
>} //이함수는 언제실행되는거죠? 마지막에 왼쪽시프트한것을 왜 not을 하는지도
> //모르겠구요,,, 한줄씩 알려주세요ㅠㅠ
>
>답변해주시면 감사하겠습니다!!!
|
||||
| 6062 | 답변완료ATmega128 Pro와 PL 모듈의 동작상태 및 고장 질문 | 안재철 | 2011-01-14 | 1,587 |
|
128PRO와 PL모듈 관련 질문드립니다.
현재 PRO모듈 2개와 PL모듈 1개 그리고 RAM 모듈 1개를 보유하고 있습니다.
1. 질문입니다.
Atmega 128 PRO모듈 2개에 전원을 인가하면 하나는 D202(Power)가 녹색이 아닌
빨간색으로 들어옵니다. 다른 하나는 D202가 들어옴과 동시에 D201이 순간 녹색으로
들어왔다가 빨간색으로 들어오는데 D202(power)가 모두 녹색불이 들어와 야 정상 아닌가요?
가지고 있는 PRO 2개의 모듈이 모두 그러는 데요..
2. 그리고 Atmega 128 PL 모듈은 D202(Power)가 녹색으로 들어오기는 하는데 D201(PAO)이
빨간색으로 계속 깜빡이는군요.. 이 3개 모두 정상인가요?? 지금 회사가 아니라 다운로드가
되는지 확인하가 어려운데.. 제가 회사에서 시험하는 128 RAM 모듈에서는 항상 D202(power)
가 녹색이였던것으로 기억하는데.. 확인 부탁드립니다. 이상이 있으면 A/S 를 받고자 합니다.
관리자 답변
안녕하세요
D202는 파워관련 표시 LED 입니다. 모듈에 전원이 인가되면 점등됩니다.
D201는 PORT 테스트용으로 하나가 붙어있는 경우 입니다.
D202는 무조건 점등해야합니다.
D201는 코드에 따라 점등 소등 될수 있습니다.
LED 색은 변경될수 있습니다.
수고하세요
>128PRO와 PL모듈 관련 질문드립니다.
>
>현재 PRO모듈 2개와 PL모듈 1개 그리고 RAM 모듈 1개를 보유하고 있습니다.
>
>1. 질문입니다.
> Atmega 128 PRO모듈 2개에 전원을 인가하면 하나는 D202(Power)가 녹색이 아닌
>
> 빨간색으로 들어옵니다. 다른 하나는 D202가 들어옴과 동시에 D201이 순간 녹색으로
>
> 들어왔다가 빨간색으로 들어오는데 D202(power)가 모두 녹색불이 들어와 야 정상 아닌가요?
>
> 가지고 있는 PRO 2개의 모듈이 모두 그러는 데요..
>
>2. 그리고 Atmega 128 PL 모듈은 D202(Power)가 녹색으로 들어오기는 하는데 D201(PAO)이
>
> 빨간색으로 계속 깜빡이는군요.. 이 3개 모두 정상인가요?? 지금 회사가 아니라 다운로드가
>
> 되는지 확인하가 어려운데.. 제가 회사에서 시험하는 128 RAM 모듈에서는 항상 D202(power)
>
> 가 녹색이였던것으로 기억하는데.. 확인 부탁드립니다. 이상이 있으면 A/S 를 받고자 합니다.
>
|
||||
| 6061 | 답변완료스테핑모터 문의건 | 김상용 | 2011-01-14 | 1,293 |
|
먼저 설명에 감사드립니다.
아래 소스에
PORTG++;
delay(10);
MOTOR_PORT = 0x33;
delay(10);
MOTOR_PORT = 0x66;
delay(10);
MOTOR_PORT = 0xcc;
delay(10);
MOTOR_PORT = 0x99;
0x33 ~0x99의 의미를 설명좀 부탁드릴게요.
부탁드립니다.
void main(void)
{
volatile unsigned char temp, l_sensor, r_sensor;
volatile unsigned char step=0;
init_devices();
//insert your functional code here...
printf(" \\n\\n\\rStepping Motor test program...\\n\\r");
MOTOR_PORT_DDR = 0xff;
while(1){
PORTG++;
delay(10);
MOTOR_PORT = 0x33;
delay(10);
MOTOR_PORT = 0x66;
delay(10);
MOTOR_PORT = 0xcc;
delay(10);
MOTOR_PORT = 0x99;
}
}
관리자 답변
아래 코드는 CS2P 용 코드 같아 보입니다.
사용하시는 MS2P와는 별개 입니다.
저 아래코드는 상을 만들어 사용하는 방법입니다.
(1~2상 여자 방식). 4개상을 순차적으로 변화시킵니다.
0x33 0x66 0xcc 0x99 는 두개 모터를 돌리는듯합니다.
0x03 0x06 0x0c 0x09 는 하나일때.
16진수를 이진수로 변환 하면 클럭이 순차적으로 변화는지 알수 있습니다.
0011 --> 0110 --> 1100 --> 1001
검색엔진에 "스텝모터구동" 이라고 하면 관련 내용들이 많이 나옵니다.
수고하세요
>먼저 설명에 감사드립니다.
>아래 소스에
>
> PORTG++;
> delay(10);
> MOTOR_PORT = 0x3 3;
> delay(10);
> MOTOR_PORT = 0x6 6;
> delay(10);
> MOTOR_PORT = 0xc c;
> delay(10);
> MOTOR_PORT = 0x9 9;
>0x33 ~0x99의 의미를 설명좀 부탁드릴게요.
>부탁드립니다.
>
>
>
>void main(void)
>{
> volatile unsigned char temp, l_sensor, r_sensor;
> volatile unsigned char step=0;
>
> init_devices();
> //insert your functional code here...
> printf(" \\n\\n\\rStepping Motor test program...\\n\\r");
>
> MOTOR_PORT_DDR = 0xff;
>
>
> while(1){
> PORTG++;
> delay(10);
> MOTOR_PORT = 0x33;
> delay(10);
> MOTOR_PORT = 0x66;
> delay(10);
> MOTOR_PORT = 0xcc;
> delay(10);
> MOTOR_PORT = 0x99;
>
> }
>}
|
||||
| 6060 | 답변완료스테핑 모터 구동 문의건 | 김상용 | 2011-01-14 | 1,333 |
|
안녕하세요.
NEWTC atmaga128 보드를 구입하여 스테핑모터을 제어하고 제품에 적용하고자
합니다. 처음 접하는일이라 구동하기가 어렵네요. 물론 NEWTC 예제를 참고 하고 있읍니다.
1. 동작설명 :
1) RS232로 A이 들어오며 90도 회전
2) B가 들어오면 180도 회전
3) C이 들어오면 270도 회전
4) D가 들어오면 0위치로 회전(0점 위치로 돌아감)
2. 사용 COMPILLER
ICCAVR
3. 모터 드라이버 : AM-MS2
4. 사용 모터 : A4K-M245
5. 참조 예제 : ex_AM-MS2_ATMEGA128_timer_delay_ICCAVR
문의 사항
동작설명과 같이 동작하기 위해서는 main 아래에서 어떻게 구현하는것이
좋은지 방법을 알려주십시요..
(A, B, /A, /B 상에 차례로 전류가 흐르게 하면 다음
그림과 같이 모터축이 회전을 하게 된다.) 하는데 예제에서의 모터 동작은 delay 만큼만
돌아가는것이 아닌지요.
모터에 연결된 포트에 어떻게 상을 차례로 바꿀수 있는지 이해가 안갑니다.
도와주십시요.
while(1){
PORTG = ~PORTG;
delay(100);
}
아래 소스는 pc로 부터 입력을 받아 모터를 구동하고 다시 pc로 돌려주는
소스입니다. 이렇게 구현하면 되는지..
void rx0_moter_ctl(void)
{
char ch;
ch = getchar(); //rx0 data echo
if(getchar == 'a'){ //'a'=0x61
PORTG = ~PORTG;
putchar = ch;
delay(100);
}
else if(getchar == 'b'){ //'b'=0x62
PORTG = ~PORTG;
putchar = ch;
delay(100);
}
else if(getchar == 'c'){ //'b'=0x63
PORTG = ~PORTG;
putchar = ch;
delay(100);
}
else if(getchar == 'd'){ //'b'=0x64
PORTG = ~PORTG;
putchar = ch;
delay(100);
}
else
{
PORTG = ~PORTG;
delay(100);
PORTB = 0xff; // led all off
}
김상용 올림
tel :010-7207-5127
관리자 답변
안녕하세요
보통 스텝모터는 상이 변활때 1.8 도씩 움직입니다. (분주모드가 없는 경우 )
즉 클럭당 1.8 도 입니다. 200클럭이 한바퀴입니다.
90도 회전씩는 50 클럭을 인가하면 횐전 합니다.
AM-MS2는 클럭만 입력 되면 모터드라이버가 알아서 상을 만들어 모터에 인가합니다.
코드적으로는 클럭, 방향, 분주 만 정해서 사용하면 됩니다.
예제크드는 있는 딜레이는 회전속도에 관한내용입니다. 회전각과는 상관이 없습니다.
본사 방침이 예제코드 및 킷트(하드웨어)에 관련문의에 대해서는 써트를 하지만
죄송하지만, 유저가 요구하는 코드수정등. 에 관해서 써포트를 하지않습니다.
수고하세요
>
>
>안녕하세요.
>
>NEWTC atmaga128 보드를 구입하여 스테핑모터을 제어하고 제품에 적용하고자
>
>합니다. 처음 접하는일이라 구동하기가 어렵네요. 물론 NEWTC 예제를 참고 하고 있읍니다.
>
>
>
>1. 동작설명 :
>
> 1) RS232로 A이 들어오며 90도 회전
>
> 2) B가 들어오면 180도 회전
>
> 3) C이 들어오면 270도 회전
>
> 4) D가 들어오면 0위치로 회전(0점 위치로 돌아감)
>
>2. 사용 COMPILLER
>
> ICCAVR
>
>3. 모터 드라이버 : AM-MS2
>
>4. 사용 모터 : A4K-M245
>
>5. 참조 예제 : ex_AM-MS2_ATMEGA128_timer_delay_ICCAVR
>
>
>
>문의 사항
>
>
>
> 동작설명과 같이 동작하기 위해서는 main 아래에서 어떻게 구현하는것이
>
>좋은지 방법을 알려주십시요..
>
>
>
>(A, B, /A, /B 상에 차례로 전류가 흐르게 하면 다음
>그림과 같이 모터축이 회전을 하게 된다.) 하는데 예제에서의 모터 동작은 delay 만큼만
>
>돌아가는것이 아닌지요.
>
>모터에 연결된 포트에 어떻게 상을 차례로 바꿀수 있는지 이해가 안갑니다.
>
>
>
>도와주십시요.
>
>
>
> while(1){
>
> PORTG = ~PORTG;
> delay(100);
> }
>
> 아래 소스는 pc로 부터 입력을 받아 모터를 구동하고 다시 pc로 돌려주는
>소스입니다. 이렇게 구현하면 되는지..
>
>
>void rx0_moter_ctl(void)
>{
> char ch;
> ch = getchar(); //rx0 data echo
>
> if(getchar == 'a'){ //'a'=0x61
> PORTG = ~PORTG;
> putchar = ch;
> delay(100);
> }
> else if(getchar == 'b'){ //'b'=0x62
> PORTG = ~PORTG;
> putchar = ch;
> delay(100);
> }
> else if(getchar == 'c'){ //'b'=0x63
> PORTG = ~PORTG;
> putchar = ch;
> delay(100);
> }
> else if(getchar == 'd'){ //'b'=0x64
> PORTG = ~PORTG;
> putchar = ch;
> delay(100);
> }
> else
> {
> PORTG = ~PORTG;
> delay(100);
> PORTB = 0xff; // led all off
> }
>
>
>김상용 올림
>
>tel :010-7207-5127
>
>
>
|
||||
| 6059 | 답변완료sam7s64 보드 전류 관련 질문과 예제소스 관련 질문 그리고 보드 성능관련 질문 입니다~ | 김승언 | 2011-01-14 | 1,524 |
|
하다가 하다가 너무 답답해서 질문 올립니다 ㅠ
학부생이다보니 보드도 처음 다뤄보고...
arm 보드 : sam7s64
LED : LW514
<보드 전류관련>
저희가 하나의 핀에 여러개의 LED를 연결 해서 하나의 거대한 광원을 만들려고 하는데요
한 4개까지는 실험적으로 해봤습니다. 동작 하네요.
(데이터시트를 보니 어떤데는 핀 하나당 1미리암페어 어떤건 100미리암페어... 사실 데이터시트를 잘 못봐서 ㅠㅠ)
근데 그 이상 늘려서 만약 과전류가 흐른다거나 해서 보드가 망가지면 곤란할 것 같아서요 ㅠ
최대 몇 암페어까지 버틸수 있는지 궁금합니다!!!
구체적으로 가능하시다면... 몇개의 LED가 가능할까요 으음;;
허용치 넘어가면 보드가 타나요??;;
(증폭기나 전원공급기를 따로 쓰는게 낫지 않을까 하는 생각도 하고있는데... 20~30개 이상 달면)
<예제소스 관련>
예제소스에서 보면 configureTC와 configurePIT함수가 있는데
정확히 이 함수가 뭐하는 함수인가요? 아마 TC는 TC0라는 ISR을 그 주기만큼 선언하는것 같은데... PIT에도 비슷한 부분이 있긴 한데 접두사가 AIC 로 된 것과 PIT로 된 것을 혼용 하는 부분이 있습니다.
static void ConfigurePit(void)
{
// Initialize the PIT to the desired frequency
PIT_Init(PIT_PERIOD, BOARD_MCK / 48000000);
PIT_Init(PIT_PERIOD, 10000);
// Configure interrupt on PIT
AIC_DisableIT(AT91C_ID_SYS);
AIC_ConfigureIT(AT91C_ID_SYS, AT91C_AIC_PRIOR_LOWEST, ISR_Pit);
AIC_EnableIT(AT91C_ID_SYS);
PIT_EnableIT();
// Enable the pit
PIT_Enable();
}
AIC가 붙은 부분은 TC0에서와 같이 인터럽트를 설정 하는것 같구요
저렇게 최대 클럭인 48Mhz로 선언을 해도 무리가 없는지 알고싶습니다.
그리고 PIT_EnableIT 함수와 PIT_Enable 함수는 어떤 역할을 하는지요?
타고 들어가보면
AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITEN;
AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITIEN;
이렇게 있는데 아마 PIMR이라는 변수에 option을 주는듯 하네요(레지스터에)
PIMR은... Period Interval Mode Register 라고 쓰여있는데
어떤 모드를 말하는 것인지 잘 모르겠습니다.
저 소스 두줄이 있고 없고에 대한 구체적인 보드 동작에서의 차이가 알고싶네요
(약간은 전문적인 내용이 되더라도...)
또한 소스에서 인터럽트의 주기는 선언 가능한데요... 실행시간을 알아야해서 ㅠ
elapsed -= start;와 같은 한줄짜리 명령어는 몇 클럭을 소모하게 되나요?
기본 최대클럭인 48Mhz로 동작 하는게 맞는지...
ISR_TC0라는 함수를 보면
// Clear status bit to acknowledge interrupt
AT91C_BASE_TC0->TC_SR;
이런 부분이 있는데 이 부분을 보면... int a라는 변수를 그냥 a;
이렇게 호출 한 것과 같은 것 같은데 어떻게 이로 인해 인터럽트 스테이터스 비트를 클리어 한다는건지 궁금합니다!!! ㅠㅠ
인터럽트를 사용 할때 관련된...(예를 들면 다른 레지스터들도 많은데... PIO상태레지스터 라든지 꼭 이 구문을 써야 하나요?) 레지스터를 저런식으로 써줘야 하는건지
그 여기 자료실에 있는 컴파일러 설치법과 디버깅법 보고 따라했는데요
혹시 기계어(어셈블리) 볼수있는 방법은 없나요? J-tag말구요... 컴터에 시리얼 포트가 없어서리;;
j-tag이랑 uart 둘다 구입 했구요... sam-ba와 USB를 이용하여 소스를 올리고 내리고 있습니다.
(하이퍼 터미널은 USB로만 연결 안되는가요)
<보드 성능 관련>
input이나 output을 함수 혹은 주소를 이용해 set/clear하는 것으로 전압의 인가를 바꾸어 인식을 하는것 같은데요. 전압은 얼마나 빠르게 바뀌는지 알고싶어요. set을 하고 전압이 들어갈때까지... 혹은 외부 전압이 인풋으로 들어가고 보드가 인식을 하는데까지... ns혹은 ms여도 좋습니다. (물론 정확한 성능을 말씀하시기는 힘드실지 모르지만 평균치여도 좋습니다.)
그리고 input threshold 알고싶네요. 최대 몇volt 인풋을 받을 수 있는지, 그리고 몇 volt이상이어야지 이 값을 1로 인식하는지두요...(소프트웨어적으로 바꿀 수 있는지도 알고싶어요 그냥 레지스터 변수로부터 읽어오는 부분밖에 설명이 안되어있어서)
그리고 전원을 지금은 USB포트로 컴퓨터로부터 받아오는데
만약 휴대를 하려고 한다면(전원 공급을 하려 한다면)
9v짜리 건전지를 전압조절해서 5v랑 그라운드 핀(보드에 직접)에 납땜을 한다던가 해서 연결 해주면 될까요?! 이 부분에 대해서는 5v에 인가해라...라고만 쓰여있었던것 같아서요
휴대용으로 만들어야 할것 같은데 음... ㅠ
쓰다보니 너무 길어진 것 같네요 ㅜ. 너무 답답해서리... 답변 주시면 감사하겠습니다!!. 수고하세요.
관리자 답변
안녕하세요
본사에서 제공되는 예제관련 및 킷트하드웨어에 관련하여 써포트를 하지만
죄송하지만 그외의 경우에는 하지않습니다.;;
><보드 전류관련>
>저희가 하나의 핀에 여러개의 LED를 연결 해서 하나의 거대한 광원을 만들려고 하는데요
>한 4개까지는 실험적으로 해봤습니다. 동작 하네요.
>(데이터시트를 보니 어떤데는 핀 하나당 1미리암페어 어떤건 100미리암페어... 사실 데이터시트를 잘 못봐서 ㅠㅠ)
>근데 그 이상 늘려서 만약 과전류가 흐른다거나 해서 보드가 망가지면 곤란할 것 같아서요 ㅠ
>최대 몇 암페어까지 버틸수 있는지 궁금합니다!!!
>구체적으로 가능하시다면... 몇개의 LED가 가능할까요 으음;;
>허용치 넘어가면 보드가 타나요??;;
>(증폭기나 전원공급기를 따로 쓰는게 낫지 않을까 하는 생각도 하고있는데... 20~30개 이상 달면)
시트상에 전류 소모량 30mA 전압강하는 3.2V 포트에 하나씩만 달아서 사용해도 ;; 무방한듯합니다.
한포트에 여러개를 연결하여 사용하면 밝기만 줄어듭니다. 일반포트에서 나가는 전류량은 20~50mA(칩마다 틀립니다.)입니다.;;
조명용 LED 컨트롤러를 찾아보시것이 좋겠군요.
함수관련부분은 타이머관련된 TC,RTT,PIT 이름입니다.
AIC 인터럽터를 관리하는 부분입니다.
>AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITEN;
>AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITIEN;
PIMR (pit 라는 타이머를 설정하는 레지스터 입니다.)라는 레지스터 안에 아래의 비트가 존재.
PITEN = pit enable
PITIEN = pit intreeupt enable
두줄없으면 당연이 pi타이머는 동작을 하지 않습니다.
pit는 메인클럭/16 분주하며, 20비트 카운트를 사용합니다.
ISR_TC0라는 함수를 보면
// Clear status bit to acknowledge interrupt
AT91C_BASE_TC0->TC_SR;
이런 부분이 있는데 이 부분을 보면... int a라는 변수를 그냥 a;
이렇게 호출 한 것과 같은 것 같은데 어떻게 이로 인해 인터럽트 스테이터스 비트를 클리어 한다는건지 궁금합니다!!! ㅠㅠ
인터럽트를 사용 할때 관련된...(예를 들면 다른 레지스터들도 많은데... PIO상태레지스터 라든지 꼭 이 구문을 써야 하나요?) 레지스터를 저런식으로 써줘야 하는건지
설정에 따라 리드하여 클리어 시키는 방법이 있고 자동으로 클리어 방법이 있습니다.
컴파일러에서 바이러니 파일이 생성되면 그 중간단계쯤에 어셈으로된 코드도 나옵니다.; 확인해 보시길 바랍니다. (컴파일러마다 틀립니다. 옵셥을 넣어야하는 경우)
input이나 output을 함수 혹은 주소를 이용해 set/clear하는 것으로 전압의 인가를 바꾸어 인식을 하는것 같은데요. 전압은 얼마나 빠르게 바뀌는지 알고싶어요. set을 하고 전압이 들어갈때까지... 혹은 외부 전압이 인풋으로 들어가고 보드가 인식을 하는데까지... ns혹은 ms여도 좋습니다. (물론 정확한 성능을 말씀하시기는 힘드실지 모르지만 평균치여도 좋습니다.)
20us 이하는 포트로 출력 변환하기는 힘듭니다.
그리고 input threshold 알고싶네요. 최대 몇volt 인풋을 받을 수 있는지, 그리고 몇 volt이상이어야지 이 값을 1로 인식하는지두요...(소프트웨어적으로 바꿀 수 있는지도 알고싶어요 그냥 레지스터 변수로부터 읽어오는 부분밖에 설명이 안되어있어서)
최대5볼트까지 인식 가능합니다. 그이상은 칩에 무리가 갈수있습니다. 약2볼트 이상이면 보통 1로 인식합니다.
그리고 전원을 지금은 USB포트로 컴퓨터로부터 받아오는데
만약 휴대를 하려고 한다면(전원 공급을 하려 한다면)
9v짜리 건전지를 전압조절해서 5v랑 그라운드 핀(보드에 직접)에 납땜을 한다던가 해서 연결 해주면 될까요?! 이 부분에 대해서는 5v에 인가해라...라고만 쓰여있었던것 같아서요
휴대용으로 만들어야 할것 같은데 음... ㅠ
모듈만 가지고 계시듯한데요 약5볼트 만 넣으면 됩니다. 실지적으로 칩은 3.3 볼트 를 사용합니다.
안에 다시 레큘레이터가 있어 정확한 5볼트 입력이 필요가 없습니다.
위내용은 거의 시트에 다 적혀 있는내용입니다. 시트를 한번 읽어 보시거나
관련서적을 구입해서 보시길 바랍니다.
수고하세요
>하다가 하다가 너무 답답해서 질문 올립니다 ㅠ
>학부생이다보니 보드도 처음 다뤄보고...
>
>
>arm 보드 : sam7s64
>LED : LW514
>
>
><보드 전류관련>
>저희가 하나의 핀에 여러개의 LED를 연결 해서 하나의 거대한 광원을 만들려고 하는데요
>한 4개까지는 실험적으로 해봤습니다. 동작 하네요.
>(데이터시트를 보니 어떤데는 핀 하나당 1미리암페어 어떤건 100미리암페어... 사실 데이터시트를 잘 못봐서 ㅠㅠ)
>근데 그 이상 늘려서 만약 과전류가 흐른다거나 해서 보드가 망가지면 곤란할 것 같아서요 ㅠ
>최대 몇 암페어까지 버틸수 있는지 궁금합니다!!!
>구체적으로 가능하시다면... 몇개의 LED가 가능할까요 으음;;
>허용치 넘어가면 보드가 타나요??;;
>(증폭기나 전원공급기를 따로 쓰는게 낫지 않을까 하는 생각도 하고있는데... 20~30개 이상 달면)
>
>
><예제소스 관련>
>예제소스에서 보면 configureTC와 configurePIT함수가 있는데
>정확히 이 함수가 뭐하는 함수인가요? 아마 TC는 TC0라는 ISR을 그 주기만큼 선언하는것 같은데... PIT에도 비슷한 부분이 있긴 한데 접두사가 AIC 로 된 것과 PIT로 된 것을 혼용 하는 부분이 있습니다.
>static void ConfigurePit(void)
>{
> // Initialize the PIT to the desired frequency
> PIT_Init(PIT_PERIOD, BOARD_MCK / 48000000);
> PIT_Init(PIT_PERIOD, 10000);
>
> // Configure interrupt on PIT
> AIC_DisableIT(AT91C_ID_SYS);
> AIC_ConfigureIT(AT91C_ID_SYS, AT91C_AIC_PRIOR_LOWEST, ISR_Pit);
> AIC_EnableIT(AT91C_ID_SYS);
> PIT_EnableIT();
>
> // Enable the pit
> PIT_Enable();
>}
>AIC가 붙은 부분은 TC0에서와 같이 인터럽트를 설정 하는것 같구요
>저렇게 최대 클럭인 48Mhz로 선언을 해도 무리가 없는지 알고싶습니다.
>그리고 PIT_EnableIT 함수와 PIT_Enable 함수는 어떤 역할을 하는지요?
>타고 들어가보면
>AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITEN;
>AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITIEN;
>이렇게 있는데 아마 PIMR이라는 변수에 option을 주는듯 하네요(레지스터에)
>PIMR은... Period Interval Mode Register 라고 쓰여있는데
>어떤 모드를 말하는 것인지 잘 모르겠습니다.
>저 소스 두줄이 있고 없고에 대한 구체적인 보드 동작에서의 차이가 알고싶네요
>(약간은 전문적인 내용이 되더라도...)
>또한 소스에서 인터럽트의 주기는 선언 가능한데요... 실행시간을 알아야해서 ㅠ
>elapsed -= start;와 같은 한줄짜리 명령어는 몇 클럭을 소모하게 되나요?
>기본 최대클럭인 48Mhz로 동작 하는게 맞는지...
>
>ISR_TC0라는 함수를 보면
> // Clear status bit to acknowledge interrupt
> AT91C_BASE_TC0->TC_SR;
>이런 부분이 있는데 이 부분을 보면... int a라는 변수를 그냥 a;
>이렇게 호출 한 것과 같은 것 같은데 어떻게 이로 인해 인터럽트 스테이터스 비트를 클리어 한다는건지 궁금합니다!!! ㅠㅠ
>인터럽트를 사용 할때 관련된...(예를 들면 다른 레지스터들도 많은데... PIO상태레지스터 라든지 꼭 이 구문을 써야 하나요?) 레지스터를 저런식으로 써줘야 하는건지
>
>그 여기 자료실에 있는 컴파일러 설치법과 디버깅법 보고 따라했는데요
>혹시 기계어(어셈블리) 볼수있는 방법은 없나요? J-tag말구요... 컴터에 시리얼 포트가 없어서리;;
>j-tag이랑 uart 둘다 구입 했구요... sam-ba와 USB를 이용하여 소스를 올리고 내리고 있습니다.
>(하이퍼 터미널은 USB로만 연결 안되는가요)
>
>
><보드 성능 관련>
>input이나 output을 함수 혹은 주소를 이용해 set/clear하는 것으로 전압의 인가를 바꾸어 인식을 하는것 같은데요. 전압은 얼마나 빠르게 바뀌는지 알고싶어요. set을 하고 전압이 들어갈때까지... 혹은 외부 전압이 인풋으로 들어가고 보드가 인식을 하는데까지... ns혹은 ms여도 좋습니다. (물론 정확한 성능을 말씀하시기는 힘드실지 모르지만 평균치여도 좋습니다.)
>그리고 input threshold 알고싶네요. 최대 몇volt 인풋을 받을 수 있는지, 그리고 몇 volt이상이어야지 이 값을 1로 인식하는지두요...(소프트웨어적으로 바꿀 수 있는지도 알고싶어요 그냥 레지스터 변수로부터 읽어오는 부분밖에 설명이 안되어있어서)
>
>그리고 전원을 지금은 USB포트로 컴퓨터로부터 받아오는데
>만약 휴대를 하려고 한다면(전원 공급을 하려 한다면)
>9v짜리 건전지를 전압조절해서 5v랑 그라운드 핀(보드에 직접)에 납땜을 한다던가 해서 연결 해주면 될까요?! 이 부분에 대해서는 5v에 인가해라...라고만 쓰여있었던것 같아서요
>휴대용으로 만들어야 할것 같은데 음... ㅠ
>
>
>쓰다보니 너무 길어진 것 같네요 ㅜ. 너무 답답해서리... 답변 주시면 감사하겠습니다!!. 수고하세요.
|
||||
| 6058 | 답변완료AD-USBISP v03 연결이 안됩니다. | 윤재우 | 2011-01-13 | 1,285 |
|
우선 제가 사용하는 환경은,
AVR Studio 4와 winavr을 사용하고 있습니다.
몇 일전까지 타겟보드(avr128)에 다운로드도 잘 되었는데 갑자기 먹통이 되었습니다.
장치관리자에서 COM포트 인식은 잘 되고 있습니다. (USB_Serial N. T. C라고 인식함)
그러나 avr studio에서는 연결 실패라고 뜹니다. (Connect failed - select AVR Proggrammer)
ISP에 LED는 usb커넥터쪽에 있는 불만 들어오고 ISP커넥터쪽엔 들어오지 않고 있습니다.
마지막으로 똑같은 AD-USBISP v03를 연결해 보면 잘 동작 합니다.
AS 보내야 하나요?
관리자 답변
안녕하세요
본사로 보내서거나 방문하여 A/S 를 받으시면 됩니다.
아래는 a/s 관련 링크입니다.
http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=5
수고하세요
>우선 제가 사용하는 환경은,
>
>AVR Studio 4와 winavr을 사용하고 있습니다.
>
>몇 일전까지 타겟보드(avr128)에 다운로드도 잘 되었는데 갑자기 먹통이 되었습니다.
>
>장치관리자에서 COM포트 인식은 잘 되고 있습니다. (USB_Serial N. T. C라고 인식함)
>
>그러나 avr studio에서는 연결 실패라고 뜹니다. (Connect failed - select AVR Proggrammer)
>
>ISP에 LED는 usb커넥터쪽에 있는 불만 들어오고 ISP커넥터쪽엔 들어오지 않고 있습니다.
>
>마지막으로 똑같은 AD-USBISP v03를 연결해 보면 잘 동작 합니다.
>
>AS 보내야 하나요?
|
||||
| 6057 | 답변완료오늘 보드 받았는데 이상합니다. | 전인배 | 2011-01-12 | 1,336 |
|
AB-M128-B 개발 보드랑 AM-MS2를 받아서 스텝모터 돌려보는데요
다 연결하고 USBISP이용해서 단순히 스텝모터 구동하는 소스를 짜서 넣었습니다.
근데 여기서 이상한게 제가 초기화 시킨건 PORTB(0xFF)뿐인데 프로그램 넣고 USBISP 꼽혀있는 상태에서는 모터가 돌아가고 USBISP를 빼면 전원공급이 다 되고 있는 상태에서도 모터가 돌아가지 않습니다.
avrstudio4 사용했구요.
단순히 while문 무한루프로 돌렸는데 이럽니다.
그리고 B포트 뿐만아니라 다른 포트들도 똑같은 증상을 보입니다.
빠른 답변 부탁드립니다.
ps: 드라이버 예제 소스들 수정점 부탁드립니다; (출력포트B로 연결하라고 주석처리 되있지만 실제 출력은 다른포트로 지정되있는 소스들이 대부분입니다)
관리자 답변
안녕하세요
/*
마이크로 스텝드라이버 구동 소스
포트 연결
Enable : PORTB 7번핀
Mode1 : PORTB 5번핀
Mode0 : PORTB 4번핀
R_DIR : PORTB 3번핀
R_CLK : PORTB 2번핀
L_DIR : PORTB 1번핀
L_CLK v PORTB 0번핀
*/
예제안에 있는 주석 부분은 오타입니다. 아래처럼 변경되야 합니다.
어떤 포트들 저런 순번을 가진다는 주석입니다.
/*
마이크로 스텝드라이버 구동 소스
포트 연결
Enable : PORTx 7번핀
Mode1 : PORTx 5번핀
Mode0 : PORTx 4번핀
R_DIR : PORTx 3번핀
R_CLK : PORTx 2번핀
L_DIR : PORTx 1번핀
L_CLK v PORTx 0번핀
*/
예제코드안에 있는 *.hex 파일을 넣어 정상적으로 동작 유무를 먼저 확인해 보시길
바랍니다. ( USBISP 로 정상적인 다운로드가 되는지를 확인해 보세요 )
수고하새요
>AB-M128-B 개발 보드랑 AM-MS2를 받아서 스텝모터 돌려보는데요
>
>다 연결하고 USBISP이용해서 단순히 스텝모터 구동하는 소스를 짜서 넣었습니다.
>
>근데 여기서 이상한게 제가 초기화 시킨건 PORTB(0xFF)뿐인데 프로그램 넣고 USBISP 꼽혀있는 상태에서는 모터가 돌아가고 USBISP를 빼면 전원공급이 다 되고 있는 상태에서도 모터가 돌아가지 않습니다.
>
>avrstudio4 사용했구요.
>
>단순히 while문 무한루프로 돌렸는데 이럽니다.
>
>그리고 B포트 뿐만아니라 다른 포트들도 똑같은 증상을 보입니다.
>
>빠른 답변 부탁드립니다.
>
>ps: 드라이버 예제 소스들 수정점 부탁드립니다; (출력포트B로 연결하라고 주석처리 되있지만 실제 출력은 다른포트로 지정되있는 소스들이 대부분입니다)
|
||||
| 6056 | 답변완료저.. 개발보드 문의입니다. | 이학경 | 2011-01-12 | 1,389 |
|
그림에서 보이는 핀의 그라운드와 전압위치, 포트위치를 알고싶다는 문의입니다.
///아 오늘 a/s 택배로 이학경 이름으로 접수햇는데
어떻게 처리되었는지 알수 있을까요?
관리자 답변
박스 10핀 헤더의 순번은 아래의 메뉴얼이나 도면을 보면 순번이 나와 있습니다.
그리고 킷트 뒤면에 실크로 번호가 적혀 있습니다.
http://www.newtc.co.kr/download/KD-128Pro/KD-128Pro_manual.pdf
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=KD-128Pro&select_arrange=headnum&desc=asc&no=313
A/S는 제품점검후 개별적으로 연락드립니다. 수리 소요시간은 1~2일이 소모됩니다.
(택배 소모일 제외)
현재상황은 택배로 수령한 상태입니다.
수고하세요
>그림에서 보이는 핀의 그라운드와 전압위치, 포트위치를 알고싶다는 문의입니다.
>
>
>///아 오늘 a/s 택배로 이학경 이름으로 접수햇는데
>
>어떻게 처리되었는지 알수 있을까요?
|
||||
| 6055 | 답변완료10핀 전압 위치를 알고 싶습니다 | 이학경 | 2011-01-12 | 1,294 |
|
http://www.devicemart.co.kr/mart7/mall.php?cat=017013002&query=view&no=19267
이제품을 빵판을 이용하여 뉴티씨 개발키트에 연결하려고 합니다
http://www.devicemart.co.kr/mart7/mall.php?cat=005003001&query=view&no=37011
위에 10핀 커넥터를 이용하여 연결하려고 하는데요
질문은
10핀중 8개는 포트이고 하나는 전압 하나는 GND 일텐데
몇번핀이 포트이고 몇번핀이 전압 그라운드 인지를 모르겠습니다
감사합니다
관리자 답변
안녕하세요
본사에서 판매되는 제품이 아니라서 모릅니다.
구입처에서 물어보시거나 시트를 보시길 바랍니다.
수고하세요
>http://www.devicemart.co.kr/mart7/mall.php?cat=017013002&query=view&no=19267
>이제품을 빵판을 이용하여 뉴티씨 개발키트에 연결하려고 합니다
>
>http://www.devicemart.co.kr/mart7/mall.php?cat=005003001&query=view&no=37011
>위에 10핀 커넥터를 이용하여 연결하려고 하는데요
>
>질문은
>10핀중 8개는 포트이고 하나는 전압 하나는 GND 일텐데
>몇번핀이 포트이고 몇번핀이 전압 그라운드 인지를 모르겠습니다
>
>감사합니다
|
||||
| 6054 | 답변완료이제품을 개발키트와 연결하려 합니다 | 이학경 | 2011-01-12 | 1,349 |
|
http://www.devicemart.co.kr/mart7/mall.php?cat=054001002&query=view&no=23185
가능한지 확인부탁드립니다
사용하는 제품은 avr pro개발키트입니다
1.2A여도 괜찮은지요
관리자 답변
안녕하세요
KD-128Pro만 구동시키는 경우 12볼트에 전류는 300mA이상을 인가하시면 됩니다.
모터 같은 전류를 많이 소모하는 것과 연결시는 그 모터의 정격을 확인하시고 전류를 인가하시면
됩니다.
수고하세요
>http://www.devicemart.co.kr/mart7/mall.php?cat=054001002&query=view&no=23185
>
>가능한지 확인부탁드립니다
>사용하는 제품은 avr pro개발키트입니다
>
>1.2A여도 괜찮은지요
|
||||
| 6053 | 답변완료USBISP_V03 A/S 보냅니다. | 김동호 | 2011-01-11 | 1,304 |
|
USBISP를 타겟과 연결을 안하고 PC USB단자에 연결했을때 빨간LED가 깜박거리는게 아닌 녹색LED가 깜박거림도 없이 계속 켜져있습니다.
ISP 다운로딩도 안됨을 확인하고 A/S 발송합니다.
관리자 답변
안녕하세요
제품을 받으면 제품상태 이상유무 확인후 연락드립니다.
수고하세요
>USBISP를 타겟과 연결을 안하고 PC USB단자에 연결했을때 빨간LED가 깜박거리는게 아닌 녹색LED가 깜박거림도 없이 계속 켜져있습니다.
>ISP 다운로딩도 안됨을 확인하고 A/S 발송합니다.
|
||||
| 6052 | 답변완료ISP Entering 오류에 관해서 부탁드려요 | 조선행 | 2011-01-11 | 1,303 |
|
Code Vision 으로 USB ISP 로 굽다가.
전원이 뽑히는 바람에 오류가 났습니다.
그 후로 다시 구우려고 하니 아래와 같이 에러가 나네요.
도움 부탁드립니다.
감사합니다,
관리자 답변
안녕하세요
본사로 보내시거나 방문하시면 점검을 받아보세요
점검을 받으실때는 킷트와 ISP를 같이 보내주세요
아래링크는 a/s 절차입니다.
http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=5
수고하세요
>Code Vision 으로 USB ISP 로 굽다가.
>
>전원이 뽑히는 바람에 오류가 났습니다.
>
>그 후로 다시 구우려고 하니 아래와 같이 에러가 나네요.
>
>도움 부탁드립니다.
>
>감사합니다,
|
||||
| 6051 | 답변완료개발키트pro 외부전압 문의입니다.. | 이학경 | 2011-01-11 | 1,396 |
|
http://www.partsland.co.kr/shop/shopdetail.html?branduid=51872&xcode=006&mcode=001&scode=&type=X&search=&sort=brandname
이 SMPS를 사용하고잇는데요
외부전압으로 뉴티씨 개발키트pro에 연결해도 구동되나요? 5V인데 사용해도 괜찮을런지..
아니면 어떤걸 사서 써야하나요
관리자 답변
안녕하세요? 고객님,
아답타쪽이나 바로 옆 커넥터의 전원입력 쪽에 연결해서 써도 되지만, 오랜시간은 곤란합니다.
레귤레이터가 5V를 만들고 나서 나머지 전압 떨구기 위해서 열로 소모하기 때문인데요.
열이 너무 심해지면, 7805가 뻣었다가 망가질 수 있구요. 그런 일이 반복되면, AVR도 망가질 수 있어요.
AVR에는 가능하면 9~12V 300mA~1A 정도 되는 아답타나 SMPS를 사용해 주면 좋습니다.
수고하세요.
>http://www.partsland.co.kr/shop/shopdetail.html?branduid=51872&xcode=006&mcode=001&scode=&type=X&search=&sort=brandname
>
>이 SMPS를 사용하고잇는데요
>
>외부전압으로 뉴티씨 개발키트pro에 연결해도 구동되나요? 5V인데 사용해도 괜찮을런지..
>
>아니면 어떤걸 사서 써야하나요
|
||||
| 6050 | 답변완료시리얼 통신 동기화 문의 | 안재철 | 2011-01-10 | 1,326 |
|
두개의 AVR atmega 128의 데이터를 서로 동기화 하려 합니다.
현재 시험은 PC와 1대의 Atmage 128을 가지고 테스트를 수행하고 있습니다.
우선 Atmega 128에서 타이머를 가지고 2초에 ~ 3초에 한번씩 PC로 PORTA ~ PORTG까지의
데이터 7바이트를 보내는 것은 잘 동작 하는데..
AVR에서 타이머를 걸어놓고 데이터를 전송하면, PC에서 전송된 데이터를 AVR에서 수신하지
못하는 문제가 발생하였습니다.
반면 AVR에서 타이머를 해제하면, PC에서 보내는 데이터가 수신이 됩니다. 원인이 무엇인지
모르겠습니다. 시리얼 통신을 위한
1. UCSR0A 레지스터 RXC0(7bit)와 UDRE0(5bit) 두개는 동시에 1이 될 수 없습니까??
2. 또는 송신과 수신이 동시에 이루어 질 수 없는 것인가요?
void serial_tx(unsigned char *pTxData, int nSize)
{
// PC로 송신
for(int i=0; i< nSize; i++)
{
while((UCSR0A&0x20) == 0x00);
UDR0 = pTxData[i];
}
}
unsigned char serial_rx(void)
{
// PC로부터 데이터 수신
while((UCSR0A&0x80) == 0x00);
return UDR0;
}
관리자 답변
안녕하세요
예제코드나 킷트에 대한 하드웨어 대해서는 써포트를 하지만,
유저가 요구하는 코드 작성에 대한 문의는 받지 않습니다.
while문 같은 코드로 사용하면 uart데이터 RX,TX는 같은 버퍼를 사용하기때문에
동시에 송신,수신이 힘듭니다.
아래링크를 참조하시길 바랍니다.
http://cafe.naver.com/newtc/1078
수고하세요
>두개의 AVR atmega 128의 데이터를 서로 동기화 하려 합니다.
>
>현재 시험은 PC와 1대의 Atmage 128을 가지고 테스트를 수행하고 있습니다.
>
>우선 Atmega 128에서 타이머를 가지고 2초에 ~ 3초에 한번씩 PC로 PORTA ~ PORTG까지의
>
>데이터 7바이트를 보내는 것은 잘 동작 하는데..
>
>AVR에서 타이머를 걸어놓고 데이터를 전송하면, PC에서 전송된 데이터를 AVR에서 수신하지
>
>못하는 문제가 발생하였습니다.
>
>반면 AVR에서 타이머를 해제하면, PC에서 보내는 데이터가 수신이 됩니다. 원인이 무엇인지
>
>모르겠습니다. 시리얼 통신을 위한
>
>1. UCSR0A 레지스터 RXC0(7bit)와 UDRE0(5bit) 두개는 동시에 1이 될 수 없습니까??
>
>2. 또는 송신과 수신이 동시에 이루어 질 수 없는 것인가요?
>
>
>void serial_tx(unsigned char *pTxData, int nSize)
>{
> // PC로 송신
> for(int i=0; i< nSize; i++)
> {
> while((UCSR0A&0x20) == 0x00);
> UDR0 = pTxData[i];
> }
>}
>
>unsigned char serial_rx(void)
>{
> // PC로부터 데이터 수신
> while((UCSR0A&0x80) == 0x00);
> return UDR0;
>}
>
>
|
||||
| 6049 | 답변완료uart3개 이상 사용시 방법 질문입니다. | 유정곤 | 2011-01-10 | 1,305 |
|
안녕하세요~ 질문이 있어 이렇게 글남겨 봅니다.
128 pro사용하고 있으며 현재 개발환경은 AVR스튜디오 입니다.
지금 uart를 3개를 써야 하는 상황인데... 혹시 예제나
사용방법에 대한 자료가 있으면 도움 부탁드립니다.
수고하세요~
관리자 답변
안녕하세요
mega128 은 기본적으로 2개의 uart를 가지고 있습니다.
3개로 하는방법은 아래와 같습니다.
1. 타이머로 일반포트로 uart 기능을 구현
2. uart 확장용 칩을 연결하여 사용
3. atmega1280 같dl uart 4개를 지원하는 칩으로 변경
1.2 번은 구현하기 좀 힘듭니다.(관련자료나 예제가 없습니다.)
3번이 메인 디바이스를 변경하시는 것이 제일 편합니다.
수고하세요
>안녕하세요~ 질문이 있어 이렇게 글남겨 봅니다.
>
>128 pro사용하고 있으며 현재 개발환경은 AVR스튜디오 입니다.
>
>지금 uart를 3개를 써야 하는 상황인데... 혹시 예제나
>사용방법에 대한 자료가 있으면 도움 부탁드립니다.
>
>수고하세요~
|
||||
