Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CY7C68001 и eeprom
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
TailWind
Кто-нибудь смотрел анализатором?

Какая частота на SCL?
Он читает блочно или побайтно?

Хочу эмулировать eeprom с помощью atTiny15.
Хочу понять, успеет ли микроконтроллер.
А анализатора у меня нет.
Doka
ну так если не будет успевать, то пусть тормозит шину,
ведь насколько я знаю, "правильные" I2C-slave могут "затягивать" SCL, если не успевают отработать на частоте, предлагаемой мастером.

по стандарту поддержка мастером сей фичи - обязательна.
имхо, проектировщики CY7C68001 врядли отступили от стандарта.

ЗЫ: хотя другой стороны затягивать с SW-передачей тож не стоит
- мало ли какой какой таймаут на передачу VID&PID задан :-/
MALLOY2
Конечно успеет, так как по спецификации I2С max 400 кГЦ, + насколько я помню по умолчянию загрузка происходит на частоте 100 кГц (или как то выбирается), вот и думайте успееет тини или нет все зависит от того на какой она частоте работает
TailWind
Tiny работает на 1.6МГц.

Впритык!

А на счёт блочный / по байтный кто-нибудь знает?
TailWind
Если кому интересно

SCL 93kHz (10.8us)
TailWind
Я хочу сделать i2c slave - эмулятор eeprom.
Нужно чтобы цена микросхемы была меньше 1$

В AVR я новичок. Взял tiny15.

Вот что получилось: (Мой Ack в красном кружочке)
Нажмите для просмотра прикрепленного файла

Записал в OSCCAL 0xff, стало лучше:
Нажмите для просмотра прикрепленного файла

Можно ещё как-то ускорить?
Может взять другой микроконтроллер?

Частота SCL 100kHz.

Программа:
Код
.NOLIST  
.include "./inc/tn15def.inc"
.LIST
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.equ SDA=1
.equ SCL=3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.macro wait_SCL_down
  sbic PINB, SCL
  rjmp PC-1
.endmacro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.macro wait_SCL_up
  sbis PINB, SCL
  rjmp PC-1
.endmacro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  LDI r31, 0xff
  OUT OSCCAL, r31  
  
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
  wait_SCL_down
  wait_SCL_up
;
  wait_SCL_down
  sbi DDRB, SDA
  wait_SCL_up
  wait_SCL_down
  cbi DDRB, SDA
;
  rjmp PC
TailWind
Tiny15 выставляет Ack:
Нажмите для просмотра прикрепленного файла

Буду искать что-то другое.
Вот тему открыл: http://electronix.ru/forum/index.php?showtopic=21153
DS
Это самый неудачный микроконтроллер для такой задачи - у него предустановленная тактовая 1.6 Мгц
Выберите другой мелкий, например по этой таблице http://www.atmel.com/dyn/products/param_ta...p;Direction=ASC
defunct
Возьмите Mega48, у нее есть аппаратный I2C (TWI) поддерживает режимы Master/Slave.
Стоит меньше доллара.
TailWind
Табличка классная, спасибо!

Mega48 в моём прайсе 1.2$

Взял пока tiny13 - 1$.
У него внутренний генератор не 1.6МГц, а 9.6Мгц.

Но вот что странно.
Зачем они поменяли местами PORTB-4 и PORTB-3 ????
Это ошибка? Кристалл вообще рабочий?

Вот так работает (на выходе меандр) :
Код
qqq:
  sbi DDRB, 4
  cbi DDRB, 4
  rjmp qqq


А так нет (на выходе глухо):
Код
  sbic PINB, 4
  rjmp PC-1
qqq:
  sbi DDRB, 4
  cbi DDRB, 4
  rjmp qqq


Тот же код, с поправкой на 3-4 работает на tiny15.

Может PINB не равно $16 ???
Или rjmp PC-1 по другому как-то писать?
defunct
Цитата(TailWind @ Sep 16 2006, 11:58) *
Mega48 в моём прайсе 1.2$

Взял пока tiny13 - 1$.

Мда.. вероятно для единичного устройства 0.2$ весомый аргумент в пользу того чтобы отказаться от аппаратного TWI и "маяться" с программным..
Оптом m48 будет в районе 0.7$. t13 ~0.5$.
В розницу m48 еще зимой была 0.95$ в Эфо.
Однако m48 будет работать в режиме Slave безглючно вплоть до 400khz и помимо i2c она еще сможет заниматься чем-то другим, в то время как t13 - нет.
-Al-
Цитата(TailWind @ Sep 11 2006, 14:46) *
Хочу эмулировать eeprom с помощью atTiny15.

А оно вообще надо? blink.gif Если уж так сильно нужен микроконтроллер, то возьмите CY68013A, там 51ый встроен, грузиться может по USB без EEPROM, да и достать его проще...
TailWind
Цитата(defunct @ Sep 16 2006, 18:10) *
Мда.. вероятно для единичного устройства 0.2$ весомый аргумент в пользу того чтобы отказаться от аппаратного TWI и "маяться" с программным..

Устройство мелко серийное.
Отличается низкой ценой.
Приходиться экономить везде.

Ещё и размер имеет значение ;)

Маяться не пришлось. Мне даже было интересно.
Я написал усечённую Verilog модель tiny13.
Отлаживать стало просто ;)

Цитата(defunct @ Sep 16 2006, 18:10) *
Однако m48 будет работать в режиме Slave безглючно вплоть до 400khz и помимо i2c она еще сможет заниматься чем-то другим, в то время как t13 - нет.

Там 100кГц. Я снял картинки анализатором.
Кроме i2c больше ничего не нужно.

Самое важное
Мне всё-таки удалось сделать это на tiny15.
Я затягивал SCL, как это разрешает i2c.
Но в серию я это пустить не могу, уж очень маленький запас по частоте!

Классно было бы оседлать tiny13!
Но что-то не работает PINB !!!!
TailWind
Он мне для защиты нужен.
Эмулирую eeprom чтобы лишний корпус убрать и два раза не прошивать.

В CY68013A программа лежит во внешней памяти, её легко скопировать.
-Al-
Цитата(TailWind @ Sep 17 2006, 00:44) *
Он мне для защиты нужен.
Эмулирую eeprom чтобы лишний корпус убрать и два раза не прошивать.

В CY68013A программа лежит во внешней памяти, её легко скопировать.

IMHO очень быстро эту защиту сломают, если конечно оно кому-нибудь будет нужно
TailWind
2 Модератор

Лучше удали тему совсем!

Чем она будет такой кашей.

Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.