Jump to content
    

FREEKER

Участник
  • Posts

    25
  • Joined

  • Last visited

Reputation

0 Обычный

About FREEKER

  • Rank
    Участник
    Участник

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Я не использовал capture. Определял таймер в режиме UP. По прерыванию порта P1 смотрю TAR, вычисляю, обнуляю, а переполнение счётчика по прерыванию таймера смотрю, как доходит до конца, прибавляю к переменной единичку и т.д.
  2. А я использую следующее: Мы знаем скорость тактирования, и нам нужна скорость SPI После #include "msp430x16x.h" вставляем определение: #define Fosc 8000000 //Hz - Частота тактирования кварца или внутреннего генератора #define Cspi 4800 //Bit - требуемая скорость SPI #define Kff Fosc/Cspi Инициализация SPI выглядит так: ME2 |= USPIE1; U1CTL = 0x5E; //#01010111b; The inactive level is high, ACLC U1TCTL = 0x12; //#0001 0010b p294(Slau049f) U1BR0 = Kff%256; // Наша скорость будет здесь U1BR1 = Kff/256; // и здесь U1MCTL = 0x00; U1CTL &=~0x01; Для MSP430F2*** инициализация будет выглядеть иначе, но смысл тот же. Вот так: UCB1CTL0 |= UCCKPL + UCMST + UCSYNC; // The inactive state is high, Master mode, Synchronous Mode UCB1CTL1 |= UCSWRST + UCSSEL_2; // SMCLK, Enabled. USCI logic held in reset state. UCB1BR0 = Kff%256; UCB1BR1 = Kff/256; UCB1CTL1 &=~UCSWRST; // Disabled. USCI reset released for operation.
  3. Опять косяк..... Но наоборот теперь. В новой версии IAR ругается на строку: interrupt[ADC_VECTOR] void ADC12_ISR (void) В старой работает. Что забыл подключить? Это есть: #include <msp430x16x.h>.... Просто перенёс прогу из 2.31 в 3.41.
  4. Вот очень элементарный пример задержки :) Функция Delay() - небольшая задержка в 550мкс и функция Big_Delay() - несколько секунд, а мож и больше :) зависит от Delay() также. При кварце 8MHz. void Delay(void) { unsigned int t; for (t=730; t>0; t--); //(4 такта For) } void Big_Delay(void) { unsigned int y; for (y=5000; y>0; y--) Delay(); } Но с таймером мне тоже не всё понятно. Разъясните. Как сделать следующее. Допустим тикает таймер. Нужно остановить его и замерить время по приходу на порт P2.2 логической "1", т.е. по перепаду с 0 на 1. или наоборот. Flag = P2IFG & 0x04; //Устанавливается флаг при перепаде 1>0 Либо замерить время единичного импулься. т.е. по перепадам 0-1 и 1-0. Можно пример!? На примере понятней, особенно с коментами. :beer: Rezident. Вам отдельная благодарность.
  5. Земля должна быть под ВЧ проводниками, чтоб не нарушать омности линии. Например для того чтоб ВЧ тракт из микрополоска был 50-омным на стеклотекстолите (FR4) толщиной 1,5мм для частоты 150МГц ширина проводника должна составлять примерно 2,5мм (это для двухслойной платы). Это всё из формул, которые можно найти. Для 4-слоек всё тоже самое, тока расстояние между слоями меньше.
  6. Проблема в версии была. Заработало. :)
  7. А сколько слоёв планируете делать на плате? 2 или 4? И какие цепи ещё присутствуют на плате (цифровые, аналоговые, СВЧ)? Кто кому может мешать? Желательно разделять цыфровые земли от аналоговых (на некоторых микросхемах предусмотренны такие земли), и соединять их в точке подключения питания. Если плата сложная и на 4 слоя, то более "шумные" и основные цепи на первый и что-то на четвёртый, 2-GND, 3 - питание. У каждой микросхемы по питанию не пожалейте по паре емкостей для фильтрации (0,47u и 1000p например), если предусмотрено отключение питания и актуально стартовать быстро, то надо будет прикинуть время задержки и выбрать ёмкости. Также рекомендую фильтры электромагнитных помех, по цифровым цепям управлени, Murata например NFM18CC101R1C3 (подобрать нужные по времени задержки и частоте среза).
  8. Версия WorkBench 2.31E, все программы под ним делал. Есть версия 3.41a, но под ней не работаю, хотя наверно придётся перейти. Хидеры (14x, 16x) менял уже, результат один. Даже вытаскивал из 3.41 в 2.31 (для эксперимента), оказалось, они незаменяемые. Скорее всего дело в версии. Всем Спасибо. Пойду пробовать код под разными версиями. Если не получится, выложу скриншоты.
  9. #include <msp430x16x.h> конечно имеется. Для проверки я взял пример из Slac069b/fet140_ta_01.c заменил на #include <msp430x16x.h> Но ошибки все теже. Есть особые разницы между 149 и 169? Раньше разницы не наблюдал. Или с Workbench, чего случилось....
  10. Помогите разобраться с таймером. Компилятор ругается на эти строки (Конкретно на идентификатор "vector"... и всякие другие предупреждения): #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) Контроллер MSP430F169. Может что то забыл подключить или указать?
  11. А есть у кого нть описание к ADS 2005A на русском? Есть у меня на английском.
  12. Мне говорили, что MSP430F149 может работать и от 5V. Это не есть правильно.... но говорят живёт. :) А ещё можно использовать Преобразователи Уровня (ПУ).
  13. PCAD вродеб так и делает (R1, R2, R3). У Вас в окне Utils Renumber это стоит: Starting Number 1 ??? Хотя даже если там пробел нарисовать, то нумерация с единицы идёт. Хммм.... Если проект не секретный, можно на него взглянуть? :) и в какой версии PCAD'а создан?
  14. Да, проще всёже на рассыпухе и операционниках собрать, зависит всё тока от требований к фазовым ошибкам. :)
  15. Это Direct Digital Synthesis (DDS). Цифровой синтезатор короче... Но мне кажется не совсем уместно его использование на таких низких частотах. Да и если не жалко денег на DDS, то можно использовать, что то вроде этого: I/Q Demod
×
×
  • Create New...