RPI PICO SPI BOARD WORKING JUST FINE !!!
link here in tube >>> https://www.youtube.com/watch?v=vpB3R3BCyMs <<< Bulgarian language for now, english soon ;)
so, hello, as you can see the SPI expander is already working. the software was written on raspberry pico in the arduino development environment. the raspberry controls the expander with LED effects, everything is EXCELLENT !!! the additional board to the main development board of raspberry pico is an expander / expander / MCP23S17 SPI interface on 4 cables. there are 16 soldered LEDs on the board and nothing more. one power cord, one usb cable for communication to the arduino development environment and as you can see everything works perfectly. the effects are not great, I have done a few different ones with repetitions to see that the SPI communication works fast enough, maybe faster depends on what you will use the raspberry pico for.
the boards are in the set of raspberry pico for all specialists, students, programmers, lovers of electronics and programming and others. will be available for sale, the site has links for communication and orders. soon there will be an official price of the whole set as well as a full description for each board separately.
for now you can see the effects of the LEDs that I wrote in the source code of raspberry pico through the arduino development environment. It is extremely easy to work with, all the libraries from the old software of the PIC microchip processors that we have written for so many years and used have worked without any problem at all. easy adjustment of the definitions and control pins of the communication to the expander.
basically the standard raspberry and raspberry pickpocket has several SPI hardware ports, like all normal processors, but in this example I made it a software SPI, by software managing the GPIO pins to implement the SPI protocol to the expander
there is enough information, software libraries and examples of this chip on the Internet, widely used, widely used for many projects as well as in my developments, PLC systems, all control panels with displays, all input and output controls, relays, contactors and more
keep in mind that communication is quite fast. the input frequency of the expander's clock is about 1 megahertz, which means that one of the outputs is about 13 kilohertz, and when all the outputs are working it is about 1 kilohertz. I tested it with an oscilloscope at the time I was working with microchip processors. this is an extremely high frequency that can meet the requirements of almost all communication and input / output standards.
keep in mind that communication is quite fast. the input frequency of the expander's clock is about 1 MHz, which means that one of the outputs is about 13 KHz, and when all the outputs are working it is about 1 kilohertz. I tested it with an oscilloscope at the time I was working with microchip processors. this is an extremely high frequency that can meet the requirements of almost all communication and input / output standards.
since raspberry pico can support up to 120 MHz of the CPU frequency, the output frequency of the CPU pins can reach a lot of MHZ, not as with PIC processors a maximum of 1-2 MHz. in raspberry pico you have a lot of MHZ that you don't know what it will be used for, hopefully it will be time to use such frequencies in hardware software applications. to have developments for such speeds expander is very easy to manage there is an awful lot of information in the PDF files of the microchip in the description of it. there are interrupts for each pin separately when it is initialized as an input.
the outputs of the expander can be with output voltage + 3V3 or + 5V depending on what supply voltage you have connected to the expander.
unlike the expander the ULN2803 driver at the output will give the same voltage that is applied to the input. or if there is a voltage of + 3V3 volts at the input of ULN2803, the same will be output at its output. and one more thing, the ULN2803 driver has OPEN COLLECTOR outputs, which means that the connected load, for example the LEDs, are placed with the CATHODE TO THE PIN OF THE DRIVER, AND THE ANODES ARE CONNECTED TO THE PLUS SUPPLY.
in the case of the expander the loads are connected / for example with the LEDs they are connected to THROUGH A RESISTOR WITH ANODE TO THE PIN OF THE EXPANDER / to ground, as the maximum current of each pin separately of the expander is written in the PDF file of the expander. for larger loads, such as relays, and others must be connected mosfet powerful transistors.
as you know raspberry pico has outputs + 3V3 volts, the expander does not prevent it from communicating with understand pico. the expander is powered at + 5V, and its outputs are at + 5V, and communication to it runs at + 3V3 volts. you should pay attention only to the pin coming out of the expander on which its signal is + 5V, because this is an input signal for raspberry, on which pin must be placed a divider with two resistors so that + 5V voltage FROM THE EXPANDER to raspteri PICOTO to decrease to + 3V3 volts MISO INPUT TO DISPERSE PICO MUST BE AT + 3V3 volts !!!!
otherwise you risk burning the pin. will burn for sure, don't experiment !!!!
so no other tricks, complicated cables, any electronic tricks, chips, equalizers and others are needed.
as you can see the board was designed and manufactured by me, as well as all the others in the set of the developer of raspberry pico. just put the appropriate software for the SPI expander for the arduino development environment, compile with the button, with the other button you upload the software to the processor and it works. as with arduino boards, so you work with raspberry pico without any problem. and you can use any SPI communication features that you know, can and do. which has worked stably on other processors, you can safely transfer it to raspberry pico to use the old software with the same expander and / or other chips that support SPI communication.
There are different chips on the market from different manufacturers that support the espay standard of data exchange and commands. there are ADC converters, there are memories, there are DAC converters, all kinds of interface integrated circuits for the various communication standards and converters between them. tablets, control systems, touch displays whatever you can guess. widely used, terribly convenient and easy to use and terribly fast and accurate in the exchange of data and commands between chips, which is the most important thing in communication.
for now it's like information, the effects are repeated enough times to see what happens in this hardware configuration and the software for it
this board has 16 LEDs, the other boards are 16 buttons where all the pins on the board are inputs, and the third board has 8 LEDs and 8 buttons, which means that one bus will be set to inputs all 8 pins, the other bus will be 8 outputs will be LEDs, to light with different effects that are given as commands from the buttons on the expander.
the expander sends a command from the button as a logical unit to raspberry pico and depending on which of the eight buttons is pressed the LEDs will perform different effects, combinations and other functions
remember that each LED on the board is set to turn on because all the pins of the expander are set to be outputs. this can trigger any relays, contactors, pneumatic valves, motors, machine that is controlled, whatever you need for your mechanization and automation.