我試圖製作一臺使用z80的復古電腦,理想情況下想讓它能夠從SD卡啓動。我100%使用z80,不想使用帶有內部SPI硬件接口的微控制器。我想了解計算機的硬件和軟件方面,因此,在購買之前,硬件方面已經完成,因此,Arduino和微控制器不在場了。無論如何,我的主要問題是可以將移位寄存器,某些解碼邏輯和軟件結合起來,以通過SPI模式從SD卡讀取數據嗎?我已經搜索了幾個小時的互聯網,閱讀了幾篇文章,似乎找不到教程。我瞭解SPI協議,然而,由於微控制器傾向於內置所有硬件,所以缺乏關於硬件方面的信息。我計劃將SD卡的SOMI連接到移位寄存器的串行輸入引腳SIMO的SD卡連接到移位寄存器的串行輸出引腳,然後將一些數據引腳連接到一些觸發器,其間具有一些解碼邏輯,這樣,如果我輸出到特定端口,它將觸發觸發器。觸發器將用作SD卡的時鐘和芯片使能線。我還將z80的一個引腳連接到移位寄存器的鎖存引腳(再次將解碼邏輯插入),以便如果我輸出到特定端口,它將鎖存移位寄存器的數據。我不關心速度/效率,只要我能準確讀取SD卡中的數據。另外,我是否將移位寄存器時鐘輸入連接到與連接SD卡相同的時鐘?任何意見如何實施這將不勝感激,謝謝!SPI z80的硬件接口
3
A
回答
2
你真的可以在普通的IO上點一下SPI。您所需要的只是時鐘信號的邊緣中斷和芯片選擇的電平中斷。其他一切都可以通過軟件完成。要發送,保持芯片選擇爲低電平,並按期望的速率輸出MOSI上的位。要接收,通過在時鐘線上所需的邊沿上關閉MISO的位來處理片選。當芯片選擇線變回高電平時,將所有內容都粘貼在緩衝區中並處理緩衝區。
相關問題
- 1. SPI接口linux
- 2. Labview硬件接口
- 3. Beaglebone Black - 啓用SPI接口
- 4. AVR(324A的Atmega)DAC經由SPI接口
- 5. 使用SPI接口的MSP430F5438 SD卡
- 6. gitlabs數據的硬件接口
- 7. 使用SPI接口初始化SD卡
- 8. 使用SPI接口初始化microSD卡
- 9. 通過網頁與硬件接口
- 10. 是否可以通過SPI接口發送bin文件
- 11. STM32 SPI硬件和嚴格的別名警告
- 12. 將Wifly(RN-171)模塊的SPI連接到Arduino的SPI引腳?
- 13. SPI液晶顯示器與Arduino的接口
- 14. Z80 DAA指令
- 15. Z80裝配.ADDR
- 16. Spi連接2個不同SPI模式的設備
- 17. C#創建一個強大的硬件串口/硬件ID
- 18. 鏈接硬件庫
- 19. 在AIX上使用ioctl的網絡接口的硬件地址
- 20. 如何集成/單元測試軟件硬件接口
- 21. CC3200 SPI從機壞接收
- 22. STM32072RB不接收/過SPI在
- 23. 是使用硬件pwm的sysfs pwm接口嗎?
- 24. 帶有硬件設備的Asp.net服務器接口?
- 25. Linux中的Visual Studio C#替代硬件接口
- 26. Raspberry Pi和SPI接口(Python):如何傳輸數據?
- 27. 軟件SPI實現
- 28. 閱讀串口硬幣接收器
- 29. SPI設備的Sysfs
- 30. 初始化使用SPI的SanDisk SD卡在執行硬件復位後失敗
難道我在本質上是用移位寄存器做的嗎? z80沒有串行輸入引腳,無法單獨更改各個輸出引腳/創建電平輸出的狀態。這就是爲什麼我使用連接到輸出端口的觸發器來產生時鐘/芯片使能信號的原因。原諒我缺乏知識,這是我最近的一個愛好,而且我必須自學幾乎所有的知識,並且可能誤解/誤解了一些事情。 – Ki11akd0g
是的,我只是建議移位寄存器不是必需的。當然,如果您的特定微型電腦沒有任何觸發外部信號中斷的方法,則可以使用外部移位寄存器。但是真的,任何IO都可以是串行IO。大多數微型計算機都具有「並行IO」,但沒有任何東西阻止你串行使用它們。 –
我應該補充說,通常情況下,當它直接連接到內存總線時,或者如果您需要高速時,您通常會看到外部移位器。顯然,位撞的速度會比較慢,但在微控制器項目中速度往往不是問題。通常的目標是讓微控制器儘可能地做到節能。 –