Become a leader in the IoT community!

Join our community of embedded and IoT practitioners to contribute experience, learn new skills and collaborate with other developers with complementary skillsets.

Step 1 of 5

CREATE YOUR PROFILE *Required

OR
Step 2 of 5

WHAT BRINGS YOU TO DEVHEADS? *Choose 1 or more

Connect & collaborate 🤝with other tech professionals
Learn & Grow 📚
Contribute Experience & Expertise 🔧
Step 3 of 5

WHAT'S YOUR INTEREST OR EXPERTISE? *Choose 1 or more

Hardware Design 💡
Embedded Software 💻
Edge Networking
Step 4 of 5

Personalize your profile

Step 5 of 5

Read & agree to our COMMUNITY RULES

  1. We want this server to be a welcoming space! Treat everyone with respect. Absolutely no harassment, witch hunting, sexism, racism, or hate speech will be tolerated.
  2. If you see something against the rules or something that makes you feel unsafe, let staff know by messaging @admin in the "support-tickets" tab in the Live DevChat menu.
  3. No age-restricted, obscene or NSFW content. This includes text, images, or links featuring nudity, sex, hard violence, or other graphically disturbing content.
  4. No spam. This includes DMing fellow members.
  5. You must be over the age of 18 years old to participate in our community.
  6. You agree to our Terms of Service (https://www.devheads.io/terms-of-service/) and Privacy Policy (https://www.devheads.io/privacy-policy)
By clicking "Finish", you have read and agreed to the our Terms of Service and Privacy Policy.

Troubleshooting SPI and RTT Issue on nRF52840

Hey everyone! I’m fairly new to embedded development and have hit a puzzling issue I hope someone can shed some light on.

I’m working on a project using the nRF52840 with embassy-rs, and I’m interfacing with an SD card over SPI. There’s a GPIO pin used to detect if the card is present, and once it’s inserted, I want to wait ~500ms before interacting with the card.

I got this working but here’s the strange part:
This only works if I have RTT attached. As soon as I run the code without attaching RTT before setting up the SPI bus, all I get from the bus will be 0x00. If I simply remove the delay, I’ll get proper 0xFF and can reset the card into SPI mode just fine, even without RTT attached.

I’d love to understand what’s going on here. Has anyone experienced something similar or have ideas about what might be causing this? I can also share a short code sample if desired.

  1. wafa_ath#0000

    Hi @xuxuck so Your SD card needs time to power up after insertion. RTT debugging adds this time.The 500ms delay works because it gives the card enough time to initialize properly, when you remove the delay, you’re trying to talk to the card too soon.

  2. xuxuck#0000

    Yes, this is the main reason I have added the delay in the first place. Unexpectedly though, without RTT it only works if there is NO delay. As soon as I introduce a delay there, say 100ms, 500ms or 5000ms, I only get 0x00 from the bus. With RTT attached, the delay does not matter.

CONTRIBUTE TO THIS THREAD

Browse other questions tagged 

Leaderboard

RANKED BY XP

All time
  • 1.
    Avatar
    @Nayel115
    1620 XP
  • 2.
    Avatar
    @UcGee
    650 XP
  • 3.
    Avatar
    @melta101
    600 XP
  • 4.
    Avatar
    @chitour
    600 XP
  • 5.
    Avatar
    @lifegochi
    250 XP
  • 6.
    Avatar
    @Youuce
    180 XP