How to set SPI clock to 76.9kHz by using the UNO R3?

TCWORLD:
The hardware SPI, and USART SPI have different hardware, and will behave differently. What I am not sure about is why it would work for one and not the other, which leads me to believe that it is not the atmega chip which is behaving weirdly, but rather the arduino UNO board is having an effect.

There are two differences in the board which could affect SPI performance.
The first is that rather annoyingly, the onboard LED is connected to the SPI clock pin. Its concievable that the power dropped through that LED could have a difference, especially if the Lens is an old TTL type interface which requires much more current from the pin than CMOS logic. This could explain the coupling between the two pins if you are drawing too much current from the clock pin - though this is unlikely.

The second difference is that the UART pins have the usb-serial chip driving them high through what is essentially a 1k resistor. This will theoretically mask the loading effect because a 1k pullup is fairly strong - and alot stronger than the internal 10k pullup.

What I suggest as you gathered is to use the Hardware SPI, and add a 1k pullup to the MISO pin and see if it helps.

Thanks. I read a nice article about pull-up resistor, and also read your comments carefully. Now, I believe I got some basic ideas that could explain the problem I met. I agree with your opinion. Most load connecting on the input pins performs like a capacitor, which will couple with the internal pull-up resistor as a RC filter. The transient time Tau = R * C. The lager the pull-up resistor is, the longer the rise time would be.

BTW, how can I disable the internal pull-up and add a external pull-up?

Thanks a lot. I did learn a lot.