Jump to content

Speccy

Members
  • Content Count

    672
  • Joined

  • Last visited

Everything posted by Speccy

  1. Программное обеспечение чего именно будете брать на себя?
  2. Источник помех именно реле, коммутирующее нагрузку. Если нагрузки нет и реле работает "вхолостую", то это некорректный эксперимент. Давай так. Схему выкладывай сюда (по возможности подробную). Проанализируем её на предмет подверженности влияниям помех различной природы. Сформулируем рекомендации. А иначе - пальцем в небо.
  3. микросхема одна, а типов её исполнения много. Различные типы корпуса и диапазон рабочих температур. Тебе не принципиально, поэтому возьми в пластмассовом DIP корпусе. Ту, что за 30р.
  4. 2механик: Можно ли имея N кол-во винтов соорудить для каждого usb-мост и питать их всех от бытовой розетки? Вроде криминала тут никакого нет.
  5. Ножки сверху против часовой стрелки. 4 - плюс питания. 11 - минус питания. про смещение, если оно необходимо, надо позаботиться самому. У меня при двуполярном питании на LM324 собран усилитель и повторитель (прям как у тебя), работает вроде без проблем. Схему покажешь?
  6. ИМХО один из вариантов в общем виде наверное так: Рисуешь сетку. Горизонтальные линии это выходные функции F(х). Вертикальные линии это входные значения Х и инверсное Х. Горизонтальные линии слева объединены в один узел и подключены к полюсу источника питания. Горизонтальная линия справа заканчивается нагрузкой. Ток в каждой горизонтальной линии должен быть задан, например резистором. Требуется в местах пересечения горизонтальных и вертикальных линии включить диоды таким образом, чтобы при требуемых значениях X диоды оказались бы запертыми, и ток протекал исключительно по горизонтальной линии. Наличие/отсутствие тока в нагрузке это и есть выходная функция F(x).
  7. Можно спроектировать универсальный программатор. Более того он уже создан, называется ChipProg+ http://www.phyton.ru/cp1251/description/programmers.shtml Программирует огромное кол-во микросхем. ИМХО достигается такое за счет того, что логика программирования передается в программатор извне, при выборе требуемого типа микросхемы. Логика работы по видимому загружается в программируемую логическую матрицу (ПЛИС) внутри программатора. И, скорее всего, ПЛИС в совокупности с микропроцессором и набором коммутируемых питающих напряжений для програмиируемой микросхемы и представляет собой программатор. Логика работы и драйвер для типов микросхем идет в составе ПО программатора. Управление происходит через LPT порт.
  8. Должно зависеть от того чем текст превращается в машинный код. Если это компилировать Keil-ом, то там наверняка есть оптимизация. Например удалить лишние прямые переходы. Или расположить куски кода таким образом, чтобы уменьшить кол-во переходов. На то он и компилятор. А если ассемблировать "в лоб", то будет то, что написано в тексте как ни крути. Добавлю еще, что если вышеприведенный пример действительно имеет место быть, то все переходы должны осуществляться в пределах от метки Block до команды ret. Не обязаны, но должны. Так как по оформлению это очень похоже на какую-то подпрограмму. Иначе получается, что при входе в эту подпрограмму, и осуществлении перехода по условию, когда-нибудь придется делать ret. А команда ret в подпрограмме должна быть только одна. Не обязана, но должна. А в примере получается не совсем логичное построение.
  9. Подозреваю что нету такой директивы, потому что это ассемблер а не компилятор. Вам не хочется дописывать лишнего кода? Вы наверное шутите? Или у Вас комар бита не подточит в этой программе, и места нету совершенно? Ни за что не поверю. Этож машинные коды - тут либо так, либо эдак. Говорю же вот выход: Block: jb 0E0h,NO_LABEL_1 ljmp LABEL_1 NO_LABEL_1: jb 0E1h,NO_LABEL_2 ljmp LABEL_2 NO_LABEL_2: jb 0E2h,NO_LABEL_3 ljmp LABEL_3 NO_LABEL_3: jb 0E3h,NO_LABEL_4 ljmp LABEL_4 NO_LABEL_4: ret Код увеличился на 12 байт. Это что критично для Вас? Есть еще с десяток способов как проверить биты аккумулятора, но все они связаны с относительным переходом, а он Вам не подходит по дальности перехода.
  10. относительный переход по такой команде +127..-128 байт, естественно будет ошибка если метка отстоит далее. надо так: jb e0h,noerror ; если бит взведен то продолжить выполнение программы, ljmp error ; иначе прыгнуть к error. noerror: ............ ;выполняем далее программу
  11. Всё так. Проще всего указывать тот или иной полюс в виде порта. Естественно, если наименование NET (например VCC) не совпадает с тем что присвоено пину элемента в библиотеке, то никакого соединения не будет. Дорисуй ручакми в PCB. Сам "набросай" нужные тебе NET к питанию. А чтоб не запутаться, в схеме нарисуй таблицу питания, будет тебе подсказка. Другой способ - создавать образ элемента в библиотеке сразу с питающими выводами (а лучше со всеми выводами), чтоб в схеме указать требуемым портом что к чему.
  12. Вот то что тебе нужно. Зарегистрируйся на www.librus.ru и в поиске набери "на аппаратном уровне". Либо иди по ссылке ниже _http://rapidshare.cоm/files/5962027/Prоgr_na_apparat_urоvne.rar
  13. "Телемеханика". Я так и думал. Сам на этой кафедре учился. Ответь - сигнал на Dout имеет амплитудный признак, и дело с концом. Хорошо ещё что препод не разглядел в твоей диаграмме онтносительную фазовую манипуляцию.
  14. О как! А ты преподу не показывал даташит? ABSOLUTE MAXIMUM RATINGS: Power Dissipation .............................................. 500mW Operating Temperature Range LTC1286C/LTC1298C............................. 0°C to 70°C LTC1286I/LTC1298I ........................... –40°C to 85°C Storage Temperature Range ................. –65°C to 150°C Lead Temperature (Soldering, 10 sec.)................ 300°C Supply Voltage (VCC) to GND ................................... 12V Voltage Analog and Reference ................ –0.3V to VCC + 0.3V Digital Inputs......................................... –0.3V to 12V Digital Output ............................. –0.3V to VCC + 0.3V Из этой ИМС даже при очень большом желании, и, как бы ни было нарисованным графикам, не добиться цифровом на выходе напряжения менее -0,3В. Про признаки понял. Препод случаем не преподаёт телеуправление/телесигнализацию (ТУ/ТС)? Нету тут никаких амплитудных признаков. VOH High Level Output Voltage VCC = 4.75V, IO = 10mA l 4 V VOL Low Level Output Voltage VCC = 4.75V, IO = 1.6mA l 0.4 V
  15. 1. непонятно. 2. таймер/счётчик, судя по названию, может выполнять две функции: это либо таймер, либо счётчик событий. В любом случае это некое двоичное слово разрядности N (обычно 8 или 16 бит), и свойства его программируются через регистр управления им. Что это будет? Таймер, счётчик, какие ситуации будут возникать при переполнении слова (достижения им заданного пользователем значения), какова реакция на внешнее событие, и многое прочее, зависит от внутренней организации т/с внутри МК. Всё это выясняется из даташита. Соответственно, в зависимости от задачи выбирается режим работы т/с. Отмерять промежутки времени, или подсчитывать внешние события - всё на твоё усмотрение. 3. ШИМ - широтно-импульсная модуляция. Другими словами ты можешь управлять скважностью периодического сигнала. Версий управления ШИМом в одном МК может быть несколько. Допустим таймер это 8-битное слово TIME, синхронизация - внутренняя, период сигнала равен длительности изменения TIME от 0 до переполнения. Ширина импульса за период задается словом END. Выход ШИМ - бит-порт Z. Изначально TIME=0. Вот эквивалентный алгоритм (неточный но поясняющий): 3.1 Z:=1; 3.2 TIME:=TIME+1; 3.3 if TIME=END then Z:=0; 3.4 if TIME<>256 then goto 3.2 3.5 TIME:=0 3.6 goto 3.1 4. Маска прерывания нужна для того, чтобы маскировать прерывания. Регистр управления разрешениями прерываний это и есть маска. Хочешь запретить прерывание - накладываешь на него маску (сбрасываешь соотв. управляющий бит). Бывают маскируемые и немаскируемые прерывания. 5. Передний фронт, задний фронт. Он есть у периодического сигнала. Везде используется. Хоть считай их, хоть синхронизируйся от них. 6. с Т/С можно делать ВСЁ! Запрограммируй его и жди от него прерывания. Очень занимательная вещь. 7. Регистр совпадения? См. п.6. Разница в том, что в п.6 прерывание возникнет по переполнению, а в этом случае при достижении Т/С содержимого регистра совпадения. 8. непонятно.
  16. Наверное надо такие проделки делать из-под "чистого ДОСа". Попробуй загрузить что-то ниже(или равно) windows98. Я бы еще начал с программирования адаптера на языке верхнего уровня. TurboBASIC или TurboPASCAL подойдут. Сам баловался с адаптером на бейсике (давным давно в досе) но быстро надоело. Подскажи какое железо у тебя?
  17. motorola скорее нет, чем да. Сейчас все дружно наседают на ядро AVR от Atmel. Ну не все, но большинство. А по большому счёту выбор МК и ядра от поставленной задачи зависит. "Лет десять назад" - уже срок годности истек
  18. Нужно уточнить, на "черном экране" подключённом к чему? Если речь идет о видеоадаптере для PC то надо открыть соотв. литературу (например М. Гук "Аппаратные средства IBM PC"), посмотреть как программировать режимы адаптера, разобраться с организацией видеопамяти, и записав туда нужные значения зажечь на экране пиксель нужного цвета. Для PC низкоуровневое программирование видеоадаптеров уже разобрано в инете наверное тысячу раз. Надо искать. А можно пойти от обратного, написать и скомпилировать в TurboPASCAL программу с подключением модуля CRT и включающую один пиксель. А потом её дизассемблировать и найти нужное место.
  19. Дизассемблируй да исправляй. Вопрос только в том: машинные коды чего именно содержит файл? Чтобы подобрать дизассемблер. Можно еще добавить, что если там есть что-то типа контрольной суммы, то не зная закона её формирования как тебе после исправлений быть?
  20. На сайте производителя: http://www.esstech.com/techsupp/drivers.shtm#isa в таблице драйверов, в колонке для win2000 написано см. примечание. Примечание: Windows installation CD has built-in support for this audio device. ESS did not and will not release separate ISA audio WDM driver for this device. Отсюда вывод, если дрова Windows не подходят и написать WDM сам не сумеешь, то "умерла - так умерла". Начни с того, что попробуй устанавливать по порядку драйвера, начиная с ESS688. Удаляй текущий, ставь очередной из списка, перезагружайся, слушай.
  21. Это значит, что при температуре выше +70С частота тактирования должна быть минимум 75кГц, иначе оцифровка произойдет неверно. Поэтому я тебе и предложил тактировать 100кГц чтоб никому обидно не было. Но ты не путай частоту тактирования и частоту, с которой ты будешь обращаться за очередным оцифрованным 12битным значением. Можешь измерять хоть 1 раз в сто лет, хоть 12500 раз в секунду. Но при этом временную диаграмму отдельно взятого измерения изволь соблюдать. Все тайминги по сути привязаны к частоте сигнала CLK. Так выбери её 100 кГц и не заморачивайся. В итоге, после запуска преобразования, через 160 мкс получишь последний значащий из 12бит.
  22. Кстати, про время цикла. Ты говорил что напряжение изменяется медленно, а сам в примере нарисовал что оно меняется очень быстро. Еще раз повторяю: Время цикла минимум 80 мкс. то есть 12500 выборок в секунду можно получит от АЦП. Одна выборка - 12 бит данных. Если такая частота дискретизации тебя устраивает то какие могут быть еще вопросы? Вот если бы ты пытался цифровать периодический сигнал частотой выше 6250 Гц с последующей его обработкой, то такой АЦП тебе не подошел бы. Что собой представляет сигнал с датчика? Какой у него максимальный градиент, и нужно ли тебе очень точно знать форму сигнала?
  23. Полскажите пожалуйста, чем открывается замок правой дверцы такого универсального электрощита?
×
×
  • Create New...