Linux, 工作, 生活, 家人

Embedded, 工作

Philips SC16C2552 爛了

真的是工作上的鳥事.

因為某個 Project 的的關係, 需要用我們 CPU 上的 Static Memory Interface 連到 Philips SC16C2552 這一顆 Parallel 轉 Serial 的 Dual UART IC .

其實以硬體來說, 如果線都拉好, Static Memory Interface 設好, 應該就能夠正常的讀取.
不過這一顆 IC 卻花了我好多時間.

第一天
這一天做的事情很簡單, 就是設定環境, 將特別寫的一支 Serial Driver 換成 Linux 標準的 Serial Driver .
啟動 Static Memory Interface .
結果 Driver 上上去, 連個鳥都讀不到.

然後在 ARMBoot 下直接對該記憶位置下指令,
結果讀回來的都是 0xFF .
這時候當然就是拿 LA 出來量訊號, 結果發現到 CS 亂發, 沒有動也發, 這樣 IC 會動才有鬼

第二天
找 Hardware 修好線路, 也驗證 Register 也可以正常讀寫.
拿回去仔細修 Bug . 最後發現, TX/RX 半個鳥也沒有.
這時候我就覺得奇怪了, 怎麼會發生這麼奇怪的事情.
在檢查了 Register 都沒有問題的狀況下, 只好又請出 LA, 看 Address , 看 CS , 看 Read/Write 訊號
怎麼看程式都是對的, 但是 TX/RX 連個鳥都沒有…..

第三天
Hardware 剛好有一個新的板子回來, 一掛上去馬上可以用. 也有訊號輸出.
那我之前做的事情不就是很白爛,
搞了好幾天原來是 IC 爛掉… 更更更更更!!
浪費我的時間.

最後整理一下 Linux 下的 Serail Driver, 發現輸出非常慢(每 5 秒輸出 1 or 16 個字元)…..
最後找呀找, 又發現原來講好叫 Hardware 拉 GPIO 到 Philips SC16C2552 的 INTA . 結果 Hardware
都沒有做, 最後還是拿 GPIO 做 Interrupt 之後才正常.

很久沒有這樣被一顆爛 IC 搞到快瘋掉. 寫一篇 Blog 發洩一下… 更更更更!

4 留言

  1. 匿名訪客

    你好,这款芯片真的这么烂么?我现在正想用这款芯片呢,觉得还比较便宜.
    请问您用的是什么CPU,2552直接挂在总线上就可以使用了吗?感觉时序上CS和OE,WE的先后顺序上有些与总线不一致,我选的CPU是LPC2214,请教一下.

  2. 文章作者的留言

    掛在 Parallel Bus 上, 至於時序, 還好吧.
    我們 WE 時序不對 ( Pull low 太前面), 也是可以正常讀寫.
    這一顆也和 CPU 無關

    我有說都很爛嗎? 還是我國文有問題? -_-!

  3. squall

    别用菲利普了,用TI TLC2552

  4. 阿卢

    为何我用这片子时,SC16C2552B 发送中断一直关不掉?MCU我用P89V51RD2的。中断口一直有规律的中断信号,为何?

發佈留言