Перейти к содержанию
    

rain1975

Участник
  • Постов

    104
  • Зарегистрирован

  • Посещение

Весь контент rain1975


  1. Во-первых UART имеет два однонаправленных провода в разных направлениях. Во-вторых SN74LVC2T45 имеет ножку для переключения направления. да, т.е либо A->B, либо B->A. А нужно, A1->B1 и B2->A2 (стационарно), в этом смысле ADG3304 более предпочтительна, там 4 линии, мне было бы достаточно две.
  2. При согласовании 3.3в и 5в ставлю ADG3304 да, хорошая штука, жаль что на на две линии нет.
  3. там два однонаправленных преобразования, а хотелось бы что бы в двух направлениях, может таких не делают?
  4. Наверное это не очень правильно...один процессор уже сгорел, Опыты ставить уже не могу. Думаю развязка между процессором и внешним устройством не помешала бы. Но не могу найти микросхему с преобразованием сразу в двух направлениях.
  5. Подскажите микросхемы для согласования уровней. Необходимо согласовать UART Rx, Tx 3-х вольтового и 5-ти вольтового интерфейса. Т.е всего две линии, хотелось бы найти SMD компонент, желательн на две линии, чтобы небыло избыточности и основное доступный, чтобы можно было легко добыть его в магазине.
  6. UART3 & ep9307

    С таймером вопрос снят.
  7. UART3 & ep9307

    Оно возникает только если FIFO не пуст. Работает нормально. Выходит если мне надо определить момент когда в течении какого то времени не пришли байты (нет ответа от устройства) то оно мне не поможет. Такую ситуацию не разрулить в одном INT_UART3. И второй вопрос: не вызывается таймерное прерывание, что не так настроил? ldr r0, =1000//500ms ldr r1, =0x80810000 //Timer1Load str r0, [r1] ldr r0, =(1<<7/*ENABLE*/)|(1<<6/*MODE*/)|(0<<3/*CLKSRL*/) ldr r1, =0x80810008 //Timer1Control str r0, [r1] ... VIC1IntEnable = (1<<VIC1_AACINTR)|(1<<VIC1_TC1OI); // Enable AC97 interrupt, TC1OI interrupt. ... VIC1VectCntl1=0x20|VIC1_TC1OI; // Enable vector interrupt. VIC1VectAddr1=(unsigned long)InterruptHandler;//interrupt handler ... __ARMLIB_enableIRQ(); void irq_handler(void) __attribute__ ((interrupt ("IRQ"))) { unsigned long vector1=VIC1VectAddr,vector2=VIC2VectAddr; if(vector1) { (*((void(*)(void))vector1))();// Call vectored interrupt function. VIC1VectAddr=0; // Clear interrupt in VIC. } if(vector2) { (*((void(*)(void))vector2))();// Call vectored interrupt function. VIC2VectAddr=0; // Clear interrupt in VIC. } } void InterruptHandler(void) { ... Timer1Clear=0; //??? } и нужно сбрасывать прерывание (Timer1Clear=0)
  8. UART3 & ep9307

    recive interrupt заработал, недозаполнялся FIFO. А почему не возникает прерывание recive timeout (бит RTIE в UART3Ctrl регистре), если в порт ничего не приходит?
  9. UART3 & ep9307

    Да, понятно. Но почему прерывание не вызывается если и RIE выставлен в UART3Ctrl? Байты в UART3Data приходят - перывания нет.
  10. UART3 & ep9307

    Какие то запутки с прерыванием INT_UART3. Постояно вызывается с флагом TIS в UART3IntIDIntClr регистре, видимо чего то не сбрасываю...чего?
  11. EP9307 & SDRAM на 100Mhz

    А остальные 32 разряда DQ32-DQ63 на D0-D31 пущены? один клок на 16 микросхем .. как здесь когда-то говорилось "у него пупок развяжется". Обязательно нужен буфер. При моделирование в своем устройстве на 4 микросхем время нарастания/спада на адресных линий у меня получалось ~2.7 ns. И еле-еле влезает в 100mhz, непонятно как в жизни будет, плату пока ещё не сделал. PS: А если не секрет, то зачем так сложно? У EP9135 не такие шустрые выходные драйверы чтобы с такой нагрузкой на таких скоростях работать, по крайне мере по IBIS модели. PPS: Ну если очень хочется модуль то может в сторону SO-DIMM посмотреть, ведь они идут с и 4 микросхемами.. Да DQ32-DQ63 запаралелелены на D0-D31, про буфер я то и не подумал...
  12. EP9307 & SDRAM на 100Mhz

    Да но DIMM168 имеет 64 разрядную шину, остальное в воздухе висит или спаяно? Но смущает больше клок, ведь в DIMM идут 4 клока (CK0-CK3) от буфера клоков, и максимум на 1 линию клока 5 микросхем (для сучая с ECC и 4 без ECC) Как у Вас SDCLK от EP9307 идет к DIMM? Заведён только на ону линию у DIMM? DIMM128Mb (16 микросхем) без ECC, клок завел на все четыре CK0-3, каждая четвёрка микросхем выбирается соответствующим nSDCS[0:3] и их выводы (32 разряда) заведены на 32-разрядную шину процессора. Использовано всё, ничего в воздухе не висит.
  13. EP9307 & SDRAM на 100Mhz

    Может тогда стоит посмотреть разводку PCB на предмет signal integrity.. А то так можно ооочень долго подбирать, тыкая в небо.. 2 Andrei У вас 2 SDRAM и на шине кроме нее весит Flash, что-то ещё? Плата разведена под стандартный модуль SDRAM DIMM168 (соотвественно получается на каждом nSDCS[0:3] четыре микросхемы х8), ещё на шине висит flash, sram и логика.
  14. EP9307 & SDRAM на 100Mhz

    2 Andrei.... Вот не пойму а конденсатор там как включён? Это у вас паралельная RC у ноги SDRAM? конденсатор фильтруюющий 21 pF на землю у выхода SDCLK рядом с сопротивлением. Эксперимент с сопротислением R0 и без ёмкости поставил сразу - не помогло. Есть впечатление, что без ёмкомсти всё похуже становится. Возможности посмотреть пока сигнал осцилофграфом нет.
  15. EP9307 & SDRAM на 100Mhz

    Мне тоже кажется что железо, подозреваю согласующее сопротивление и ёмкость расположенные у выхода SDCLK. Есть какие то рекомендации по номиналам?
  16. EP9307 & SDRAM на 100Mhz

    Не могу никак запустить программу на 100Mhz. На 25Mhz код работает стабильно, на 50Mhz иногда глючит, а на 100Mhz ни в какую не запускается. Программу запускаю из SDRAM, регистры SDRAM Controller'а настраиваю дебугерным скриптом.
  17. Кеш на ep93xx

    как влияет оптимизация при включённых кешах на скорость работы?
  18. а nSRST почему то не генерируется!
  19. Есть сомнения по поводу работы общего ресета (nSRST) через такой wiggler в CrossWorks, создается впечатлени что на LPT-разъёме перепутаны контакты 2 и 6. У кого нибудь были проблемы с генерацией nSRST в CrossWorks?
  20. Кеш на ep93xx

    а почему при записи в регистр выбирается асинхроный режим (а не синхронный)? Режим может быть любой: синхронный, асинхронный или Fast Bus. На включение кеша это не влияет. Я просто использую асинхронный режим. а в чём отличия синхронного и асинхронного, есть ли какие нибудь преимущества при использовании синхронного режима?
  21. Кеш на ep93xx

    а почему при записи в регистр выбирается асинхроный режим (а не синхронный)?
  22. сейчас выяснил, что если файл в котором описана ф-ия irq_handler компилировать как си, то всё нормально, а если как с++, то внешняя ф-ия irq_handler не видится. не понятно почему?
  23. пробовал, не видит из асембленого файла идентификатор __irq_handler, собственно в этом то и проблема, если бы видел внешний идентификатор, то и irq_handler бы переопределился.
  24. Не переопределяется функция irq_handler в CrossWorks, точнее будет сказать из этого файла не видится другая функция с таким именем. тест примерно такой: ... ldr pc, [pc, #irq_handler_address - . - 8] ... irq_handler_address: .word irq_handler irq_handler: b irq_handler .weak irq_handler в другом файле: void irq_handler(void) __attribute__ ((interrupt ("IRQ"))); void irq_handler(void) { ... } что бы могло быть???
×
×
  • Создать...