|
|
本帖最后由 edmondhuang 于 2014-1-5 17:53 编辑
Questions:
凌晨某宝拍下VS1003模块 + MFRC-522 RFID模块,外加自有SD模块,都是SPI接口,但我手上的Arduino Mini Pro只有一个SPI通信接口。求问各位大大,如何把他们连接在一起?如何实现多个从设备的片选(SS)?从设备之间怎么连,主从设备之间又怎么连?能附上连线就最好。需要类似Adafruit_ST7735软件模拟SPI吗?
p.s.
本人新人一枚,非电子专业
需求:打卡后播mp3
Arduino Pro Mini ------> SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。
参考了http://www.geek-workshop.com/forum.php?mod=viewthread&tid=982 还是不懂,因为我还多了一个MFRC-522

當從屬設備的SS引腳置為低電位時,它與主設備進行通信。
當從屬設備的SS引腳置為高電位時,斷開與主設備的通信。
因此,SPI允許一個主設備和多個從設備進行通信,主設備通過不同的SS信號線選擇不同的從屬設備進行通信。
--------------------------------------------------------------------------------------------------------------------------------------------
Update 1:

这样可以吗?SD卡SS1依旧用PIN10片选,MFRC-522模块SS2用其他空闲端口例如PIN9片选?- pinMode(PIN9, OUTPUT);
- SPI.begain();
- //SPI.setBitOrder(MSBFIRST); //SPI.setBitOrder(LSBFIRST); //SPI.setDataMode(SPI_MODE0);
- digitalWrite(PIN9, LOW);
- data_R = SPI.transfer(data_S);
- digitalWrite(PIN9, HIGH);
复制代码 参考
http://tronixstuff.com/2011/05/13/tutorial-arduino-and-the-spi-bus
http://tronixstuff.com/2011/06/15/tutorial-arduino-and-the-spi-bus-part-ii
http://exploringarduino.com/content/ch9/
https://github.com/sciguy14/Exploring-Arduino/blob/master/Chapter%2009/LED_speaker/LED_speaker.ino
--------------------------------------------------------------------------------------------------------------------------------------------
Update 2:
单片机/MP3模块应该不像电脑有强大的内存,mp3读取应该非常频繁吧,那sd卡和vs1003要和adunino保持通信就要非常频繁地片选拉低,想和MFRC-522共用11(MOSI),12(MISO),13(SCK),我的理解没戏了,难道真的要另外软件模拟SPI给MFRC-522? ......停一停想一想......
先把软件模拟SPI资料写下慢慢理解吧. btw, 好像还得利用中断来读MFRC-522, 大大们过节去了不管我, 只能自己一边画圈圈
https://code.google.com/p/sdfatlib/downloads/list -> sdfatlib20130629.zip\SdFat\utility\SoftSPI.h
http://code.google.com/p/beta-lib/downloads/list -> DigitalPinBeta20120804.zip\DigitalPin\examples\testSoftSPI\testSoftSPI.h
Update 3:
某宝买的东西都收到了,几个模块单独测试都通过, 剩下MFRC-522模块今晚如果有空。
SD卡模块(挺折腾的):
开始是用以前买的最便宜的不带电平转化的,类似这种http://image.geek-workshop.com/forum/201305/10/225734dkful08g0kukvuif.jpg,结果死活都初始化不了SD卡,供电电压5v和3.3v都试了都不行,参考http://www.geek-workshop.com/thread-4509-2-1.html估计是IO电平问题
网上有用电阻分压的例子http://hackerspace-ffm.de/wiki/images/thumb/SD_Card_Connection.png/619px-SD_Card_Connection.png
不过我最后决定还是直接买这种带mos管的http://image.geek-workshop.com/forum/201109/10/224303yn9fiz535zf6196z.jpg,网上看到有带ic电平转换的不过是micro sd的,我只有空闲的256M的SD,所以只能买这种可以用SD的了。
测试例子SdInfo -> https://code.google.com/p/sdfatlib/downloads/detail?name=sdfatlib20131225.zip&can=2&q=
VS1003模块:我直接用https://github.com/andykarpov/VS1003/tree/master/examples/vs1003_hello,里面源文件已经包含音频,不用读sd卡就可以直接播放
Update 4:
MFRC-522模块:
参考Update2和http://www.geek-workshop.com/thread-4600-1-1.html,利用软件模拟SPI测试成功。
|
|