• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (sindyvirgo)




Re: 一個硬體UART跟軟體UART共存使用的問題
#31
高級會員
高級會員


所以大仔的意思就是說
CCS的 #USE RS232

#USE RS232(BAUD=4800, XMIT=PIN_B0, RCV=PIN_B1, STREAM=COM_A)
#USE RS232(BAUD=4800, XMIT=PIN_B2, RCV=PIN_B3, STREAM=COM_B)

不管我弄幾組,實際上他跑的都是硬體架構上的 UART 囉
就是課本裡面畫的 RS232 實體方塊圖那個東西

那好 ~ 如果"不需要"他們同時間運作,我用CTS RTS 來控制
的話,是不是就代表了

我運作第一組其他三組流量管制住( TX1 / RX1 / CTS1 /RTS1 )
我運作第二組其他三組流量管制住( TX2 / RX2 / CTS2 /RTS2 )
以此類推

我只要hold住其他不要運作那嚜應該只剩下一組會運作
這樣的話就不會打到硬體架構造成當掉了

如此的話 ~ 就可以實現多組 RS232 了
因為我不需要他們同時間運作,分開運作就好了 ~

發表於: 2009/2/10 11:38
頂部


一個硬體UART跟軟體UART共存使用的問題
#32
高級會員
高級會員


一個硬體UART跟軟體UART共存使用的問題
我用CCS所提供的 #USE RS232 來擴充多個 RS232

自己實體的RS232、TX-C6、RX-C7也有用含下面共三組
#USE RS232(BAUD=4800, XMIT=PIN_B0, RCV=PIN_B1, STREAM=COM_A)
#USE RS232(BAUD=4800, XMIT=PIN_B2, RCV=PIN_B3, STREAM=COM_B)

我想問的問題是 ~
Q1:當軟體模擬的 #USE RS232在收資料時,若是硬體上自己的RS-232
有資料進來的話,是不是硬體中斷的RS-232 會直接搶走正在收送
資料的 #USE RS232?

Q2:CCS的 #USE RS232 這個函數,它的內部是怎樣運作的?我指的是
他是去拿硬體架構上的UART暫存器來使用嗎 ?
如果是的話….這樣擴充RS232的方式,只能一次運行一組對吧 ?

Q3:#USE RS232 這種方式是不是沒辦法有自己的中斷?
如果可以有?也是無法抵觸硬體架構的 UART 中斷對不對?
硬體中斷是
#INT_RDA
void RDA_isr()
{

}

目前我試過三組只能獨立運作,若是模擬的RS232 正在執行中
而硬體有要動作的話,硬體會拿走去執行,接著就當掉了 XD

PS:撇開上面的方式不談,有沒有什麼IC一次可以提供四組UART
的?畢竟用模擬的方式問題會很多 ~ 硬體開發上相對也很不容易

發表於: 2009/2/9 10:48
頂部


Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#33
高級會員
高級會員


圖檔送上~
有問題的應該是在 EEPROM 的 SDO 送往 PIC 的 SDI(RC4)
PIC 的 SDO 送給 EEPROM 的 SDI 波形是正確的 ~
但是
讀出來好像不行讀 ~~ 波形很奇怪 !!
我圖片都有中文說明

Attach file:


Link only for registered users

發表於: 2009/1/14 12:11
頂部


Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#34
高級會員
高級會員


請問這邊能貼圖嘛 ?
其實我已經在用示波器來看了,我想貼上來給大家看一下

發表於: 2009/1/14 11:48
頂部


Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#35
高級會員
高級會員


目前程式是改成這樣...
APP001實驗板上 DIP 開關是把相關腳位給 ON 而已
用終端機看印出狀態是空空沒有東西
用示波器看CS腳是有明顯 LH動作
但是在 LH這中間 CLK 腳只有突波...沒有明顯的"數據CLK"
還是無法動作....冏
------------------------------------------------------------------
output_low(pin_a5); //CS給LOW
{
SPI_write(0x06); //寫入致能
SPI_write(0x02); //發送操作碼
spi_write(0x00); //送high_address
spi_write(0x10); //送low_address
spi_write(0x65); //送出數據 A
output_high(pin_a5); //CS給HIGH
}

output_low(pin_a5); //CS給LOW
{
SPI_write(0x03);
spi_write(0x00); //送high_address
spi_write(0x10); //送low_address
SPI_Msg = spi_read();
output_high(pin_a5); //CS給HIGH
}

printf("%c",SPI_Msg);
delay_ms(200);

發表於: 2009/1/13 11:02
頂部


Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#36
高級會員
高級會員


我看了一下 datasheet 的波形圖
寫的部份 :
0x02 //是寫入操作碼
0x00 //給high_address
0x10 //給low_address
data //接著寫入資料
SO ~~ 我這樣寫 :
spi_write(0x02);
spi_write(0x00);
spi_write(0x10);
spi_write(0xA5);
--------------------------------------------------
讀取的部份 :
spi_write(0x03);
spi_write(0x00);
spi_write(0x10);
Val = spi_read();
--------------------------------------------------
printf("%c",Val); // 沒有東西出來 Orz

