ATSAMD20J18 I2C slave問題

作者 alan_hung 於 2018年10月01日 11:44:23
硬體環境: 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

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=11&topic_id=22424&post_id=78744