Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

at24c128+atmega

Непрочитано 04.12.2007, 12:33  
msgen1
Частый гость
 
Регистрация: 22.11.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
msgen1 на пути к лучшему
По умолчанию at24c128+atmega

Пытаюсь записать данные во внешнюю EEPROM 24C128 и прочитать их. Микроконтроллер ATMEGA8535 . кварц 10 мгц. Данные вывожу на монитор по RS 232.
В ответ получаю FF.
Помогите пожалуйста разобраться.
Исходник прилагаю.

Прикрепленный файл: 7117798.rar
Реклама:
msgen1 вне форума  
Непрочитано 04.12.2007, 13:50  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: at24c128+atmega

Сообщение от msgen1
Помогите пожалуйста разобраться.
Исходник прилагаю.
А можно вопрос - зачем вы делаете программный I2C если в меге есть аппаратный TWI?

Прикрепленный файл: 7117798.rar
nml вне форума  
Непрочитано 04.12.2007, 14:58  
msgen1
Частый гость
 
Регистрация: 22.11.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
msgen1 на пути к лучшему
По умолчанию

У меня макетка с Атмегой.
Шина I2c и работа с внешней ЕЕПРОМ мне нужна в дальнейших разработках, для други мк.
msgen1 вне форума  
Непрочитано 06.12.2007, 14:56  
rremix
Временная регистрация
 
Регистрация: 01.11.2006
Сообщений: 66
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rremix на пути к лучшему
По умолчанию

вопрос "контрольный в голову". даже 2:
1. Ждете ли готовности EEPROM после записи (около 5 мс, во время записи она не отвечает на ACK)
2. Корректно ли производятся следующие операции:
START-›EE_I2C_WRITE_ADDR-›DATA_ADDR(2bytes) -›REPEAT_START-›EE_I2C_READ_ADDR-›R.e.a.d.i.n.g....?
В коде разбираться лень, но мне кажеться что с (1) общая напряженка, а (2): адрес на чтение передается раньше, чем REPEAT_START, или я ошибаюсь?
rremix вне форума  
Непрочитано 07.12.2007, 06:54  
msgen1
Частый гость
 
Регистрация: 22.11.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
msgen1 на пути к лучшему
По умолчанию

Вот кусок кода на запись:
TWI_write:
sec
rol TWIdata
rjmp TWI_write_first
TWI_write_bit:
lsl TWIdata
TWI_write_first:
breq TWI_get_ack ; Уходим если запись завершена
sbi DDRC,SCLP
brcc TWI_write_low ; Перейти если флаг переноса очищен
nop ; пауза 1 такт
cbi DDRC,SDAP
rjmp TWI_write_high
TWI_write_low:
sbi DDRC,SDAP
rjmp TWI_write_high
TWI_write_high:
rcall Delay_5mkc ; задержка полупериода
cbi DDRC,SCLP
rcall Delay_5mkc ; задержка полупериода
rjmp TWI_write_bit ; продолжаем запись

TWI_get_ack:
sbi DDRC,SCLP
cbi DDRC,SDAP
rcall Delay_5mkc ; задержка полупериода
cbi DDRC,SCLP
TWI_get_ack_wait:
sbis PINC,SCLP ; Ожидаем высокого уровня
rjmp TWI_get_ack_wait
clc
sbic PINC,SDAP
sec
rcall Delay_5mkc ; задержка полупериода
ret

Как видно задержки существуют.

По поводу последовательности чтения, у меня так:
1.Стартуем девайс
2.указываем адрес для чтения
3.Запись в девайс
4.команда девайсу на чтение
5.репстарт
6.Забираем данные из Дата на просмотр
7.стоп девайс
msgen1 вне форума  
Непрочитано 07.12.2007, 09:25  
nokazus
Вид на жительство
 
Регистрация: 05.09.2006
Сообщений: 359
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nokazus на пути к лучшему
По умолчанию

Сообщение от msgen1
rcall Delay_5mkc ; задержка полупериода
ret

Как видно задержки существуют.

По поводу последовательности чтения, у меня так:
1.Стартуем девайс
2.указываем адрес для чтения
3.Запись в девайс
4.команда девайсу на чтение
5.репстарт
6.Забираем данные из Дата на просмотр
7.стоп девайс
Вы говорите о разных задержках. rremix писал 5мс, а у Вас 5мкс.
Обратите внимание на параметр Write Cycle Time в даташите. Он для at24c128 на 5В состовляет 10 мс. Нужно учитывать это во время записи страницы в EPROM. ASC во время записи байта сигнализирует о том, что данные записаны в буфер EPROM, но не в саму энергонезависимую память. После STOP внутри ИМС начинается запись в EPROM, которая длиться Write Cycle Time. Внимательно читайте даташит.

