Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: W3150A - два вопроса про прерывания
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
Сергей Борщ
первый собственно в теме - правильно ли я понял, что после чтения SxIR вывод прерывания будет низким еще 2 мс?
Цитата
IR (Interrupt Register)
The /INT signal retain low as long as any unmasked signal is set, and will not go high until all unmasked bits in this Register have been cleared.

Sx_INT
Occurrence of Socket x Socket Interrupt
It is set in case that interrupt occurs at the socket x. This bit will be automatically cleared when Sx_IR is cleared to 0x00.

Sn_IR (Socket n Interrupt Register)
The values are cleared by reading this register. Howerver, it takes 2ms to clear register after reading internally, and you may wait about 2ms after reading this register.
Получается, попав в обработчик прерывания я должен на 2 мс запрещать это прерывание?

Второй вопрос - в примерах передачи количество свободного места мониторится периодическим чтением Sx_TX_FSR. И если места не хватает, то висим в цикле постоянного чтения этого регистра пока предыдущий пакет не уйдет и место не освободится. Правильно ли я понял, что по прерываниям эту операцию не сделать никак?
GL_basik
Цитата(Сергей Борщ @ Jun 1 2007, 11:03) *
первый собственно в теме - правильно ли я понял, что после чтения SxIR вывод прерывания будет низким еще 2 мс?Получается, попав в обработчик прерывания я должен на 2 мс запрещать это прерывание?

Совершенно верно. Поэтому удобней и надежней делать прерывание по фронту.
Цитата(Сергей Борщ @ Jun 1 2007, 11:03) *
Второй вопрос - в примерах передачи количество свободного места мониторится периодическим чтением Sx_TX_FSR. И если места не хватает, то висим в цикле постоянного чтения этого регистра пока предыдущий пакет не уйдет и место не освободится. Правильно ли я понял, что по прерываниям эту операцию не сделать никак?

В W3150A+ добавлено прервание SEND_OK, 4-ый бит в регистре Sn_IR
Код
4      SEND_OK           It is set as ‘1’ if send operation is completed.**
Сергей Борщ
Цитата(GL_basik @ Jul 3 2007, 12:53) *
Совершенно верно. Поэтому удобней и надежней делать прерывание по фронту.
По фронту можно пропустить прерывание, возникшее с момента входа до сброса флага прерывания в процессоре. Хотя, кажется будет работать - ведь регистры читаются после того, как флаг сброшен.
Цитата(GL_basik @ Jul 3 2007, 12:53) *
В W3150A+ добавлено прервание SEND_OK, 4-ый бит в регистре Sn_IR
Угу. Я как раз делаю следующую итерацию - перехожу на W5100.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.