2016年6月28日 星期二
2016年6月27日 星期一
[EEPROM] Atmel AT25128/256 read/write protocol
1. 最近剛好完成了Atmel spi eeprom AT25128的read/write function, 底下是read/write的邏輯分析
儀波形, 用來簡單紀錄一下read/write的步驟.
2. 測試時的一些相關資訊:
(a). Write Protect(WP)這隻腳在測試時, 永遠為High.
(b). SPI Clock 最高為3MHz.
(c). SPI CPOL & CPHA僅支援(Low,Low)和(High,High)這兩種, 底下的波形是使用(High,High).
(d). 程式流程為對address: 0x2000寫入1個byte(0x66), 接著再從0x2000讀取1個byte, 確認是否相同.
3. Write Flow:
(a). read status register(rdsr): 對eeprom送出rdsr command(0x05), 接著讀取1byte資料, 並於讀
取完畢後, 檢查bit0是否為low, 若為low則代表eeprom已經ready.
(b). set write enable latch(wren): 對eeprom送出wren command(0x06), 算是軟體上解除防寫保護.
(c). write data to memory array(write): 對eeprom送出write command(0x02).
(d). high byte address: 對eeprom送出準備寫入位置的高位元組.
(e). low byte address: 對eeprom送出準備寫入位置的低位元組.
(f). data: 準備寫入eeprom的資料, 可看使用者的需求, 並沒有限制寫入長度.
4. Read Flow:
(a). read status register(rdsr): 對eeprom送出rdsr command(0x05), 接著讀取1byte資料, 並於讀
取完畢後, 檢查bit0是否為low, 若為low則代表eeprom已經ready.
(b). read data from memory array(read): 對eeprom送出read command(0x03).
(c). high byte address: 對eeprom送出準備讀取位置的高位元組.
(d). low byte address: 對eeprom送出準備讀取位置的低位元組.
(e). data: 從eeprom讀取到的資料, 可看使用者的需求, 並沒有限制讀取長度.
儀波形, 用來簡單紀錄一下read/write的步驟.
2. 測試時的一些相關資訊:
(a). Write Protect(WP)這隻腳在測試時, 永遠為High.
(b). SPI Clock 最高為3MHz.
(c). SPI CPOL & CPHA僅支援(Low,Low)和(High,High)這兩種, 底下的波形是使用(High,High).
(d). 程式流程為對address: 0x2000寫入1個byte(0x66), 接著再從0x2000讀取1個byte, 確認是否相同.
3. Write Flow:
(a). read status register(rdsr): 對eeprom送出rdsr command(0x05), 接著讀取1byte資料, 並於讀
取完畢後, 檢查bit0是否為low, 若為low則代表eeprom已經ready.
(b). set write enable latch(wren): 對eeprom送出wren command(0x06), 算是軟體上解除防寫保護.
(c). write data to memory array(write): 對eeprom送出write command(0x02).
(d). high byte address: 對eeprom送出準備寫入位置的高位元組.
(e). low byte address: 對eeprom送出準備寫入位置的低位元組.
(f). data: 準備寫入eeprom的資料, 可看使用者的需求, 並沒有限制寫入長度.
4. Read Flow:
(a). read status register(rdsr): 對eeprom送出rdsr command(0x05), 接著讀取1byte資料, 並於讀
取完畢後, 檢查bit0是否為low, 若為low則代表eeprom已經ready.
(b). read data from memory array(read): 對eeprom送出read command(0x03).
(c). high byte address: 對eeprom送出準備讀取位置的高位元組.
(d). low byte address: 對eeprom送出準備讀取位置的低位元組.
(e). data: 從eeprom讀取到的資料, 可看使用者的需求, 並沒有限制讀取長度.
2016年6月26日 星期日
[NXP] How to Switch CMSIS-DAP or JLINK on LPCXpresso By LPCScrypt
1. 前陣子買了一片LPCXpresso11U37H EVB Board, 最近總算稍微有空來研究一下怎樣燒錄及
測試, 原本想說應該跟STM32Fx Discovery Board一樣, 插上USB, 灌好Debug Driver後, 就可以
進入debug mode進行測試了, 結果沒想到原來沒有這麼容易啊, 底下是整個測試的流程.
2. 當我們拿到板子後, 第一個需要安裝的是LPCXpresso Link2 USB driver package, 連結如下:
https://www.lpcware.com/content/nxpfile/lpcxpresso-link2-usb-driver-package
3. Driver安裝完畢後, 可以先將板子透過USB Cable與PC連接,接著就會看到產生新裝置, 並完成
安裝.
4. 到這個步驟完成後, 通常就會以為應該可以使用IAR or Keil開始進行程式的除錯與開發,
但其實這時候這些IDE還認不到device, 應該還需要安裝JLINK or CMSIS-DAP的韌體到
板子上, NXP這塊板子很特殊的是並不像其它家on-board的debug tool只有一種, 例如ST
的板子就一定是內建ST-LINK.
但NXP這塊板子卻可以自行選擇要定義成JLINK or CMSIS-DAP, 只要將選定好的韌體燒進
去板子就好了, 而燒錄的工具就是LPCScypt這套Tool.
5. 首先先到官網去下載LPCScrypt, 連結如下, 下載完畢後, 直接雙擊安裝, 基本上都是選擇下一
步即可:
LPCScrypt Download Link
6. 安裝完畢後, 接著必須將LPC11U37H EVB Board 的JP3(Link DFU)接上一個Jumper後才能與
PC相連, 位置如下所示, 在兩個USB的中間.
7. 至於這兩個USB到底分別代表什麼呢? 上面的是LPC11U37H對上(device)或對下(host)的
接頭, 下面的就是Debug Port與PC相連的接頭., 因此使用下方的接頭與PC相連接吧.
8. 接著就是打開之前灌好的LPCScrypt, 選擇你要使用JLINK或是CMSIS-DAP, 在這邊我是先
選擇CMSIS-DAP, 因此我按下的是Program LPC-Link2 with CMSIS-DAP.
9. 按下之後, 就會進入命令提示字元的畫面, 相當的簡單, 完全不需要輸入任何的指令, 僅需要
按下任意鍵就會自動將程式寫入到EVB上.
10. 記得先移除接在JP3的Jumper.
11. 接著我們就可以使用IAR or Keil來測試看看是否真的能夠進入debug mode了, 於是立馬打開
了Keil來試試看, 首先點選option.
12. 接著點選Debug, 並把debug設定為CMSIS-DAP Debugger, 然後點選Settings.
13. 如果設定皆沒問題, 那此時應該會看到如下畫面,
14. 接著就可以進入Debug Mode了喔.
測試, 原本想說應該跟STM32Fx Discovery Board一樣, 插上USB, 灌好Debug Driver後, 就可以
進入debug mode進行測試了, 結果沒想到原來沒有這麼容易啊, 底下是整個測試的流程.
2. 當我們拿到板子後, 第一個需要安裝的是LPCXpresso Link2 USB driver package, 連結如下:
https://www.lpcware.com/content/nxpfile/lpcxpresso-link2-usb-driver-package
3. Driver安裝完畢後, 可以先將板子透過USB Cable與PC連接,接著就會看到產生新裝置, 並完成
安裝.
但其實這時候這些IDE還認不到device, 應該還需要安裝JLINK or CMSIS-DAP的韌體到
板子上, NXP這塊板子很特殊的是並不像其它家on-board的debug tool只有一種, 例如ST
的板子就一定是內建ST-LINK.
但NXP這塊板子卻可以自行選擇要定義成JLINK or CMSIS-DAP, 只要將選定好的韌體燒進
去板子就好了, 而燒錄的工具就是LPCScypt這套Tool.
5. 首先先到官網去下載LPCScrypt, 連結如下, 下載完畢後, 直接雙擊安裝, 基本上都是選擇下一
步即可:
LPCScrypt Download Link
PC相連, 位置如下所示, 在兩個USB的中間.
7. 至於這兩個USB到底分別代表什麼呢? 上面的是LPC11U37H對上(device)或對下(host)的
接頭, 下面的就是Debug Port與PC相連的接頭., 因此使用下方的接頭與PC相連接吧.
8. 接著就是打開之前灌好的LPCScrypt, 選擇你要使用JLINK或是CMSIS-DAP, 在這邊我是先
選擇CMSIS-DAP, 因此我按下的是Program LPC-Link2 with CMSIS-DAP.
9. 按下之後, 就會進入命令提示字元的畫面, 相當的簡單, 完全不需要輸入任何的指令, 僅需要
按下任意鍵就會自動將程式寫入到EVB上.
10. 記得先移除接在JP3的Jumper.
11. 接著我們就可以使用IAR or Keil來測試看看是否真的能夠進入debug mode了, 於是立馬打開
了Keil來試試看, 首先點選option.
12. 接著點選Debug, 並把debug設定為CMSIS-DAP Debugger, 然後點選Settings.
13. 如果設定皆沒問題, 那此時應該會看到如下畫面,
14. 接著就可以進入Debug Mode了喔.
2016年6月17日 星期五
2016年6月6日 星期一
訂閱:
文章 (Atom)