LINUX.ORG.RU

Не работает SPI на atmega8a

 


0

1

Пытаюсь завести SPI на atmega8a. Собираю на макетке схему: 2 atmeag8a, одна - master, другая - slave. Соединяю PB3, PB4, PB5 у микросхем друг с другом (PB3 первой микросхемы с PB3 второй и т.п.). У микросхемы master соединяю PB2 с питанием, у микросхемы slave соединяю PB2 с землей. К обоим микросхемам подключаю uart. Кварц - 20Mhz.

Заливаю такие прошивки: https://gist.github.com/ft232r/d9dde7202607cd5e88640058eebfe5ed.

Запускаю программу, получаю такие логи: https://gist.github.com/ft232r/0641b0eb777038b6d230905182283a1a

Подскажите пожалуйста, что я делаю не так?



Последнее исправление: ft232r (всего исправлений: 1)

Соединяю PD3, PD4, PD5 у микросхем друг с другом (PD3 первой микросхемы с PD3 второй и т.п.).

Это.

У восьмой атмеги SPI на порту В. Так что нужно соединять РВ3 одндой с РВ4 другой. РВ5 с РВ5. Ну и, если не изменяет память, РВ2 у мастера нужно подтягивать к земле, а у раба к питанию.
Либо ты жирный троль, либо ... Ну ты сам понял.

baldman88
()
Ответ на: комментарий от baldman88

про PD - очепятался, PB конечно же, а вот

РВ3 одндой с РВ4 другой

точно нужно MISO соединять с MOSI? Т.е. не MISO - MISO, а именно MISO - MOSI?

по поводу к земле и питанию: http://microsin.net/programming/avr/avr151-setup-and-use-spi.html вроде у master к питанию, а у slave к земле

ft232r
() автор топика
Ответ на: комментарий от baldman88

Левое устройство сконфигурировано как master, а правое как slave. Сигналы MISO, MOSI и SCK подключены к соответствующим сигналам противоположного устройства (MISO-MISO, MOSI-MOSI, SCK-SCK)

Все же ты ошибаешься. В uart RX и TX меняются местами потому что там нет master/slave и названия проводов говорят что по одному проводу данные передаются, а по другому - получаются, все логично. А в SPI явно сказано что по этому поводу master передает данные, поэтому он MOSI, а по другому master получает данные, поэтому он MISO и каждое устройство знает кто оно master или slave, поэтому и провода должны подключаться MISO-MISO, MOSI-MOSI.

ft232r
() автор топика
Ответ на: комментарий от baldman88

так в чем еще может быть косяк?

все что мог проверить я проверил:

  • SPI точно работает у обоих чипов (потому что иначе бы оно не программировалось)
  • скорость поставил минимальную
  • после передачи одного байта жду секунду, т.е. время на то, чтобы отправить дебаг сообщение по uart есть

попробую еще посмотреть логическим анализатором что там ходит

ft232r
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.