- Given your feedback (with which I agree), future videos will continue using MOSI/MISO. Regarding COPI/CIPO vs MOSI/MISO vs SDO/SDI, I typically am used to (and I believe most people are) MOSI/MISO naming conventions. While researching and looking for content for this video, I came across COPI/CIPO, which is apparently the preferred naming convention (OSHWA, for example). Wasn't sure what to use for this video, and have read your comments (some for, some against). I should have gone into more detail on the naming conventions in the video - sorry about that! - Correction: daisy-chain (single NCS, series SDO/SDI from controller through peripherals) and multi-subnode (multiple NCSs). More info here: www.analog.com/en/resources/analog-dialogue/articles/introduction-to-spi-interface.html - Embedded World '24 - make sure to stop by the Fedevel booth 5-316, 9-11th April in Nürnberg. Robert Feranec and I are looking forward to seeing you there! (Also, make sure to grab a free Phil's Lab PCB coaster while you're there! :)) - PCB Arts Meet-Up: www.eventbrite.de/e/pcb-arts-tech-meetup-tickets-826749609337
Things are changing to be more thoughtful about the use of the offensive words master and slave. Thus the change in terminology in recent years. Especially after the Floyd killing in the USA and more awareness of systemic racism in our culture and language. Same goes for the head branch in version control changing from master to main.
@@rallymax2 Does changing of the name changes meaning? The entire world trying to battle evil by banning word "evil", which itself is a pretty good indicator for the direction world is heading.
@@rallymax2 The point here is: Changing the names from MISO/MOSI to CIPO/COPI (the OSHWA changed this too, now is POCI and PICO, even worse to "convert", because one of the words can be "offensively" is Polish), will do not solve any racism or similar problem. Master and Slave will has different meanings depending on the context. In our case, electric engineering, represents an hierarchy between devices in a communication role. And this changing, will cause real impacts, but negatively, because, a many of documentations, books, and etc, uses the traditional naming, so, this will cause many confusions into old and new engineers, causing mistakes and errors on projects, because the confusion between the naming's, and trying to "convert" MISO to COPI, and etc. In the case of git, changing from "master" to "main", was good, makes more sense. But, in the SPI? Just some people judge "Offensively", man, come on, this will not solve any problem, I admit, the people that decide to change this, has good intention, but, in Brazil we have a speak for this: "Hell is full of good intentions".
Thank you so much for providing high quality content that is thoroughly detailed for free. Your videos have helped me out a ton in learning electronics and pcb design :).
Finally overcame my burn out I commented on back on your DSP guitar pedal video, now I’m leading the design of a Flight Controller board for a 1U CubeSat at my school that is using SPI for some of its peripherals. Another perfectly timed upload ! Thanks for consistently uploading, always look forward to your notifications (:
Awesome, I remember your comment - glad to hear that you have recovered from that. And congratulations on leading your design team, that sounds like a very cool project!
Thank you so much for this. Currently designing a board that talks to ~12 SPI devices, and researching on this topic has been a headache. But I'm glad that I'm on the right track.
The entire my life I had a single most important question, - WHY everyone spends so much time to invent new names for pins for standard interface, - sck-di-do-cs / scl-mosi-miso-nss/, ... and now THIS, - CLK-COPI-CIPO-NCS? Just why?
Again a really nice Video - Thanks! Meself was playing around with SPI a few weeks ago. The term "mid-speed" is a high-speed for me since i was always using I2C. I got my 20MHz MCU (Atmega4809) to run 10MHz SPI clock and could feed a little 160x120 RGB display with it. For Beginners: I wired it up by glueing my SPI-Flash (Display Data for the RGB-LCD) to the board and connecting it with enamelled copper wire. Works fine even on that speed. Don't be afraid to use it! Thanks for teaching and encouraging the community to use this Bus
Perfect timing Phil. Currently designing a PCB with four SPI devices. Didn't think about pullup resistors on the CS lines, but will do now. Thank you for sharing your extensive knowledge. 😊
@@PhilsLab Phil, most of your stuff is way over my head. I'm just a self taught hobbyist who reads a lot of datasheets, but it's gems like this that put the icing on the cake. Keep up the good work. Cheers. Matt.
@@PhilsLab sorry to trouble you. In my PCB, without a bit of a reshuffle of components I'm struggling to get the pullup of one of the CS lines close to the peripheral. It's simple if close to the MCU pin. Is this a problem? If you say I should do a redesign then so be it but just wanted your opinion. No rush. Cheers. Matt
@@TYGAMattclose to the peripheral is best but it shouldn't matter except if you are really push a very long cs line on a large pcb where it might cause minor problems.
As Michael already commented, the CS line can be pretty much anywhere (within reason). I like to pop them next to the peripherals, as to me that is part of that group.
Great video again! Would be amazing if you could do one on proper grounding of PCBs at some point. I am very much a beginner and proper ground planes, avoiding ground loops in digital circuits etc. are still driving me nuts.
Phil you are doing a sensational job. Thank you very much for your effort. An important topic for me and I think for the followers would be CAN. Surely if you teach us this subject will be clear to all of us.
Your PCB design has improved a lot from long time ago. It would be nice to watch a video with some suggestions and thoughts on what you care about when placing SMD components. For example: component alignments, spacing, groups; tracing main voltages; separating analog from digital signals, add vias next to GND pads like capacitors' Pads; and so on. This kind of content is not easy to find online, at least in one video that resumes it. I have some basic knowledge but i see a lot of room to improvement.
Thank you! I have a video on PCB aesthetics which goes over some of the essentials. Otherwise, it's quite difficult to convey that without showing a full design walkthrough (of which I have a few on my channel).
Hi Phil, great video.....I'm curious, why do you use the Tag Connect connector with the feet? I know it allows you to debug easily, but I use the model without the feet and the associated retainer on the other side to achieve the same result. This way I don't have to have the 4 holes for the feet, just the 6 pads and the three locating pins.
Thanks, Stuart. Often times the PCB is in an assembly/enclosure which doesn't permit access to the other side of the PCB or there isn't enough space to fit in the retainer. Also, I don't want to have to fiddle around with a retainer and find it far easier to rely on the legs. I've found the retainer can come loose fairly easily. Lastly, unless I'm super constrained with board space, I don't see a reason not to use the legged version.
Great vid. It would have been good to cover the modes instead of skipping it. I have been tripped up when first working with SPI years ago. I heard some senior engineer on the amp hour got tripped up for weeks on some wrong mode. Of course the most basic logic analyser can be used to diagnose mode problems in minutes.
Great video as always! If you intend to do a video on the firmware end may I suggest you include a bit about using a microcontroller as an SPI peripheral? I've had a difficult time finding good material on how to do this properly but your content is always top notch.
@@PhilsLab Might be nice to talk about daisy chaining MOSI on first chip to MISO on second chip. I find this is very useful when using motor controllers like Trinamic or STM (L6470). All in all, great video Phil!
Do you think it’s possible to design very small nfc antennas for very short reading distances of 1 or 2 millimeters ? I need to design many antennas and distance between antennas will be 25 millimeters. Antennas must not interfere with neighbors antenna. Thank you
where can i learn all these concepts be it communication protocols, pull up resistors, termination, impedance control etc....is there any recommended book?
Love the content. Recently got your course on advanced hardware. Any future plans to go more into detail with the FPGA microblaze/zynq and doing software bring up?
Yeah, I actually have been playing around with KiCad 8 for a bit! It'll either be an ESP32 design or an NXP RT MCU design. Probably won't be until at least June/July though I'm afraid.
@@PhilsLab The NXP RT MCU is unknown to me. Although if not in the KiCad 8 video, perhaps you could show a design about it in a video. Unfortunately, I haven't seen all your videos yet, sorry if you've already done one about it, but I'll catch up on the rest in time.
I don't have a video on NXP MCUs yet, so that would be the first (if I end up going with that in the KiCad 8 vid). Wanted to show how to design around a number of different MCUs anyway (other than ESPs, STMs...).
As a newbie i learnt and liked from phil's lab.but now i got to do project with handling 10.1 inch 1080*600 tft display,,so, from your designs, which can i able to select the Hw and modify according to my display and GUI needs??or should i go for dual core h745?
Hi Phil, in your video about series termination you mention, that the input waveform will only be failry clean for the last load. In case of and SPI bus with multiple peripherals, especially when pathing through components, wouldn't this be in issue since only the last peripheral will receive a clean waveform and the other ones will receive only half the amplitude? At least thats how i inderstood it in you series termination video.
That's correct - in the case of multiple loads, however, if loads are kept 'close' this isn't an issue. But if loads are further apart, the series 'termination' is there more to slow down the edges, which can help improve SI. In any case, the recommendation is to slow down edges (either via control in the controller, or via series resistors), keeping trace lengths short, and loads close together.
@@PhilsLab I have no experience in designing PCBs but in my case I think I'll have fairly long traces since i need to connect 20 large sensor chips but then I'll implement these series resistors as you recommended. Thank you for the quick reply and have a nice day :)
This push of replacing Master with Controller is a disservice to everybody especially newcommers: Most of the datasheets talk about Master / Slave. Paarts you used had SI (Slave In) and not CI. Not a good first contact with the topic. Not only are there new terms, some functions even have multiple names. I would recommend keeping the Master / Slave notion as the benefit (and motivation..) of the renaming is questionable at best. Some TI-Datasheets even mix the terms. Introducing artificial noise into a 40 year old standard.
Agreed - I should've been clearer in the video about the various naming conventions. While researching, looking online for content for this video, I came across these new, suggested definitions (OSHWA, Texas Instruments, etc..). Last time I used MOSI/MISO in videos I got a few complaints about that as well.
The terms "master" and "slave" are used inconsistently in electronics, sometimes referring to controllers and peripherals, sometimes referring to addresses without hierarchical distinction. "Controller" and "peripheral" breaks with convention, but the convention in question was ambiguous to begin with. Like, who looks at a circuit diagram for the first time and thinks "which of those chips is the master and which the slaves"? They didn't name it the "Serial Slave Interface", because the meaning would have been less clear. Either way is unfriendly to newcomers now, but the controller/peripheral nomenclature would at least become friendly to newcomers over time as documentation is updated. And frankly, if having two names for the same thing during a transition period is too big an obstacle for newcomers to overcome, they won't be able to navigate USB cables let alone signal protocols, let alone all the different ways to indicate inverting and pins on ICs.
I would like to see small projects that realise sensor fusion applications and explain them to beginners. At least if it's something you're interested in :)
They are there to limit the short-circuit current, so Ohm's law with your IO voltage and max. current drive of the outputs. Keep in mind this'll slow edges down though.
I am using a 120MHz microcontroller and it can toggle GPIOs at max 50MHz. If I clock the SPI at 10MHz, will the rise time and fall time correspond to 100MHz (10x)? Does fall time and rise time change with the configured clock rate of the SPI? Or is it fixed for a particular micro-controller?
1/10th of clock period is just a very rough rule of thumb, it can easily be faster than that. Depends on controller and peripheral that you use - I'd suggest checking the IBIS files.
Another great video! Your channel has been a godsend for the tasks I've been given at work to develop some sensors. It would re really great to hear your thoughts on how to handle high speed ADC. I have some projects where sampling in the region of 3-10 Msamples/s with the least fuss as possible would be really helpful, but the literature I've seen on this hasn't been particularly illuminating on how best achieve this. Is this a task best suited to FPGA or would an STM32H7 have enough grunt with the inbuild ADCs?
Thank you, glad to hear that! Depends on what you want to then do with those samples, what effective bit depth you require, etc.. Some H7s can apparently handle several 3.6 MSPS channels (at "16" bits).
@@PhilsLab thanks for the reply! 10 or 12-bit would probably be adequate for my needs. The goal is to detect a pulse a few usec in duration and then trigger a secondary analysis system within a few usec if the pulse height is greater than a certain threshold which captures using the same ADC before resting the acquisition system. Digging around the H7 series capabilities it looks like interleaving the ADCs together can increase the sample rate well into the upper range I'm shooting for, but when I read up on how to achieve this practically it looks like it falls short in reality. I will be starting some tests in a few weeks with a nucelo board, however people have complained that the ADCs on the nucelo boards aren't great because of the board layout etc, so I may have to roll my own.
Hey Phil! I'm intrested in your micro quad copter project. Do you mind make a video about it or share a project? I'm in the process of designing one myself, but it's my first one. Thought about using new U5 MCU as well. Which remote and motors are you using? How big is your micro quad copter?
Hey, Thanks! Yeah, I plan on making a few videos on the aspects of the hardware and firmware design. I found a frame kit on Amazon (with motors, and battery) and designed a PCB around that. PCB is ~35x35mm. Motors are those micro coreless 1S ones. Remote I'm making my own with a TI CC2500 2.4GHz transceiver.
This is the one I went with: www.amazon.de/gp/product/B08SWKGF33/ref=ppx_yo_dt_b_asin_title_o02_s01?ie=UTF8&psc=1 The USB-C connector is a GCT USB4105-GF-A-060
@@PhilsLab Thanks a lot. I just recently ordered exactly this USB-C because I would like to move from micro/mini USB to USB-C. But I don't need the USB 3.0 speeds and 24 pins is a lot harder to solder. 16 pins seems exactly perfect. I really like how beautiful your schematics and layout looks. Wish I could make same ;) I'm hoping for more Altium videos ;)
@@PhilsLab One more question Phil if you don't mind. What made you decide to use power layer as 3rd layer? Not enough space? Did you use whole layer as a power layer or routed power and rest of it GND?
Hi your videos are great i learned a lot from them and started to watch them regularly from #1 can you please do one bldc motor controller similar to that of odrive moetus or something that woul be really helpful
I think you probably should elaborate a bit on why you're using COPI & CIPO as opposed to the more ubiquitous (and frankly standard) MOSI & MISO. Also NCS is very non standard. Anyone who's learning this for the first time has enough acronyms to deal with.
@@PhilsLab I had planned a week at our factory and was going to "disappear" for a day but i am only there to do a FAT test and then fly straight out. As you say See you next year.
That's what I was used to as well - when double-checking and gathering info for this video, I came across these definitions that are apparently more 'up-to-date' (along with serial data in, serial data out (SDI, SDO)).
Yeah, I don't think it will stick. Master and slave are the correct terms, but certain elements are trying to make those terms "problematic". Latest I've heard is that "field-work" is an unacceptable term as it evokes slaves working in fields; this is the level to which we have descended. These are the same fools who tried to change grease nipples and manifolds in cars 🤦♂
Because the woke have arrived in this field too. If I hurt the feelings of the ICs, I might think of changing the naming. Until the ICs are not complaining, I’m stibking to MISO/MOSI.
Pick a project idea that interests you and build it from scratch, start to finish - block diagram, hardware, firmware, .. etc. This is the number one way (in my eyes) of improving.
For me it's always been based on what I'm interested in - then I'm more likely to have a use for the final design, and finish it. If you're into audio, there is a lot you could build (DIY synth, DSP FX processor, etc..), otherwise, a micro quadcopter is pretty cool and touches on many embedded system concepts. Regarding where to find open-source/collaborative projects, I'd try looking through the embedded/electronics sub-reddits.
@@PhilsLabThanks! i’m very intersted in taking part or learning in firmware/embedded software projects in several fields such as motor control, battery management systems, etc. Any clue on what could be a good oportunity to start from scratch?
I'm just a student and I'm new to this, so I'm not "used to" anything. COPI and CIPO are pretty clear, in fact even more accurate, and I think it's for the better using the new convention. There's people still hurting because of slavery and that's why they are asking to change MISO/MOSI. As always, excellent video Phil.
@@PhilsLab Since some people have problems with MISO, MOSI, SS, I really like phils COPI, CIPO because the SDO and SDI was not clear enough as a replacement in my opinion.
I see you've already addressed it but please don't use Marxist language like CIPO or that other BS, stick to standard terms that have been used for decades like MISO and MOSI, it makes it easier for newbies to search and have access to all the documentation and app notes generated in the past decades. This is not a political channel but new terms like that only lead to confusion, in more political subjects it is used so that no one has an accurate definition and makes communication harder, that's the goal despite whatever story about virtue signaling they tell you.
- Given your feedback (with which I agree), future videos will continue using MOSI/MISO. Regarding COPI/CIPO vs MOSI/MISO vs SDO/SDI, I typically am used to (and I believe most people are) MOSI/MISO naming conventions. While researching and looking for content for this video, I came across COPI/CIPO, which is apparently the preferred naming convention (OSHWA, for example). Wasn't sure what to use for this video, and have read your comments (some for, some against). I should have gone into more detail on the naming conventions in the video - sorry about that!
- Correction: daisy-chain (single NCS, series SDO/SDI from controller through peripherals) and multi-subnode (multiple NCSs). More info here: www.analog.com/en/resources/analog-dialogue/articles/introduction-to-spi-interface.html
- Embedded World '24 - make sure to stop by the Fedevel booth 5-316, 9-11th April in Nürnberg. Robert Feranec and I are looking forward to seeing you there! (Also, make sure to grab a free Phil's Lab PCB coaster while you're there! :))
- PCB Arts Meet-Up: www.eventbrite.de/e/pcb-arts-tech-meetup-tickets-826749609337
Things are changing to be more thoughtful about the use of the offensive words master and slave. Thus the change in terminology in recent years. Especially after the Floyd killing in the USA and more awareness of systemic racism in our culture and language. Same goes for the head branch in version control changing from master to main.
@@rallymax2 Does changing of the name changes meaning? The entire world trying to battle evil by banning word "evil", which itself is a pretty good indicator for the direction world is heading.
@@rallymax2 The point here is: Changing the names from MISO/MOSI to CIPO/COPI (the OSHWA changed this too, now is POCI and PICO, even worse to "convert", because one of the words can be "offensively" is Polish), will do not solve any racism or similar problem.
Master and Slave will has different meanings depending on the context. In our case, electric engineering, represents an hierarchy between devices in a communication role.
And this changing, will cause real impacts, but negatively, because, a many of documentations, books, and etc, uses the traditional naming, so, this will cause many confusions into old and new engineers, causing mistakes and errors on projects, because the confusion between the naming's, and trying to "convert" MISO to COPI, and etc.
In the case of git, changing from "master" to "main", was good, makes more sense.
But, in the SPI? Just some people judge "Offensively", man, come on, this will not solve any problem, I admit, the people that decide to change this, has good intention, but, in Brazil we have a speak for this: "Hell is full of good intentions".
Also, at 6:23, your slide shows both sensor 1 & 2 as peripheral 1. Not a big deal, I figured if we're mentioning corrections...
Good. Master and Slave are universally understood, across languages and countries.
Thank you so much for providing high quality content that is thoroughly detailed for free. Your videos have helped me out a ton in learning electronics and pcb design :).
I'm glad to hear that, thank you!
Finally overcame my burn out I commented on back on your DSP guitar pedal video, now I’m leading the design of a Flight Controller board for a 1U CubeSat at my school that is using SPI for some of its peripherals. Another perfectly timed upload !
Thanks for consistently uploading, always look forward to your notifications (:
Awesome, I remember your comment - glad to hear that you have recovered from that. And congratulations on leading your design team, that sounds like a very cool project!
i am not an electronic, but i love listening to Phil
Thank you :)
Thank you so much for this. Currently designing a board that talks to ~12 SPI devices, and researching on this topic has been a headache. But I'm glad that I'm on the right track.
The entire my life I had a single most important question, - WHY everyone spends so much time to invent new names for pins for standard interface, - sck-di-do-cs / scl-mosi-miso-nss/, ... and now THIS, - CLK-COPI-CIPO-NCS? Just why?
Because snowflakes. Apparently there were people who didn't like the terms 'slave' and 'master', even though the context was correct 🤷♂️
Again a really nice Video - Thanks!
Meself was playing around with SPI a few weeks ago. The term "mid-speed" is a high-speed for me since i was always using I2C. I got my 20MHz MCU (Atmega4809) to run 10MHz SPI clock and could feed a little 160x120 RGB display with it. For Beginners: I wired it up by glueing my SPI-Flash (Display Data for the RGB-LCD) to the board and connecting it with enamelled copper wire. Works fine even on that speed. Don't be afraid to use it!
Thanks for teaching and encouraging the community to use this Bus
Perfect timing Phil. Currently designing a PCB with four SPI devices. Didn't think about pullup resistors on the CS lines, but will do now. Thank you for sharing your extensive knowledge. 😊
Awesome, thanks, Matt - glad it's helpful!
@@PhilsLab Phil, most of your stuff is way over my head. I'm just a self taught hobbyist who reads a lot of datasheets, but it's gems like this that put the icing on the cake.
Keep up the good work.
Cheers.
Matt.
@@PhilsLab sorry to trouble you. In my PCB, without a bit of a reshuffle of components I'm struggling to get the pullup of one of the CS lines close to the peripheral. It's simple if close to the MCU pin. Is this a problem? If you say I should do a redesign then so be it but just wanted your opinion.
No rush.
Cheers.
Matt
@@TYGAMattclose to the peripheral is best but it shouldn't matter except if you are really push a very long cs line on a large pcb where it might cause minor problems.
As Michael already commented, the CS line can be pretty much anywhere (within reason). I like to pop them next to the peripherals, as to me that is part of that group.
I read the comments (oops) and I just wanted to say I appreciate you using modern terminology in this video and avoiding outdated terms.
Always leading the way Phil. Thank you for another truly excellent upload.
Thanks a lot!
Great video again! Would be amazing if you could do one on proper grounding of PCBs at some point. I am very much a beginner and proper ground planes, avoiding ground loops in digital circuits etc. are still driving me nuts.
Phil you are doing a sensational job. Thank you very much for your effort. An important topic for me and I think for the followers would be CAN. Surely if you teach us this subject will be clear to all of us.
Thank you, Silvestra! CAN is definitely on the list of videos to make this year.
great and very useful video as always from the maestro of pcb Philp . thanks for your efforts.
Your PCB design has improved a lot from long time ago. It would be nice to watch a video with some suggestions and thoughts on what you care about when placing SMD components. For example: component alignments, spacing, groups; tracing main voltages; separating analog from digital signals, add vias next to GND pads like capacitors' Pads; and so on. This kind of content is not easy to find online, at least in one video that resumes it.
I have some basic knowledge but i see a lot of room to improvement.
Thank you! I have a video on PCB aesthetics which goes over some of the essentials. Otherwise, it's quite difficult to convey that without showing a full design walkthrough (of which I have a few on my channel).
is there a tutorial or GitHub repo or something for the first drone pcb? I would really love to see it, as I'm trying to design my own :)
Hi Phil, great video.....I'm curious, why do you use the Tag Connect connector with the feet? I know it allows you to debug easily, but I use the model without the feet and the associated retainer on the other side to achieve the same result. This way I don't have to have the 4 holes for the feet, just the 6 pads and the three locating pins.
Thanks, Stuart. Often times the PCB is in an assembly/enclosure which doesn't permit access to the other side of the PCB or there isn't enough space to fit in the retainer. Also, I don't want to have to fiddle around with a retainer and find it far easier to rely on the legs. I've found the retainer can come loose fairly easily. Lastly, unless I'm super constrained with board space, I don't see a reason not to use the legged version.
Thanks for this video ! I'm becoming a member right now !
Thank you very much!
Great video as always! I like the deep dives on serial protocols. I think one on CAN would be cool if that's one of your competencies.
Thanks a lot, Mark - CAN is on the list of videos to make.
Great vid. It would have been good to cover the modes instead of skipping it. I have been tripped up when first working with SPI years ago. I heard some senior engineer on the amp hour got tripped up for weeks on some wrong mode.
Of course the most basic logic analyser can be used to diagnose mode problems in minutes.
Thanks! Yes, I'm definitely planning on covering that for the SPI driver video. There I'll also go over clock, data width, etc. settings.
Great video as always!
If you intend to do a video on the firmware end may I suggest you include a bit about using a microcontroller as an SPI peripheral?
I've had a difficult time finding good material on how to do this properly but your content is always top notch.
Thank you! I haven't really had a need for a MCU as a SPI peripheral, but maybe at some point in the future!
Thank you very much! Very simple and helpful.
This channel is OP, thank you 🙏🏽
The videos get better and better topic-wise
Thank you!
Great video as always. I would love a dedicated SPI firmware tutorial at some point! I have found that there is a bit more to it than I2C.
Daisy Chain - multiple periphery in series, single NCS
You're right - I mixed up the terms.
@@PhilsLab Might be nice to talk about daisy chaining MOSI on first chip to MISO on second chip. I find this is very useful when using motor controllers like Trinamic or STM (L6470). All in all, great video Phil!
Great video! Hmm, I wanna spin up my own quadcopter fc when I get some free time, thanks for the inspiration
Do you think it’s possible to design very small nfc antennas for very short reading distances of 1 or 2 millimeters ? I need to design many antennas and distance between antennas will be 25 millimeters. Antennas must not interfere with neighbors antenna.
Thank you
Promise (fingers crossed) I fast forwarded through the Bumble-B parts 😁. Great video as always!
Haha I hope I didn't reveal too much :D
where can i learn all these concepts be it communication protocols, pull up resistors, termination, impedance control etc....is there any recommended book?
Love the content. Recently got your course on advanced hardware. Any future plans to go more into detail with the FPGA microblaze/zynq and doing software bring up?
Thanks for signing up to the course! Yeah, I have a few FPGA/Microblaze/Zynq tutorials coming up this year :)
@@PhilsLab Best way to know if follow your RUclips page or other social media? I'm so down to take that course!
I know that your KiCad 7 video has just come out few month ago, but KiCad 8 has so many cool improvements. Will you be doing a KiCad 8 tutorial soon?
Yeah, I actually have been playing around with KiCad 8 for a bit! It'll either be an ESP32 design or an NXP RT MCU design. Probably won't be until at least June/July though I'm afraid.
@@PhilsLab That's very close enough. 😁 I love your videos and the fact that you cover so many aspects of electrical/PCB design in detail!
Thank you very much!
@@PhilsLab The NXP RT MCU is unknown to me. Although if not in the KiCad 8 video, perhaps you could show a design about it in a video. Unfortunately, I haven't seen all your videos yet, sorry if you've already done one about it, but I'll catch up on the rest in time.
I don't have a video on NXP MCUs yet, so that would be the first (if I end up going with that in the KiCad 8 vid). Wanted to show how to design around a number of different MCUs anyway (other than ESPs, STMs...).
As a newbie i learnt and liked from phil's lab.but now i got to do project with handling 10.1 inch 1080*600 tft display,,so, from your designs, which can i able to select the Hw and modify according to my display and GUI needs??or should i go for dual core h745?
Phil, Design idea: STM32 master talks to an FPGA over SPI. The STM32 should also be able to program the FPGA flash configuration.
I do have that config in some work designs, but I'm afraid I can't really make those public haha.
Hi Phil, in your video about series termination you mention, that the input waveform will only be failry clean for the last load. In case of and SPI bus with multiple peripherals, especially when pathing through components, wouldn't this be in issue since only the last peripheral will receive a clean waveform and the other ones will receive only half the amplitude? At least thats how i inderstood it in you series termination video.
That's correct - in the case of multiple loads, however, if loads are kept 'close' this isn't an issue. But if loads are further apart, the series 'termination' is there more to slow down the edges, which can help improve SI. In any case, the recommendation is to slow down edges (either via control in the controller, or via series resistors), keeping trace lengths short, and loads close together.
@@PhilsLab I have no experience in designing PCBs but in my case I think I'll have fairly long traces since i need to connect 20 large sensor chips but then I'll implement these series resistors as you recommended.
Thank you for the quick reply and have a nice day :)
This push of replacing Master with Controller is a disservice to everybody especially newcommers: Most of the datasheets talk about Master / Slave. Paarts you used had SI (Slave In) and not CI. Not a good first contact with the topic. Not only are there new terms, some functions even have multiple names.
I would recommend keeping the Master / Slave notion as the benefit (and motivation..) of the renaming is questionable at best. Some TI-Datasheets even mix the terms. Introducing artificial noise into a 40 year old standard.
Agreed - I should've been clearer in the video about the various naming conventions. While researching, looking online for content for this video, I came across these new, suggested definitions (OSHWA, Texas Instruments, etc..). Last time I used MOSI/MISO in videos I got a few complaints about that as well.
The terms "master" and "slave" are used inconsistently in electronics, sometimes referring to controllers and peripherals, sometimes referring to addresses without hierarchical distinction. "Controller" and "peripheral" breaks with convention, but the convention in question was ambiguous to begin with. Like, who looks at a circuit diagram for the first time and thinks "which of those chips is the master and which the slaves"?
They didn't name it the "Serial Slave Interface", because the meaning would have been less clear. Either way is unfriendly to newcomers now, but the controller/peripheral nomenclature would at least become friendly to newcomers over time as documentation is updated.
And frankly, if having two names for the same thing during a transition period is too big an obstacle for newcomers to overcome, they won't be able to navigate USB cables let alone signal protocols, let alone all the different ways to indicate inverting and pins on ICs.
And I love listening to your wisdom. :)
great videos as always .thanks for every word
Thank you!
Hey Phil, what do you use to make the block diagrams for the slides?
I would like to see small projects that realise sensor fusion applications and explain them to beginners. At least if it's something you're interested in :)
I have a whole sensor fusion series on the channel, in case you are interested!
Very informative thanks for the video sir :)
Great video as usual, keep up the good work. 👍
Thank you!
To avoid short circuit when the SPI lines leave the board, how much resistance in series do we need to add to each line? Thanks.
They are there to limit the short-circuit current, so Ohm's law with your IO voltage and max. current drive of the outputs. Keep in mind this'll slow edges down though.
reeally like your videos Phil! how about a video explaining the CAN communicstion hardware and design along with some sensors..
Thanks! CAN is definitely on the list.
Is there a reason why one would have a pull up for CS if there is already a pull up?
I am using a 120MHz microcontroller and it can toggle GPIOs at max 50MHz.
If I clock the SPI at 10MHz, will the rise time and fall time correspond to 100MHz (10x)?
Does fall time and rise time change with the configured clock rate of the SPI? Or is it fixed for a particular micro-controller?
1/10th of clock period is just a very rough rule of thumb, it can easily be faster than that. Depends on controller and peripheral that you use - I'd suggest checking the IBIS files.
Please make a video on CAN bus, especially with stm32f103 and tja1050.
Thanks
CAN is on the list :)
@@PhilsLab great. Thank you.
Another great video! Your channel has been a godsend for the tasks I've been given at work to develop some sensors. It would re really great to hear your thoughts on how to handle high speed ADC. I have some projects where sampling in the region of 3-10 Msamples/s with the least fuss as possible would be really helpful, but the literature I've seen on this hasn't been particularly illuminating on how best achieve this. Is this a task best suited to FPGA or would an STM32H7 have enough grunt with the inbuild ADCs?
Thank you, glad to hear that! Depends on what you want to then do with those samples, what effective bit depth you require, etc.. Some H7s can apparently handle several 3.6 MSPS channels (at "16" bits).
@@PhilsLab thanks for the reply! 10 or 12-bit would probably be adequate for my needs. The goal is to detect a pulse a few usec in duration and then trigger a secondary analysis system within a few usec if the pulse height is greater than a certain threshold which captures using the same ADC before resting the acquisition system.
Digging around the H7 series capabilities it looks like interleaving the ADCs together can increase the sample rate well into the upper range I'm shooting for, but when I read up on how to achieve this practically it looks like it falls short in reality. I will be starting some tests in a few weeks with a nucelo board, however people have complained that the ADCs on the nucelo boards aren't great because of the board layout etc, so I may have to roll my own.
how can I measure ringing and reflections on signal lines and how to measure how good is my RF impedance matching ?
Low-inductance probe connection to an oscilloscope and measure on the relevant RF lines (e.g. at the receiving end).
Thanks as always Phil. Next video UART?
Thanks for watching! Definitely at some point.
THANK U Fill for the great video
I wonder if you present an altium design cource?
Thanks for watching! That is on the list of courses to make.
@@PhilsLab so excited!
The renaming of the pins is still confusing for me
Thanks, Phil 👍
Thanks for watching :)
Nice video!
Thank you!
another great tutorial :)
Thanks a lot! :)
Hey Phil! I'm intrested in your micro quad copter project. Do you mind make a video about it or share a project? I'm in the process of designing one myself, but it's my first one. Thought about using new U5 MCU as well. Which remote and motors are you using? How big is your micro quad copter?
Hey, Thanks! Yeah, I plan on making a few videos on the aspects of the hardware and firmware design. I found a frame kit on Amazon (with motors, and battery) and designed a PCB around that. PCB is ~35x35mm. Motors are those micro coreless 1S ones. Remote I'm making my own with a TI CC2500 2.4GHz transceiver.
@@PhilsLab Thanks for answering. Do you mind sharing frame amazon link? Also I'm wondering about your USB-C. Are you using 16 pin USB-C(USB 2.0)?
This is the one I went with: www.amazon.de/gp/product/B08SWKGF33/ref=ppx_yo_dt_b_asin_title_o02_s01?ie=UTF8&psc=1
The USB-C connector is a GCT USB4105-GF-A-060
@@PhilsLab Thanks a lot. I just recently ordered exactly this USB-C because I would like to move from micro/mini USB to USB-C. But I don't need the USB 3.0 speeds and 24 pins is a lot harder to solder. 16 pins seems exactly perfect. I really like how beautiful your schematics and layout looks. Wish I could make same ;) I'm hoping for more Altium videos ;)
@@PhilsLab One more question Phil if you don't mind. What made you decide to use power layer as 3rd layer? Not enough space? Did you use whole layer as a power layer or routed power and rest of it GND?
It is not so clear to me, why is it good practice to put placeholder resistors at output drivers?
In case you need to add them
Fantastic!
Thank you!
Hi your videos are great i learned a lot from them and started to watch them regularly from #1 can you please do one bldc motor controller similar to that of odrive moetus or something that woul be really helpful
Thank you! I recently came across an awesome series of videos by TI on motor control. Part 1 is here: ruclips.net/video/fpTvZlnrsP0/видео.html
I think you probably should elaborate a bit on why you're using COPI & CIPO as opposed to the more ubiquitous (and frankly standard) MOSI & MISO. Also NCS is very non standard. Anyone who's learning this for the first time has enough acronyms to deal with.
Snowflake friendly terms apparently 🙄
I really wanted to go to Embedded World but have to go to Saudi Arabia instead, arrive back in Munich the day after it finish's. Not happy.
Ah that's a shame, Ian - maybe next year?
@@PhilsLab I had planned a week at our factory and was going to "disappear" for a day but i am only there to do a FAT test and then fly straight out. As you say See you next year.
Wait, are the 'copi/cipo' politically corrected terms for 'mosi/miso'?
Never seen an spi board with those abbreviations.
Why not MISO/ MOSI? Never heard of copi ant the other thing
That's what I was used to as well - when double-checking and gathering info for this video, I came across these definitions that are apparently more 'up-to-date' (along with serial data in, serial data out (SDI, SDO)).
COPI and CIPO are the politically correct way, because saying slave might offend your temperature sensor IC.
Yeah, I don't think it will stick. Master and slave are the correct terms, but certain elements are trying to make those terms "problematic". Latest I've heard is that "field-work" is an unacceptable term as it evokes slaves working in fields; this is the level to which we have descended. These are the same fools who tried to change grease nipples and manifolds in cars 🤦♂
Because the woke have arrived in this field too. If I hurt the feelings of the ICs, I might think of changing the naming. Until the ICs are not complaining, I’m stibking to MISO/MOSI.
MOSI, MISO? whats with the COPI CIPO?
Bro I'm electronic and communication student how student I improve my core skill
Pick a project idea that interests you and build it from scratch, start to finish - block diagram, hardware, firmware, .. etc. This is the number one way (in my eyes) of improving.
@@PhilsLabany ideas for a project? Is there any web where you could find projects to join or collaborate?
For me it's always been based on what I'm interested in - then I'm more likely to have a use for the final design, and finish it. If you're into audio, there is a lot you could build (DIY synth, DSP FX processor, etc..), otherwise, a micro quadcopter is pretty cool and touches on many embedded system concepts. Regarding where to find open-source/collaborative projects, I'd try looking through the embedded/electronics sub-reddits.
@@PhilsLabThanks! i’m very intersted in taking part or learning in firmware/embedded software projects in several fields such as motor control, battery management systems, etc. Any clue on what could be a good oportunity to start from scratch?
I'm biased, but I'd go with a micro quadcopter :) Contains a bit of everything - motor control, battery management, DSP, control, etc etc
I'm just a student and I'm new to this, so I'm not "used to" anything. COPI and CIPO are pretty clear, in fact even more accurate, and I think it's for the better using the new convention. There's people still hurting because of slavery and that's why they are asking to change MISO/MOSI.
As always, excellent video Phil.
👍🙏❤️
😝 "Promosm"
MISO MOSI CS/SS * there fixed it
yea even if i know most of what u said those odd names u used make me confused what is what
I have always known them as MISO and MOSI pins for the last few decades. What happened? They got to you too?
Same here. These seem to be the new conventions though, along with SDO/SDI (serial data out, serial data in).
@@PhilsLab Since some people have problems with MISO, MOSI, SS, I really like phils COPI, CIPO because the SDO and SDI was not clear enough as a replacement in my opinion.
@@piranha1337I don't get why they didn't just call it "manager" and "subordinate", then keep the acronym the same as MOSI/MISO
@@drojf I don't get why most people didn't say something "we won't change anything in those namings", instead they reinvent the bicycle. :)
It's Master Input Slave Output, not some damn CIPO, not even datasheet you've used as example uses that terminology
I see you've already addressed it but please don't use Marxist language like CIPO or that other BS, stick to standard terms that have been used for decades like MISO and MOSI, it makes it easier for newbies to search and have access to all the documentation and app notes generated in the past decades.
This is not a political channel but new terms like that only lead to confusion, in more political subjects it is used so that no one has an accurate definition and makes communication harder, that's the goal despite whatever story about virtue signaling they tell you.
Why most west people think that communism ideas were like LGBTKIA+? :)
Extraordinario video. Muchas gracias
Thank you!