На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > STM32L + ENC28J60-H (Olimex)
      Всем привет!
      Тоже не могу завести ENC28J60-H.
      SPI настроил, функции прописал (использовал статью http://we.easyelectronics.ru/electro-an ... 28j60.html)
      Проблема заключается в следующем:
      Есть подряд идущие функции: чтение ECON1, запись в ECON1 и опять чтение. Если их через дебаггер последовательно проходить, то все считывается нормально. Если установить брейкпоинт на следующей за ними функциями, то читается только 0x00.
      Создается впечатление, что контроллеру не хватает времени обработать полученные команды.
      Снизил скорость до 100-150 кГц, но проблему это не исправило.
      Добавил после каждой отправки данных по SPI задержку, стало работать. Но, как по мне, не комильфо так делать. Тем более по документации у ENC скорость 20-25 МГц.
      Не знаете, в чем может быть проблема?

      Gопробовал дальше пойти:
      Взял функцию инициализации, как в той статье. После ее вызова считываю регистр ECON1. Но там опять какой-то мусор. Даже не смотря на то, что задержки остались.
      Однако, при пошаговом проходе все нормально.
        Ссылка не передалась
            Цитата SteAlzzer @
            Создается впечатление, что контроллеру не хватает времени обработать полученные команды.

            А ты апноты к ENC внимательно читал? Насчет скорости SPI? Мне пришлось с мегагерца (ЕМНИП) 877 уходить на четыре на 452 контроллерах. Иначе чтение работало нестабильно (то читались нули из регистров, то норма). А уровень PHY был вообще недосягаем... :D
              medved_68, а апноты - это, простите, что?
              По документации, скорость SPI 10Mb/s, т.е. вроде где-то 1МГц. Сейчас у меня скорость SPI приблизительно 7.8 кГц. Хочу сказать, что в два раза и ее уменьшал, но картина все таже. Очень похожа на вашу - либо нули, либо норм. И PHY так же недосягаем)
                Цитата SteAlzzer @
                medved_68, а апноты - это, простите, что?

                AppNote или официальные "недоработки" разработчиков, зарегистрированные в errate файлах. Которые, как билдинги, могут появляться и пропадать от серии к серии. В зависимости от предпринятых действий по исправлению. :D Так вот, в апнотах разработчики уведомляют пользователей, как им "дальше жить" с выявленным багом в их серии. Т.е. как попробовать обойти ошибку разработки. :lol:
                Цитата SteAlzzer @
                По документации, скорость SPI 10Mb/s, т.е. вроде где-то 1МГц. Сейчас у меня скорость SPI приблизительно 7.8 кГц.

                Ну вот тебе официалка из Errata ENC28J60.pdf:
                Цитата
                1. Module: MAC Interface
                When the SPI clock from the host microcontroller
                is run at frequencies of less than 8 MHz, reading or
                writing to the MAC registers may be unreliable.
                Work around
                Two work arounds are presented; others may be
                available.
                1. Run the SPI at frequencies of at least 8 MHz.
                2. Generate an SPI clock of 25/2 (12.5 MHz),
                25/3 (8.333 MHz), 25/4 (6.25 MHz),
                25/5 (5 MHz), etc., and synchronize with the
                25 MHz clock entering OSC1 on the
                ENC28J60. This could potentially be accomplished
                by feeding the same 25 MHz clock into
                the ENC28J60 and host controller. Alternatively,
                the host controller could potentially be
                clocked off of the CLKOUT output of the
                ENC28J60.
                Важное я тебе выделил. :D Я на это налетел со всего размаху, когда перешел к практической части и стал пробовать читать буфер приема. :D Так что.... :-?

                Добавлено
                Цитата medved_68 @
                уходить на четыре на 452

                Пардон, на десятку на 452 контроллере. :scratch: Память, она такая, а сейчас поднял архив и.... :D
                  medved_68, спасибо большое! Вроде когда листал ерату, не заметил этого. Ну сам виноват)
                  Сейчас попробуем поднять частоту!
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0226 ]   [ 15 queries used ]   [ Generated: 1.05.24, 11:02 GMT ]