Например TDA7294

Форум РадиоКот • Просмотр темы - помогите понять 93с46 на сетевухе.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июл 15, 2025 14:42:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: помогите понять 93с46 на сетевухе.
СообщениеДобавлено: Пт янв 20, 2006 21:59:02 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Есть сетевуха ISA NE2000 на чипе UM9008F, нашёл её описание в DM9008F.pdf где-то в гугле, на этой сетевухе напаян ЕЕПРОМ 94C46.

У самой сетевухи есть команда работы с еепром "на прямую" иначе никак. Есть команда с параметром, биты параметра есть НОГИ самой 93c46, т.е. одной записью в этот регистр я изменяю значения на ногах 93с46.
Теперь лезу в даташит 93c46 и ищу как же с него читать.
нахожу чт-то типа: 110{address[7]}{data[8]}. Ну в даташите вроде описано как и чё.
Тока у меня не получается :) Допустим я правильно понял работу с сетевухой (ну инициализацию она проходит с горем пополам). Помогите с 93с46.
У неё есть Select, Clock, DataIn и DataOut.
Чтобы что-то прочитать я должен:
- Выставить S в 1 на всю протяжённость операции.
- Менять значение C с каждым "шагом".
- Передать туда 110 по O
- передать 7 бит смещения (128 байт) по тому же О
- после передачи 7ого бита адреса прочиать 0 с I не меняя C
- прочитать с I 8 бит как значение по данному смещению опять же меняя C. В каком положении должен быть O?
- опустить S в ноль.
Всё. И так 127 раз с увеличением смещения.
Это верно?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 20, 2006 22:24:02 
Говорящий с текстолитом
Аватар пользователя

Карма: 5
Рейтинг сообщений: 4
Зарегистрирован: Пн авг 22, 2005 21:02:22
Сообщений: 1529
Откуда: Питер
Рейтинг сообщения: 0
Так. Во-первых, я так понимаю, что Клок должен меняться два раза при каждой операции. То есть: в момент выставления данных С=0, выставили данные, подождпли, делаем С=1. Подождали, делаем С=0, меняем данные.

Потом я не очень понимаю, почему мы читаем вход а подаем на выход?

_________________
Лучше быть первым в деревне, чем вторым в Риме


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 20, 2006 22:58:36 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
С млей строны это оут :) В смысле со стороны сетевухи :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 08:27:09 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
никто не в курсе почему в таблице параметров в даташите есть ещё 2 столбика с адресом и датой?


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Не получается блин!
СообщениеДобавлено: Сб янв 21, 2006 08:45:23 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Ничего не выходит. Всё время 0 получаю.
unsigned char cr;
Код:
for (unsigned char c = 0; c < 128; c++) {
   cr= 0x88; //Выставляем SLECKT И прочее
   cr |= _BV(1);
   WriteRTL(CONFIGD,cr);
    cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
   WriteRTL(CONFIGD,cr);

    cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
   WriteRTL(CONFIGD,cr);
   cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
   WriteRTL(CONFIGD,cr);
   

   cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)) & ~_BV(1); //Инвентируем CLOCK и снимаем DATAOUT
   WriteRTL(CONFIGD,cr);
   cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
   WriteRTL(CONFIGD,cr);

   for (int a = 0; a < 7; a++) {
      cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
      //Так сложно для отладки
      if (c & _BV(a)) {
         cr |= _BV(1);
         printf("1");
      } else {
         cr &= ~_BV(1);
         printf("0");
      }
      WriteRTL(CONFIGD,cr);
      cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
      WriteRTL(CONFIGD,cr);
   }
   printf(" ");
   unsigned char s=0x0;
   s |= (ReadRTL(CONFIGD) & 1);
   for (int a = 0; a < 8; a++) {
      cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)) & ~_BV(1) & ~_BV(0); //Инвентируем CLOCK и снимаем DATA_IN
      WriteRTL(CONFIGD,cr);
      cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
      WriteRTL(CONFIGD,cr);
      if (ReadRTL(CONFIGD) & 1) {
         s |= _BV(a+1); 
         printf("1");
      } else {
         printf("0");
      };
   }
   printf (" BYTE: 0x%x\n",s);
   cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)) & ~_BV(3) & ~_BV(1) & ~_BV(0); //Инвентируем CLOCK и снимаем DATA_IN
   WriteRTL(CONFIGD,cr);
   cr = (cr & ~_BV(2)) | ((~ (cr & _BV(2)) ) & _BV(2)); //Инвентируем CLOCK
   WriteRTL(CONFIGD,cr);
//Завершаем операцию
   WriteRTL(CONFIGD,0);
}


на выходе получается что-то вроде :
Цитата:
0011111 00000000 BYTE: 0x0
1011111 00000000 BYTE: 0x0
0111111 00000000 BYTE: 0x0
1111111 00000000 BYTE: 0x0

Хочу заметить, что DATA_IN и DATA_OUT это с моей стороны, со стороны 93c46 они наоборот. Для меня OUT для 93c46 - IN.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 09:18:04 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
"93C46 работает в режиме 16-и битной адресации если ножка 7 (ORG) не подключена к лог. нулю."
Как это понимать. Если она в воздухе весит это как?


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 10:26:47 
Spider писал(а):
"93C46 работает в режиме 16-и битной адресации если ножка 7 (ORG) не подключена к лог. нулю."
Как это понимать. Если она в воздухе весит это как?


Подозреваю это надо понимать так: если не лог 0, значит лог 1, значит работаем в 16 бит. адресации. Если висит в воздухе - значит лог 1 на ней нет - значит в 16 бит. адресации не работаем. Но возможно что я не прав.


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 13:30:55 
Говорящий с текстолитом
Аватар пользователя

Карма: 5
Рейтинг сообщений: 4
Зарегистрирован: Пн авг 22, 2005 21:02:22
Сообщений: 1529
Откуда: Питер
Рейтинг сообщения: 0
Не, просто когда нога висит в воздухе, вообще нельзя быть уверенным, какой на ней уровень. Может быть как 1 так и 0. Зависит от расположения звезд, направления ветра и политической обстановки на ближнем Кавказе. :))

_________________
Лучше быть первым в деревне, чем вторым в Риме


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 15:28:53 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Итак. Значит надо её куда-то прислюнить? Если на хемлю это 0, а если на питание 1? Я правильно понял?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 15:29:56 
Говорящий с текстолитом
Аватар пользователя

Карма: 5
Рейтинг сообщений: 4
Зарегистрирован: Пн авг 22, 2005 21:02:22
Сообщений: 1529
Откуда: Питер
Рейтинг сообщения: 0
Прална мыслите, товарищ :)

_________________
Лучше быть первым в деревне, чем вторым в Риме


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 16:48:28 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Странно. Ну дык на сетевухе оно никуда не прислюнено. Значит работает :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 21, 2006 19:08:23 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Господа! Вынул я 93с46 из кроватки на сетевухе и воткнул туда 3 диода (GND->DataOut,Clock,Select) "играясь" с комангдами сесетевухи (CONFIGD) удаётся зажигать и тушить диоды. Всё клёва, т.е. команды до микрухи пои доходят (надо пологать) Теперь немного о 4ой ноге, та что DataIn (со стороны сетевухи), что бы я туда ни писал она всегда 0 (и правильно, ведь от туда тока читать). Теперь мне моя логика подсказывает, что если я замкну на эту ногу +5V (выставлю туда лог. 1) и буду читать значения с регистра CONFIGD, то должен получать 1 в младшем бите. Ну как сказать... НЕ ПОЛУЧАЮ! Получаю только то что последним туда записал :( если записал туда 0, то и читаю 0. Как читать-то?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: thrashes и гости: 12


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y