реклама на сайте
подробности

 
 
> с8051а310 & SMBus Slave, SMBus Slave не работает при наличии нескольких Slave
Kolia
сообщение Oct 10 2008, 10:31
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



c8051f310. Почему-то ведомый перестает работать при адресации другого устройства. Т.е. когда ему приходит не его адрес, он переходит в режим передачи и виснет, хотя должен просто ожидать следующего START.

Кто плавал подскажите?

Вот код
Прикрепленные файлы
Прикрепленный файл  I2C_Slave.rar ( 3.63 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
barabek
сообщение Oct 11 2008, 13:13
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Kolia @ Oct 10 2008, 21:31) *
c8051f310. Почему-то ведомый перестает работать при адресации другого устройства. Т.е. когда ему приходит не его адрес, он переходит в режим передачи и виснет, хотя должен просто ожидать следующего START.

Кто плавал подскажите?

Вот код


Я бы Вам предложил сделать так:
Код
      case  SMB_SRADD:

STA = 0;                         // Поставить ИМЕННО сюда!!!

         if((SMB0DAT&0xFE) == SLAVE_ADR)     // Decode address
         {                                   // If the received address matches,

//А стояло ЗДЕСЬ!!!            STA = 0;                         // Clear STA bit

            ACK = 1;                         // ACK the received slave address
            p_in_buf=0;
            if(SMB0DAT&0x01==READ)           // If the transfer is a master READ,
            {
               SMB0DAT=key;                  // Prepare outgoing byte
            }
         }
         else                                // If received slave address does not
         {                                   // match,
            ACK = 0;                         // NACK received address
         }
         break;


По крайней мере я делал примерно так, и в таблице 14.3 даташита про STA написано "Must be cleared by software." Проверьте, должно помочь.
Go to the top of the page
 
+Quote Post
Kolia
сообщение Oct 15 2008, 13:31
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Заработало smile.gif.
Решение нашел здесь: hxxp://www.cygnal.org/ubb/Forum5/HTML/000477.html
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016