I am guessing that this is a hardware interface question :-? .......
but I am trying to use SPI to talk to the 23K256 and have been playing around with using various pins as the chip select.
so far I can only get it to work using pins 10 and 9 as the chip select pin. All of the other pins do not seem to work as the chip select. Does anyone know why this is the case?
Also in the SPI library I got from the playground it says:
Note, the AVR lets you use other pin to select a slave (SS) but you must still set the SS pin #10 to either output or input with a pull up resistor!
which I did have to do when using pin 9. Why is this the case?
The AtMega's have a special feature where the SS pin can be used to switch between master and slave operation on the run. This feature is enabled when SPI is configured as master and SS is set to direction input. In this configuration, SPI will switch between master mode (SS high) and slave mode (SS low) based on the logic input level of the SS pin.
If you configure SS as an output pin however, its operation is unrelated to SPI and can be used for whatever purpose you see fit. In this configuration (master + SS set to output) you can choose to use SS or any other digital IO pin to select your peripherals. Set SS to direction output (before initializing SPI) and you should be ok.
I still don't understand why it would work on pin 9 before when I did not modify the library?
It will work (with SS set to direction input) as long as SS reads high. This can be either from activating the internal pullup, with an external pullup or if SS is unconnected and floating high by chance.