• There are different types of support:

    • hardware (only), also called appliances - hardware specific arrangements that predefine certain pins' function and registers/logic/micro program behind that does the work without (over)loading the CPU and even less the application code
    • software, where everything is done in software w/ almost just any pin and driven by the CPU.

    As you see, latter one leaves less horse power for the application because it is shared with functions that usually are implemented in hardware. Corollary, speed is the most impacted... so baud rates are usually much lower.

    If - according to datasheet - a device supports up to 3 SPI - it has 3 predefined SPI appliances that can be used, and the choices of pins is limited to what these 3 SPI hardware implemented appliances define to be usable. Usually not all pins are connectable to all possible appliances. It is like a big old telephone switchboard where with patch/switch cables the connection is crated on request, for example, pins that serve multiple functions, like digital and analog reading are connected software controlled to either appliances for these functions:

    • digital: to a 1 bit register that can be written to and read from by software
    • analog: to a AD converter that on conversion puts the result into a multi-bit register (8...12..16), that then also can be read from by software. The conversion process though does not take any CPU resources; it is done by the hardware built-in AD converter 'appliance'.
About

Avatar for allObjects @allObjects started