SPI Protocol Explained: Basics, Working, Modes, Pros and Cons