Trying to Write two SDCards at same time using SPI. MK20DX256VLL10

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Trying to Write two SDCards at same time using SPI. MK20DX256VLL10

813 次查看
Pedro_Henrique
Contributor II

Hello, this is my first post here, please tell me if im doing something wrong. Also english is not my main language, sorry if i say something wrong.

I'm trying to write two SDCards at same time using SPI. Why at the same time? Because i need to do as fast as possible.

At the time im writing this, im able to copy 48Mb of hex numbers in 07:10 minutes, using 10Mhz in SPI clock. I use the functions generated by Processor Expert:

"SM*_ReceiveBlock(SM*_DeviceData, &Buffer, qnt*).

After gathering some logs with my logic, i noticed that even if i send:

SM2_ReceiveBlock(SM2_DeviceData, &Suporte, 1);
SM2_SendBlock(SM2_DeviceData, StartBlock, 1);
 
SM3_ReceiveBlock(SM3_DeviceData, &Suporte, 1);
SM3_SendBlock(SM3_DeviceData, StartBlock, 1);


The SPI sends first the SM2 and them SM3. If its the SPI machine who sends the blocks and handle the receiving, i should be able to make these two at same time, no?

标签 (1)
标记 (3)
0 项奖励
回复
5 回复数

728 次查看
Habib_MS
NXP Employee
NXP Employee

Hello @Pedro_Henrique,
Sorry for the late reply, in order to support you better, could you please provide me the next information?

-Which IDE are you using to develop your application?
-Are you currently using a custom board? If the response is not, which FDRM are you using?
- How are you connecting the SD cards with your system?
- Which specific pins are assigned to the SPI interfaces in your design?

BR
Habib

666 次查看
Pedro_Henrique
Contributor II

Hello @Habib_MS ,
No problem for the later reply! Thanks for stopping by to help me.

- I'm currently using Kinetis Design Studio 3.0.0 with Processor Expert.
- Yes, it is a custom board.
- I'm using MicroSD Sockets, with 200R resistor in series so i don't fry my MK20 by accident.
- About the pins:
for SPI0: MISO - PTC7 / MOSI - PTC6 / CLK - PTC5 / CS - PTC4
for SPI1: MISO - PTB23/ MOSI - PTB22 / CLK - PTB21 / CS - PTB20
for SPI2: MISO - PTE3 / MOSI - PTE1    / CLK - PTE2   / CS - PTE0

Please let me know if you need something more.

0 项奖励
回复

595 次查看
Habib_MS
NXP Employee
NXP Employee

Hello @Pedro_Henrique,

In order to understand better you application, Is SM2_SendBlock blocking?
If the answer is yes, then to allow transfers to occur simultaneously, they must be handled through interrupts; otherwise, the core will execute the transfers sequentially, one after the other. Additionally, DMA can be added for higher speed.

BR
Habib

0 项奖励
回复

268 次查看
Pedro_Henrique
Contributor II

Sorry about the late reply.

Yes, both SM2_SendBlock and SM3_SendBlock are blocking.

Handling trought interrupts you say any interrupt? Like, calling them from a external interrupt?

About DMA, i was looking for this. I think i will try to add DMA, but first i would need executing the transfers simultaneously.

0 项奖励
回复

187 次查看
Habib_MS
NXP Employee
NXP Employee

Hello @Pedro_Henrique,
You need to configure the SPI to use interrupts instead of blocking writes. This approach allows both data transfers to occur simultaneously.
You can achieve this using Processor Expert, and this community post might be helpful as a reference.
Additionally, you can review this guide, which demonstrates a typical use case for SPI interrupts. Although the example is not specifically for the K20, the implementation steps are essentially the same.

