Custom Shield - MicroSD/FRAM

Yep, that's what I said. A2 = SS = CS. The resistor is implied "in series" as I'm talking about things. Adafruit may do it that way, but here you have three devices on the SPI bus, so how are you going to see R/W activity when talking to the FRAMs? Seems like the easiest way to do it would be just tie the resistor to GND. Also, I don't see any reason to not tie the resistor to GND unless you actually want the LED to only indicate SD card R/W access.

If you are prototyping this first... then you'll need the vias exposed so you can solder a wire through each via. And as long as you are hand soldering everything you won't have to worry about shorts... that's typically an issue when you're NOT looking at each connection.

It looks a lot better already, but if you want me to see what I can do with it email the sch and pcb to technobly a t gmail d o t com :wink:

Also, what is the part numbers for each of the components.. so I can double check everything.

Lastly, you connected the CS lines to the I2C output of the Core xD... (D2 - D6 is much better).

Ok i’ll drop you an email for that.

It’s going to show if you are selecting the right device. If your CS is HIGH, and the CLK is pulsing, you won’t see the device LED blinking. That’s my understanding of why it’s there :smiley:

I got the other 2 LEDs in as well based on the same concept:

That would make sense if you had 3 separate LEDs. But here you only have one. I don't see any reason to add 2 more though. R/W is R/W is R/W. It's probably only useful for the SD card so you don't eject it while it's in the middle of a R/W operation, but there's no telling WHEN the next R/W operation is coming... so it's pretty useless all together. Think of it as a FUN item. So for maximum fun, connect the resistor to GND.

You’re saying that the LED will just be a R/W indicator in general irregardless of device? :smiley:

Yeah, what else can it do hooked to the SPI CLOCK line?

Email sent :wink:

Personally, i like how Adafruit did this. It tells us 2 things for sure:

  1. Whether you correctly CS the particular device
  2. The CLK is sending signal which somehow means your code is working

If we have it to ground… That’s only going to tell point 2 no?

I’m open to any changes to be made though! My first time making boards and learning about SPI…pcb layout along the way :wink:

Ok ... but it's still only connected to the SD card. Is that what you want??

Also, let's say the LED doesn't light... now what is wrong? It could be the CLK is not toggling, OR the CS line is not pulled low OR both!

Proof that the SD card is working relies way more heavily on it actually transferring data.. not just the SCK and CS lines toggling so I don't really see that as a debugging tool.

Good argument here! What’s your suggestion for this?

I’m thinking like what you said,

  1. Add a general R/W indicator (CLK --> Resistor --> LED --> GND)
  2. Some indicator specific to each device?

Well your file contained a few extra LEDs to route, which I don’t think are necessary… but here’s an attempt at routing them all.

All components are on the TOP layer.

It occurred to me when I was done you should probably have included 0.1uF decoupling caps near the FRAM chips. I’m not liking the ā€œsceneā€ there now for adding some caps. Bah.

Oh also that pull up resistor on the Card Detect pin doesn’t go anywhere… I’d say it should probably be removed rather than tying up another digital input. I kind of placed it such that if you remove it the routing doesn’t get all messed up.

1 Like

Wow it’s looking good man!

I wanted to test out with an exposed via for the Card Detect 1st to see how things go before hooking up to a digital pin that’s why :slight_smile:

Thanks for the hard work! Credits to you for sure.

Hmm… I’ll leave that part to you :wink: I tried to keep the vias out from under the SD card holder to prevent shorts. Might be hard not to put one under there now.

Don’t forget to label the LEDs nicely { SD FRAM1 FRAM2 }

Updates:

I have happily sent in my order yesterday (Sunday) and got the confirmation email as well.

Sadly, there’s a particular microSD card socket coming from the US warehouse and that’s putting me off schedule by 5-7 working days.

That leaves me some time to improve on the board though :slight_smile:

@BDub, any particular reason why the bottom layer has a ground plane across? Would be nice to learn the concept and use in future.

After placing your components, you always want to plan out how you are going to route your power and ground first, and roughly sketch something in so you don't have issues later on just trying to get power to everything properly. As I was doing this, I noticed that it would be wasteful not to just plop down a ground plane under the hi-speed memory devices. It will help get a ground connection to all devices more easily, and it can also help to reduce EMI and improve signal integrity... in this case I think it mostly just makes it easier to get GND everywhere. Notice I didn't route it down past the memory chips, because I don't want it really near the antenna of the Core (even though that does sit up a good 1/4" away from this board... it's still better to not have it there).

And copper is free... so you might as well use it if you can, and it makes the board look more professional if for no other reason.

You can also use ground planes (with hatched patterns) to fill in area of your board that don't have a lot or any components to help distribute heat across the board properly during reflow and/or wave soldering. Without that, sometimes the board can warp like a potato chip. This is more of a problem for larger boards though.

1 Like

Nice stuff here! It’s good that you guys are teaching me so much. I guess no one ever knew how much effort is poured in making such stuff that looks simple for that matter :wink:

I’m kinda proud of the board even before it’s made :stuck_out_tongue:

@BDub, which software did you use for that?

I need to see how i can do a ground pour in Eaglecad before i do the routing and try doing so :slight_smile:

I used Eagle CAD Pro 6.4.0 but I have 6.5.0 to install when I get a chance.

Pours are very easy, you just use the Polygon tool and draw a shape about where you want it to go, then edit the properties and set the Isolation value (distance between Nets that are not the same as the plane). Then use the Name tool to set the net name of the plane (GND in this case). It’s easier not to try routing with ground planes in place though, because you always have to refresh them to see what changes you making to your tracks. It kind of gets annoying after a while.

You can effectively clear out the filled areas of the polygons by saving, closing and re-opening your PCB… or the better way, select the Ripup tool and click just outside the boarder of your design. This will remove the fill, and if you want to check it again just click the Ratsnest button. BTW, these two operations are not intuitive at all. Better layout software will have an option to disable ground plane fills or to turn them into different views to make it easier to see things.

Let me try em out when i have a chance!

Your years of PCB experience is coming in handy for a newbie maker :sunny:

@bdub,

I’m going through the design once more before i head for prototyping. The polygon is appearing as dots marking out the shape.

Is there a way i can actually make it display like the full blue polygon as per your screenshot?

Yes just click the Ratsnest tool icon in the menu.

And then to disable that view again:

1 Like

So i just did a minor editing to shif out the top right via under the microSD socket.

Parts should arrive and i will get this prototype running, hopefully by end of next week!

Just in time for a project which requires storing of some huge amount of data :smile:

Awexome, can't wait to see it working... btw I need one! :slight_smile: