將FX3啟動資料寫入I2C EEPROM

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
sach_4661001
Level 1
Level 1
First question asked First reply posted First like given

請問:

        有哪些方式可以把FX3的啟動資料寫入EEPROM在板子上不需要拔IC燒錄?

謝謝

0 点赞
1 解答
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

由於向EEPROM燒錄固件,需要向RAM寫入一個專門的固件USBBootProgrammer用於燒寫EEPROM,因此需要用到USB boot的方式。

由於你的EEPROM中已經有固件,那麼FX3啟動時會自動從EEPROM中的固件啟動。這樣無法載入USBBootProgrammer這個固件。

所以在調試時,建議設置撥碼開關方便燒寫。

批量生產時,可以把PMODE設置為I2C, On Failure, USB Boot is Enabled。由於第一次啟動時EEPROM中沒有固件,所以第一次啟動時為USB boot,向I2C燒寫後Reset過後均為從I2C啟動。

在原帖中查看解决方案

0 点赞
9 回复数
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

hi,

可以把修改FX3的PMODE引腳為USB boot即可向EEPROM燒錄固件。

sach_4661001
Level 1
Level 1
First question asked First reply posted First like given

Hi

把FX3的PMODE引腳調為USB boot,是表示可以用USB透過pc把資料寫入到EEPROM?

我的PMODE 是設定在I2C only,EEPROM是透過I2C接FX3,要用USB把資料寫入EEPROM PMODE需調USB boot ,寫完之後PMODE 調回I2C only 流程是這樣嗎?

那請問有不需改變pmode而可以燒錄EEPROM的方法嗎?

謝謝

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

由於向EEPROM燒錄固件,需要向RAM寫入一個專門的固件USBBootProgrammer用於燒寫EEPROM,因此需要用到USB boot的方式。

由於你的EEPROM中已經有固件,那麼FX3啟動時會自動從EEPROM中的固件啟動。這樣無法載入USBBootProgrammer這個固件。

所以在調試時,建議設置撥碼開關方便燒寫。

批量生產時,可以把PMODE設置為I2C, On Failure, USB Boot is Enabled。由於第一次啟動時EEPROM中沒有固件,所以第一次啟動時為USB boot,向I2C燒寫後Reset過後均為從I2C啟動。

0 点赞
sach_4661001
Level 1
Level 1
First question asked First reply posted First like given

HI

就如你所說的由於第一次啟動時EEPROM中沒有資料,所以第一次啟動時為USB boot,向I2C燒寫EEPROM後Reset過後均為從I2C啟動。

還有一個情況就是日後EEPROM必須UPGRADE時PMODE設置為I2C, On Failure, USB Boot is Enabled也OK嗎?

謝謝

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

日後必須UPGRADE時需要將PMODE改回USB boot。

有一種不用修改PMODE的方法是,在固件中加入特殊的命令,使得你的固件會主動擦除EEPROM中的code,這樣下一次reset的時候I2C boot失敗,又回到了USB boot的方式。

0 点赞
sach_4661001
Level 1
Level 1
First question asked First reply posted First like given

HI

那可以麻煩敘述是什麼樣的特殊指令,可以主動擦除EEPROM的CODE?

謝謝

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

你可以參考SDK中的USBI2CREGMODE這個例程,通過vendor command對I2C進行擦除寫入。

0 点赞
sach_4661001
Level 1
Level 1
First question asked First reply posted First like given

HI

我看I2S規範由sck,ws,sd所組成,但是fx3卻有4組訊號I2S_CLK,I2S_SD,I2S_WS,I2S_MSCLK。

請問有什麼不同?該如何使用?

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

可以看一下Wikipedia:

The bus consists of at least three lines:

  1. Bit clock line
  2. Word clock line
  3. At least one multiplexed data line

    It may also include the following lines:

    1. Master clock (typically 256 x LRCLK
    2. A multiplexed data line for upload
    0 点赞