Jump to content

    

Серокой

Свой
  • Content Count

    126
  • Joined

  • Last visited

Everything posted by Серокой


  1. Здравствуйте. Есть контроллер DDR3, самопальный. В ПЛИС всё нормально работало при выключенных DLL (потому что там никак не раскочегарить до 300 МГц), в заказной микросхеме же на номинальных частотах проявляется странный эффект: сбой записи 64 бит по адресу 1ff8. Это конец страницы памяти, при переходе дальше нужно активировать следующую строку. Но активации нет, это просто запись. При этом запись по адресу 1ff0 проходит. А ведь это ячейка с тем же адресом, просто последний DQS. Что бы это могло быть - не приложу ума... Записи в другие адреса проходят без сбоев, то есть это не время tWR...
  2. Суть проблемы - раздраконил старый флоппи-дисковод с целью запустить бесколлекторный двигатель. В качестве драйвера там стояла BA6986FS от фирмы Rohm, на которую на сайте документации не нашлось. На телесистемах порекомендовали обратиться к официальному дистрибьютору в России, написал им, пока ответа нет. Думаю, и не будет. Ну ладно, тем более микросхему ещё и не просто так купить. Решил закладываться на доступную в Чип-и-Дипе BA6870S. Разъём платки, на которой смонтирован двигатель, состоит из 15 линий. С 11 я разобрался, это собственно катушки и выводы датчиков холла. А по ещё двум требуется помощь в понимании функционирования. На прикреплённом рисунке схемы, восстановленные мной по плате. Ёмкости указаны приблизительно, на глаз. Схема А - это схема детектирования оборота. К боку шпинделя двигателя прикреплён магнитик, на платке стоит катушка активным сопротивлением 470 Ом, и с неё идут прямо на загадочную микросхему BA6986FS две линии. Вопрос первый - достаточно будет подать их на вход операционника типа LM358 чтобы иметь на выходе импульс на каждом обороте и подавать на микроконтроллер? Вторая схема - схема Б - касается индуктивного датчика скорости вращения. На печатной плате двигателя сформирована печатная катушка - меандр по окружности под кольцевым магнитом шпинделя. Далее выход идёт на с платки на печатную плату уже самого флоппика. На схеме Б я восстановил то, что на плате, эти сигналы идут на 3 ножки микросхемы. Вот что делать с этим выводом, я не совсем понимаю. На выходе должна быть частота, увеличивающаяся с возрастанием скорости вращения. Снова подавать на операционник? А как можно завести на BA6870S для регулирования скорости вращения? Там на вход просто подаётся напряжение с опорного делителя и напряжение с регулятора. Заранее спасибо за помощь. Я впервые осваиваю управление бесколлекторным двигателем.
  3. Чтобы тему не открывать новую... Есть ли в природе простые модели памяти DDR2? Так-то у меня тоже подключены микроновские Verilog, но они очень ресурсотребовательные, и там пикосекундная точность. В итоге моделирование сильно тормозит. Очень хочется для проверки всей системы, кроме контроллера памяти, использовать простую модель. Контроллер же, так и быть, потерпеть можно и нужно.
  4. Здравствуйте. Проблема такая, что есть кучка, довольно основательная, шифрованных Verilog-файлов. Квартус (при добавлении специальной строки в license.dat) их понял и откомпилировал, а вот как получить эмуляцию в QuestaSim, я не понимаю. Просто компилировать он не хочет, говорит - и весьма справедливо, - что там некорректные двоичные символы внутри.
  5. Действительно, прислали другие файлы, уже под моделирование. Но там стоит: Код//pragma protect key_keyowner=Cadence Design Systems. НЦ понимает влёт, квеста воротит нос. Вот же, не одно так другое... В общем, Квеста в этом смысле не годится. Там и формат pragma другой, только NC. Ну и ладно. )
  6. Цитата(Stewart Little @ Mar 29 2012, 13:34) Хотя странно, что в постситнетическом нетлисте (а тем более в тестбенче) есть какие-то отсылки к зашифрованному исходнику... Нет, нет, я наверное плохо объяснил. Суть в том, что проект состоит из двух частей: 1. В одной папке RTL, синтезируемый Квартусом. 2. Во второй - тестовый поведенческий набор файлов на Верилоге, естественно что не синтезируемый. Но тестовый набор содержит ссылки на файлы, который в в папке с RTLьным кодом. Вот потому я не могу промоделировать, чтобы вообще просто посмотреть, как ядро работает. В нетлисте от Квартуса вызовов зашифрованных файлов нет.
  7. Цитата(RobFPGA @ Mar 28 2012, 20:03) А приведите примерчик как именно файл закодирован? Пожалуйста. просто бинарь: Цитата(Stewart Little @ Mar 28 2012, 20:23) Что-то не понятно... Какое Ip-ядро Вы используете (по крайней мере скажите, какую фичу в квартусовский лицензионный файл прописываете) ? Какой версией квартуса пользуетесь? 11-й квартус. Нет, с квартусом проблем нет, всё развелось. Проблема отмоделировать тестовые воздействия под QuestaSim. Фича, которая прописывается, просто цифровая, типа "FEATURE 7A43_F510 alterad". Цитата(Stewart Little @ Mar 28 2012, 20:23) Еще вопрос - у Вас альтеровская библиотека под квесту скомпилирована? Конечно. С загрузкой и компиляцией нетлиста под Квесту проблемы также нет... У меня есть подозрения, что нам дали тестовую систему, рассчитанную на не закодированные файлы... Спросили у авторов. ) но пока они ответят...
  8. Цитата(Stewart Little @ Mar 28 2012, 16:58) По идее нужно в квартусе получить постсинтетический нетлист, и уже его скармливать в квесту. Да я так и сделал... Беда в другом - в тестбенчах применяются нешифрованные файлы, но с передачей параметру модулям шифрованных файлов, подключенных внутри, и вот тут-то и наступает большой ОЙ... Потому что синтезированный верилог - только на тот параметр, который в нём по умолчанию... А документации просто нет, какие-то текстовый ридми, и всё... Рекомендуют использовать nc, правда, а у меня questa, но если nc умеет (как-то, в ридми ничего про то нету), то квеста чем хуже? Да, файла проекта под какой-либо САПР кроме Квартуса, тоже нет!
  9. Fujitsu в своё время массово делал что-то такое, не знаю, как ныне. Даже со встроенным 2D ускорителем, а были микросхемы также со встроенной видеопамятью.
  10. VGA->LVDS

    Кстати, про клок. Точнее, про стандарт DVI - там же 3 LVDS канала и отдельной Channel C - тактовый. Я не могу понять по спецификации стандарта - там частота пиксельная, то есть та, с которой подаются данные на энкодер? То есть она в 10 раз ниже частоты данных, или всё ж полная частота - 1650 МГц для однолинкового в пределе?
  11. Кстати, подниму тему. Подцепить и раскрутить всё вышло, весело крутится, всё хорошо, кроме одного "но". Почему-то в итоге всего этого у меня не получилось поднять частоту ШИМ выше 10кГц. При том, что частота драйвера до 50 кГц. Потому мотор гудит вполне слышно. Думаю вот - это особенности мотора? Его катушки "гасят" короткие импульсы? Кто-то ещё пытался крутить мотором от флоппи, на какой частоте работал ШИМ?
  12. AvrStudio 5

    Цитата(zhevak @ Jan 27 2012, 02:45) to Серокой: Конечно, это не нормально. Я не знаю, что там у Вас на компе установлено. Это был обсуждаемый AVR Studio 5, собственно он же и в качестве программной оболочки (точнее, Visual что-то там от майкрософта). Впрочем, после перегрузки машины тормоза прошли, видать, после установки пакета надо было просто перегрузиться, чего я не сделал... Спасибо за пожелания! Я подумаю, если совсем будет сложно, перейду на командную строку, но отлаживаться всё равно придётся на симуляторе AVR Studio... Это до этапа GDB.
  13. AvrStudio 5

    У меня не самый тупой комп... 3 ГГц, 2 Гбайт ОЗУ. При этом я сляпал простую программу, начиная изучать AVR GCC, до того на IAR сидел. И что я вижу? При пошаговом моделировании кнопкой F10 на один шаг затрачивается пара секунд! Это что, нормально вообще?..
  14. Цитата(Sirko @ Dec 27 2011, 10:53) Правильно ли я сужу? Вторая строчка не будет работать. Просто компилятор не пропустит. И кстати, parameter обычно используют когда у вас подключается несколько модулей внутри, имеющих одинаковый RTL-код но их надо несколько по-разному сконфигурировать. Например, разная ширина шины данных, если это блоки памяти. А так, для присвоения по сбросу, по-моему, лишнее запутывание кода.
  15. Здесь я б использовал сдвиговый регистр. Без всякого счётчика. То есть примерно так: Кодparameter init_data = 16'b1111_0000_0000_1111; reg [15:0] shift; wire out; always @ (posedge Clk or posedge Reset)     if(Reset)         shift <= init_data;     else         shift <= {shift[0], shift[15:1]}; assign out = shift[15]; Конструкция always @ (posedge Clk or posedge Reset) представляет собой D-триггер с асинхронным сбросом положительным уровнем. При сбросе регистр инициализируется данными, заданными переменной init_data. Далее, когда сброс уходит в ноль, на выход идёт 15-й разряд регистра, который в кольце сдвигается каждый такт. У вас, я смотрю, свежо "программное" мышление, то есть как писать программы, и оно доминирует над "железячным". Просто главное отличие, что в Си всё выполняется построчно, а здесь - параллельно.
  16. Объясните задачу. Что требуется, чтобы при RAM_Address >= 7 загорелся светодиод? И зачем вам Complete как регистр, не понимаю.
  17. DDR2 x32

    Цитата(Uree @ Dec 16 2011, 15:00) В ДДР2 терминация нужна только на адресных сигналах. На управляющих, точнее. Ну и понятно, что ODT при конфигурации памяти на старте должен быть включен - тут вопрос, поддерживается ли это применяемым процессором.
  18. DDR2 x32

    В схеме смущает отсутствие подтяжки к VTT и собственно терминирующих резисторов на сигналах памяти (SSTL). Впрочем, если у вас невысокая частота, это переживаемо, но обычно без кучки резисторов и микросхемы, генерящей напряжение терминирования VTT (пол-питания, то есть 0,9 в данном случае) не обойтись.
  19. датчик холла

    Цитата(Серокой @ Dec 15 2011, 13:09) 2. Можно ли объединить одноимённый выход датчиков, скажем, левый и завести на землю? Почему-то нельзя. То есть схемотехнически можно, но в итоге смотрю - чем выше к питанию (+12) датчик, тем выше на нём амплитуда.
  20. датчик холла

    Есть у меня три датчика Холла, подключенных по схеме ниже. Я с ними ранее вообще никогда не работал, потому есть вопросы. Прошу помощи по этим пунктам: 1. Важна ли полярность? Где плюс, а где минус при подключении связки. 2. Можно ли объединить одноимённый выход датчиков, скажем, левый и завести на землю? 3. Как проще всего получить логический сигнал из того, что выдаёт датчик? А он выдаёт что-то вроде сильно заваленного меандра менее полувольта размаха.
  21. Цитата(=DS= @ Jul 11 2009, 03:22) Может, поможет в размышлениях О, спасибо! Вы как минимум прояснили назначение входа FG в некоторых микросхемах управления БЭД шпинделей дисков! Цитата(Xenia @ Jul 11 2009, 04:31) Серокой, вы, как я поняла, занимаетесь запуском того двигателя, который диски крутит. А могли бы вы сказать хоть несколько слов о том двигателе, который двигает головку? К сожалению, я не разбирался в этом.
  22. Цитата(jonifer @ Jul 8 2009, 10:58) тогда странно, что это не читал Читал, и вот это читал, в том числе и на сайте на английском: http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR443.htm Но дело в том, что я знаю, что смогу сделать на AVR, а хочется на микросхеме. Это ж, как я написал выше, просто для души, для опыта, освоение нового. Это не заказ, не разработка для кого-то, это ж для себя. У меня изначально, в первом посте, вопрос формулировался не как запустить БЭД вообще, а что делать с двумя дополнительными цепями...
  23. Цитата(jonifer @ Jul 7 2009, 19:41) к процессорам приближайся - не кусаются Спасибо, но я уже 10 лет как занимаюсь с Атмелом.
  24. Цитата(andrey_s @ Jul 6 2009, 17:50) Про индексный датчик можно забыть - он управлению двигателем напрямую не относится. Какова цель "запуска"? Цель запуска - в общем-то просто научиться управлять БЭД. Вернее, не просто, а с контролем оборотов. Пока что просто для собственного опыта. Для этого датчик может помочь - опосредованно посчитать частоту. Осциллограф показывает на выходе импульсного датчика пички до 100 мВ, это замечательно и я в общем понимаю, что с ним делать дальше - на компаратор из операционника. Но есть же ещё и вторая цепь, с меандрового датчика вращения, а вот что с ней делать, я не понимаю, хотя именно с её помощью, как мне кажется, и нужно регулировать скорость вращения. Аппликухи Атмеловские читал, да, но там управление двигателем непосредственно микроконтроллером, а не не специальным драйвером...