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

論壇索引


Board index » All Posts (test838)




Re: PLL enable 後 UART 就有問題了
#51
中級會員
中級會員


Ryang 寫道:
<1>
ANS: 可是你在 Baud-Read Register 卻選用了 8 bit mode (BRG16 = 0) ,所以就錯了。

com:
謝謝指導, 不過在 openuart 參數裡並只有以下二種mode
Transmission Width:
USART_EIGHT_BIT 8-bit transmit/receive
USART_NINE_BIT 9-bit transmit/receive
你指 9-bit 嗎? 不對喔,我的data bit 是 8-bit
既然 API 指明 input 是 unsigned int, 就不可能call進去後又把你shrink成8bit

另外,你講的是直接控制register吧,我程式碼上寫明很清楚喔,我是call MC 的 lib

<2>
ANS: Data Sheet 沒有看清楚,裡面的計算公式裡有標示:
BRGH=0 時,Fosc/64
BRGH=1 時,Fosc/16

com: 你好, 謝謝, 不過, 可能你沒看清我的問題喔, 我很明白清楚的寫USART_BRGH_HIGH
或者跟上一題一樣,你沒弄清 openusart API 喔

不過照你這麼說我也知道了, 其沒有什麼9600要low , 19200就high這種東西,還是以自己輸入為主. 我本來還被嚇一跳,怎有這種怪定義喔

<3>
ANS: 這樣只是將 CPU 的頻率降下來而已,實際上還是沒有真正的解決問題。

com: 謝謝, 不過好像沒有喔, 因為我測過了, 我 USB 還是以 48MHz速度在跑, 你可以看 fig 2-1 , PIC18F87J50 FAMILY CLOCK DIAGRAM

我除頻只是除 圖的右下角那塊 Peripherals 喔, 對於 uart, 24MHz 這個速度對我已經綽綽有餘了

不過,非常謝謝你的指教,還希望我有不懂的地方你能再幫忙幫忙 對於 MicroChip 我是新手

發表於: 2008/12/3 9:33
頂部


stack frame too large
#52
中級會員
中級會員


我把我以前在silicon 的 code port 到 MC 來, 但 flash 讀一個 page 至少要 256 byte. 所以我遇到了這個錯誤訊息
請問要何解?
Error [1300] stack frame too large

unsigned char buf[256];

//
Flash_Init();
Flash_Read_Page(0,buf);


我用的是PIC18F6XJ5X, 1 個 bank 是 0x100 bytes

發表於: 2008/12/2 18:53
頂部


Re: PLL enable 後 UART 就有問題了
#53
中級會員
中級會員


<1>
void Open1USART( unsigned char config,
unsigned int spbrg);
spbrg 是 unsinged int 超過 256 不會有問題

<2> DataSheet 是這樣寫的
BRGH: High Baud Rate Select bit
Asynchronous mode:
1 = High speed
0 = Low speed

但它並沒有定義何謂 High Speed?何謂 Low?



<3> 我一樣是設 high speed,
但頻率調降/除頻
#pragma config CPUDIV = OSC2_PLL2 // OSC2 = [CPU System clock/2]

baudrate 一樣是9600, 但問題就解決了

發表於: 2008/12/2 18:49
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


Re: PLL enable 後 UART 就有問題了
#54
中級會員
中級會員


不, 很抱歉, 可能我沒寫清楚, 如同我寫的, 我 48 也試過了

>我的外部是 12MHz, 我試過48, 8, 6, ....等頻率. 皆無法運作
> #define F_OSC 48000000

發表於: 2008/12/1 16:22
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


PLL enable 後 UART 就有問題了
#55
中級會員
中級會員


各位好

我使用的chip是PIC18F87J50. 剛開始我使用以下的 code, 我的 uart 是可以正常運作的
#define F_OSC 12000000
#define BAUDRATE 9600
#define BRGVAL (F_OSC/16/(BAUDRATE + 1))

TRISCbits.TRISC7 = 1;
TRISCbits.TRISC6 = 0;
Open1USART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
BRGVAL);
while (1)
{
if (DataRdy1USART())
{
c = Read1USART();
if (c == '\r')
break;
}
}

可是當我 enable PLL, 我的 uart 就收不到資料或者是亂碼,是為什麼呢? 這時的頻率該怎麼算呢? 我的外部是 12MHz, 我試過48, 8, 6, ....等頻率. 皆無法運作


#pragma config PLLDIV = 3 // (12 MHz crystal used on this board)
#pragma config CPUDIV = OSC1 // OSC1 = divide by 1 mode
#pragma config FOSC = HSPLL // Firmware must also set OSCTUNE<PLLEN> to start PLL!

#define F_OSC 12000000
#define BAUDRATE 9600
#define BRGVAL (F_OSC/16/(BAUDRATE + 1))
main()
{
...
...
unsigned int pll_startup_counter = 600;
[color=#ff0000]OSCTUNEbits.PLLEN = 1; [/color]//Enable the PLL and wait 2+ms until the PLL locks before enabling USB module
while(pll_startup_counter--);

TRISCbits.TRISC7 = 1;
TRISCbits.TRISC6 = 0;
Open1USART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
BRGVAL);
while (1)
{
if (DataRdy1USART())
{
c = Read1USART();
if (c == '\r')
break;
}
}

}//end main

發表於: 2008/12/1 15:05
頂部



« 1 ... 3 4 5 (6)



:::

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... ]

教育訓練中心

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