Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 3653 | 답변완료가속도 센서로 거리를 측정하고자 합니다만... | 조승근 | 2009-09-18 | 4,261 |
|
안녕하세요..
저희 실험실에서 귀사의 제품을 구매하여
실험을 하고 있습니다만.. 궁금한점이 있어서
이렇게 문의 드립니다..
궁금점..
1, an3397의 내용을 이해하여 C Source를 참조하여 거리 측정 실험을 해보았습니다..( an33972.pdf의 내용에는 거리 계산을 위한 예제 소스가 있던데요)
하지만.. X 축으로만 움직였지만.. 실제 x,y 모든 축으로 data가 크게 변하는 것을 볼수 있었습니다. 또한 20Cm, 30 Cm, ~~ 60Cm 등. 움직이고 난뒤 X축 data만을 획득하여, 가속도에서 속도 변환, 거리 변환을 해보았지만, 이 거리는 아무 의미가 없는것 같더군요..
다시 말씀드리면.. 20Cm만 움직였을때가.. 60Cm 움직였을때보다. 더 큰 거리 Data의 출력을 얻었습니다..
거리 측정이 가능한지 의문이 갑니다.
중력 가속도.. 부분을 제거해야만 하는것일까요?
그렇다면.. 어떤 방법이 있는지요?
2...위에서 언급한 an3397.pdf의 내용에는 Offset Volt나 sensitivity에 대한 내용은 없고 거리 계산을 위한 예제 소스가 있던데, AN3447,pdf와 또다른 PPT 자료를 훓어보면 이 민감도와 옵셋 전압을 이용하도록 되어 있습니다..
민감도와 옵셋 전압을 이용하여 datasheet처럼 소스를 구성해서 실험해 보았지만.. 역시나 마찬가지로 거리 측정이 불가능하더라구요..그래도.. 어쩌면 제가 잘못 코드를 작성한 것일수도 있어서 질문드립니다만..
AN3397과 AN3447의 접근법이 틀린 이유는 무엇인가요?
만약.. 거리 측정이 가능한 방법을 알고계신다면.. 답변 부탁드리겠습니다.
감사합니다.
관리자 답변
안녕하세요?
문의가 진지하여, 나름 언급한 문건들과, 쓴 내용을 자세히 검토하여 보았습니다.
예전에 답변으로 올려준 문건들이라 한 번씩은 읽어본 내용이었지만, 다시 한 번 읽어 보았습니다.
우선, 중력 가속도 부분은 제거하여야 한다는 내용이 an3397의 서론에도 있고, 중간 내용에도 있습니다. 자세히 읽어 보시기 바랍니다.
실험을 하기 전에 우선, 센서의 여러가지 원인으로 인한 물리적인 오류를 잡아주기 위하여 AN3447.pdf을 참고하여 센서 켈리브레이션을 진행해 주는 것이 좋겠습니다.
또한, 3397에서 나온 내용을 참고하여 또한 거기서 나오는 켈리브레이션도 함께 진행하면 좋겠지요.
또한, 측정하는 시간간격이 짧을 수록, 즉, 주어진 시간안에 많은 데이터 샘플로 할 수록 양자화 에러도 줄 것이고, 그만큼 정확한 결과를 얻을 수 있겠습니다.
ATMEGA128의 데이터 시트를 봐도 그렇고 실제로 테스트 해 보아도, 보통 AVR은 15kHz가 ADC의 최대치라고 보시면 됩니다. 하지만, 가속도 센서 자체가 11kHz인가에서는 특성이 특별히 좋지 않아지므로, 10kHz 정도로 샘플링 하는 것이 좋겠습니다. AVR로는 거의 채널당 3kHz 정도가 이 가속도 센서로 좋은 데이터를 얻는 최대치라고 봐야 겠지요.
그 정도로 샘플링 한 후에, 크게 움직이면 생기게 되는 갑자기 생기는 물리적인 오류로 인한 이상한 샘플들을 제거하기 위하여 10개 샘플링 할 때마다 상위 2개 하위 2개 정도는 재하고, 중간값들을 소팅으로 정렬한 다음, 나머지 6개 정도의 값을 평균을 내서 하나의 값으로 사용합니다. 이러한 절차가 일종의 소프트웨어 필터 역할을 할 수 있으며, 많은 에러를 걸러주게 됩니다.
그렇게 되면 초당 채널마다 300개 정도의 샘플이 생기게 됩니다. 이 때의 시간 간격을 시간으로 환산하여, 적분할 때 시간축 델타T로 보면 되겠습니다.
초기에 위에서 얘기한 대로, 3447을 이용 물리적인 에러들을 잡아내어 보정하고, 완전 평형한 상태에서(an3447을 참고) 완전 정지한 상태에서의 가속도 값을 알아내서, 중력 가속도 값으로 지정한 후, an3397에서 나온 것처럼 켈리브레이션 한 후에, 이중 적분으로 거리 계산을 해 내되,
불안정한 움직임을 보이는 경우 노이즈로 인식하여 zero로 만들어 줄 수도 있어야 겠습니다.
실제로 센서칩 자체도 +-1/2LSB의 에러가 있으며, AVR 자체도 +-1/2LSB의 에러가 발생하며, 또한, 전송 과정에서도 +-1LSB 정도의 에러는 발생할 수 있습니다. 최소한의 아날로그 신호의 전송선로를 사용하고, 또한 신호의 노이즈를 막아주는 PCB 설계 등으로 최대한 노이즈를 제거하는 것도 중요하겠습니다.
이를 통하여 거리를 계산하면 보다 정확해 지리라고 생각합니다.
참고로 말한다면, 중력 가속도가 X,Y,Z 축 각각에 따라 기울어짐에 따라서 또한 정적 가속도 값이 각 축마다 달라지게 되는 데, 이를 자이로 센서로 미리 측정하여 두었다가, 그 위치에서 빼는 중력 가속도 값을 불러와서 빼가면서 현재의 동적 가속도만을 알아내는 테크닉도 필요하겠습니다.
이 때는 분명히 자이로 센서의 값을 받아서 동적 가속도 값을 정확히 알아내기 위하여 현재의 기울어짐을 각속도로 정확히 측정하는 것도 필요하겠습니다. 이렇게 보정하면 보다 정확한 결과를 얻을 수 있을 것으로 생각됩니다.
보다 정확한 결과를 위하여, ADC를 외부에 별도로 달아서, 보다 정밀하게 ADC 하는 것도 도움이 될 것 같습니다.
이 내용이 도움이 되었으면 좋겠습니다.
수고하세요.
>안녕하세요..
>저희 실험실에서 귀사의 제품을 구매하여
>실험을 하고 있습니다만.. 궁금한점이 있어서
>이렇게 문의 드립니다..
>
>궁금점..
>1, an3397의 내용을 이해하여 C Source를 참조하여 거리 측정 실험을 해보았습니다..( an33972.pdf의 내용에는 거리 계산을 위한 예제 소스가 있던데요)
>
> 하지만.. X 축으로만 움직였지만.. 실제 x,y 모든 축으로 data가 크게 변하는 것을 볼수 있었습니다. 또한 20Cm, 30 Cm, ~~ 60Cm 등. 움직이고 난뒤 X축 data만을 획득하여, 가속도에서 속도 변환, 거리 변환을 해보았지만, 이 거리는 아무 의미가 없는것 같더군요..
> 다시 말씀드리면.. 20Cm만 움직였을때가.. 60Cm 움직였을때보다. 더 큰 거리 Data의 출력을 얻었습니다..
>거리 측정이 가능한지 의문이 갑니다.
>중력 가속도.. 부분을 제거해야만 하는것일까요?
>그렇다면.. 어떤 방법이 있는지요?
>
>2...위에서 언급한 an3397.pdf의 내용에는 Offset Volt나 sensitivity에 대한 내용은 없고 거리 계산을 위한 예제 소스가 있던데, AN3447,pdf와 또다른 PPT 자료를 훓어보면 이 민감도와 옵셋 전압을 이용하도록 되어 있습니다..
>민감도와 옵셋 전압을 이용하여 datasheet처럼 소스를 구성해서 실험해 보았지만.. 역시나 마찬가지로 거리 측정이 불가능하더라구요..그래도.. 어쩌면 제가 잘못 코드를 작성한 것일수도 있어서 질문드립니다만..
>AN3397과 AN3447의 접근법이 틀린 이유는 무엇인가요?
>
>만약.. 거리 측정이 가능한 방법을 알고계신다면.. 답변 부탁드리겠습니다.
>
>
>감사합니다.
|
||||
| 3652 | 답변완료ktmlcd.h 파일을 얻고자 합니다. | 전정수 | 2009-09-18 | 1,420 |
|
kt-m128 보드 구매시 동봉되어있는 cd에 AVR관련 강좌가있습니다.
그중에 TEXTLCD의 내용 설명 중 공유된 ktmlcd.h파일을 include 폴더에 넣는다고 되어있는데.
ktmlcd.h파일을 구할 수가 없어서 이렇게 요청 메일을 드립니다.
제 메일은 [email protected] 입니다.
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
그 파일에는 아래 내용이 들어 있습니다.
#define EX_LCD_DATA (*(volatile unsigned char *)0x8000)
#define EX_LCD_CONTROL (*(volatile unsigned char *)0x8001)
#define EX_SS_DATA (*(volatile unsigned char *)0x8002)
#define EX_SS_SEL (*(volatile unsigned char *)0x8003)
#define EX_DM_SEL (*(volatile unsigned int *)0x8004)
#define EX_DM_DATA (*(volatile unsigned int *)0x8006)
#define EX_LED (*(volatile unsigned char *)0x8008)
#define EX_STEPPING (*(volatile unsigned char *)0x8009)
#define EX_DCMOTOR (*(volatile unsigned char *)0x800A)
#define EX_SERVO (*(volatile unsigned char *)0x800B)
그리고, Memory Mapped I/O로 Device를 이용하므로
애초에 MCUCR = MCUCR | 0x80; 이렇게 디바이스를 초기화 해주어야 합니다.
감사합니다.
>kt-m128 보드 구매시 동봉되어있는 cd에 AVR관련 강좌가있습니다.
>
>그중에 TEXTLCD의 내용 설명 중 공유된 ktmlcd.h파일을 include 폴더에 넣는다고 되어있는데.
>
>ktmlcd.h파일을 구할 수가 없어서 이렇게 요청 메일을 드립니다.
>
>제 메일은 [email protected] 입니다.
|
||||
| 3651 | 답변완료ATmega128키트에 관한 질문입니다. | 이재훈 | 2009-09-18 | 1,279 |
|
안녕하세요.전자공학학생인데, 검색하다보니 이 사이트를 알게되어 질문하게되었네요.^^;;
이 회사에서 판매하는 키트를 이용해서 아무 시스템을 다 제작할 수 있는건가요??
예를 들어서 실내보안 시스템을 만들려고 하는데요.외부침입하면 감지를 해야 하니까 센서
가 필요할테구요.
mcu가 필요한데 직접적으로 모든것을 설계하고 하는게 너무 기초이다 보니깐요.
판매하는 ATmega128키트와 센서 회로부분이 ISP로 연결해서 사용해도 아무상관이 없나요??
관리자 답변
안녕하세요? 고객님,
본 게시판은 반드시 실명으로 사용해 주셔야 합니다.
여러사람이 함께 사용하는 공간이라서, 본명 사용하시는 분들만 답변해 드리고 있습니다.
그리고, 아무 시스템이나 다 제작할 수 있는 것은 아니지만, 원하는 형태로 쉽게 만들 수 있도록 여러가지 예제 코드 회로도 등을 함께 제공하고 있습니다.
실내 보안 시스템 데모버전도 만들수 있겟지요.
실내 보안은 사실, 전원을 밧데리로 쓰는 경우도 많아서, 나중에는 최적화해서 사용하는 것이 좋습니다. 하지만, 본사 제품을 이용하여 데모는 얼마든지 가능하다고 생각됩니다.
센서는 실내 보안에서 보통 인체 감지 센서를 많이 사용하구요.
그런 센서는 본사 대리점 들 중 온라인 쇼핑몰 등에 가면 많이 팔고 있습니다.
공부를 좀 하셔야 할겁니다. 그냥 연결만 죽죽 한다고 되는 게 아니라, 이해해서
프로그램을 짜야 할테니까요.
본사의 KD-128PRO-C 킷트를 구매하여 강좌->AVR강좌에서 초초보 강좌를 참고하여
먼저 공부하는 것이 좋겠습니다.
다음에는 꼭 본명으로 질문하여 주세요. 그렇지 않으면, 질문이 삭제될 수 있습니다.
수고하세요.
>이 회사에서 판매하는 키트를 이용해서 아무 시스템을 다 제작할 수 있는건가요??
>
>예를 들어서 실내보안 시스템을 만들려고 하는데요.외부침입하면 감지를 해야 하니까 센서
>
>가 필요할테구요.
>
>mcu가 필요한데 직접적으로 모든것을 설계하고 하는게 너무 기초이다 보니깐요.
>
>판매하는 ATmega128키트와 센서 회로부분이 ISP로 연결해서 사용해도 아무상관이 없나요??
>
>
|
||||
| 3650 | 답변완료AM-CS2P 구동모듈질문입니다(커넥터관련) | 김준식 | 2009-09-18 | 1,500 |
|
AVR에 AM-CS2P구동모듈을써서 모터를 연결하려하는데
스테핑모터 커넥터에 모터 결선을 어떡해해야하는지잘모르겠습니다 모터 색깔별로 6개의선이있는데
BLACK,YELLOW,RED,WHITE,GREEN,BLUE 커넥터의 어느부분 어디에 어떤색을 사용해야하는지 좀 알려주세요 답변부탁드립니다
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
CS2P 메뉴얼에 보면, 각각 A, COM_A, /A, B, COM_B, /B를 어떻게 6핀 커넥터에 연결하는 지 잘 나와 있고, 모터 메뉴얼을 찾기 어렵다면, 어떻게 모터 극성을 찾아내는 지 방법도 잘 나와 있으니, 참고하시기 바랍니다. 자료실에 가면 CS2P 메뉴얼이 있습니다.
수고하세요.
>AVR에 AM-CS2P구동모듈을써서 모터를 연결하려하는데
>스테핑모터 커넥터에 모터 결선을 어떡해해야하는지잘모르겠습니다 모터 색깔별로 6개의선이있는데
>BLACK,YELLOW,RED,WHITE,GREEN,BLUE 커넥터의 어느부분 어디에 어떤색을 사용해야하는지 좀 알려주세요 답변부탁드립니다
|
||||
| 3649 | 답변완료atmega128 질문 | 이상훈 | 2009-09-18 | 1,442 |
|
제가 atmega128을 이용해서 보드를 한번 만들어 봤습니다.
ISP 관련 질문인데요 ...
제가 atmega128 12번,13번핀 PB2(MOSI),PB3(MISO) 를 ISP 로 뽑았는데
atmega128은 PDI , PDO 를 ISP로 써야하나요? 이미 보드를 떳거든요....
보드오면 조립해서 시험해야 하는데 PDI,PDO를 I/O로 사용하고 그냥 아무 생각없이
PB2(MOSI),PB3(MISO) 를 ISP 로 뽑았는데 프로그램 하는데 이상 없을까요?
CPU보드를 처음 만들어 보는거라서요...
관리자 답변
[추가]
atmega128 pro 키트로 공부했는데 지금 보니 키트에는 PDI,PDO에서 ISP로
연결이 되있네요... MOSI,MISO로는 ISP 안되나요?
|
||||
| 3648 | 답변완료AB-M16-B 간단한 질문드립니다. | 류관인 | 2009-09-18 | 1,474 |
|
AVR MEGA 16 개발보드
AB-M16-B
를 사서 하고 있는데..
보드에 보면 12v(+) out(-)  2핀 모렉스 로 있는 파트가 있는데..
여기서 12v 는 12v입력 쪽을 넣는다 치면 out은.. 뭐를 연결해야하나요??
그라운드?
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
거기에 12V OUT 이라고 적힌 것은 두커넥터를 통해서, 12V가 출력된다는 말입니다.
+ - 라고 적힌 것을 유심히 보셔서, 반드시 +쪽에는 7.4 ~ 28V 이내로 -는 GND를 연결하여
전원을 공급하여 사용하시면 됩니다. 추천이 12V 입니다.
수고하세요.
>AVR MEGA 16 개발보드
>AB-M16-B
>
>를 사서 하고 있는데..
>
>보드에 보면 12v(+) out(-) 2핀 모렉스 로 있는 파트가 있는데..
>
>여기서 12v 는 12v입력 쪽을 넣는다 치면 out은.. 뭐를 연결해야하나요??
>
>그라운드?
>
|
||||
| 3647 | 답변완료Entering programming mode.. FAILED! | 조성호 | 2009-09-18 | 1,413 |
|
Entering programming mode.. FAILED! <== 이것 때문에
미치 것슈..!
어떻게 해야 하나용
관리자 답변
안녕하세요? 조성호 고객님,
저희 NewTC를 이용하여 주셔서 감사합니다.
그런데, 질문하실 때는 좀 더 자세하게 해야 답변이 가능하구요.
상대방이 질문의 의도를 정확히 알지 못하면 답변을 못하잖아요?
빠른 해결을 위하여 어떤 환경에 있는 지...등등을 정확히 올려주세요.
보통, 질문 올릴 때 캡쳐해서 올리기도 합니다.
그리고, 여러사람이 함께 보는 공간인데, 조금만 질문시에도 예의를 갖춰서 질문하시면
좋겠습니다.
수고하세요.
>Entering programming mode.. FAILED! <== 이것 때문에
>
>미치 것슈..!
>
>어떻게 해야 하나용
|
||||
| 3646 | 답변완료질문입니다^^;; | 송정훈 | 2009-09-17 | 1,377 |
|
여러차례질문드렸듯이..
열이 좀 많이 나서 그렇습니다^^;;
가변저항을 최고로 왼쪽으로 돌린상태에서
(3W저항에)열이 서서히 나다가 너무뜨거워지길래;;
오른쪽으로 돌려봤더니..
더뜨거워지네요;;;
3W저항이 뜨거워진다는건 전류가 많이 흐른다는거 아닌가요??;;
최소로 흘려도(가변저항을 제일 왼쪽으로 돌려놔서) 뜨거워지는거라면...
대책이 없는건가요??;;
관리자 답변
사용하는 모터와 전원부를 들고 와보세요.
끝도 없이 이어지는 질문인데, 뭐가 문제인지는 전체적인 환경을 봐야 진단이 될거 같네요.
수고하세요.
>
>여러차례질문드렸듯이..
>
>열이 좀 많이 나서 그렇습니다^^;;
>
>
>
>
>
>가변저항을 최고로 왼쪽으로 돌린상태에서
>
>(3W저항에)열이 서서히 나다가 너무뜨거워지길래;;
>
>오른쪽으로 돌려봤더니..
>
>더뜨거워지네요;;;
>
>
>
>
>3W저항이 뜨거워진다는건 전류가 많이 흐른다는거 아닌가요??;;
>
>최소로 흘려도(가변저항을 제일 왼쪽으로 돌려놔서) 뜨거워지는거라면...
>
>대책이 없는건가요??;;
>
>
>
>
>
>
>
>
>
>
|
||||
| 3645 | 답변완료3축가속센서로 각도구하는거 질문드립니다. | 이경호 | 2009-09-17 | 1,429 |
|
안녕하세요 AB-M128pro-a V02 보드와 AM03aixs 모델로 기울어진 각도를 구하려고합니다.
저의 생각으로는
제공해주신 자료를 보면 1.5g에서 가만히 세워두면 adc를 해서 값이 나오면
x 와 y는 0g 니깐 1.65/3.3*1024 해서 512가 나오고 있어야하는거아닌가요?
그리고 x의 +방향으로 기울여주면 대략 2.76정도씩 값이 변하는걸로 생각했습니다.
그런데 그냥가만히 세워두면 x = 92 y = 84 z =39 이정도값에서 왔다갔다하는 값이나오는데요
왜그런건지 알수있을까요?
아래는 위에 작업의 adc 부분과 출력 부분입니다.
void get_adc_data(void)
{
//unsigned int i;
//for(i=0;i<16;i++){
ADCSRA &= 0x7f; // 8번비트만 0으로 즉 ADC 중단
ADMUX = 0x40; //외부 ACC전압사용 ADC 채널 0선택
ADCSRA |= 0xC0; //다시 ADC 동작, 변환 시작
while((ADCSRA & 0x10) != 0x10); //ADIF AD 컨버터 될때까지 기다린다
X[LOW] = ADCL;
X[HIGH] = ADCH & 0x3f;
ADCSRA &= 0x7f; // 8번 비트만 0 으로 즉 ADC 중단
ADMUX = 0x42; // 외부 ACC 전압 사용 ADC 채널 3번 선택
ADCSRA |= 0xC0; //다시 ADC 동작, 변환 시작
while((ADCSRA & 0x10) != 0x10);//ADIF AD 컨버터 될때까지 기다린다
Y[0] = ADCL;
Y[1] = ADCH & 0x3f;
ADCSRA &= 0x7f; // 8번 비트만 0 으로 즉 ADC 중단
ADMUX = 0x44; // 외부 ACC 전압 사용 ADC 채널5번 선택
ADCSRA |= 0xC0; //다시 ADC 동작, 변환 시작
while((ADCSRA & 0x10) != 0x10);//ADIF AD 컨버터 될때까지 기다린다
Z[0] = ADCL;
Z[1] = ADCH & 0x3f;
//}
}
double x,y,z;
double X[2], Y[2], Z[2];
get_adc_data();
x = X[0] + X[1];
y = Y[0] + Y[1];
z = Z[0] + Z[1];
printf("x = %3.2f, y = %3.2f z = %3.2f ",x,y,z);
관리자 답변
안녕하세요? 고객님,
저희 NewTC를 이용하여 주셔서 감사합니다.
아래에 참고할 만한 질문이 있네요. 거기에 대한 대답도 달려 있으니, 그 밑에 달린 답변을 눌러서 참고하세요.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=qna&page=3&sn1=&divpage=2&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=9509
그 고객님의 질문에 따르면 0g 라서 1.65 V 가깝게 나옵니다.
고객님이 소스를 잘 못 짜신 것 같네요.
자료실의 3축 가속도 센서 윈도우 소스용이라는 소스를 참고 바랍니다.
거기에 ATMEGA128용 소스도 나오니, 테스트 하면 됩니다.
수고하세요.
>안녕하세요 AB-M128pro-a V02 보드와 AM03aixs 모델로 기울어진 각도를 구하려고합니다.
>
>
>
>저의 생각으로는
>
>제공해주신 자료를 보면 1.5g에서 가만히 세워두면 adc를 해서 값이 나오면
>
>x 와 y는 0g 니깐 1.65/3.3*1024 해서 512가 나오고 있어야하는거아닌가요?
>
>그리고 x의 +방향으로 기울여주면 대략 2.76정도씩 값이 변하는걸로 생각했습니다.
>
>그런데 그냥가만히 세워두면 x = 92 y = 84 z =39 이정도값에서 왔다갔다하는 값이나오는데요
>
>왜그런건지 알수있을까요?
>
>아래는 위에 작업의 adc 부분과 출력 부분입니다.
>
>
>
>void get_adc_data(void)
>{
> //unsigned int i;
>
> //for(i=0;i<16;i++){
> ADCSRA &= 0x7f; // 8번비트만 0으로 즉 ADC 중단
> ADMUX = 0x40; //외부 ACC전압사용 ADC 채널 0선택
> ADCSRA |= 0xC0; //다시 ADC 동작, 변환 시작
>
>
>
> while((ADCSRA & 0x10) != 0x10); //ADIF AD 컨버터 될때까지 기다린다
> X[LOW] = ADCL;
> X[HIGH] = ADCH & 0x3f;
>
>
> ADCSRA &= 0x7f; // 8번 비트만 0 으로 즉 ADC 중단
> ADMUX = 0x42; // 외부 ACC 전압 사용 ADC 채널 3번 선택
> ADCSRA |= 0xC0; //다시 ADC 동작, 변환 시작
>
> while((ADCSRA & 0x10) != 0x10);//ADIF AD 컨버터 될때까지 기다린다
> Y[0] = ADCL;
> Y[1] = ADCH & 0x3f;
>
> ADCSRA &= 0x7f; // 8번 비트만 0 으로 즉 ADC 중단
> ADMUX = 0x44; // 외부 ACC 전압 사용 ADC 채널5번 선택
> ADCSRA |= 0xC0; //다시 ADC 동작, 변환 시작
>
> while((ADCSRA & 0x10) != 0x10);//ADIF AD 컨버터 될때까지 기다린다
> Z[0] = ADCL;
> Z[1] = ADCH & 0x3f;
> //}
>}
>
>
>double x,y,z;
>double X[2], Y[2], Z[2];
>
>
>get_adc_data();
>
> x = X[0] + X[1];
>
> y = Y[0] + Y[1];
>
> z = Z[0] + Z[1];
>
> printf("x = %3.2f, y = %3.2f z = %3.2f ",x,y,z);
>
|
||||
| 3644 | 답변완료ICC/AVR V7 오류 관련 질문입니다. (에러시 수정 완료 했음) | 이지원 | 2009-09-17 | 1,418 |
|
저는 현재 SRF05와 ATMEGA128 PRO-KIT를 이용하여 물체의 거리를 측정하려고
시도하고 있습니다.
기존자료실에 있는 소스 (초음파센서로 거리 측정하여 7segment에 나타내는)를 ICCV7을 이용해
컴파일링을 하는데 자꾸 오류가 납니다.
물론 올려주신 자료대로 소스를 수정하였으며, 프로그램을 다시 설치해도 자꾸 아래와 같은 오류가
발생합니다.
C:\\iccv7avr\\bin\\imakew -f SRF.mak
iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm srf.c
iccavr -o SRF -g -e:0x20000 -ucrtatmega.o -bfunc_lit:0x8c.0x10000 -dram_end:0x10ff -bdata:0x100.0x10ff -dhwstk_size:30 -beeprom:0.4096 -fihx_coff -S2 @SRF.lk -lcatm128
iccavr: can't execute `C:\\iccv7avr\\bin\\ilinkavr.exe'
C:\\iccv7avr\\bin\\imakew.exe: Error code 100
Done: there are error(s). Exit code: 100. Thu Sep 17 15:52:54 2009
이러한 오류가 왜 발생하는지, 해결할 방법이 없는지 빠른 답변 부탁드립니다.
수고하세요.
관리자 답변
안녕하세요? 고객님,
저희 NewTC를 이용하여 주셔서 감사합니다.
아래 소스를 컴파일 해 보았는 데, 아무 이상이 없습니다.
다시 확인해 보세요. 컴파일시 4kb 제한 데모버전을 이용하였습니다.
혹시나 컴파일러를 자료실에서 다운받아서 다시 깔아보세요.
-아래-
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=초음파&select_arrange=headnum&desc=asc&no=261
수고하세요.
>
>저는 현재 SRF05와 ATMEGA128 PRO-KIT를 이용하여 물체의 거리를 측정하려고
>
>시도하고 있습니다.
>
>기존자료실에 있는 소스 (초음파센서로 거리 측정하여 7segment에 나타내는)를 ICCV7을 이용해
>
>컴파일링을 하는데 자꾸 오류가 납니다.
>
>물론 올려주신 자료대로 소스를 수정하였으며, 프로그램을 다시 설치해도 자꾸 아래와 같은 오류가
>
>발생합니다.
>
>C:\\iccv7avr\\bin\\imakew -f SRF.mak
> iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm srf.c
> iccavr -o SRF -g -e:0x20000 -ucrtatmega.o -bfunc_lit:0x8c.0x10000 -dram_end:0x10ff -bdata:0x100.0x10ff -dhwstk_size:30 -beeprom:0.4096 -fihx_coff -S2 @SRF.lk -lcatm128
>iccavr: can't execute `C:\\iccv7avr\\bin\\ilinkavr.exe'
>C:\\iccv7avr\\bin\\imakew.exe: Error code 100
>Done: there are error(s). Exit code: 100. Thu Sep 17 15:52:54 2009
>
>이러한 오류가 왜 발생하는지, 해결할 방법이 없는지 빠른 답변 부탁드립니다.
>
>수고하세요.
|
||||
| 3643 | 답변완료[급질문] AM-128RAM 모듈 SRAM 데이터 쓰기 문의 | 박경욱 | 2009-09-17 | 1,444 |
|
AM-128RAM 모듈에 있는 외부 SRAM 에 데이터 쓰는데 문의 합니다.
샘플 문서에서 예제로 쓰여진 방법으로 테스트 해봤는데 정상동작하지 않네요.
확인해주시고, 해결방안을 알려주시길 바랍니다.
void main(void)
{
unsigned char *ex_mem, temp;
project_init(); // 프로세서 초기화 // LCD 관련 초기화
delay_ms(2000);
lcd_string(0x80, "loop1");
delay_ms(2000);
MCUCR=MCUCR|0x80;
delay_ms(2000);
lcd_string(0x80, "loop2");
delay_ms(2000);
if(0) // SRAM 데이터 쓰기 테스트 여부
{
ex_mem = (unsigned char *)0x5000;
*ex_mem = 0x55;
temp=*ex_mem;
lcd_string(0x80, "Loop3");
}
lcd_string(0x80, "Loop4");
delay_ms(2000);
while(1);
}
이와같이 테스트 해봤는데.
프로세서 모듈 파워키면, LCD 화면에 "Loop1" 만 출력되고 더이상 진행이 안되는것 같습니다.
예상하건데, MCUCR=MCUCR|0x80; 이분에서 정상동작을 하지 않는듯.
만약 정상동작이 된다면 LCD 화면에 Loop2, Loop4 가 표시되어야 할텐데...Loop1 표시만 잠깐되었다가 화면에 아무런 표시가 되지 않습니다.
MCUCR=MCUCR|0x80; 이부분을 검증부탁드립니다.
빠른 답변 기대합니다.
코드비젼 사용합니다.
관리자 답변
안녕하세요? 고객님,
메뉴얼에 보면 코드비전에서 코드 생성시 하는 방법이 나와 있는 데,
그 부분대로 하셨는 지요?
외부 램을 활용하는 방법이 크게 두 가지가 있습니다.
MCUCR = 0x80;으로
1. 포인터 등으로 프로그램에서 직접 제어하는 방법 :
옵션에서 internal로 잡고 해야 합니다.
이 경우는 프로그램에서 데이터 영역으로만 직접 제어해서 쓰는 경우입니다.
2. 컴파일러에서 자동으로 제어하게 하려면, external memory xxkb를 지정하고 써야 합니다.
즉, 이 경우는 프로그램에서 변수를 char cMem[20000]; 이 처럼 큰 변수를 잡아서 쓰는 경우입니다. 컴파일러가 자동으로 램관리를 하게 하는 경우입니다.
위의 두 경우에 따라서, 컴파일 시 셋팅하는 방법이 달라지게 되니, 주의하여 하기 바랍니다.
잘못 셋팅하면 잘 동작하지 않고, 서거나 소프트 리셋되는 등의 증상이 발생합니다.
수고하세요.
>AM-128RAM 모듈에 있는 외부 SRAM 에 데이터 쓰는데 문의 합니다.
>
>샘플 문서에서 예제로 쓰여진 방법으로 테스트 해봤는데 정상동작하지 않네요.
>
>확인해주시고, 해결방안을 알려주시길 바랍니다.
>
>void main(void)
>{
> unsigned char *ex_mem, temp;
>
> project_init(); // 프로세서 초기화 // LCD 관련 초기화
> delay_ms(2000);
> lcd_string(0x80, "loop1");
> delay_ms(2000);
> MCUCR=MCUCR|0x80;
> delay_ms(2000);
> lcd_string(0x80, "loop2");
> delay_ms(2000);
>
> if(0) // SRAM 데이터 쓰기 테스트 여부
> {
> ex_mem = (unsigned char *)0x5000;
> *ex_mem = 0x55;
> temp=*ex_mem;
> lcd_string(0x80, "Loop3");
> }
>
> lcd_string(0x80, "Loop4");
>
> delay_ms(2000);
> while(1);
>}
>
>이와같이 테스트 해봤는데.
>
>프로세서 모듈 파워키면, LCD 화면에 "Loop1" 만 출력되고 더이상 진행이 안되는것 같습니다.
>예상하건데, MCUCR=MCUCR|0x80; 이분에서 정상동작을 하지 않는듯.
>
>만약 정상동작이 된다면 LCD 화면에 Loop2, Loop4 가 표시되어야 할텐데...Loop1 표시만 잠깐되었다가 화면에 아무런 표시가 되지 않습니다.
>
>MCUCR=MCUCR|0x80; 이부분을 검증부탁드립니다.
>
>빠른 답변 기대합니다.
>
>코드비젼 사용합니다.
>
>
|
||||
| 3642 | 답변완료제품구매 문의 드립니다^^ | 이경섭 | 2009-09-16 | 1,361 |
|
라인트레이서 커넥터 질문드렸던학생입니다.
말씀해주신 커넥터를 인터넷 상에서 찾아보았는데 찾기가 어렵네요^^;;
혹시 뉴테크 사무실 방문하면 10개정도 구매가능한지 문의드립니다!!!
아니면 혹시 판매처라도 알고계시면 알려주세요!!!
부탁드립니다...ㅠㅠ
『 그 2핀 숫놈은 5045-2 라는 몰렉스 커넥터입니다. 암놈은 5051-2 라고 하던가 그렇네요. 』
위에 말씀해주신 모델입니다!!!
감사합니다!!!
관리자 답변
네 고객님,
본사의 대리점인 용산 에스와이 전자로 주문하시면 편하겠습니다.
디바이스마트나 엘레파츠에도 물론 커넥터 쪽에 잘 찾으면 있습니다만, 어려우시다면,
에스와이 전자를 이용하세요~
전화번호는 02-704-4376입니다.
감사합니다.
>라인트레이서 커넥터 질문드렸던학생입니다.
>
>말씀해주신 커넥터를 인터넷 상에서 찾아보았는데 찾기가 어렵네요^^;;
>
>혹시 뉴테크 사무실 방문하면 10개정도 구매가능한지 문의드립니다!!!
>
>아니면 혹시 판매처라도 알고계시면 알려주세요!!!
>
>부탁드립니다...ㅠㅠ
>
>『 그 2핀 숫놈은 5045-2 라는 몰렉스 커넥터입니다. 암놈은 5051-2 라고 하던가 그렇네요. 』
>
>위에 말씀해주신 모델입니다!!!
>
>감사합니다!!!
|
||||
| 3641 | 답변완료AVR 관련 질문드립니다. | 박종진 | 2009-09-16 | 1,376 |
|
우선 빠른 답변 감사드립니다.
AVR에서 AB-M128PRO-A 에만 AD컨버터가 내장 되어 있는지요?
그 이하에 모델은 AD 컨버터를 추가적으로 장착 해야 되는지요?
또한 스태핑 모터를 제어할려고 하는데 그에 샘플 소스가 같이 제공 받을 수 있는지요?
답변 부탁드리겠습니다.
관리자 답변
안녕하세요 고객님,
저희 NewTC 를 이용하여 주셔서 감사합니다.
ATMEGA128 칩 자체에 AD 컨버터가 내장되어 있습니다.
기본적으로 AVR 중 ATMEGA 시리즈에는 AD 컨버터가 내장되어 있다고 보시면 됩니다.
그리고, 스테핑 모터를 제어하려면, 본사의 스테핑 모터 제어모듈인 AM-CS2P나 AM-MS2를 함께 구매하셔야 하구요. 샘플 소스는 자료실->기존자료실에서 스테핑 이나 소스 라고 쳐보시면 많이 나올겁니다. 또는 CS2P MS2 등으로 쳐보시는 것도 좋겠습니다.
수고하세요.
>우선 빠른 답변 감사드립니다.
>AVR에서 AB-M128PRO-A 에만 AD컨버터가 내장 되어 있는지요?
>그 이하에 모델은 AD 컨버터를 추가적으로 장착 해야 되는지요?
>또한 스태핑 모터를 제어할려고 하는데 그에 샘플 소스가 같이 제공 받을 수 있는지요?
>답변 부탁드리겠습니다.
|
||||
| 3640 | 답변완료스탭모터 관련하여 구입할 장비에 대한 질문입니다. | 박의화 | 2009-09-16 | 1,411 |
|
- AVR MEGA 120pro 개발키트 -
위 보드를 구매할 예정인데..
1. API를 제공 하는지..
2. C언어로 코딩이 가능한지..
3. LabView와 연동하여 사용할 수 있는 인터페이스가 있는지..
감사합니다.
관리자 답변
안녕하세요? 고객님,
저희 NewTC를 이용하여 주셔서 감사합니다.
답변하여 드릴께요.
1. 시리얼이나 패러렐 포트를 이용하여 PC와 통신이 가능합니다.
이런 부분을 활용하여 잘 이용하시면 됩니다. 현재 따로 API 함수를 제공하진 않고 있습니다.
2. 기본적으로 C언어로 코딩합니다. 물론, 어셈블리도 되지많요.
3. Labview와는 시리얼 포트나 패러렐 포트로 프로토콜을 짜서 인터페이스 하여 쓰시면 되겠네요.
각 강좌가 강좌->기본강좌에 많이 나와 있으니, 참고 바라구요.
처음 하신다면 초초보강좌를 보는 게 좋겠습니다.
수고하세요.
> - AVR MEGA 120pro 개발키트 -
>
>위 보드를 구매할 예정인데..
>
>1. API를 제공 하는지..
>
>2. C언어로 코딩이 가능한지..
>
>3. LabView와 연동하여 사용할 수 있는 인터페이스가 있는지..
>
>감사합니다.
|
||||
| 3639 | 답변완료8051 키트관련 문의드립니다. | 박종진 | 2009-09-16 | 1,399 |
|
안녕하십니까?
제품관련 하여 궁금한것이 있어 문의드립니다.
AB-S51과 AB-51K 과는 USB-ISP 기타 구성품에만 차이가 있는지요?
또한 DAS에 SA1(기울기 센서) 아날로그 값이 출력 되어지는데
AB-51 에서 컨버팅이 가능 한지요?
답변 부탁드리겠습니다.
관리자 답변
안녕하세요? 고객님,
저희 NewTC를 이용하여 주셔서 감사합니다.
8051 킷트와 보드는 USBISP도 차이가 있지만,
그것 이외에도 시리얼 케이블, 아답타, 10핀 헤더케이블 등의 구성품에 차이가 있습니다.
기본적으로 보드는 같은 보드이니, 따로따로 구미에 맞게 구매하여 쓰셔도 됩니다만, 킷트로 한번에 사시면 보다 저렴하게 사용하실 수 있습니다.
그리고, 본 8051에는 AD 컨버터가 내장되어 있지 않아서, AD 컨버터가 필요하다면, 외부에 별도로 다시거나 AVR을 이용하면 좋겠네요. AVR은 AD가 8채널 내장되어 있으니까요.
수고하세요.
>안녕하십니까?
>제품관련 하여 궁금한것이 있어 문의드립니다.
>
>AB-S51과 AB-51K 과는 USB-ISP 기타 구성품에만 차이가 있는지요?
>또한 DAS에 SA1(기울기 센서) 아날로그 값이 출력 되어지는데
>AB-51 에서 컨버팅이 가능 한지요?
>답변 부탁드리겠습니다.
|
||||
