會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





ATSAMD20J18 I2C slave問題
新會員
註冊日期:
9月28日 17:48:48
所屬群組:
註冊會員
文章: 2
等級: 1; EXP: 2
HP : 0 / 0
MP : 0 / 0
離線
硬體環境: SAM D20 XPLAINED PRO(2014.7.15版本)
軟體環境: Atmel Studio 7
Device Pack: SAMD20_DFP 1.2.91

使用Atmel start 建了一個專案,使用I2C Slave driver in asynchronous mode
[img width=300]https://drive.google.com/file/d/1qOlGBREQF5K-1B7e8gvGN2m3fQngMRD6/view?usp=sharing[/img]

I2C master 使用Arduino UNO 發送(此發送已用另一塊Arduino slave確認OK)

遇到情況為,SAM D20 完全不回ACK
經過多天實驗,使用debug->IO觀察register發現status.CLKHOLD一直都是1,是INTFLAG.AMATCH為1造成的
[img width=300]https://drive.google.com/file/d/1IvQfQvL_2qz8DJol82vDilwe1LNmbL7Z/view?usp=sharing[/img]

datasheet上有提到CTRLB.CMD填值可以回應master,我寫入3後,確實是有ACK了,但必須一直自己polling寫3進去

想請問要使用原先asynchronous mode的中斷call back read data,該如何做

附加檔案:



jpg  2018-10-01_105056.jpg (60.83 KB)
74057_5bb197e31297d.jpg 1175X715 px

jpg  2018-10-01_111444.jpg (36.48 KB)
74057_5bb197ed68e11.jpg 454X329 px

10月01日 11:44:23
轉換PDF檔 列印


Re: ATSAMD20J18 I2C slave問題
新會員
註冊日期:
9月28日 17:48:48
所屬群組:
註冊會員
文章: 2
等級: 1; EXP: 2
HP : 0 / 0
MP : 0 / 0
離線
我發現到用start產生的程式碼有個地方錯誤,如果有microchip人員看到此篇,請幫忙回報

hpl_sercom.c
static void _sercom_i2c_s_irq_handler(struct _i2c_s_async_device *device)使用了hri_sercomi2cm_read_INTFLAG_reg(hw);這邊去讀master register。正確的因該要用hri_sercomi2cs_read_INTFLAG_reg(hw);

我修改過並增加部分程式,已經可以成功call back讀資料
修改過的程式碼(紅色框起部分)貼在下方圖片,供大家參考

附加檔案:



jpg  2018-10-01_154408.jpg (75.57 KB)
74057_5bb1d418f0b50.jpg 967X610 px

jpg  2018-10-01_154516.jpg (105.09 KB)
74057_5bb1d4224d42b.jpg 1012X676 px

10月01日 16:03:46
轉換PDF檔 列印


Re: ATSAMD20J18 I2C slave問題
管理員
註冊日期:
2017/11/22 11:20
所屬群組:
站務管理者
註冊審核
文章: 23
等級: 3; EXP: 52
HP : 0 / 63
MP : 7 / 168
離線
十分感謝, 會通知後台系統維護人員, 目前測試過幾顆晶片型號(SAMD21/SAME54), 所有Generator出來的Code都有這個問題, 謝謝!

10月03日 12:00:32
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project