ZHCSXA8 November 2024 LP5899
PRODUCTION DATA
除了 SOFTRESET_CRC 之外,每條命令都有兩個(gè)版本。即使 CRC 值不正確,類型名稱末尾沒有 CRC 的版本也始終執(zhí)行。僅當(dāng)接收到的 CRC 與基于命令字和數(shù)據(jù)字計(jì)算出的 CRC 匹配時(shí),才會(huì)執(zhí)行類型名稱末尾帶有 CRC 的版本。
以 FWD 開頭的命令通過 CCSI 控制器轉(zhuǎn)發(fā)接收到的數(shù)據(jù)字。只要數(shù)據(jù)長(zhǎng)度大于 0,CCSI 控制器就會(huì)自動(dòng)插入一個(gè)起始位、校驗(yàn)位和一個(gè) END 字節(jié)。因此,一條 SPI 命令的 SPI 數(shù)據(jù)字被視為一條 CCSI 命令,該命令在第一個(gè) SPI 數(shù)據(jù)字之前具有 1 個(gè)起始位,在每個(gè)數(shù)據(jù)字之后具有一個(gè)校驗(yàn)位,在最后一個(gè) SPI 數(shù)據(jù)字之后具有一個(gè) END 字節(jié)。
以 REG 開頭的命令用于寫入和讀取 LP5899 器件的寄存器。DATA_RD 命令返回 RXFIFO 中存儲(chǔ)的數(shù)據(jù)。
以 FWD、REG_WR 和 SOFTRESET_CRC 開頭的命令會(huì)返回 STATUS 寄存器和通過 STATUS 寄存器計(jì)算出的 CRC??梢酝ㄟ^ SPICTRL 寄存器中的 SPI_ACK_DIS 位來禁用此確認(rèn)。在確認(rèn)被禁用的情況下執(zhí)行 SOFTRESET_CRC 時(shí)必須小心。在這種情況下,TI 建議在發(fā)送下一條命令之前至少等待一個(gè) SPI 字。
每當(dāng) LP5899 器件在 SDO 引腳上將數(shù)據(jù)返回到控制器時(shí),控制器必須在 SCLK 引腳上提供足夠的時(shí)鐘脈沖以移出數(shù)據(jù)。TI 建議在提供時(shí)鐘脈沖以移出數(shù)據(jù)的同時(shí)將 SDI 引腳保持在邏輯高電平。
FWD_WR_CRC(轉(zhuǎn)發(fā)寫入 CRC 命令)
返回到 SPI 命令表
FWD_WR_CRC 命令由器件中的 CCSI 控制器用于傳輸數(shù)據(jù)字。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在 TXFIFO 中。僅當(dāng)接收到的 CRC 與基于命令字和數(shù)據(jù)字計(jì)算出的 CRC 匹配時(shí),CCSI 控制器才開始傳輸。這意味著 TXFFLVL 不影響該傳輸?shù)拈_始。SPI 控制器必須注意到,數(shù)據(jù)長(zhǎng)度小于 TXFIFO 的大小。此 SPI 命令支持多達(dá) 512 個(gè)數(shù)據(jù)字并返回 STATUS 寄存器和通過 STATUS 寄存器計(jì)算出的 CRC。FWD_WR_CRC 命令轉(zhuǎn)發(fā) 2 個(gè)數(shù)據(jù)字的示例如圖 7-10 所示。
FWD_WR(轉(zhuǎn)發(fā)寫入命令)
返回到 SPI 命令表
FWD_WR 命令由器件中的 CCSI 控制器用于傳輸數(shù)據(jù)字。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在 TXFIFO 中。如果滿足以下一個(gè)或多個(gè)條件,CCSI 控制器會(huì)開始傳輸。
FWD_WR_END_CRC(具有 END 字節(jié)的轉(zhuǎn)發(fā)寫入 CRC 命令)
返回到 SPI 命令表
FWD_WR_END_CRC 命令由器件中的 CCSI 控制器用于傳輸數(shù)據(jù)字。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在 TXFIFO 中。僅當(dāng)接收到的 CRC 與基于命令字和數(shù)據(jù)字計(jì)算出的 CRC 匹配時(shí),CCSI 控制器才開始傳輸。這意味著 TXFFLVL 不影響該傳輸?shù)拈_始。在 CCSI 控制器傳輸完所有數(shù)據(jù)字后,會(huì)附加指定數(shù)量的額外 END 字節(jié)。數(shù)據(jù)字的傳輸和額外 END 字節(jié)的傳輸被視為 2 條單獨(dú)的 CCSI 命令。此 SPI 命令支持多達(dá) 31 個(gè)數(shù)據(jù)字并返回 STATUS 寄存器和通過 STATUS 寄存器計(jì)算出的 CRC。FWD_WR_END_CRC 命令轉(zhuǎn)發(fā) 0 數(shù)據(jù)字(因此不插入一個(gè) END 字節(jié))和 3 個(gè)額外 END 字節(jié)的示例如圖 7-12 所示。
FWD_WR_END(具有 END 字節(jié)的轉(zhuǎn)發(fā)寫入命令)
返回到 SPI 命令表
FWD_WR_END 命令由器件中的 CCSI 控制器用于傳輸數(shù)據(jù)字。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在 TXFIFO 中。如果滿足以下一個(gè)或多個(gè)條件,CCSI 控制器會(huì)開始傳輸。
FWD_RD_END_CRC(具有 END 字節(jié)的轉(zhuǎn)發(fā)讀取 CRC 命令)
返回到 SPI 命令表
FWD_RD_END_CRC 命令由器件中的 CCSI 控制器用于傳輸數(shù)據(jù)字。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在 TXFIFO 中。僅當(dāng)接收到的 CRC 與基于命令字和數(shù)據(jù)字計(jì)算出的 CRC 匹配時(shí),CCSI 控制器才開始傳輸。這意味著 TXFFLVL 不影響該傳輸?shù)拈_始。在 CCSI 控制器傳輸完所有數(shù)據(jù)字后,會(huì)附加指定數(shù)量的額外 END 字節(jié)。數(shù)據(jù)字的傳輸和額外 END 字節(jié)的傳輸被視為 2 條單獨(dú)的 CCSI 命令。CCSI 外設(shè)接收到的用于該命令的所有數(shù)據(jù)字都存儲(chǔ)在 RXFIFO 中。此 SPI 命令支持多達(dá) 32 個(gè)數(shù)據(jù)字并返回 STATUS 寄存器和通過 STATUS 寄存器計(jì)算出的 CRC。FWD_RD_END_CRC 命令轉(zhuǎn)發(fā) 2 個(gè)數(shù)據(jù)字和 1 個(gè)額外 END 字節(jié)的示例如圖 7-14 所示。
FWD_RD_END(具有 END 字節(jié)的轉(zhuǎn)發(fā)讀取命令)
返回到 SPI 命令表
FWD_RD_END 命令由器件中的 CCSI 控制器用于傳輸數(shù)據(jù)字。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在 TXFIFO 中。如果滿足以下一個(gè)或多個(gè)條件,CCSI 控制器會(huì)開始傳輸。
DATA_RD_CRC(數(shù)據(jù)讀取 CRC 命令)
返回到 SPI 命令表
DATA_RD_CRC 命令用于從 RXFIFO 讀取數(shù)據(jù)字。僅當(dāng)接收到的 CRC 與基于命令字計(jì)算出的 CRC 匹配時(shí),該器件才會(huì)返回所請(qǐng)求的數(shù)據(jù)字?jǐn)?shù)以及基于數(shù)據(jù)字計(jì)算出的 CRC。當(dāng) CRC 失敗時(shí),SDO 保持為邏輯高電平。DATA_RD_CRC 命令請(qǐng)求 4 個(gè)數(shù)據(jù)字的示例如圖 7-16 所示。
DATA_RD(數(shù)據(jù)讀取命令)
返回到 SPI 命令表
DATA_RD 命令用于從 RXFIFO 讀取數(shù)據(jù)字。即使接收到的 CRC 與基于命令字計(jì)算出的 CRC 不匹配,該器件也會(huì)返回所請(qǐng)求的數(shù)據(jù)字?jǐn)?shù)以及基于數(shù)據(jù)字計(jì)算出的 CRC。當(dāng)接收到的 CRC 與基于命令字計(jì)算出的 CRC 不匹配時(shí),F(xiàn)AULT 引腳會(huì)被拉至低電平(未屏蔽時(shí))并設(shè)置 FLAG_SPI_CRC 標(biāo)志。DATA_RD 命令請(qǐng)求 3 個(gè)數(shù)據(jù)字的示例如圖 7-17 所示。
REG_WR_CRC(寄存器寫入 CRC 命令)
返回到 SPI 命令表
REG_WR_CRC 命令用于寫入 LP5899 器件的內(nèi)部寄存器。該命令包含一個(gè)字段,用于指示要寫入的第一個(gè)寄存器的地址。SPI 外設(shè)接收到的所有數(shù)據(jù)字都存儲(chǔ)在影子寄存器中。僅當(dāng)接收到的 CRC 與基于命令字和數(shù)據(jù)字計(jì)算出的 CRC 匹配時(shí),才更新寄存器。該命令返回 STATUS 寄存器和通過 STATUS 寄存器計(jì)算出的 CRC。REG_WR_CRC 命令寫入 3 個(gè)寄存器的示例如圖 7-18 所示。
REG_WR(寄存器寫入命令)
返回到 SPI 命令表
REG_WR 命令用于寫入 LP5899 器件的內(nèi)部寄存器。該命令包含一個(gè)字段,用于指示要寫入的第一個(gè)寄存器的地址。SPI 外設(shè)接收到的所有數(shù)據(jù)字均直接寫入寄存器。這意味著 CRC 不會(huì)影響寄存器的寫入。當(dāng)接收到的 CRC 與基于命令字計(jì)算出的 CRC 不匹配時(shí),F(xiàn)AULT 引腳會(huì)被拉至低電平(未屏蔽時(shí))并設(shè)置 FLAG_SPI_CRC 標(biāo)志。該命令返回 STATUS 寄存器和通過 STATUS 寄存器計(jì)算出的 CRC。REG_WR_CRC 命令寫入 2 個(gè)寄存器的示例如圖 7-19 所示。
REG_RD_CRC(寄存器讀取 CRC 命令)
返回到 SPI 命令表
REG_RD_CRC 命令用于讀取 LP5899 器件的內(nèi)部寄存器。該命令包含一個(gè)字段,用于指示要讀取的第一個(gè)寄存器的地址。僅當(dāng)接收到的 CRC 與基于命令字計(jì)算出的 CRC 匹配時(shí),該器件才會(huì)返回所請(qǐng)求的寄存器字?jǐn)?shù)以及基于寄存器字計(jì)算出的 CRC。當(dāng) CRC 失敗時(shí),SDO 保持為邏輯高電平。REG_RD_CRC 命令讀取 1 個(gè)寄存器的示例如圖 7-20 所示。
REG_RD(寄存器讀取命令)
返回到 SPI 命令表
REG_RD 命令用于讀取 LP5899 器件的內(nèi)部寄存器。該命令包含一個(gè)字段,用于指示要讀取的第一個(gè)寄存器的地址。即使接收到的 CRC 與基于命令字計(jì)算出的 CRC 不匹配,該器件也會(huì)返回所請(qǐng)求的寄存器字?jǐn)?shù)以及基于寄存器字計(jì)算出的 CRC。當(dāng)接收到的 CRC 與基于命令字計(jì)算出的 CRC 不匹配時(shí),F(xiàn)AULT 引腳會(huì)被拉至低電平(未屏蔽時(shí))并設(shè)置 FLAG_SPI_CRC 標(biāo)志。REG_RD 命令讀取 3 個(gè)寄存器的示例如圖 7-21 所示。
SOFTRESET_CRC(軟復(fù)位 CRC 命令)
返回到 SPI 命令表
SOFTRESET_CRC 命令用于將所有內(nèi)部寄存器復(fù)位為默認(rèn)值并同步 CCSI 控制器和外設(shè)。該命令在以下情況下執(zhí)行:
所有內(nèi)部寄存器復(fù)位后,之前設(shè)置的大部分故障標(biāo)志都會(huì)被清除。只有 FLAG_POR 和 FLAG_ERR 會(huì)復(fù)位為高電平。此外,RXFIFO 中存儲(chǔ)的所有數(shù)據(jù)將無法訪問。如果 LED 菊花鏈中有 CCSI 命令尚未被 CCSI 外設(shè)接收到,則無法再檢查 CCSI CRC 診斷,因?yàn)橛?jì)算出的 CRC 值已被清除,以便在 CCSI 控制器和 CCSI 外設(shè)之間進(jìn)行同步。TI 建議在傳輸 SOFTRESET_CRC 命令后,傳輸?shù)?END 字節(jié)數(shù)與菊花鏈中的 LED 驅(qū)動(dòng)器數(shù)相同。這將清除任何已傳輸?shù)?CCSI 命令,因此會(huì)保持同步。當(dāng)器件處于失效防護(hù)模式時(shí),SOFTRESET_CRC 命令會(huì)使器件進(jìn)入正常模式。未成功的 SOFTRESET_CRC 命令會(huì)記錄在 STATUS 寄存器的 FLAG_SRST 位中。SOFTRESET_CRC 命令的示例如圖 7-22 所示。