About hardware uare & spi eeprom at CCS
|
||||
---|---|---|---|---|
高級會員
|
Q1 : 關於兩個硬體 uart 的 IC 在 CCS 上
請問版上使用CCS撰寫的大大,是否有使用過18FJ系列那種有兩個 Hardware uart 的來開發過 ? 目前我用 18F63J11 撰寫的結果應該是有搶資源的結果出現 我有在下面這個 CCS 論壇發過討論,有嚐試過給 stream,可是動 做依然不是很正常,還請有經驗的大仔抽空連過去看看指導我一下 http://www.ccsinfo.com/forum/viewtopic.php?t=39841 Q2:關於 SPI 的位址 問題在 CCS 上 我一樣用 CCS 在寫 SPI 的 EEPROM,25LC 系列的 目前我能做到 單一位址寫入 單一位址讀出 可當我單一位址寫入,"讀取"一堆位址的時候卻會亂飄、不規則等 出現 ~ 我附上程式碼,還請懂CCS的大仔幫我看看 ~ 在上傳檔案裡面 Attach file: Link only for registered users
發表於: 2009/8/10 18:12
|
|||
|
Re: 如何學好控制器?
|
||||
---|---|---|---|---|
高級會員
|
1. 先搞定C語言
2. 照章節搞定範例程式 3. 修改小幅度的程式 4. 用力抄別人的程式把它變成你要的 我目前也只到 LV4,還沒辦法自己全部寫完 Orz,但是也快了 分享一下我的作法 ~ XD
發表於: 2009/4/1 16:30
|
|||
|
Re: TQFP 包裝燒錄方式
|
||||
---|---|---|---|---|
高級會員
|
TO 9F:
送洗的版子已經把 ICSP 所需要用的腳用2.0的排針預先拉線了,我留了VCC、GND、MCLR、PGC、PGD五隻,目前是洗板還沒回來,想先拿TQFP包裝的4620拉腳出來玩看看 ~ 因為還沒有實際玩過ICSP。 TO 10F: 的確 ~ 沒有個三張小朋友看地球買不到 ... 一個小小的東西竟然要價3K ... 一點都不體恤電子人的價格...,哼 ~ 又不是非買不可,用我買的板子180元加裝個夾具也是這樣用,在這經濟不景氣的年代 ~ 能省則省阿 ~"~
發表於: 2009/4/1 10:36
|
|||
|
Re: TQFP 包裝燒錄方式
|
||||
---|---|---|---|---|
高級會員
|
嗯 ~ 量大的確可以這樣做,只是目前尚在SAMPLE階段,程式尚未固定下來 ~ 感謝大仔的意見
發表於: 2009/3/31 17:03
|
|||
|
Re: TQFP 包裝燒錄方式
|
||||
---|---|---|---|---|
高級會員
|
嗯 ~ 我去Mail給力浦詢問了,在等待他的回應,應該是會用現成的轉版會比較快,再不然就省錢一點,改造我買的這塊板子,加裝固定夾了 XD
發表於: 2009/3/31 16:51
|
|||
|
TQFP 包裝燒錄方式
|
||||
---|---|---|---|---|
高級會員
|
在這邊想請問一下,我要燒大量的TQFP包裝的 4620,不知道各位大仔是用什麼工具燒的可以建議一下嗎 ? 我跑去買電子材料只買到轉版 (如上載圖) ,可是這樣的話還要用工具壓緊固定住,太不方便了,有什麼好的建議嗎 ?
另外還有 SOIC 20PIN 的 16F690 也要大量燒 ~ Attach file: (0.00 KB)
發表於: 2009/3/31 16:03
|
|||
|
App001 燒錄問題 & i2c 可以進行燒錄嗎 ?
|
||||
---|---|---|---|---|
高級會員
|
小弟不才,很多東西不會,還請板上各位有經驗的大大給予指教 ~ Orz
Q1: 我的開發版是APP001 Ver.2,我手邊有16F690的IC要燒,我想請問這 For C18 的開發實驗版是否可以拿來燒 16 的 IC,如果可以 ~ 請問我該怎麼做 ? Q2: 我的電路設計是PIC184620以I2C的方式連接16F690在傳送資料,我想請問的是 ~ PIC18的燒錄引腳是 MCLR -- 燒錄電壓輸入腳 ( 這隻腳可以不接嗎 ? ) PGC ---- 燒錄時脈腳 PGD ---- 燒錄資料腳 而16F690的燒錄引腳是 RA0 --- ICSP Data Pin RA2 --- ICSP Clock Pin ( 18的MCLR要接,16不用接嗎 ? 或者18 16都不用接MCLR ) 又 ~ 我可以透過 PIC18 走 I2C 來燒 16F690 嗎 ? 因為洗好的板子是把零件悍死的,而燒錄的 pin 又不想給太多組,只想給PIC18 一組,(正、負、MCLR、PGC、PGD) 這樣五隻燒錄 Pin 我想問的是可以透過 PIC18 走 I2C 來燒 16F690 嗎 ? 不然我電路上又要多佈置好幾組 16 的燒錄Pin (16可能不只一顆)
發表於: 2009/3/5 12:15
|
|||
|
Re: I2C 玩不出來 請大仔解惑一下 Orz
|
||||
---|---|---|---|---|
高級會員
|
目前是還停留在 eeprom i2c 這邊,玩不出來 冏rz
我有去 microchip 看過應用筆記,有點問題想請問一下 24LC32A的 Datasheet 提到 Q1 ~~~~~~~~~~~~~~~~~~~~~~~ byte write : start > control byte > address high byte > address low byte > data > stop page write : start > control byte > address high byte > address low byte > data byte0 > data byte31 > stop 這兩種是哪裡不一樣 ? 高低位址 ?? 不是只要送 slave 的位址就好了嗎 ? ex : 送 0xa0 就是位址 幹麻還要分高低 ? Q2 : 我程式再寫的時候我需要去寫等待 ack 的這個回應嗎 ? 我是用CCS在寫的,他範例我是看過套用過了,玩不出來 他寫的很簡單,我也想的很簡單 ~ Master i2c_start(); // Start condition i2c_write(0xa0); // write command i2c_write(0xa0); // Device address i2c_write('A'); // 寫一個 A 過去 i2c_stop(); // Stop condition Slave i2c_start(); // Start condition i2c_write(0xa1); // read command i2c_write(0xa0); // Device address data = i2c_read(); //讀回來放在 data i2c_stop(); // Stop condition 我想的很簡單...可就是玩不出來,我有用邏輯分析儀去看 SDA SCL ~ 都是出現 start & stop 訊號而已 就算有跑出 address 也是偶爾,而且位置也不對 請問我還需要怎麼玩 .... 冏
發表於: 2009/2/24 15:29
|
|||
|
I2C 玩不出來 請大仔解惑一下 Orz
|
||||
---|---|---|---|---|
高級會員
|
請教 I2C 的傳輸寫法
我參考了許多I2C的資料,它是寫說 ~ 1. 先發出一個Start開始訊號 2. Master 發出一個8bit的訊息,其中前7bit定義一個元件的位址,第8個bit宣告Master是進行讀取或輸出 3. 受控端接收到這個位址的訊息發出一個Ack確認信號。 4. 接收資料或傳送資料 5. Master發出Stop做結束 所以我就如法泡製了一番 ( 底下是CCS所提供的範例 ) ivoid i2c_send_data() { i2c_start(); // Start condition i2c_寫或獨的指令 //這裡應該插要讀要寫的指令吧 ? 接著才是以下的Device address i2c_write(0xa0); // Device address 這裡就直接寫 Slave 的 Address了 0xa0 = 1010 0000 Lsb 是0所以是寫 ? i2c_write(data); //接著才是寫資料出去 i2c_stop(); // Stop condition } 我的疑問是對CCS的範例有所疑問 ~~ 試不出來…不知道哪裡出錯 有用過的大仔能替我解答嗎 ? 我是把 4620 透過 I2C 傳資料給 452 由452的UART傳出來這樣 ~ 4620 作Master 452作Slave這樣 ~ 在CCS精靈設定裏面我已經將452的address 設定為 0xa0 因此Slave的address 就應該是 0xa0,只是Master這邊的i2c指令下 法有點模糊了,就像我上面code說的一樣,Master 寫或讀 Slave 的指令應該是下 在address 之前吧 ? 但是範例好像不是 ~ I2c_write的範例如下 { i2c_start(); // Start condition i2c_write(0xa0);// Device address 先寫slave的位址,那之前的讀或寫LSB呢 ? i2c_write(cmd);// Low byte of command 這幹麻的 ? i2c_write(cmd>>8);// High byte of command 這幹麻的 ? i2c_stop(); // Stop condition } I2c_read的範例如下 { i2c_start(); i2c_write(0xa1); //這裡就直接0xa1 = 1010 0001 LSB是1是讀這我可以接受 data1 = i2c_read(); i2c_stop(); } Attach file: (0.00 KB)
發表於: 2009/2/18 10:48
|
|||
|