看板 Electronics 關於我們 聯絡資訊
大家好,目前我在學習用FPGA搭配MT9P001影像感測器做影像處理 但在最基本的獲取正確影像這部分就碰到了問題 試了好久一直無法解決,所以想上來請教大家 目前系統架構是用FPGA對MT9P001進行I2C暫存器設定 得到的影像會存進FPGA上的SRAM,再以RS232傳送給電腦 目前得到的影像是這個樣子 https://imgur.com/HKsYzOB.jpg
我使用的是魚眼鏡頭,會有桶狀畸變的問題 桶狀畸變在底部應該是下凹的形狀 但我得到的影像卻是全部上凸,像是只得到了一部分的正確影像 但像素的個數是正確的(640*480) 後來調整I2C暫存器設定(只調整了PLL的參數)得到以下這張圖 https://imgur.com/Bcq1tmG.jpg
放大看 https://imgur.com/nnc1Wab.jpg
這張圖畸變的樣子正確了,可是整整有49個在一張影像裡啊QQ 黃色箭頭是第一張圖裡亮亮的那條線 也可以看出第一張圖拍到的範圍有多小... 想請問有沒有人也曾經遇過類似問題呢 已檢查過SRAM存值讀值和RS232傳輸的部分都是正確的 但不確定是I2C設定出了問題還是我程式碼(verilog)出問題 抱歉敘述有點長,先謝謝各位了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.39.184 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1520308237.A.EDB.html
furio: Image sensor跑的比RAM寫入速度快,你的sensor跟ram write 03/06 14:39
furio: 跑非同步? 03/06 14:39
furio: MT9P001這等級的sensor應該沒有內建幾何失真調整功能 03/06 14:42
我是用FPGA本身的system clock(40MHz)經過PLL建立2個時脈 20MHz給MT9P001,80MHz給SRAM(存取時間最快可以到10ns) 想說用PLL應該是能保持相位同步 MT9P001的確沒有內建校正功能,校正是想要用軟體寫的 只是現在還沒能得到正確的影像 https://imgur.com/nvnBGHp.jpg
上面是簡易畫的方塊圖,目前覺得最有可能有問題的地方 是由MT9P001得到的PIXCLK經過filter(內有兩層D flip-flop)後變為20MHz 後來才發現PIXCLK是60MHz啊QQ filter的clock給40MHz根本不夠(I2C設定沒檢查好打開了PLL,一直以為同樣是20MHz) 但60MHz太快了,所以目前有嘗試過 1.關閉MT9P001的PLL,讓EXTCLK=PIXCLK=20MHz 結果圖片變成很像電視雜訊,完全看不出東西 2.不加filter,結果跟上面一樣 反而60MHz變成20MHz的奇怪情況才照得出這篇文的第一張圖(雖然還是錯的) 請問有可能是這邊出問題嗎? 我會再檢查一下我的時脈的,謝謝 ※ 編輯: sherry470 (140.116.39.184), 03/06/2018 17:04:39
furio: 你的PIXCLK要對上SRAM寫入頻率跟時序規格 03/06 17:19
furio: 另外,SRAM寫入要確認它是幾個clock寫入一筆資料 03/06 17:21