全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1756
推到 Plurk!
推到 Facebook!

使用PIC晶片與智慧型伺服馬達之通訊

缺席
yihong068
一般會員


發表:2
回覆:0
積分:0
註冊:2008-03-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-05 20:58:47 IP:220.140.xxx.xxx 訂閱
各位先進大大你們好:
小弟最近正在學習使用AI Servo
想藉由PIC晶片(PIC16F877)的通訊埠對AI Servo下Command
這顆AI Servo的通訊介面是使用半雙工的方式
他的DataSheet有提供這樣的參考電路:



且AI Servo預設鮑率為1M BPS
參考了晶片的DataSheet後
我採用了16MHz的石英振盪器 且藉由程式將鮑率設定為1M BPS
測試程式如下(CCS C Compiler):

[code cpp]
#include <16f877.h>
#use delay(clock=16000000)
#fuses HS, NOWDT
#use rs232(baud=1000000, bits=8, xmit=PIN_C6, rcv=PIN_C7)

char LedOn [9]={0xff, 0xff, 0x03, 0x05, 0x03, 0x18 , 0x01, 0x01, 0xda};
char LedOff[9]={0xff, 0xff, 0x03, 0x04, 0x03, 0x19,0x00, 0x00, 0xdc};

void main()
{
int i=0;
Set_tris_D(0x00);
Output_D(0x01);

for( ; ; )
{
for(i=0; i<9; i )
{
printf("%x",LedOn[i]);
Delay_us(160);
}
Delay_ms(10);
}
}

[/code]

並將晶片的RX/TX直接接至上面的參考電路
可是始終無法成功將Command 傳送到AI Servo
不知道有哪個環節我搞錯了??
煩請各位 先進不吝指教 謝謝~~

====================================================
補充一下
在他的DataSheet上寫說上圖中的電路主要是將UART全雙工轉為半雙工
並輸出TTL的訊號
不知各位先進有沒有做過類似功能的電路
或者有可從軟體上著手的方案 謝謝~~

====================================================

問題補充(20080410)
重新再看了一次PIC16F877的DataSheet後
想說不知有什麼辦法可以測試鮑率在1Mbps下時
資料有沒有正確的傳送 謝謝~~
編輯記錄
yihong068 重新編輯於 2008-04-05 21:00:26, 註解 無‧
yihong068 重新編輯於 2008-04-05 21:01:16, 註解 圖片大小調整‧
yihong068 重新編輯於 2008-04-07 02:30:37, 註解 問題補充‧
yihong068 重新編輯於 2008-04-10 09:01:40, 註解 問題補充‧
sansam
高階會員


發表:4
回覆:141
積分:164
註冊:2007-08-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-06 21:36:46 IP:220.131.xxx.xxx 訂閱
看起來是CCSC的語法
第一個for迴圈可以用whle(1)來取代嗎?
我忘記CCSC是否可以不寫條件式
系統時間:2024-05-11 3:05:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!