發表於: 2009/1/12 17:07
頂部


Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#37
高級會員
高級會員


嗯 ~ 請教一下 address 要怎麼給呀 ?

spi_write(HIGH_address); //可否解釋一下這個
spi_write(low_address); //可否解釋一下這個

---------------------------------------------------
PIC 寫到 eeprom
spi_write(0x02); //這是寫的時候先下 0x02嘛 ?
spi_write(data); //接著寫入資料
---------------------------------------------------
PIC 讀取 eeprom
spi_write(0x03); //這是寫的時候先下 0x03嘛 ?
var = spi_read(); //接著從 eeprom 讀取資料 ?
---------------------------------------------------
是這樣的嘛 ? 不是很懂怎麼用 @_@

發表於: 2009/1/12 16:53
頂部


Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#38
高級會員
高級會員


試了一個多禮拜 ~ 我4620的SPI還是無法正常工作 ...
目前狀態是
我以 PIC 做 MASTER,由 PIC 來提供 SCK 的 CLK 給
外部的 EEPROM (25LC160A),如此我不用去管 CS 腳 !

那麼 ~

spi_write('A'); <--- 對CCS而言這應該就會自動寫一個 A
給 EEPROM 吧 ? 我用示波器看 CLK 連坑都不吭一聲的 0.0

目前片段 code 如下

#int_SSP
void SSP_isr(void)
{
spi_write('a'); //寫一個a過去
delay_ms(1);

SPI_Msg = spi_read(); // 讀回來放在Temp
delay_ms(1);

printf("%c",SPI_Temp); 印出來
}
}
//----------------------------------------------------
void main()
{
enable_interrupts (INT_SSP);
setup_spi(spi_master |spi_l_to_h | spi_clk_div_4 );

for(;;){
SSP_isr();

}


}

希望高手能指導一下...快冏爆了 Orz ...

發表於: 2009/1/12 10:43
頂部


請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
#39
高級會員
高級會員


開發板 --> APP001 REV2.0
(看板子說明書已將 J9 都用 jump 連接,J10 斷開,如此是使用 25LC160A這顆 EEPROM)

如果沒錯的話腳位應該是(指開發板上)

RC3 --> SCK --> colck
RC4 --> SDI --> input
RC5 --> SDO --> output

1. 我看了CCS裡附帶的 index 範例
2. 參考了C18的函數範例
3. 25LC160A的PDF也看過了

試著想要存取看看外部 EEPROM 只是試不出來 ~"~
希望板上有能者可以給予指導一下 ~

我是設定了如下的 code

#int_SSP
void SSP_isr(void)
{
spi_write('A'); //寫一個A過去
SPI_Temp = spi_read(0); // 讀回來
{
printf("%c",SPI_Temp); 印出來
}
}
//----------------------------------------------------
void main()
{
enable_interrupts (INT_SSP);
setup_spi(spi_master |spi_l_to_h | spi_clk_div_4 );
setup_spi(FALSE);
}

我是用終端機看的,測試的設備不多,還是説開發過程中可以用哪些技巧來檢測也希望大大能指導一下,目前都只能用終端機在看對不對 ~ 有圖有真相嘛

最後請有玩過的大仔能幫個忙...讓它動起來了

發表於: 2008/12/25 15:25

Edited by sindyvirgo on 2008年12月25日 15:41:34
頂部


CCS #int_RDA 中斷觀念問題
#40
高級會員
高級會員


之前有發過一篇UART的接收問題
http://www.microchip.com.tw/modules/n ... php?topic_id=6150&forum=1
對於CCS的中斷我有點模糊了 ~
希望有寫CCS的大大指點我一下 ~

#int_RDA  這個應該是中斷接收語法
下面片段
#int_RDA
void RDA_isr()
{
for(i=0 ; i<512 ; i++)
{
Msg_Array[i] = getc(); //接收字元一個個放進陣列
Ram_Array[i] = Msg_Array[i]; //複製到另一個陣列
}
{
for(i=0 ; i<512 ; i++)
printf("%c",Ram_Array[i]); //印出來
Msg_Array[i] = ‘ ‘; //清空
}
}
void main()
{
enable_interrupts(INT_RDA);
enable_interrupts(INT_TBE);
enable_interrupts(GLOBAL);

主程式裡目前沒有東西 ~

}
---------------------------------------------------------------------------------
#int_RDA 問過幾個大仔,這個就是接收中斷,CCS會自己產生
就因為如此所以我模糊了,我覺得是我不知道該把程式片段給設定
在哪邊的問題 ~
1. 我有把印出的程式片斷丟在主程式裡面,但那樣做沒有反應 ~
2. 我又試著把印出片段放在 #int_RDA(如我貼的) 裡面,可以印
出,但是只能印一次,這應該就是nicecookie大仔說的,TX時
我沒有把RX停掉導致  主要也是問這問題,CCS裡面我要停
RX怎麼停 !? 因為有人說CCS會自己產生,所以腦袋打結 …

發表於: 2008/12/22 10:35
頂部



« 1 2 3 (4) 5 6 7 ... 10 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------