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

 
 
> i2c: программная реализация без PU, помогите пожалуйста! срочно надо!
junoSynthesizer
сообщение Apr 2 2007, 20:02
Сообщение #1


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

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



итак, задача:
есть готовая схема, расчитанная под 51 проц. надо её пересадить на 8515 -> надо написать драйвер и2ц для общения с часиками 1307 БЕЗ использования подтягивающего резистора на линии СДА и СЦЛ.

на 51м работало, на авр - никак не могу завести, а срочно надо. готового нигде не нашёл, попытался написать сам. видимо где-то туплю, подскажите где:

Код
void i2c_start()
{
    SDA_port = 1;
    SCL_port = 1;
    
    I2CDELAY();
    
    SDA_ddr = 1;
    SDA_port = 0;
    
    I2CDELAY();

    SCL_ddr = 1;
    SCL_port = 0;
    
    I2CDELAY();
}

ubyte i2c_wb(ubyte i2c_data)
{
    ubyte i = 8, acknowledge = 0, tmp =  0;
    
    do
    {
        tmp = i2c_data;
        
        SDA_port = (ubyte)(tmp & _0b10000000);
        
        i2c_data <<= 1;
        
        I2CDELAY();
        
        SCL_port = 1;
        
        I2CDELAY();
        
        SCL_port = 0;
        
        I2CDELAY();
    }
    while (--i);
    
    SDA_ddr  = 0;
    SDA_port = 1;
    
    I2CDELAY();
    
    SCL_port = 1;
    
    I2CDELAY();
    
    if (!SDA_pin)
    {
        acknowledge = 1;
        *left_7seg = 0xac; // вывожу на индикатор для проверки, пришло ли ацк
    }
    
    SCL_port = 0;
    
    I2CDELAY();
    
    SDA_ddr  = 1;
    
    return acknowledge;
}


после сброса проца выполняю старт и пишу управляющий байт... АЦК не приходит. пишу в ИАРе.
help.gif


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Apr 3 2007, 00:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Можно и нужно будет переписать. (Никому нельзя доверять. Даже западникам. smile.gif )

Но на самом деле может приграничная гонка и есть - надо посмотреть, но без мультимастера и при одном общем питании - это не должно привести к выходу из строя микросхемы и к ухудшению скорости. Повторюсь, при своевременном освобождении шины.

А вообще конечно надо просто 0/обрыв давать да и всё.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 3 2007, 00:16
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(SasaVitebsk @ Apr 3 2007, 01:06) *
Можно и нужно будет переписать. (Никому нельзя доверять. Даже западникам. smile.gif )

Но на самом деле может приграничная гонка и есть - надо посмотреть, но без мультимастера и при одном общем питании - это не должно привести к выходу из строя микросхемы и к ухудшению скорости. Повторюсь, при своевременном освобождении шины.

А вообще конечно надо просто 0/обрыв давать да и всё.

Это еще не "гонки".
Гонки начинаются когда Вы пытаетесь прикрутить SAM7 и ARV по i2c,
особенно если Вы ТОЧНО знаете как должен работать i2c smile.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Apr 3 2007, 00:20
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(singlskv @ Apr 3 2007, 00:16) *
Это еще не "гонки".
Гонки начинаются когда Вы пытаетесь прикрутить SAM7 и ARV по i2c,
особенно если Вы ТОЧНО знаете как должен работать i2c smile.gif


Да сдохнет ваш SAM7 совсем от моего AVR. tongue.gif Ваши 4ма против моих 20. Даже третьего уровня не появится. cool.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:41
Рейтинг@Mail.ru


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