로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
6053 답변완료USBISP_V03 A/S 보냅니다. 김동호 2011-01-11 1,304
USBISP를 타겟과 연결을 안하고 PC USB단자에 연결했을때 빨간LED가 깜박거리는게 아닌 녹색LED가 깜박거림도 없이 계속 켜져있습니다. ISP 다운로딩도 안됨을 확인하고 A/S 발송합니다.
관리자 답변 NEWTC · 2011-01-11
안녕하세요 제품을 받으면 제품상태 이상유무 확인후 연락드립니다. 수고하세요 >USBISP를 타겟과 연결을 안하고 PC USB단자에 연결했을때 빨간LED가 깜박거리는게 아닌 녹색LED가 깜박거림도 없이 계속 켜져있습니다. >ISP 다운로딩도 안됨을 확인하고 A/S 발송합니다.
6052 답변완료ISP Entering 오류에 관해서 부탁드려요 조선행 2011-01-11 1,303
Code Vision 으로 USB ISP 로 굽다가. 전원이 뽑히는 바람에 오류가 났습니다. 그 후로 다시 구우려고 하니 아래와 같이 에러가 나네요. 도움 부탁드립니다. 감사합니다,
관리자 답변 NEWTC · 2011-01-11
안녕하세요 본사로 보내시거나 방문하시면 점검을 받아보세요 점검을 받으실때는 킷트와 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인데 사용해도 괜찮을런지.. 아니면 어떤걸 사서 써야하나요
관리자 답변 NEWTC · 2011-01-11
안녕하세요? 고객님, 아답타쪽이나 바로 옆 커넥터의 전원입력 쪽에 연결해서 써도 되지만, 오랜시간은 곤란합니다. 레귤레이터가 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; }
관리자 답변 NEWTC · 2011-01-10
안녕하세요 예제코드나 킷트에 대한 하드웨어 대해서는 써포트를 하지만, 유저가 요구하는 코드 작성에 대한 문의는 받지 않습니다. 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개를 써야 하는 상황인데... 혹시 예제나 사용방법에 대한 자료가 있으면 도움 부탁드립니다. 수고하세요~
관리자 답변 NEWTC · 2011-01-10
안녕하세요 mega128 은 기본적으로 2개의 uart를 가지고 있습니다. 3개로 하는방법은 아래와 같습니다. 1. 타이머로 일반포트로 uart 기능을 구현 2. uart 확장용 칩을 연결하여 사용 3. atmega1280 같dl uart 4개를 지원하는 칩으로 변경 1.2 번은 구현하기 좀 힘듭니다.(관련자료나 예제가 없습니다.) 3번이 메인 디바이스를 변경하시는 것이 제일 편합니다. 수고하세요 >안녕하세요~ 질문이 있어 이렇게 글남겨 봅니다. > >128 pro사용하고 있으며 현재 개발환경은 AVR스튜디오 입니다. > >지금 uart를 3개를 써야 하는 상황인데... 혹시 예제나 >사용방법에 대한 자료가 있으면 도움 부탁드립니다. > >수고하세요~
6048 답변완료감지거리 이근장 2011-01-10 1,326
안녕하세요 적외선센서(ch4)의 감지검리가 궁금합니다. 거리를 줄이고 확장할수있는 방법은 무엇인지요 그리고 pc또는 아크릴로 casing하면서 검정색도장으로 하려하는데 이부분은 어떻게 처리해야하는지요, 발광부에 무드처리해야하는지 투명으로 해야하는지 수광부의 도장은 어떤색으로 처리를 해야하는지요 또한 바대리 6v로 작동하려할시 가능한지요 않된다면 하려면 어떻게 저희가 원하는 감지거리는 1m-80cm입니다 소모전류는 얼마나 될것인지도 만들어 보니꺄 자꾸 저절로 작동을 하기도하고 거리가 들쓱달쑥하기도 하고 이런 문제를 어떻게 해결해야할ㄲ요 알려주세요 감사합니다 이근장
관리자 답변 NEWTC · 2011-01-10
안녕하세요 아탑터 ( 배터리전압 )이 7.V 되야 레큘레이터 IC가 정상적으로 동작하여 전압을 만들 수가 있습니다. 적외선센서(ch4) 는 라인 트레이서용으로 만들어져 거리는 30CM 이내 입니다. 먼 거리를 거리용 센서를 구입하여 연결하시길 바랍니다. 디바이스나 엘레파트에 가시면 초음파나 적외선 거리용 센서 모듈을 판매하고 있습니다. 현재 판매되고 있는 IRS4D의 경우 가변저항 조정하면 1cm~2cm 정도까지만 감지를 목표로 제작된 모듈입니다. 라인트레이서 전용으로 만들어진 모듈이지요. 일반 밧데리로 해서는 모터 등의 동작이 어렵습니다. 전류가 딸리기 때문이지요. 가능하다면, 충전지로 하세요. 1.2V를 직렬로 여러개 이어서 최소 7.xx 볼트 이상 넣어줘야 합니다. 수고하세요 >안녕하세요 >적외선센서(ch4)의 감지검리가 궁금합니다. >거리를 줄이고 확장할수있는 방법은 무엇인지요 >그리고 pc또는 아크릴로 casing하면서 검정색도장으로 하려하는데 >이부분은 어떻게 처리해야하는지요,&#160;&#160;발광부에 무드처리해야하는지 투명으로 해야하는지 >수광부의 도장은 어떤색으로 처리를 해야하는지요&#160;&#160; > >또한 바대리 6v로 작동하려할시&#160;&#160;가능한지요&#160;&#160;&#160;&#160; 않된다면 하려면 어떻게 >저희가 원하는 감지거리는 1m-80cm입니다 >소모전류는 얼마나 될것인지도 > >만들어 보니꺄 자꾸 저절로 작동을 하기도하고 >거리가 들쓱달쑥하기도 하고 >이런 문제를 어떻게 해결해야할ㄲ요 > >알려주세요 >감사합니다 >이근장 >
6047 답변완료Isp mode error 입니다 도와주세요 이학경 2011-01-10 1,299
여기서 판매하는 개발키트pro 사용하고 있습니다 제가 9v 건전지를 사용해서 연결했었는데 이게 문제였던지 usb isp mode error 문제가 생깁니다 클럭설정이랑 퓨즈 설정을 아무리 바꾸고 조합하고 해봐도 기기인식은 0x00, 0x00, 0x00 이렇게 뜨고 계속 모드에러 뜨네요 어떻게 해야 되나요 가끔이럴때마다 2-3일씩 뻘짓해서 고치기는 하는데 구체적으로 어떻게 해야할까요 Avrstudio를 사용하여 작업하고 있습니다&#160; 좋은하루 되십시요~!!
관리자 답변 NEWTC · 2011-01-10
안녕하세요 atmega128 칩이 이상해 보입니다. 본사로 ( 사용하는 킷트,USBISP) 보내시거나 방문하여 점검을 받아 보시길 바랍니다. 수고하세요 >여기서 판매하는 개발키트pro 사용하고 있습니다 >제가 9v 건전지를 사용해서 연결했었는데 이게 문제였던지 usb isp mode error 문제가 생깁니다 >클럭설정이랑 퓨즈 설정을 아무리 바꾸고 조합하고 해봐도 기기인식은 0x00, 0x00, 0x00 이렇게 뜨고 계속 모드에러 뜨네요 >어떻게 해야 되나요 >가끔이럴때마다 2-3일씩 뻘짓해서 고치기는 하는데 구체적으로 어떻게 해야할까요 > >Avrstudio를 사용하여 작업하고 있습니다 > >좋은하루 되십시요~!!
6046 답변완료조립제품 as받으면,,, 채종수 2011-01-09 1,474
kd-atmega128pro kit 조립제품 납땜을 다했는데 도저히 작동을 안하네요,,, 이제품 as받으면 as비용이 어떻게 되나요?ㅠㅠ 공덕역 본사로 찾아가도 되나요? 점심시간이 피해서 가야할테니 피해야할시간 좀 알려주시면 감사하겠습니다.
관리자 답변 NEWTC · 2011-01-10
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 원래 조립을 사시게 되면, 땜하면서 어떤 부분이 잘못되면 그 부분을 찾아서 고치면서, 배우는 것이라서, 그런 일이 발생하는 건 어쩌면 당연한 일입니다. 땜하는 순서도 두번째
6045 답변완료KD-Pro128 조립용 그러면.. 채종수 2011-01-08 1,371
아참 부품중에 다리 3개짜리 레귤레이터는 핀 끝을 구부려서 끼고 땜을 해야하는건가요? (U103) 또한 (S104)스위치를 보면 부품옆에 SS라고 새겨져있는쪽이 회로도에서 1,2,3번핀 중에 1번핀인가요? 답변 부탁드려요 ㅠㅠ 납땜을 다햇는데 ac/dc아답터만 연결해줘도 불이나 테스트용으로 들어오거나 작동을 하지않나요? 아무런 반응이 없네요ㅠㅠ isp연결해서 프로그램 해줘야만 작동하는지ㅠㅠ 이제보니 저희집이 프린트포트가없어서ㅠㅠ 잘작동되는지 못보네유ㅠㅠ 답변바래용 ㅠ 아래 친절한 답변 정말 감사합니다!!
관리자 답변 NEWTC · 2011-01-09
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 3핀 레귤레이터는 구부려서 땜하는 게 맞습니다. 헌데, 레귤레이터 반대쪽 끝에 지름 3mm 정도 되는 큰 구멍이 있을 겁니다. 그것을 PCB 상의 같은 사이즈 구멍과 일치 시킨 후 구부려야 합니다. 둘 사이는 땜으로 마감하시거나 볼트+너트로 조이셔도 됩니다. 땜이 가장 확실하겠지요. 그리고, S104는 방향성이 없으므로, 아무 방향으로나 조립하셔도 관계 없습니다. 128 모듈에는 이미 테스트 프로그램이 들어 있습니다. 따라서, 꽂았는 데, 전원넣고도 동작하지 않으면, 문제가 있을 확률이 있습니다. 꽂기 전에 우선, VCC와 GND 사이를 테스터기로 쇼트 검사를 먼저 해보시고, 그 후에 메인보드에만 아답타 꽂고(모듈은 뺀 상태로) 전원이 레귤레이터 거쳐서 5V가 잘 들어오는 지 확인한 후에, 모듈을 꽂도록 합시다. 그래야 망가지지 않을테니까요. 하다가 잘 안되면, 본사로 A/S 하기 바랍니다. 수고하세요. >아참 부품중에 다리 3개짜리 레귤레이터는 핀 끝을 구부려서 끼고 땜을 해야하는건가요? (U103) > >또한 (S104)스위치를 보면 부품옆에 SS라고 새겨져있는쪽이 회로도에서 > >1,2,3번핀 중에 1번핀인가요? > >답변 부탁드려요 ㅠㅠ > >납땜을 다햇는데 ac/dc아답터만 연결해줘도 불이나 테스트용으로 들어오거나 작동을 하지않나요? > >아무런 반응이 없네요ㅠㅠ isp연결해서 프로그램 해줘야만 작동하는지ㅠㅠ > >이제보니 저희집이 프린트포트가없어서ㅠㅠ 잘작동되는지 못보네유ㅠㅠ > >답변바래용 ㅠ > >아래 친절한 답변 정말 감사합니다!!
6044 답변완료라인트레이서 KR-DL16 구매 김승훈 2011-01-08 1,452
라인트레이서 KR-DL16를 구매하였는데요 바디와 PCB판을 지지해주는 서포터 핀들이 오지않았습니다 아무리 찾아도 없구요 메뉴얼을 보니 30mm핀4셋트 10mm핀 2세트가 와야하는데 오지않았습니다. 빠른 조치 부탁드립니다. 제가 따로 구매해야하는지 빨리 답변좀 주세요!
관리자 답변 NEWTC · 2011-01-09
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사드립니다. 죄송합니다. 잘 없는 일이지만, 간혹 그런 일이 발생할 수 있습니다. 본사에서 월요일날 배송하여 드리도록 하겠습니다. 월요일날 보내면, 별일 없다면 화요일~수요일 쯤 받으시게 됩니다. 긴급하게 필요하시다면, 본사로 방문하여 주시면 바로 드립니다. 불편을 끼쳐 드려서 죄송합니다. 앞으로 그런 일이 없도록 잘 조치하겠습니다. 보낼 주소와 성함, 전화번호를 남겨 주시기 바랍니다. 연락해도 핸드폰을 받지 않으셔서요. 감사합니다. >라인트레이서 KR-DL16를 구매하였는데요 > >바디와 PCB판을 지지해주는 서포터 핀들이 오지않았습니다 > >아무리 찾아도 없구요 메뉴얼을 보니 30mm핀4셋트 > >10mm핀 2세트가 와야하는데 오지않았습니다. > >빠른 조치 부탁드립니다. 제가 따로 구매해야하는지 > >빨리 답변좀 주세요! >
6043 답변완료KD_128Pro 키트 질문있습니다. 채종수 2011-01-08 1,439
KD_128Pro 조립용을 구입했는데 메뉴얼에서 땜하지 않는 부품이 C101,C102,J118,U101,Y101라고 되어있는데 회로도에 안나와있네용? 어떤 부품을 말하는거죠? 답변주시면 감사하겠습니다.
관리자 답변 NEWTC · 2011-01-08
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 제품은 빠르게 편리하게 잘 받으셨나요? 답변 드리겠습니다. C101, C102는 모듈이 빠진 상태에서 메인보드 중앙에 보면, AVR 있는 쪽 있지요? 거기 옆에 보면, AVR 클럭용 커패시터(104) 두개 꽂는 자리가 있는 데, 이것은 땜하지 않습니다. 왜냐하면, 모듈을 꽂아 쓰려고 하는 것인데, 모듈에 이미 장착이 되어 있기 때문에 전혀 필요치 않는 자리입니다. 그 자리는 직접 AVR을 땜해서 쓰려는 고객님만이 필요한 부품입니다. J118은 오른쪽 위쪽 약간 아래에 보면, DS1307용 배터리 꼽는 커넥터 쪽입니다. U101은 메인보드에 AVR 땜할 수 있는 패드가 있는 데, 그겁니다. AVR을 모듈을 꽂아서 쓰기 때문에 거기에 또 AVR을 땜하게 되면, 두 AVR이 서로 충돌이 나므로, 땜하지 말라는 겁니다. Y101은 그 AVR용 클럭 크리스탈입니다. 마찬가지 이유입니다. 아래에 보시면, 회로도를 보실 수 있습니다. 자료실->기존자료실에서 AB-M128PRO로 검색하면 보실 수 있습니다. - 아래 - http://www.newtc.co.kr/board/download.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=AB-M128PRO-A&select_arrange=headnum&desc=asc&no=249&filenum=1 감사합니다. >KD_128Pro > >조립용을 구입했는데 > >메뉴얼에서 땜하지 않는 부품이 > >C101,C102,J118,U101,Y101라고 되어있는데 회로도에 안나와있네용? > >어떤 부품을 말하는거죠? 답변주시면 감사하겠습니다.
6042 답변완료AM-CS2P(3A용)제 품에 대한 질문입니다 정연우 2011-01-07 2,388
AM-CS2P(3A용)이 제가 첨부한 회로도와 같은지 알고 싶습니다...
관리자 답변 NEWTC · 2011-01-07
안녕하세요 죄송하지만, AM-CS2P는 회로를 공개하지 않는 품목입니다. 첨부한 도면은 거의 비슷합니다. 수고하세요 >AM-CS2P(3A용)이 제가 첨부한 회로도와 같은지 알고 싶습니다... >
6041 답변완료AM-MS2모듈 포트에 관한 질문입니다. 이학경 2011-01-07 1,302
AM-MS2 스테핑모터 모듈을 사용하고있는데 이게 기존의 스테핑 모터 구동 방식과 차이가 있더군요. 그래서 뉴티씨에서 제공하는 파일을 읽어보니 포트설정이 1 왼쪽모터 클럭 2 왼쪽모터 방향 3 오른쪽모터 클럭 4 오른쪽모터 방향 5 모드설정 6 모드설정 7 - 8 구동부 enable 이렇게 설정이 되어있더군요 제가 이해가 안되는 부분은 1,3번 회전하는 기준 클럭 과 5,6번 모드설정입니다. 평소에 봐오던 구동방식이랑 차이가 있다보니 조금 이해가 안되네요 클럭의 의미와 모드설정 디폴트1은 어떤의미인가요.. 네이버 카페에가서 소스를 찾아서 보았는데 역시나 밑에 #define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) #define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) 이것과 #define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) #define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) #define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) #define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) 부분이 이해가 안됩니다. 도움부탁드립니다. 밑에 소스 붙입니다. =============================================================== #include <avr/io.h> #include <avr/interrupt.h> #define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 #define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 DDR REG #define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) #define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) #define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) #define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) #define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) #define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) #define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) #define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) #define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) #define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) #define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) #define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x08) void port_init(void) { PORTA = 0x00; DDRA = 0x03; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0xff; PORTD = 0x00; DDRD = 0xff; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up cli(); //disable all interrupts XMCRA = 0x00; //external memory XMCRB = 0x00; //external memory port_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources sei(); //re-enable interrupts //all peripherals are now initialized } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } int main(void) { init_devices(); MOTOR_PORT_DDR = 0xff; MOTOR_ENABLE; MOTOR_STEP_M3; MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; /* 딜레이로 마이크로 스텝 드라이버 구동 */ while(1) { PORTG++; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); } return 0; } ==========================================================
관리자 답변 NEWTC · 2011-01-07
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 기존의 스테핑 모터 구동 방식이라고 하심은, 전통적으로 1상, 2상, 1-2상 여자 방식으로 직접 상을 만들어가면서 모터를 돌리는 방식을 말씀하신 것 맞죠? 그런 방식을 사용하는 것이 AM-CS2P 모듈입니다. MS2 모듈은 사실 사용하기가 더 편합니다. 모드만 설정되어 있다면, 그냥 클럭이라는 곳에 1, 0, 1, 0 이런 식으로 1과 0이 1번씩 나올 때마다 한 클럭으로 치고, 한 번 움직여야 하는 각도를 움직이는 방식입니다. 여기서 모드라는 것은 half mode : 1-2상 여자 방식과 유사합니다. 돌아가는 각이 같아요. 즉, 한 클럭에 0.9도가 되지요. quarter mode : 한 클럭에 half 모드의 절반각을 움직입니다. eightth mode : 한 클럭에 quarter mode의 절반각을 움직입니다. sixteenth mode : 한 클럭에 eightth mode 각의 절반각을 움직입니다. 밑으로 갈 수록 점점 더 정밀해 지는 것이고, 부드럽게 느껴집니다. 수고하세요. >AM-MS2 스테핑모터 모듈을 사용하고있는데 이게 기존의 스테핑 모터 구동 방식과 차이가 있더군요. > >그래서 뉴티씨에서 제공하는 파일을 읽어보니 >포트설정이 >1 왼쪽모터 클럭 >2 왼쪽모터 방향 >3 오른쪽모터 클럭 >4 오른쪽모터 방향 >5 모드설정 >6 모드설정 >7 - >8 구동부 enable > >이렇게 설정이 되어있더군요 > >제가 이해가 안되는 부분은 1,3번 회전하는 기준 클럭 과 5,6번 모드설정입니다. >평소에 봐오던 구동방식이랑 차이가 있다보니 조금 이해가 안되네요 >클럭의 의미와 모드설정 디폴트1은 어떤의미인가요.. > >네이버 카페에가서 소스를 찾아서 보았는데 역시나 밑에 >#define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) >#define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) >이것과 >#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) >#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) >#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) >#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) >부분이 이해가 안됩니다. > >도움부탁드립니다. 밑에 소스 붙입니다. > > >=============================================================== >#include <avr/io.h> >#include <avr/interrupt.h> > >#define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 >#define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 DDR REG > >#define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) >#define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) > >#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) >#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) >#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) >#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) > >#define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) >#define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) > >#define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) >#define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) >#define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) >#define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x08) > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x03; > PORTB = 0x00; > DDRB = 0x00; > > PORTC = 0x00; //m103 output only > DDRC = 0xff; > > PORTD = 0x00; > DDRD = 0xff; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > >//call this routine to initialize all peripherals >void init_devices(void) >{ > //stop errant interrupts until set up > cli(); //disable all interrupts > XMCRA = 0x00; //external memory > XMCRB = 0x00; //external memory > port_init(); > > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x00; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > > sei(); //re-enable interrupts > //all peripherals are now initialized >} > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >int main(void) >{ > init_devices(); > > MOTOR_PORT_DDR = 0xff; > > MOTOR_ENABLE; > MOTOR_STEP_M3; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > > /* 딜레이로 마이크로 스텝 드라이버 구동 */ > while(1) > { > PORTG++; > > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > } > return 0; >} >========================================================== >
6040 답변완료AM-128 RAM 모듈과 AD-USBISP V03연결 강신우 2011-01-06 1,380
안녕하세요 AM-128 RAM 모듈을 구매한 학생입니다. 다름이 아니라 CodeVisionAVR2.05.0을 사용하는데 프로그램 적재가 되지 않아 이렇게 질문을 남깁니다. 에러가 뜨는 부분사진올렸습니다.
관리자 답변 NEWTC · 2011-01-06
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 코드 비전의 경우, 그림과 같이 퓨즈비트를 설정하고 사용해야 합니다. 만약, 퓨즈비트 각각은 체크하지 않고 그냥, 위에 퓨즈비트 사용한다고만 하고 한번이라도 write 한다면, 바로 AVR 이 망가지게 됩니다. 하지만, 대부분 이렇게 고장난 모듈은 인공호흡을 하면 거의 90% 이상 살아나므로, 걱정마세요. 4MHz 이하의 클럭을 가지고, 살려 보시기 바랍니다. 보통 1MHz를 가지고 인공호흡들을 많이 합니다. 본사로 오시면, 무상으로 수리하여 드립니다. 감사합니다. >안녕하세요 >AM-128 RAM 모듈을 구매한 학생입니다. > >다름이 아니라 > >CodeVisionAVR2.05.0을 사용하는데 > >프로그램 적재가 되지 않아 이렇게 질문을 남깁니다. > >에러가 뜨는 부분사진올렸습니다.
6039 답변완료시리얼 통신 수신 인터럽트 관련 문의 안재철 2011-01-06 1,280
AVR STUDIO 사용하고 있습니다. PC와 ATmega128과 시리얼 통신을 하고자 합니다. Atmega128 기준으로 보았을때 데이터 송수신을 잘 이루어 지는데.. 문제는 Atmega 128로 데이터가 수신 되었을때를 알기위해 하기와 같이 인터럽트를 사용했는데 동작이 안되는 군요 무엇이 문제인지 알고싶습니다. #include <avr/interrupt.h> #include <stdio.h> #include "c:/WinAVR/avr/include/avr/iom128.h" ////////////////16MHz 클럭을 사용할때 보레이트///////////////////// // 2400, 2800, 9600, 14.4k, 19.2k, 28.8k, 38.4k, 57.6k, 76.8k, 115.2k, 230.4k, 250k, 500k, 1M, 2M unsigned int baudrate[15]={832, 416, 207, 138, 103, 68, 51, 34, 25, 16, 8, 7, 3, 1, 0}; unsigned char RX_Data; unsigned char TX_Data[10]={0X00,}; volatile unsigned char RX_Data_Flag; #pragma interrupt_handler uart0_rx_isr:19 void uart0_rx_isr(void) { RX_Data_Flag = 1; } unsigned char serial_rx(void) { // PC로부터 데이터 수신 while((UCSR0A&0x80) == 0x00); return UDR0; } void serial0_init(void) { UBRR0H = baudrate[2]>>8; // Baudrate 9600 byte/sec UBRR0L = baudrate[2]; UCSR0A = 0x02; // Asynchronous normal mode, double baudrate UCSR0B = 0x98; // 0x98 rx interrupt enable, 8 data, tx 0xD8, tx_empty 0xF8 UCSR0C = 0x06; // no parity, 1 stop, 8 data RX_Data = UDR0; // dummy read } void serial_tx(unsigned char *pTxData, int nSize) { while((UCSR0A&0x20) == 0x00); UDR0 = pTxData; } int main(void) { unsigned char temp; init_system(); while(1) { if(RX_Data_Flag == 1) { temp = serial_rx(); RX_Data_Flag = 0; } } return 0; } 어떻게 하면 프로그램을 수정해야 하나요?
관리자 답변 NEWTC · 2011-01-06
초기화 루틴을 아래를 참조하여 작성하여 보세요. //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0.2%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x67; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0xD8; } 또한, AVR의 통신 버퍼가 부족하여, 데이터가 계속적으로 들어올 경우, 인터럽트 방식으로 받아들이는 것에 무리가 있습니다. 한번씩 계속된 내용이 스트링으로 들어올 경우, 스트링으로 한 번에 받으시는 방식으로 구현하시는 것이 좋습니다. 예를 들어서, GPS 데이터를 받는 다면, scanf를 쓰셔서 %s로 받아서 처리하는 게 좋겠습니다. 수고하세요. >AVR STUDIO 사용하고 있습니다. > >PC와 ATmega128과 시리얼 통신을 하고자 합니다. > >Atmega128 기준으로 보았을때 데이터 송수신을 잘 이루어 지는데.. > >문제는 Atmega 128로 데이터가 수신 되었을때를 알기위해 하기와 같이 인터럽트를 사용했는데 동작이 안되는 군요 무엇이 문제인지 알고싶습니다. > >#include <avr/interrupt.h> >#include <stdio.h> >#include "c:/WinAVR/avr/include/avr/iom128.h" > >////////////////16MHz 클럭을 사용할때 보레이트///////////////////// >// 2400, 2800, 9600, 14.4k, 19.2k, 28.8k, 38.4k, 57.6k, 76.8k, 115.2k, 230.4k, 250k, 500k, 1M, 2M >unsigned int baudrate[15]={832, 416, 207, 138, 103, 68, 51, 34, 25, 16, 8, 7, 3, 1, 0}; >unsigned char RX_Data; >unsigned char TX_Data[10]={0X00,}; >volatile unsigned char RX_Data_Flag; > >#pragma interrupt_handler uart0_rx_isr:19 >void uart0_rx_isr(void) >{ > RX_Data_Flag = 1; >} > >unsigned char serial_rx(void) >{ > // PC로부터 데이터 수신 > while((UCSR0A&0x80) == 0x00); > return UDR0; >} > >void serial0_init(void) >{ > UBRR0H = baudrate[2]>>8; // Baudrate 9600 byte/sec > UBRR0L = baudrate[2]; > > UCSR0A = 0x02; // Asynchronous normal mode, double baudrate > UCSR0B = 0x98; // 0x98 rx interrupt enable, 8 data, tx 0xD8, tx_empty 0xF8 > UCSR0C = 0x06; // no parity, 1 stop, 8 data > RX_Data = UDR0; // dummy read >} > >void serial_tx(unsigned char *pTxData, int nSize) >{ > while((UCSR0A&0x20) == 0x00); > UDR0 = pTxData; >} > >int main(void) >{ > unsigned char temp; > init_system(); > while(1) > { > if(RX_Data_Flag == 1) > { > temp = serial_rx(); > RX_Data_Flag = 0; > } > } > return 0; >} > >어떻게 하면 프로그램을 수정해야 하나요?