BR
Habib

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2205217%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20SPI%20%E5%90%8C%E6%97%B6%E5%86%99%E5%85%A5%E4%B8%A4%E4%B8%AA%20SDC%20%E5%8D%A1%E3%80%82MK20DX256VLL10%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205217%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E8%BF%99%E6%98%AF%E6%88%91%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%9C%A8%E8%BF%99%E9%87%8C%E5%8F%91%E5%B8%96%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E5%81%9A%E9%94%99%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%8C%E8%AF%B7%E5%91%8A%E8%AF%89%E6%88%91%E3%80%82%E5%8F%A6%E5%A4%96%EF%BC%8C%E8%8B%B1%E8%AF%AD%E4%B8%8D%E6%98%AF%E6%88%91%E7%9A%84%E6%AF%8D%E8%AF%AD%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E8%AF%B4%E9%94%99%E4%BA%86%EF%BC%8C%E8%AF%B7%E5%8E%9F%E8%B0%85%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20SPI%20%E5%90%8C%E6%97%B6%E5%86%99%E5%85%A5%E4%B8%A4%E4%B8%AA%20SDC%20%E5%8D%A1%E3%80%82%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%90%8C%E6%97%B6%E8%BF%9B%E8%A1%8C%EF%BC%9F%E5%9B%A0%E4%B8%BA%E6%88%91%E9%9C%80%E8%A6%81%E5%B0%BD%E5%BF%AB%E5%AE%8C%E6%88%90%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9C%A8%E5%86%99%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E6%97%B6%EF%BC%8C%E6%88%91%E4%BD%BF%E7%94%A8%2010Mhz%20SPI%20%E6%97%B6%E9%92%9F%EF%BC%8C%E8%83%BD%E5%9C%A8%2007%3A10%20%E5%88%86%E9%92%9F%E5%86%85%E6%8B%B7%E8%B4%9D%2048Mb%20%E7%9A%84%E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6%E6%95%B0%E5%AD%97%E3%80%82%E6%88%91%E4%BD%BF%E7%94%A8%E5%A4%84%E7%90%86%E5%99%A8%E4%B8%93%E5%AE%B6%E7%94%9F%E6%88%90%E7%9A%84%E5%87%BD%E6%95%B0%EF%BC%9A%3CBR%20%2F%3E%3CBR%20%2F%3E%22%20SM*_ReceiveBlock(SM*_DeviceData%2C%26amp%3BBuffer%2C%20qnt*)%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9C%A8%E7%94%A8%E6%88%91%E7%9A%84%E9%80%BB%E8%BE%91%E6%94%B6%E9%9B%86%E4%BA%86%E4%B8%80%E4%BA%9B%E6%97%A5%E5%BF%97%E5%90%8E%EF%BC%8C%E6%88%91%E6%B3%A8%E6%84%8F%E5%88%B0%EF%BC%8C%E5%8D%B3%E4%BD%BF%E6%88%91%E5%8F%91%E9%80%81%E4%BA%86..%EF%BC%9A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CDIV%3E%3CSPAN%3ESM2_ReceiveBlock(SM2_DeviceData%2C%26amp%3BSuporte%2C%201)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ESM2_SendBlock(SM2_DeviceData%2C%20StartBlock%2C%201)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ESM3_ReceiveBlock(SM3_DeviceData%2C%26amp%3BSuporte%2C%201)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ESM3_SendBlock(SM3_DeviceData%2C%20StartBlock%2C%201)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CP%3E%3CBR%20%2F%3ESPI%20%E9%A6%96%E5%85%88%E5%8F%91%E9%80%81%20SM2%EF%BC%8C%E7%84%B6%E5%90%8E%E5%8F%91%E9%80%81%20SM3%E3%80%82%E5%A6%82%E6%9E%9C%E7%94%B1%20SPI%20%E6%9C%BA%E5%99%A8%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E5%9D%97%E5%B9%B6%E5%A4%84%E7%90%86%E6%8E%A5%E6%94%B6%EF%BC%8C%E9%82%A3%E4%B9%88%E6%88%91%E5%BA%94%E8%AF%A5%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E8%BF%9B%E8%A1%8C%E8%BF%99%E4%B8%A4%E9%A1%B9%E6%93%8D%E4%BD%9C%EF%BC%8C%E4%B8%8D%E6%98%AF%E5%90%97%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2205217%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EKinetis%20M%E7%B3%BB%E5%88%97MCU%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2251364%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Trying%20to%20Write%20two%20SDCards%20at%20same%20time%20using%20SPI.%20MK20DX256VLL10%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2251364%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256911%22%20target%3D%22_blank%22%3E%40Pedro_Henrique%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E4%B8%BA%E4%BA%86%E6%9B%B4%E5%A5%BD%E5%9C%B0%E4%BA%86%E8%A7%A3%E6%82%A8%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8CSM2_SendBlock%20%E6%98%AF%E5%90%A6%E9%98%BB%E5%A1%9E%EF%BC%9F%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%E7%AD%94%E6%A1%88%E4%B8%BA%20%22%E6%98%AF%22%EF%BC%8C%E9%82%A3%E4%B9%88%E8%A6%81%E5%90%8C%E6%97%B6%E8%BF%9B%E8%A1%8C%E4%BC%A0%E8%BE%93%EF%BC%8C%E5%B0%B1%E5%BF%85%E9%A1%BB%E9%80%9A%E8%BF%87%E4%B8%AD%E6%96%AD%E6%9D%A5%E5%A4%84%E7%90%86%EF%BC%9B%E5%90%A6%E5%88%99%EF%BC%8C%E5%86%85%E6%A0%B8%E5%B0%86%E4%B8%80%E4%B8%AA%E6%8E%A5%E4%B8%80%E4%B8%AA%E5%9C%B0%E9%A1%BA%E5%BA%8F%E6%89%A7%E8%A1%8C%E4%BC%A0%E8%BE%93%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8C%E8%BF%98%E5%8F%AF%E6%B7%BB%E5%8A%A0%20DMA%20%E4%BB%A5%E6%8F%90%E9%AB%98%E9%80%9F%E5%BA%A6%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3CBR%20%2F%3EHabib%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2258122%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Trying%20to%20Write%20two%20SDCards%20at%20same%20time%20using%20SPI.%20MK20DX256VLL10%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2258122%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%BE%88%E6%8A%B1%E6%AD%89%E8%BF%99%E4%B9%88%E6%99%9A%E6%89%8D%E5%9B%9E%E5%A4%8D%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%98%AF%E7%9A%84%EF%BC%8C%3CSPAN%3ESM2_SendBlock%20%E5%92%8C%20SM3_SendBlock%E9%83%BD%E6%98%AF%E9%98%BB%E5%A1%9E%E7%9A%84%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%A4%84%E7%90%86%E4%B8%AD%E6%96%AD%EF%BC%8C%E4%BD%A0%E6%98%AF%E8%AF%B4%E4%BB%BB%E4%BD%95%E4%B8%AD%E6%96%AD%E5%90%97%EF%BC%9F%E6%AF%94%E5%A6%82%EF%BC%8C%E4%BB%8E%E5%A4%96%E9%83%A8%E4%B8%AD%E6%96%AD%E8%B0%83%E7%94%A8%E5%AE%83%E4%BB%AC%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%85%B3%E4%BA%8E%20DMA%EF%BC%8C%E6%88%91%E4%B8%80%E7%9B%B4%E5%9C%A8%E6%89%BE%E8%BF%99%E4%B8%AA%E3%80%82%E6%88%91%E6%83%B3%E6%88%91%E4%BC%9A%E5%B0%9D%E8%AF%95%E6%B7%BB%E5%8A%A0%20DMA%EF%BC%8C%E4%BD%86%E9%A6%96%E5%85%88%E9%9C%80%E8%A6%81%E5%90%8C%E6%97%B6%E6%89%A7%E8%A1%8C%E4%BC%A0%E8%BE%93%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2260393%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Trying%20to%20Write%20two%20SDCards%20at%20same%20time%20using%20SPI.%20MK20DX256VLL10%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2260393%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256911%22%20target%3D%22_blank%22%3E%40Pedro_Henrique%3C%2FA%3E%EF%BC%8C%3CBR%20%2F%3E%EF%BC%8C%E4%BD%A0%E9%9C%80%E8%A6%81%E9%85%8D%E7%BD%AE%20SPI%20%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%B8%AD%E6%96%AD%E8%80%8C%E4%B8%8D%E6%98%AF%E9%98%BB%E5%A1%9E%E5%86%99%E5%85%A5%E3%80%82%E8%BF%99%E7%A7%8D%E6%96%B9%E6%B3%95%E5%85%81%E8%AE%B8%E5%90%8C%E6%97%B6%E8%BF%9B%E8%A1%8C%E4%B8%A4%E7%A7%8D%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E3%80%82%3CBR%20%2F%3E%E4%BD%A0%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20Processor%20Expert%20%E6%9D%A5%E5%AE%9E%E7%8E%B0%E8%BF%99%E4%B8%80%E7%82%B9%EF%BC%8C%E8%BF%99%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FProcessor-Expert-Software%2FMC9S12A64-SPI-interrupt-Processor-Expert%2Fm-p%2F211784%22%20target%3D%22_self%22%3E%E7%AF%87%E7%A4%BE%E5%8C%BA%E5%B8%96%E5%AD%90%3C%2FA%3E%E4%BD%9C%E4%B8%BA%E5%8F%82%E8%80%83%E5%8F%AF%E8%83%BD%E4%BC%9A%E6%9C%89%E6%89%80%E5%B8%AE%E5%8A%A9%E3%80%82%3CBR%20%2F%3E%E6%AD%A4%E5%A4%96%EF%BC%8C%E6%82%A8%E8%BF%98%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E6%9C%AC%3CA%20href%3D%22https%3A%2F%2Fmcuxpresso.nxp.com%2Fapi_doc%2Fdev%2F116%2Fgroup__spi.html%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%E6%8C%87%E5%8D%97%3C%2FA%3E%EF%BC%8C%E5%85%B6%E4%B8%AD%E6%BC%94%E7%A4%BA%E4%BA%86%20SPI%20%E4%B8%AD%E6%96%AD%E7%9A%84%E5%85%B8%E5%9E%8B%E7%94%A8%E4%BE%8B%E3%80%82%E8%99%BD%E7%84%B6%E8%AF%A5%E7%A4%BA%E4%BE%8B%E5%B9%B6%E9%9D%9E%E4%B8%93%E9%97%A8%E9%92%88%E5%AF%B9%20K20%EF%BC%8C%E4%BD%86%E5%AE%9E%E6%96%BD%E6%AD%A5%E9%AA%A4%E5%9F%BA%E6%9C%AC%E7%9B%B8%E5%90%8C%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3CBR%20%2F%3EHabib%3C%2FP%3E%3C%2FLINGO-BODY%3E