ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
各位小夥伴,不好意思,在5:04時的SDA跟SCL在製作影片時兩個位置顛倒了,應該是SDA要比較寬才對喔~解答:A解析:因為當SCL的電位上升的瞬間,從機就有可能讀取資料了喔,所以為了避免有遺漏資料的可能,會將SDA提前上拉,這樣是最有保障不會出現資料錯誤的方法喔~
愛了~充滿學問
保持建立时间和保持时间的约束关系
不好意思, 不太明白你的說法, 照這麼說 不是B比較有保障嗎?"SCL的電位上升的瞬間,從機就有可能讀取資料了喔", 那如果選A, 不會誤判成起始或停止訊號嗎?
@@znji5704 小夥伴,不好意思,在5:04時的SDA跟SCL在製作影片時兩個位置顛倒了,所以在SCL的上升邊緣 SDA已經升高了喔
@@Joyous-Code_Teacher 喔喔喔! 看懂了, 不好意思讓你再說一次 , 感謝解說
最近在學MCU,正好需要學到這些東西看了頻道中的其他影片,真是太實用了!
Good~
4:53 讀取時,主機發送完暫存器地址和獲得 ACK / NACK 後,是否要加入 「STOP + START」 / 「REPEATED START」 才開始發送 「從機的I2C地址 + READ」 ?不然的話,從機分辨不了主機緊接著發送的byte是「主機寫入從機的資料」抑或是「從機的I2C地址 + READ」。
以普通的I2C規範來說不需要喔~從機判斷讀取或是寫入,主要是靠暫存器位址對這個“命令”如果是寫入的命令就直接寫入即可,如果是讀取的命令,則需要加上「設備位址+R」,再讀取資料,起始為元跟停止位元只需要放在頭跟尾但是每一個設備的I2C規範竟不相同,還是要以設備規格書為止喔
您好,想請教一下,當主機發送完設備位置+W和暫存器位置後,接下來的收到的訊息從機如何分辨是欲寫入的data還是設備位置+R呢?
通常主機發送設備位置+W後的暫存器位置會是一個"命令",如果是寫入數據的"命令"那從機就負責接收數據就好,反之是讀取數據的"命令",那從機就要先接收一個設備位置+R,才會開始傳送數據我自己跟學生的白話解釋是~寫入數據:主機:設備位置+W -> 暫存器位置「寫入命令」主機我現在要寫入資料了(寫入命令),從機你專心接收就好讀取數據:主機:設備位置+W -> 暫存器位置「讀取命令」 -> 設備位置+R -> 回傳資料主機我現在要讀取資料了(讀取命令),從機你請做好準備(設備位置+R),準備好就回傳資料
在4:28分那邊(設備位置+R&W),圖下面的數字應該是0101011吧?而不是0000111
沒錯,我在製作影片時粗心沒有注意到,謝謝你~
A,因為這樣就算有點沒對到也可以避免誤判嗎?另外想請問一下,為什麼讀取的時候不直接在第一次給設備位址時就直接R而要多再給一次設備位址才R呢?看起來有點多此一舉,還是單純就是協議這樣規定的?若是的話為什麼又要這樣規定呢?
沒錯 這是協議規定的喔,你可以想像成 主機要先告訴從機一個”命令”所以第一次設備位址要寫W,等從機確實接受命令任務後,主機再給設備位址R,從機才會給相對”命令”的回答
解答我有放在留言置頂喔~沒錯,這是I2C的協議通常都是用這個方法規定的喔。你可以想像,主機第一次寫的 設備位址+W 是要發送從機一個"命令",確認從機成功接收命令後,主機再寫的 設備位址+R,讓從機可以依照剛才得到的命令,發送資料~
1:55 片中waveform 不對,應該是在clock rising edge 時才讀data 是0或1
沒錯 時脈線在上升邊緣時就會讀取資料是否為0或1 所以資料線最好提前就要做變化但是為了教導新手在示波器上好判斷波形,所以採用影片中的說法
@@Joyous-Code_Teacher 那要開一集教什麼是flip flop了,clk 就像心跳很重要。
IPMB好像用的就是I2C,已經是超過15年前的事情了,有點忘記了,有沒有現在還在寫IPMI程序的人出來說一下
th-cam.com/video/5H3daBwJ31g/w-d-xo.html 晶片讀取要如何做?
A
解答我有放在留言置頂喔~
為什麼I2c 讀取前要先說要寫、restart之後才說要讀、為什麼不一開始就說要讀就好了呢?
@@jimmychen4308這是I2C協議規定的喔,你可以想像成 主機要先告訴從機一個”命令”所以第一次設備位址要寫W,等從機確實接受命令任務後,主機再給設備位址R,從機才會給相對”命令”的回答
各位小夥伴,不好意思,在5:04時的SDA跟SCL在製作影片時兩個位置顛倒了,應該是SDA要比較寬才對喔~
解答:A
解析:因為當SCL的電位上升的瞬間,從機就有可能讀取資料了喔,所以為了避免有遺漏資料的可能,會將SDA提前上拉,這樣是最有保障不會出現資料錯誤的方法喔~
愛了~充滿學問
保持建立时间和保持时间的约束关系
不好意思, 不太明白你的說法, 照這麼說 不是B比較有保障嗎?
"SCL的電位上升的瞬間,從機就有可能讀取資料了喔", 那如果選A, 不會誤判成起始或停止訊號嗎?
@@znji5704 小夥伴,不好意思,在5:04時的SDA跟SCL在製作影片時兩個位置顛倒了,所以在SCL的上升邊緣 SDA已經升高了喔
@@Joyous-Code_Teacher 喔喔喔! 看懂了, 不好意思讓你再說一次 , 感謝解說
最近在學MCU,正好需要學到這些東西
看了頻道中的其他影片,真是太實用了!
Good~
4:53 讀取時,主機發送完暫存器地址和獲得 ACK / NACK 後,是否要加入 「STOP + START」 / 「REPEATED START」 才開始發送 「從機的I2C地址 + READ」 ?
不然的話,從機分辨不了主機緊接著發送的byte是「主機寫入從機的資料」抑或是「從機的I2C地址 + READ」。
以普通的I2C規範來說不需要喔~
從機判斷讀取或是寫入,主要是靠暫存器位址對這個“命令”
如果是寫入的命令就直接寫入即可,如果是讀取的命令,則需要加上「設備位址+R」,再讀取資料,起始為元跟停止位元只需要放在頭跟尾
但是每一個設備的I2C規範竟不相同,還是要以設備規格書為止喔
您好,想請教一下,當主機發送完設備位置+W和暫存器位置後,接下來的收到的訊息從機如何分辨是欲寫入的data還是設備位置+R呢?
通常主機發送設備位置+W後的暫存器位置會是一個"命令",如果是寫入數據的"命令"那從機就負責接收數據就好,反之是讀取數據的"命令",那從機就要先接收一個設備位置+R,才會開始傳送數據
我自己跟學生的白話解釋是~
寫入數據:
主機:設備位置+W -> 暫存器位置「寫入命令」
主機我現在要寫入資料了(寫入命令),從機你專心接收就好
讀取數據:
主機:設備位置+W -> 暫存器位置「讀取命令」 -> 設備位置+R -> 回傳資料
主機我現在要讀取資料了(讀取命令),從機你請做好準備(設備位置+R),準備好就回傳資料
在4:28分那邊(設備位置+R&W),圖下面的數字應該是0101011吧?而不是0000111
沒錯,我在製作影片時粗心沒有注意到,謝謝你~
A,因為這樣就算有點沒對到也可以避免誤判嗎?
另外想請問一下,為什麼讀取的時候不直接在第一次給設備位址時就直接R而要多再給一次設備位址才R呢?看起來有點多此一舉,還是單純就是協議這樣規定的?若是的話為什麼又要這樣規定呢?
沒錯 這是協議規定的喔,你可以想像成
主機要先告訴從機一個”命令”所以第一次設備位址要寫W,等從機確實接受命令任務後,主機再給設備位址R,從機才會給相對”命令”的回答
解答我有放在留言置頂喔~
沒錯,這是I2C的協議通常都是用這個方法規定的喔。
你可以想像,主機第一次寫的 設備位址+W 是要發送從機一個"命令",確認從機成功接收命令後,主機再寫的 設備位址+R,讓從機可以依照剛才得到的命令,發送資料~
1:55 片中waveform 不對,應該是在clock rising edge 時才讀data 是0或1
沒錯 時脈線在上升邊緣時就會讀取資料是否為0或1 所以資料線最好提前就要做變化
但是為了教導新手在示波器上好判斷波形,所以採用影片中的說法
@@Joyous-Code_Teacher 那要開一集教什麼是flip flop了,clk 就像心跳很重要。
IPMB好像用的就是I2C,已經是超過15年前的事情了,有點忘記了,有沒有現在還在寫IPMI程序的人出來說一下
th-cam.com/video/5H3daBwJ31g/w-d-xo.html 晶片讀取要如何做?
A
解答我有放在留言置頂喔~
為什麼I2c 讀取前要先說要寫、restart之後才說要讀、為什麼不一開始就說要讀就好了呢?
@@jimmychen4308
這是I2C協議規定的喔,你可以想像成
主機要先告訴從機一個”命令”所以第一次設備位址要寫W,等從機確實接受命令任務後,主機再給設備位址R,從機才會給相對”命令”的回答