看板 Electronics 關於我們 聯絡資訊
我要用stm32控制74hc595。 因為stm32是3.3V供電而595是5V供電,我怕準位不夠所以用2N2222做準位轉換如下圖。 https://i.imgur.com/SVaMBud.jpg 不料在輸出波形時bjt慢半拍。 https://i.imgur.com/FR67bHe.jpg 藍的是來自stm32的推挽輸出,黃的是bjt的輸出,如參考線所示,在stm32下拉時,BJT並 沒有同時上拉,而是過了680ns才慢慢往上。這樣嚴重限制了stm32的輸出頻率(要是SPI頻 率太高, bjt根本就不會變化)。同樣的問題並未出現在上升緣。 我本來認為是寄生電容造成的,所以試著降低R10 (->470ohm)跟R12(->1kohm), 並取消 R11以求快速放電,但這延遲依舊存在,請問如何解決呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.239.99 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1553709387.A.9DA.html ※ 編輯: ccbruce (122.116.239.99), 03/28/2019 02:18:56
kameng: 換BJT 那是因為BJT的Storage time03/28 06:29
god145145: 插在麵包板上?03/28 07:45
不是麵包板喔
jeffic0730: 不好意思,取消R11怎麼加速放電@@?不是要縮小R11嗎03/28 08:38
因為stm32端是設為pp輸出的,當它處在pull時B極會透過pp下臂接地,我想反正大部份電 流不會流向R11,就把它拆了。
vacuo: 可以考慮用 mosFET03/28 08:42
MasterChang: STM32 io設成open drain ,外部上拉到5V即可03/28 09:03
MasterChang: BJT多餘了03/28 09:04
看一下文件,我想可以用GPIO_Mode_AF_OD來做到,的確就不需要這組電路了。但板子就 要重洗了。總之先跳線試試看 ※ 編輯: ccbruce (110.28.40.19), 03/28/2019 10:21:31 ※ 編輯: ccbruce (110.28.40.19), 03/28/2019 10:35:37
mmonkeyboyy: 話說 bjt沒在慢的 慢的要嘛是拉不夠 要嘛是電路錯了 03/28 10:48
mmonkeyboyy: 類比其他東西 bjt很快很快很快03/28 10:48
HiJimmy: 有人是用GPIO_Mode_AF_PP正常 OD不行03/28 12:10
HiJimmy: 是用3.3V直接喂給595,不過應該不是每一顆595都可以@@03/28 12:21
yiting428: 一個是用5樓說的用控制器本身的OD輸出腳,一個是換MOS03/28 13:02
yiting428: ,BJT跟MOS比起來最致命的缺點就是儲存時間太長,高頻 03/28 13:02
yiting428: 建議用MOS03/28 13:02
yiting428: 7樓說的推動能力也可以試試看 看IO腳的fan out極限在哪 03/28 13:04
Archer55b6: 你用哪顆BJT啊?只是做logic buffer的話用3904就很夠 03/28 14:15
Archer55b6: 了,而且根本不可能delay680ns,可能要檢查看看是否03/28 14:15
Archer55b6: 有其他問題03/28 14:15
Archer55b6: 也可以試試樓上說的用O.D. 把BJT R11拿掉,用0歐姆把B 03/28 14:16
Archer55b6: JTBC接起來就可以,量產的話問看看打件廠能不能這樣上 03/28 14:16
furio: R11改150~220ohm就可以03/28 17:16
furio: 糟糕,沒注意到input是3.3V那試試330~470ohm03/28 17:19
請問這樣作是為了別讓BJT太飽嗎? ※ 編輯: ccbruce (110.28.40.19), 03/28/2019 17:54:38
furio: yes,但是小心極限跟BJT特性敏感,量產不能逼太緊 03/28 18:34
Schottky: 74HC595 接收 3.3V 輸入沒問題的,不用提升準位 03/29 02:20
Schottky: 當然如果是 open drain 輸出還是要加個 pull up 電阻 03/29 02:23
Schottky: 74HC系列高低電位的門檻只在1V上下,可以翻翻Datasheet 03/29 02:24
furio: stm32 IO pad Vin_max= Min(VDD + 3.6, 5.5),更簡單的做法 03/29 11:35
furio: 是關掉內部pull電阻,用外部電阻接5V用OpenDrain模式 03/29 11:37
furio: 也不怕595 Vih-min這項有問題,Tpd也比較好 03/29 11:40
furio: oops!S大已經說了 03/29 11:47
disap: 雖然IO能耐5V 但超過VDD後內部會啟動另一組保護電路 爬升時 03/30 14:18
disap: 間會變慢 如果要跑高速訊號 建議洗板前先實驗看看 03/30 14:18