Re: 鮑率設定
|
||||
---|---|---|---|---|
新會員
|
嗯嗯 謝謝各位大大熱心的協助
想一想 最後還是決定先把 AI Servo的速率調降 然後再用 PIC去控制它了~~
發表於: 2008/5/12 0:38
|
|||
|
Re: 鮑率設定
|
||||
---|---|---|---|---|
高級會員
|
ATmega128 datasheet 的 page 194 上說 Max. 921.6kbps(-7.8%)
PIC16F877 datasheet 的 page 98 上沒指出實際baud rates (可能要用公式算一下) 二者的baud rates 如果差距太多 , 就算硬體ok , 也無法通吧 !!
發表於: 2008/5/9 11:29
|
|||
|
Re: 鮑率設定
|
||||
---|---|---|---|---|
新會員
|
iclink你好:
這個AI SERVO原廠有附一個控制器是atmega128 我想說利用PIC來取代他 AI SERVO設定的原始鮑率是1M atmega128這顆控制器也被設成1M 這裡有參考資料: AI Servo: http://robosavvy.com/site/docs/Bioloid/AX-12(english).pdf --->(Page 13) atmega128: http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf --->(Page 174) PIC 16f877: http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf ---> (Page 98) 所以兩者可正常通訊 且資料不會LOSE 謝謝~~
發表於: 2008/5/8 13:08
|
|||
|
Re: 鮑率設定
|
||||
---|---|---|---|---|
中級會員
|
沒想過這個問題,不過,我很懷疑,IR可以傳送到1MBPS嗎?距離多遠?就算發射端解決了,接收端呢?怎麼收1MBPS? 如果不做parity check是否很容易lose data,lose data後又要重發,是不是很浪費時間且不穩定?不如先把鮑率降低,先收到資料再說,如果確定可以正常收發,再解決鮑率問題,這樣可以釐清軟體還是應體問題.
只是建議,我沒試過用IR跑1MBPS...的RS232 如果ccs有問題可以發mail去問,他們很快能回覆. support@ccsinfo.com
發表於: 2008/5/8 12:39
|
|||
|
Re: 鮑率設定
|
||||
---|---|---|---|---|
資深會員
|
沒看到你程式裡面有控制方向port的程式碼
發表於: 2008/5/8 11:45
|
|||
|
Re: 鮑率設定
|
||||
---|---|---|---|---|
新會員
|
iclink你好:
請問一下~ 我看過16F877的DATASHEET 它硬體部分好像可以到1M 那我是不是只要換compiler 就可以讓鮑率到達1Mpbs呢?? 謝謝~~
發表於: 2008/5/8 10:03
|
|||
|
Re: 鮑率設定
|
||||
---|---|---|---|---|
中級會員
|
ccsc compiler #use rs232 baud rate最高只能設115200
baud is a constant 100-115200 representing the number of bits per second.
發表於: 2008/5/8 3:02
|
|||
|
鮑率設定
|
||||
---|---|---|---|---|
新會員
|
各位先進大大你們好:
小弟最近正在學習使用AI Servo 想藉由PIC晶片(PIC16F877)的通訊埠對AI Servo下Command 這顆AI Servo的通訊介面是使用半雙工的方式 他的DataSheet有提供這樣的參考電路: http://delphi.ktop.com.tw/download/up ... b6562f7_communication.JPG 且AI Servo預設鮑率為1M BPS 參考了晶片的DataSheet後 我採用了16MHz的石英振盪器 且藉由程式將鮑率設定為1M BPS 測試程式如下(CCS C Compiler): //--------------------------------------------------------------------- #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); while(1) { for(i=0; i<9; i++) { printf("%x",LedOn[i]); Delay_us(160); } Delay_ms(10); } } //--------------------------------------------------------------------- 並將晶片的RX/TX直接接至上面的參考電路 可是始終無法成功將Command 傳送到AI Servo 不知道有哪個環節我搞錯了?? 煩請各位 先進不吝指教 謝謝~~
發表於: 2008/5/8 1:14
|
|||
|