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

 
 
> 51й + I2C EEPROM, В чем моя ошибка?
amost
сообщение Jan 15 2007, 15:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 28-10-05
Из: Ukraine, Khmelnitsky
Пользователь №: 10 246



Здравствуйте
совсем недавно начал работать с контроллерами, "классический" первый проэкт "бегущая строка", ну дальше в том же духе...
в своей конструкции применяю EEPROM типа 24cXX. насколько правильно я понял из буржуйкого даташита, микруха эта, после каждого принятого байта (в направлении от мастера к EEPROM) должна выдавать сигнал подтверждения приема (АСК). Не имея достаточного практического опыта я проверяю сигнал подтверждения следующим образом: на линию данных вывожу "1" на протяжении 9-го импульса синхронизации, после чего считываю состояние этой линии, и проверяю на наличие "1". расчет сделан на то (возможно это и ошибочно), что если EEPROM выдает "0", т.е. не подтверждает прием, соответственно к "0" притягивается и линия данных, что сигнализирует контроллеру об отсутствии подтверждения. в результате получаю зависание (зацикливание) контроллера.
интересно и то, что зависание вообще не происходит в подпрограммах чтения (хотя нижеследующая процедура там используется тоже, для передачи контрольного байта чтения), а на записи виснет сразу после второго вызова. убираю выделенные жирным шрифтом команды - все работает. понимаю, можно оставить и так, но вопрос отчего же такое случается все равно остается...

Код
byte_trans:
    mov bt_count,#8;8 bits - кол-во передаваемых бит
x16:    
    rlc a
    mov sda,c
    nop;готовность данных
    nop
    setb scl
    nop
    nop
    nop
    nop
    nop
    clr scl
    djnz bt_count,x16
x17:    
    setb sda;ACKNOWLEDGE
    nop
    nop
    nop
    nop
    nop
    setb scl
    nop
    nop
    nop
    nop
agn:
    [b]mov c,sda        ;анализ флага подтверждения (АСК) от EEPROM
    jnc agn[/b]    
    clr scl
ret


Сообщение отредактировал amost - Jan 15 2007, 15:40
Go to the top of the page
 
+Quote Post



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

 


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


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