Zaber 0 20 декабря, 2008 Опубликовано 20 декабря, 2008 · Жалоба Всем привет Начал только знакомиться с этим видом процессора, пытаюсь написать первую программу на основе кода с производителя: //****************************************************************************** // MSP-FET430P440 Demo - USART0, 9600 UART Echo ISR, DCO SMCLK // // Description: Echo a received character, RX ISR used. Normal mode is LPM0. // USART0 RX interrupt triggers TX Echo. // Baud rate divider with 1048576hz = 1048576Hz/9600 = ~109.23 (06Dh|03h) // ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz // //* An external watch crystal between XIN & XOUT is required for ACLK *// // // MSP430F449 // ----------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P2.4|-----------> // | | 9600 - 8N1 // | P2.5|<----------- // // // M. Buccini // Texas Instruments Inc. // Feb 2005 // Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A //***************************************************************************** #include <msp430x44x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT FLL_CTL0 |= XCAP18PF; // Configure load caps P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD UCTL0 |= CHAR; // 8-bit character UTCTL0 |= SSEL1; // UCLK = SMCLK UBR00 = 0x6D; // 1MHz 9600 UBR10 = 0x00; // 1MHz 9600 UMCTL0 = 0x03; // modulation UCTL0 &= ~SWRST; // Initialize USART state machine IE1 |= URXIE0; // Enable USART0 RX interrupt P2DIR |= 0x10; // P2.4 output direction _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt } #pragma vector=USART0RX_VECTOR __interrupt void usart0_rx (void) { while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready? TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0 } Пытаюсь общаться через TeraTerm через COM порт частота 2400 ( 9600 вообще не пашет ). В результате не получаю ни одного реально нажатого символа - идёт только мусор. В чём загвоздка ?? Как исправить - тыкните носом. Спасибо БОЛЬШОЕ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 20 декабря, 2008 Опубликовано 20 декабря, 2008 · Жалоба Нужно начать с чтения User's Guide. Хотя бы те разделы его, которые относятся к тем периферийным модулям, что вы используете. При просмотре "по диагонали". 1. не сконфигурирован полностью модуль тактирования 2. неправильный порядок инициализации регистров USART 3. а где у вас в main-е "вечный цикл"? Функция main выполняется только один раз. Используйте для вставки исходника соответствующие тегаи. В редакторе сообщения это кнопочка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zaber 0 20 декабря, 2008 Опубликовано 20 декабря, 2008 · Жалоба Нужно начать с чтения User's Guide. Хотя бы те разделы его, которые относятся к тем периферийным модулям, что вы используете. При просмотре "по диагонали". 1. не сконфигурирован полностью модуль тактирования 2. неправильный порядок инициализации регистров USART 3. а где у вас в main-е "вечный цикл"? Функция main выполняется только один раз. Используйте для вставки исходника соответствующие тегаи. В редакторе сообщения это кнопочка Большое спасибо за ответ Значит пример программы с сайта разработчика неверен, я правильно понял ? Я просто взял его как аксиому, что это полностью рабочий вариант Буду пробовать решать эти проблемы кстати User Guide (RUS) найден тут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 20 декабря, 2008 Опубликовано 20 декабря, 2008 · Жалоба Значит пример программы с сайта разработчика неверен, я правильно понял ? Это значит, что править примеры нужно зная, что делаешь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 20 декабря, 2008 Опубликовано 20 декабря, 2008 · Жалоба кстати User Guide (RUS) найден тутМожете скачать копию книги Семейство микроконтроллеров MSP430x4xx: руководство пользователя из библиотеки Компэла и читать ее в офф-лайне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CAHTA_1939 0 21 декабря, 2008 Опубликовано 21 декабря, 2008 · Жалоба Нужно начать с чтения User's Guide. Хотя бы те разделы его, которые относятся к тем периферийным модулям, что вы используете. При просмотре "по диагонали". 1. не сконфигурирован полностью модуль тактирования 2. неправильный порядок инициализации регистров USART 3. а где у вас в main-е "вечный цикл"? Функция main выполняется только один раз. Используйте для вставки исходника соответствующие тегаи. В редакторе сообщения это кнопочка по поводу 3его пункта... там вечный цикл не нужен! мк уходит в режим LMP0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 21 декабря, 2008 Опубликовано 21 декабря, 2008 · Жалоба там вечный цикл не нужен! мк уходит в режим LMP0.Да, согласен. Я обратил внимание на бит GIE, а LPM0 "проспал". :( Ну дык сразу и сделал оговорку, что "по диагонали" смотрел исходник :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CAHTA_1939 0 21 декабря, 2008 Опубликовано 21 декабря, 2008 · Жалоба у человека, возможно, ошибка где ни будь в схеме. перепутал tx и rx, хз... какой драйвер поставил... у меня почти все исходники от ТИ шли нормально. проблема возникла с P8 у 2618. туда вместе с IO выведен вход для XT2. и как получилось, оно по умолчанию действует, так что пришлось через SEL вводить порт в режим IO... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rlab 0 22 декабря, 2008 Опубликовано 22 декабря, 2008 · Жалоба // Baud rate divider with 1048576hz = 1048576Hz/9600 = ~109.23 (06Dh|03h) // ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz FLL_CTL0 |= XCAP18PF; // Configure load caps В результате не получаю ни одного реально нажатого символа - идёт только мусор. Раз идёт мусор то больше всего что УАРТ и порты настроены правильно. В описании примера видно что весь расчёт сделан на частоту около 1мгц, но в вашем исходнике настройки генератора нету (поидее осталась только одна строчка :) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zaber 0 4 января, 2009 Опубликовано 4 января, 2009 (изменено) · Жалоба Добрый вечер Плата на которой всё это бежит значится как MSP-TS430PZ100 REv 1.2 with M430F449 Rev G Просидел последние 2 дня всухую и пришёл к выводу 1. У моей платы нет скорее всего нет кварца и поэтому частота которая выставлена в коде неверна 2. Проверил ещё раз все соединения они вроде бы правильные пытался работать на частоте 9600 с приведенным выше исходником результат таков: Принимаются только определёные символы , а отражаются всякий мусор Мысли такие : Sergey Reva скорее всего прав о том , что не верна частота Вопрос : 1. Как узнать правильную частоту ? ( формулу расчёта ) 2. Как быть увереным что нет кварца на плате ну и следовательно что с этим делать 3. MCLK , SMCLK , DCO = 32 x ACLK = 1048576Hz что с ними делать ? 4. Как сдвинуться с этой мёртвой точки ? Мануал прочёл ,но даже запустить первую программу пример -мигание лампочек не получилось. В результате код бежит , но лампочки не мигают . А почему ? не хватает знаний. 5. Беспокоют вот эти строки | XIN|-------- | 32kHz |RST XOUT|-- я понимаю что тут должен быть кварц ??? где найти эти XIN , XOUT Постараюсь скоро сделать снимок платы БОЛЬШОЕ Спасибо Изменено 4 января, 2009 пользователем Zaber Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 4 января, 2009 Опубликовано 4 января, 2009 · Жалоба Плата на которой всё это бежит значится как MSP-TS430PZ100 REv 1.2 with M430F449 Rev G Схема ее имеется в MSP-FET430 Flash Emulation Tool (FET) (for Use With IAR v3+) User's Guide на странице 58. 1. Как узнать правильную частоту ? ( формулу расчёта )Частоту чего именно? Какого сигнала? Сигналы ACLK, SMCLK и MCLK, можно вывести наружу, использовав альтернативные функции соответствующих пинов MSP430. Все формулы расписаны в Users's Guide. Читайте его еще раз. 2. Как быть увереным что нет кварца на платеПосмотреть глазами. Кварцевый осциллятор обычно выглядит так или так или так . Кстати, на типовой схеме MSP-FET430P440 по ссылке на FET, указанной выше, оба кварца обозначены как not assembled, то бишь "не установлен". ну и следовательно что с этим делатьКупить и впаять, если вы считаете, что без него (них) никак не обойдетесь. Только не забудьте об паре конденсаторов в обвязке каждого кварца. 3. MCLK , SMCLK , DCO = 32 x ACLK = 1048576Hz что с ними делать ? Использовать по вашему усмотрению. Или не использовать, опять же по вашему усмотрению Хотя без MCLK программа вообще-то выполняться не будет, т.к. от него процессорное ядро тактируется. я понимаю что тут должен быть кварц ??? где найти эти XIN , XOUT Как где? :07: На самой плате, на выводах ZIF-сокета или непосредственно на кристалле. Цоколевку смотрите на схеме MSP-TS430PZ100 Target Socket Module опять же в документе по самой первой ссылке или в datasheet используемого в нем кристалла MSP430. Update. Ага. Пока я набивал сообщение, появилась фото. На нем видно, что часовой кварц 32768Гц на модуле все-таки установлен. Тогда см. раздел Chapter 5. FLL+ Clock Module в User's Guide, чтобы понять как правильно нужно инициализировать систему тактирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 4 января, 2009 Опубликовано 4 января, 2009 · Жалоба А контакт между C1 и C2 и ножками кварца Q1 имеется? Частота на выходе генератора 32768? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korobov_michael 0 4 января, 2009 Опубликовано 4 января, 2009 (изменено) · Жалоба Только не забудьте об паре конденсаторов в обвязке каждого кварца. Конденсаторы не нужны. Они являются частью генератора. Их емкость настраивается парой битов XCAPxPF 00 ~1 pF 01 ~6 pF 10 ~8 pF 11 ~10 pF Так что можно несколько упростить схему Изменено 4 января, 2009 пользователем korobov_michael Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 4 января, 2009 Опубликовано 4 января, 2009 · Жалоба Конденсаторы не нужны.Вы ошибаетесь. Встроенных подключаемых конденсаторов недостаточно для нормальной работы и точной установки частоты генератора при использовании широкораспространенных часовых кварцев с нагрузочной емкостью 12,5пФ. Фрагмент из MSP430 LFXT1 Oscillator Accuracy - slaa225 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korobov_michael 0 5 января, 2009 Опубликовано 5 января, 2009 · Жалоба Вы ошибаетесь. Признаюсь, этот репорт до этого не читал. Но даже в нем говорится скорее о точности системы генерирования, нежели о принципиальной возможности запуска генератора. Причем допуск имеет величины от 0,8ppm до 2,5ppm, что для первого ознакомления с чипом более чем достаточно (а ведь это и требуется автору). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться