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

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

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

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

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

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

Поиск схем. Делимся схемами Если вы ищете схему телевизора, видеомагнитофона, игровой приставки - этот раздел для вас...

 
Опции темы
Непрочитано 21.01.2008, 14:05  
jt777
Прохожий
 
Регистрация: 02.12.2006
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jt777 на пути к лучшему
По умолчанию Совместное использование ATMega128L и CS8900A-CQ3

Подключил CS8900A к ATMega128, написал функции чтения/записи для работы с CS8900A, все работает нормально, удалось передать кадр в сеть и удачно получить на своем компьютере. Начал писать функции для того что бы прочитать принятый кадр из CS8900A, тут та и начались проблемы. Начинаю пинговать свое устройство, читаю регистр статуса RxEvent, устанавливается флаг RxOK и флаг Broadcast, сигнализирующий что принят широковещательный запрос. Читаю RxStatus Word, тоже нормально считывается (читаю с порта 0), а дальше, когда начинаю считывать с того же порта 0 длину принятого кадра считывается 0. Читаю как положено сначала старший байт потом младший. Пробовал обращаться непосредственно к регистру RxLength, через указатель регистра тоже самое. Может кто с подобной проблемой сталкивался подскажите пожалуйста. Ниже привожу функцию которой пытаюсь прочитать данные из порта 0:

#define dir_data DDRD //направление шины данных
#define read_data PIND //Для чтения данных с шины данных
#define IOR (0b00010000)
#define IOW (0b00100000)

unsigned int ReadHB1ST8900(unsigned char Address)
{
unsigned int ReturnValue;
ReturnValue=0;
data = 0;
dir_data = 0x00; // настройка порта данный на ввод
addr = IOR | IOW | (Address + 1); // установка адреса. Старший байт
addr &= ~IOR; // строб чтения
delay_us(100);
ReturnValue = read_data;// читаю данные с шины данных
delay_us(10);
addr = IOR | IOW | Address; // установка адреса. Младший байт
ReturnValue =ReturnValue‹‹8; // сдвиг влево
addr &= ~IOR; // строб чтения
delay_us(100);
ReturnValue |= read_data; // читаю данные с шины данных. Получение младшего байта
delay_us(10);
addr |= IOR; // Завершаю процедуру чтения
dir_data = 0xff; // настройка порта данный на вывод

return ReturnValue;
}
если я сначала читаю RxEvent и потом RxStatus, то в RxStatus как и положено точное значение RxEvent, затем я EEPROM меги читаю принитый фрейм, причем тоже читается и считавается он через 2 байта. т.е. читается 2 байта как положено принятого фрейма потом пропуск 2 принятых байт снова 2 байта и т.д. И, что еще интересно читаю я не как написано с Resive/Transmit Data (Port 0) потом с Port 1 и снова Port0 и т.д., а читается с начала с адреса 0002h (Port1), потом 0001h (Port0), снова 0001h и 0000h. По другому если читаю 0001h потом 0000h, 0001h и т.д. считывает 0. Я запутался окончательно.
Начал смотреть аппартную часть, и возникло сомнение куда подключать пин SBHE, в одних схемах он подключен к питанию в дргих посажен на землю. В моем случае он подключен к питанию. Подскажите кто знает наверняка куда его сажать?
Помогите как прочитать принятый фрэйм?!!!!!!
Реклама:
jt777 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ШИМ на AtMega128L-8 GunFighter Микроконтроллеры, АЦП, память и т.д 5 05.05.2009 00:03
Использование DS1820 ArtUrl1986 Микроконтроллеры, АЦП, память и т.д 16 19.04.2009 22:06
Использование дисплея 2*16 Boris_Britva Микроконтроллеры, АЦП, память и т.д 4 20.08.2008 15:03
Использование Speex Max_engii Proteus, KiCAD и другие ECAD 0 20.03.2007 18:01
использование S/PDIF vitaf Цифровые сигнальные процессоры 3 24.02.2007 20:17


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot