As of September 2024 - this is the ONLY source available on PIO, other than, of course, the documentation. I usually watch this video to confirm my own understanding of the documentation. Thanks!
He single-handedly nailed the Pico tutorials. No one on UA-cam is covering this level of detail about the Pico. Most started their tutorial series but lost interest halfway through. Adam, however, stayed consistent with his video lectures and, more importantly, maintained the same level of enthusiasm and quality throughout. It’s clear how much time and effort he has invested, and it really shows. I truly appreciate the effort you’ve put into creating something so valuable. Considering that all of this is free, it’s worth its weight in gold for any keen learner.
this is the first time I see an in depth description of PIO most of the other video I saw were just rereading the datasheet without any explanations. this is really great
Thanks for sharing your expertise on PIO , Really usefull lectures, not just reading the manual but conveying the reasoning behind the PIO functionality and its use. Brilliant Cheers
Thank you for your video! Perhaps I misunderstood you from you comment @10:09 , but I disagree with you about IN(ISR, ..) being the equivalent of a NOP instruction. It depends by how many bits you shift by. The instruction IN(ISR,32) (left or right) is equivalent to a NOP(). The MicroPython Python PIO assembler takes values 1 to 32 - for the IN/OUT shifts.
@@hunteradams9430 Ah, I see where my confusion was. After revisiting the section between 09:40 and 10:49, it sounds like you're describing the IN and OUT instructions in a way that resembles 'MOV' instructions. I think it's important to clarify that the IN and OUT instructions are only equivalent to MOV when shifting by 32 bits. For example, IN(,32) is equivalent to MOV(ISR,), so IN(ISR,32) == MOV(ISR,ISR) == NOP(). I’m really enjoying your PIO playlist-thank you so much for sharing these!
Enjoyed your content. However I’m unsure about why 8 clock cycles are used for each bit send operation in the UART Tx program. Wouldn’t we get the same effect if the ‘put’ and the ‘set instructions each had a delay of 1, and the loop had no delay? The clock then being divided down accordingly? I’m curious as to why 8 clock cycles was chosen and am wondering if I’ve missed something.
As of September 2024 - this is the ONLY source available on PIO, other than, of course, the documentation. I usually watch this video to confirm my own understanding of the documentation. Thanks!
He single-handedly nailed the Pico tutorials. No one on UA-cam is covering this level of detail about the Pico. Most started their tutorial series but lost interest halfway through. Adam, however, stayed consistent with his video lectures and, more importantly, maintained the same level of enthusiasm and quality throughout. It’s clear how much time and effort he has invested, and it really shows.
I truly appreciate the effort you’ve put into creating something so valuable. Considering that all of this is free, it’s worth its weight in gold for any keen learner.
this is the first time I see an in depth description of PIO most of the other video I saw were just rereading the datasheet without any explanations. this is really great
Thanks for sharing your expertise on PIO , Really usefull lectures, not just reading the manual but conveying the reasoning behind the PIO functionality and its use. Brilliant Cheers
As usual, the clearest and most thorough explanation of a RP2040 feature on YT. Great work as always.
These lectures are awesome, thanks for posting them here.
Great lecture, cheers.
Great lecture! Thanks
Thank you for your video! Perhaps I misunderstood you from you comment @10:09 , but I disagree with you about IN(ISR, ..) being the equivalent of a NOP instruction. It depends by how many bits you shift by. The instruction IN(ISR,32) (left or right) is equivalent to a NOP(). The MicroPython Python PIO assembler takes values 1 to 32 - for the IN/OUT shifts.
I’m stating that “mov isr, isr” is a nop
@@hunteradams9430 Ah, I see where my confusion was. After revisiting the section between 09:40 and 10:49, it sounds like you're describing the IN and OUT instructions in a way that resembles 'MOV' instructions. I think it's important to clarify that the IN and OUT instructions are only equivalent to MOV when shifting by 32 bits. For example, IN(,32) is equivalent to MOV(ISR,), so IN(ISR,32) == MOV(ISR,ISR) == NOP().
I’m really enjoying your PIO playlist-thank you so much for sharing these!
59:12 8N1 means *eight* data bits, *no* parity and *one* stop bit.
Enjoyed your content. However I’m unsure about why 8 clock cycles are used for each bit send operation in the UART Tx program. Wouldn’t we get the same effect if the ‘put’ and the ‘set instructions each had a delay of 1, and the loop had no delay? The clock then being divided down accordingly? I’m curious as to why 8 clock cycles was chosen and am wondering if I’ve missed something.
I guess it depends of the baud rate, if the baud rate was really low it is perhaps not possible to find a good divider for the clock
hey can i use respberry pi pico as usb to ttl