atmega8 + atmega8 не работает SPI

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
BenTech
Встал на лапы
Сообщения: 139
Зарегистрирован: Пн авг 18, 2008 22:08:48
Откуда: г. СПб
Контактная информация:

atmega8 + atmega8 не работает SPI

Сообщение BenTech »

Добрый вечер, уважаемые форумчане.

Собрал устройство на atmega8, все хорошо, но столкнулся с проблемой, которую никак не одолеть. Устройство состоит из двух блоков, в каждом по 8ой меге. 1 блок отвечает за LCD второй за 10 семи сегментных индикаторов. Нужно научить их понимать друг друга. В даташите есть исходный пример.
Изображение
но итогом всех мучений получилось подвисание контроллера при попытке что-либо принять. Передать надо всего 3 числа, два трехзначных целых и одно целое четырехзначное. Мог бы, кто-нибудь, поделится куском кода на Си, как это сделать?

И вторая проблемка, индикация динамическая, 10 разрядов. Все работает, но есть нечто, что выносит мне мозг. При подаче питаня включается своеобразный тест на пару секунд, на все управляющие порты подается высокий/низкий уровень, чтобы зажечь все сегменты всех разрядов. Но вот незадача, первые 4-ре не хотят =), однако это не мешает им прекрасно работать после теста уже в динамическом режиме. В протеусе все работает как надо. Куда смотреть? Может ли длинна соединительного шлейфа влиять на это?

Вот ролик работы.
http://dl.dropbox.com/u/49227224/VIDEO0011.mp4
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: atmega8 + atmega8 не работает SPI

Сообщение pyzhman »

Подвисает возможно из-за того, что мастер не отдает.
А что за тест вы там запускаете одному вам известно. Не вижу ни исходников, ни схемы.
Docendo discimus
Аватара пользователя
BenTech
Встал на лапы
Сообщения: 139
Зарегистрирован: Пн авг 18, 2008 22:08:48
Откуда: г. СПб
Контактная информация:

Re: atmega8 + atmega8 не работает SPI

Сообщение BenTech »

Схемы нет как таковой всё из головы, есть только модель в Proteus

Изображение

В реальном устройстве только резисторы дополнительно поставлены на порты второго МК.

Код с даташита 1 в 1. Вызываю инициализацию перед основным циклом, затем в цикле функцию transmit. На slave тоже самое.
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

Re: atmega8 + atmega8 не работает SPI

Сообщение maglev »

Слэйв селект нужно в мастере формировать программно, для слэйва. Т.е. на слэйв, лапку /SS должен прийти выставленный тобой уровень с любой лапки мастера. Пин мастера /SS сам этого не делает, и ты, подозреваю, не делаешь.
В доке всё есть.
Ответить

Вернуться в «AVR»