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

binom

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

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

  • Посещение

Репутация

0 Обычный

Контакты

  • ICQ
    Array

Посетители профиля

564 просмотра профиля
  1. Я тут поработал, в некотором смысле, по теме заданного мной вопроса и нашел интересную книгу Embedded Systems Design: An Introduction to Processes, Tools, and Techniques by Arnold S. Berger ISBN: 1578200733 Просмотрел ее бегло: там идет разделение труда программистров и разработчиков железа. НО!, написаны такие строки(общий смысл конечно, не дословно): "Если Вы опытный разработчик и скажете, что Вам надо размышлять над вопросами ускорения алгоритмов сортировки и нафиг не надо знать эти инженерные вопросы, то Вы окажетесь в самом низу при принятии критических решений и будете в начале черного списка, когда проект запоздает или провалится". Так что, как ни крути изучения требуют оба направления. ;)
  2. Есть такая специальная профессия - системный инженер. Он выбирает шины, коды. Он проводит разбиение системы на куски и он же определяет ТЗ к профильным разработчикам (программистам, схемотехникам, конструкторам), и он же следит за всеми стыковками и не стыковками этих специалистов. Я так понимаю, что системные инженеры так же вырастают из каких то профильных специалистов.
  3. Вопрос - а зачем это нужно? Схемотехника настолько разнообразна, что быть специалистом во всём просто нереально, а работа в команде всегда более эффективна, чем одиночное плавание. Зачем нужно, ну вот пример: Разрабатывая топологию устройства, надо принять решение, какую шину применять для передачи данных. Принятие такого решения тесно связаны с вопросами скорости передачи данных и объемом передаваемой информации. Мне как программисту при обсуждении таких вопросов нужно быть, конечно не профессионалом, но достаточно подкованным в инженерных вопросах, чтобы какие то промахи принятых решений не вылезли слишком поздно. Хотя я понимаю, что для того чтобы назвать себя инженером надо хотя бы уметь паять. Я один раз попробовал припаять проводок к микросхеме под микроскопом :cranky: , паял 1.5 часа, после чего мое терпение кончилось с офигенным выбросом отрицательных эмоций :angry2: :angry2: . Проводок я так и не припаял, что вызвало бурю положительных эмоций у моего товарища инженера .
  4. Доброго всем времени суток. Хотельсь бы узнать мнение специалистов по следующему вопросу: При изготовлении микропроцессорной техники по моему мнению можно выделить две роли - это программист и инженер(скажем схемотехник). Наверное хороший, высокооплачиваемый руководит проекта по разработке микропроцессорной техники должен быть специалистом в обоих областях. Пример из жизни: у меня на работе есть отличный инженер - схемотехник, но он просто панически боиться С, С++. А я программирую то железо которое он сваял, но ничего не понимаю в его резисторах и конденсаторах(ну условно ничего, в детстве ходил на радиокружок. Я понимаю но на это уходит время и приходится консультироваться). Насколько глубоко каждый из этих специалистов должен обладать знаниями другого. Насколько это вообще реально быть специалистом в обоих областях. Спрашиваю потому, что стою перед выбором в дальнейшем развитии - либо углубляться в программирование драйверов устройств и ОС реального времени, либо потратить время на то, чтобы изучить инженерные вопросы.
  5. Контроллер Флеш-памяти

    Работаю с msp430f149. Согласно документации есть возможность 1)масового стирания сегментов основной памяти и 2)массового стирания сегментов основной и информационной памяти. Соответственно (MERAS = 1 ERASE = 0)- это 1), (MERAS = 1 ERASE = 1) -это 2) по идее при массовом стирании исполняемый код тоже должен стереться. в IARе описываю 1-ю ситуацию(стирание инициируется не из ОЗУ а из Флеш) - код не стирается хотя он распольжен начиная с адреса 0х1100. описываю 2-ю ситуацию(стирание инициируется не из ОЗУ а из Флеш) - код стирается содержимое всей памяти 0xff. Вопрос: Чё за косяк? Еще одно наблюдение: при записи в режиме байт/слово можно последовательно записать несколько слов. Т.е. корректно произойдет запись с помощью следующего кода: int *memory1 = (int*)0x1000; int *memory2 = (int*)0x1080; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //записываем слово в режиме не блочной записи asm("dint"); FCTL1 = FWKEY + WRT; FCTL2 = FWKEY + FSSEL_2 + FN0; FCTL3 = FWKEY; *memory1 = 0x1234;//записываем в 1-ый инф. сегмент *memory2 = 0x5678;//записываем во 2-ой инф. сегмент while( (FCTL3 & BUSY) ); FCTL3 = FWKEY + LOCK; asm("eint"); // А вот стирание 2-х сегментов таким образом не пройдет. Бит ERASE аппаратно сбрасывается после первой команды фиктивной записи, и генерится прерывание ACCVIFG. int *memory1 = (int*)0x1000; int *memory2 = (int*)0x1080; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //стираем сегмент asm("dint"); FCTL1 = FWKEY + MERAS + ERASE; FCTL2 = FWKEY + FSSEL_2 + FN0; FCTL3 = FWKEY; *memory1 = 0x1234;//ПОСЛЕ ЭТОЙ КОМАНДЫ ERASE = 0 *memory2 = 0x5678;//ПОСЛЕ ЭТОЙ КОМАНДЫ ACCVIFG = 1(косяк) while( (FCTL3 & BUSY) ); FCTL3 = FWKEY + LOCK; asm("eint"); //
  6. ADC12 + DTMF

    может это изза того что у меня 1611 но я юзаю умножитель именно в прерывании (по таймеру запускается АЦП, по пррыванию АЦП фильтр баттерворда 4 порядка) <{POST_SNAPBACK}> Ну вообщем у меня тоже нормально работает, я так понимаю это не запрет, а предостережение на случай вложенных прерываний.(Ну ... и перевод)
  7. ADC12 + DTMF

    Это все конечно круто(БИХ фильтры 2-го порядка и т.п.). При вычислении алгоритма Герцеля в прерывании ADC12 необходимо выполнять умножение. В доке на аппаратный умножитель (f149) сказано, что при его использовании надо запретить прерывания и не использовать его в ISR. Не понятно почему в ISR нельзя(так катигорично).
  8. ADC12 + DTMF

    У меня slau049d там на странице 17-8 в разделе Pulse Sample Mode есть предложение The SHTx bits select the sampling time in 4x multiples of ADC12CLK. В русском переводе документации на MSP430 от ЗАО =КОМПЕЛ= это предложение переведено как "Биты SHTx устанавливают время выборки в 4 раза больше чем ADC12CLK." Это не совсем верно как и предположение в твоей формуле, что n=2^SHTx. Предположение твоей зависимости спотыкается на SHTxx = 0101(5d) по документации 96 циклов ADC12CLK по твоей формуле 128. А смысл вышепреведенного предложения из док. в том, что множитель кратен 4. Да и вообще есть табличное соотвтствие - зачем пытаться вывести аналитический выд зависимости
  9. ADC12 + DTMF

    :-))) :cranky: Точно, точно я тоже автоматически копирнул 13 * ADC12CLK с этой же самой схемы вместо 13 / ADC12CLK. А насчет времени выборки хранения - мне кажется приведенная тобой зависемость не верна. Согласно документации: SHTxx = 0010(2d) соответствует 16-ти циклам ADC12CLK, а по твоей формуле получается (2 + 1) * 4 = 12.
  10. ADC12 + DTMF

    Работаю с кристаллом MSP430F149. Разбираюсь с задачей определения и декодирования DTMF сигналов. Для оцифровки хочу использовать АЦП12, все остальное программным путем. Всвязи с этим несколько вопросов которые хотелось бы обсудить: 1) Определение частоты дискретизации Td. Как я понимаю она расчитывается так: Td0 = [(SHTхх + 13) * ADC12CLK] при использовании одноканальных режимов и Td1 = [Td * (число каналов)] при использовании многоканальных режимов. Вопрос: Я прав? 2) Определение DTMF сигналов. Определение DTMF сигналов сводится к определению 8 частот. Это можно сделать как я понимаю используя БПФ, ДПФ или с помощью фильтров. Хорошо описано использование алгоритма Гертцеля (Goertzel) см.: http://kazus.ru/modules.php?name=News&file=print&sid=149, здесь описано как выбирать все параметры используемые в алгоритме, что делает его применение простым и удобным. Еще один алгоритм описан в рекомендациях по применению от TI.Ссылку привести не могу т.к. у меня книга, но на сайте TI наверное все есть. Там используются цифровые фильтры резонаторы (WDF). Из всего приведенного описания и программы примера я не смог понять как с их помощью выделить частоты DTMF сигналов. А именно: а) Зачем нужна согласующая цепь. б) Почему фильтры такие как приведены и из каких соображений выбираются для них параметры. в) Насколько я понял используется длина выборки в 20 дискретных отсчетов, но из каких соображений выбрано такое число( так интуитивно - чёй то маловато). Можно было бы забить на использование WDF, но 2 момента: а) Хотелось бы сравнить производительности алгоритмов б) В журнале =Современная Электроника= 1 за 2005 есть статья =Охранно-коммуникационный контроллер с использованием GSM-модема (А. Елисеев)= (http://soel.ru/podshivka/2005-1.htm - качать дополнительные материалы) используются теже фильтры WDF в) В конце концов TI предлагает использовать их. Вопрос: объясните теоретическую основу использования WDF фильтров и выбора параметров для них.
  11. PC Card

    Не мог бы ты поделиться толковыми ссылками. Все что я пока смог найти это описание типов PCMCIA карт, когда какая версия стандарта принята и распиновку шины с очень скудным описанием предназначения каждого из 68 пинов. Хотелось бы более полную информацию по предназначению пинов, логическую модель шины, программный протокол. Я бы хотел ознакомиться с полным описанием PC cadrd standart, но для этого мне нужно попасть в =Свои=. Если есть возможность помочь буду очень признателен.
×
×
  • Создать...