Удачи.

-- Прилагается рисунок: --

nokazus вне форума  
Непрочитано 07.12.2007, 11:02  
msgen1
Частый гость
 
Регистрация: 22.11.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
msgen1 на пути к лучшему
По умолчанию

Спасибо, я понял ошибку.
TWI_get_ack:
sbi DDRC,SCLP
cbi DDRC,SDAP
rcall Delay_5mkc ; задержка
cbi DDRC,SCLP
TWI_get_ack_wait:
sbis PINC,SCLP ; Ожидаем высокого уровня
rjmp TWI_get_ack_wait
clc
sbic PINC,SDAP
sec
rcall Delay_10ms ; задержка 10ms
ret
Но ничего не изменилось..
msgen1 вне форума  
Непрочитано 09.12.2007, 19:35  
rremix
Временная регистрация
 
Регистрация: 01.11.2006
Сообщений: 66
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rremix на пути к лучшему
По умолчанию

Ув. nokazus! Буду спорть:
Сообщение от nokazus
ASC во время записи байта сигнализирует о том, что данные записаны в буфер EPROM, но не в саму энергонезависимую память
Сообщение от 24Cxxx datasheet
7.0 ACKNOWLEDGE POLLING
Since the device will not acknowledge during a write
cycle, this can be used to determine when the cycle is
complete (This feature can be used to maximize bus
throughput.) Once the stop condition for a write command
has been issued from the master, the device initiates
the internally timed write cycle. ACK polling can
be initiated immediately. This involves the master
sending a start condition, followed by the control byte
for a write command (R/W = 0). If the device is still busy
with the write cycle, then no ACK will be returned.
Send Stop
Таким образом определяется, произошла ли запись в именно в энергонезависимую память. Так можно определять момент завершения при записи больших блоков данных, т.к. задержками неопртимально (нужно давать запасы), а время записи может меняться в зависимости от условий работы (температура, напряжение питания и т.п.)
rremix вне форума  
Непрочитано 10.12.2007, 09:15  
nokazus
Вид на жительство
 
Регистрация: 05.09.2006
Сообщений: 359
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nokazus на пути к лучшему
По умолчанию

rremix
Да тут нечего спорить. Мы говорим о разных вещах. Я о записи байта в буфер микросхемы, а Вы о внутренней записи. Когда байт записывается в ИМС выставляется ACK. После STOP запускается внутренняя запись в EPROM, Write Cykle. Вот тогда Вы можете либо делать задержку, либо опрашивать ACK. Во время же записи байта Вы всегда будете получать ACK.
И еще. Время внутренней записи не зависит от количества байт. Хоть пишите один, хоть 20 - переписывается вся страница целиком.
Удачи.
nokazus вне форума  
Непрочитано 10.12.2007, 10:03  
nokazus
Вид на жительство
 
Регистрация: 05.09.2006
Сообщений: 359
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nokazus на пути к лучшему
По умолчанию

Задержку надо ставить после формирования STOP в цикле записи. Можно записывать данные постранично. Почитайте PAGE WRITE в даташите. Тогда реально получаем выигрыш в быстродействии и экономим ресурс EEPROM. Если записывать последовательные данные 64 раза по 1 байту, то страница будет переписана 64 раза и задержка составит 64 * 10 = 640 мс. Если писать те же 64 байта в режиме страничной записи, то страница будет переписана 1 раз и задержка составит 10 мс.
Удачи.
nokazus вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AtMega АЦП impuls-v Микроконтроллеры, АЦП, память и т.д 19 20.06.2011 20:12
GPS <> ATMega nerozero Микроконтроллеры, АЦП, память и т.д 5 11.12.2008 21:26
Bootloader Atmega LSergM Микроконтроллеры, АЦП, память и т.д 0 23.12.2007 02:32
i2c и atmega ams666 Микроконтроллеры, АЦП, память и т.д 3 29.11.2007 06:12
Atmega,attiny... dosikus Микроконтроллеры, АЦП, память и т.д 38 31.08.2007 21:43


Часовой пояс GMT +4, время: 17:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.