Например TDA7294

 Форум РадиоКот • Просмотр темы - UART MSP430 вопрос
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт окт 17, 2017 20:07:41



Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: UART MSP430 вопрос
СообщениеДобавлено: Пн мар 20, 2017 21:45:08 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
Здравствуйте.
Не могу понять, почему не вызывается обработчик прерывания.
При том, что при передаче с COM Port Toolkit мигает светодиод RXD но в терминале ничего не отображается и прерывание не вызывается.
Порты создаю и связываю Virtual Serial Ports. Тестовое сообщение из кода выводит что попало в COM Port Toolkit.

Изображение

Изображение

Прерывание RX


Инициализация UART


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 08:08:48 
Родился
Аватар пользователя

Карма: 1
Зарегистрирован: Ср мар 09, 2016 09:07:41
Сообщений: 15
Рейтинг сообщения: 0
Мне не удалось завести в Proteus UART на MSP430x2xx, пришлось использовать софтовый.


Вернуться наверх
 Профиль  
 
От идеи до готового устройства! Нужен только EasyEDA!

Бесплатный инструмент для проектирования печатных плат - нарисуй свою плату прямо сейчас!

JLCPCB for PCB Prototyping, всего $2 за 10 печатных плат 10×10см. Доставка 2-3 дня.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 13:23:05 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
JackSmith писал(а):
Мне не удалось завести в Proteus UART на MSP430x2xx, пришлось использовать софтовый.


Я уже тоже решил плюнуть на это дело и в железе отладку делать.
Реально прикошмарило каждый раз после запуска дебагера перезагружаться - зависает COM-порт.
COM Port Toolkit хоть порты все видит, а Proteus на СОМ4 заканчивается. Делаю мосты СОМ2-СОМ5, СОМ3-СОМ6, СОМ4-СОМ7
И так вот 3 раза дебагер запустил и перезагрузка.

С I2C разобрался и все нормально работает. Вот думаю может и здесь я туплю, а не Proteus.
Может это из-за Windows 7 - не знаю.

У меня вообще проект на G2553, но его нет в Proteus.
Хотел отладить на F2132, а потом просто поменять линии порта и уже тестить в железе окончательно.

Добавлено after 15 minutes 57 seconds:
В то же время, когра вешаю на RXD осциллограф - сечет передачу по порту.
Мне кажется тут что-то с приемом на уровне МК, а вот что?..
Еще для G2553 линии порта указываются P1SEL и P1SEL2, а для F2132 - P3SEL.
Может здесь собака зарыта?
Хотя я пока еще думаю, что где-то я туплю - только изучаю данный МК.

Изображение


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 15:05:58 
Родился
Аватар пользователя

Карма: 1
Зарегистрирован: Ср мар 09, 2016 09:07:41
Сообщений: 15
Рейтинг сообщения: 1
ice126 писал(а):
Я уже тоже решил плюнуть на это дело и в железе отладку делать.

Аналогично, АЦП я там тоже не поднял, вне зависимости от того, что кидаешь на него: землю или шину питания - всегда выдает 1023, хотя та же программа на железке вполне нормально работает. Про то что I2C там рабочий для меня новость, я даже пытаться не стал его поднять, сразу поставил совтовый, потом попробую аппаратный завести.

Цитата:
У меня вообще проект на G2553, но его нет в Proteus.

В Proteus 8.5 он уже есть.


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 15:45:57 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
JackSmith писал(а):
ice126 писал(а):
Я уже тоже решил плюнуть на это дело и в железе отладку делать.

Аналогично, АЦП я там тоже не поднял, вне зависимости от того, что кидаешь на него: землю или шину питания - всегда выдает 1023, хотя та же программа на железке вполне нормально работает. Про то что I2C там рабочий для меня новость, я даже пытаться не стал его поднять, сразу поставил совтовый, потом попробую аппаратный завести.

Цитата:
У меня вообще проект на G2553, но его нет в Proteus.

В Proteus 8.5 он уже есть.



АЦП и I2C у меня работает норм. Компаратор тоже работает. Правда, когда выставил регистры на внешнее опорное Proteus вылетал всегда в фатал эрор. С 0,25 и 0,5 питания компаратор работает без проблем.

Может все же кто-то запустил USCI в Proteus? Поделитесь кодом, пожалуйста.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 16:04:30 
Собутыльник Кота
Аватар пользователя

Карма: 60
Зарегистрирован: Ср дек 24, 2008 10:58:58
Сообщений: 2829
Рейтинг сообщения: 1
Медали: 2
Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Верно-ли я понимаю, что проблема только как работать с UART в Протеусе, а в железе все работает? Протеус я не использую, но если есть проблемы с функционированием модулей MSP430 в железе, мог-бы помочь.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 18:35:43 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
Ser60 писал(а):
Верно-ли я понимаю, что проблема только как работать с UART в Протеусе, а в железе все работает? Протеус я не использую, но если есть проблемы с функционированием модулей MSP430 в железе, мог-бы помочь.



Здравствуйте.
В железе еще не реализовано - тестирую в Протеусе.
Если Вам не сложно - гляньте, правильно ли я инициализирую и прерывание прописал?

Добавлено after 13 minutes 8 seconds:
JackSmith писал(а):
Цитата:
У меня вообще проект на G2553, но его нет в Proteus.

В Proteus 8.5 он уже есть.


Типа есть. При создании проекта можно указать этот МК, но в наборе компонент его нет.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 20:09:04 
Собутыльник Кота
Аватар пользователя

Карма: 60
Зарегистрирован: Ср дек 24, 2008 10:58:58
Сообщений: 2829
Рейтинг сообщения: 0
Медали: 2
Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Вот Вам рабочий код, проверенный в железе под IAR. Он принимает символ из терминала по прерыванию и если это латинская буква, то инвертирует заглавные в строчные и наоборот, и отсылает символ обратно в терминал.

У Вас имеется внутрисхемный отладчик? Если ДА, никогда не понимал зачем нужен Протеус при наличии отладчика.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 20:52:05 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
Все же не во мне проблема.
Протеус уже 8.6 поставил - результат тот же.
К стати, G2553 тоже дает выбрать на стадии создания проекта, но компонента такого нет.
Жаль.
Сколько искал доп библиотеки - только за 600 баксов есть с этим МК.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Вт мар 21, 2017 21:25:58 
Собутыльник Кота
Аватар пользователя

Карма: 60
Зарегистрирован: Ср дек 24, 2008 10:58:58
Сообщений: 2829
Рейтинг сообщения: 0
Медали: 2
Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Не понял какие доп. библиотеки искали. Для Протеуса что-ли? Мой Вам совет - забудьте о нём. Зачем Вам нужен инструмент, в котором баг на баге сидит, и который, к тому-же, не гарантирует, что после него будет работать в железе. Я код, выложенный выше только чтo лично проверит с G2553 и USB-UART конвертером на CP2104 и терминальной программой от Parallax и работоспособность его гарантирую.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 01:24:57 
Родился
Аватар пользователя

Карма: 1
Зарегистрирован: Ср мар 09, 2016 09:07:41
Сообщений: 15
Рейтинг сообщения: 0
ice126 писал(а):
К стати, G2553 тоже дает выбрать на стадии создания проекта, но компонента такого нет.
Жаль.

?
Изображение


Ser60 писал(а):
Верно-ли я понимаю, что проблема только как работать с UART в Протеусе, а в железе все работает? Протеус я не использую, но если есть проблемы с функционированием модулей MSP430 в железе, мог-бы помочь.


Не могу выставить тактирование через DCO
Код:
    DCOCTL=CALDCO_1MHZ;
    BCSCTL1=CALBC1_1MHZ;


Вне зависимости от константы устанавливается одинаковая частота около 8MHz(судя по скорости мигания светодиода). В чем может быть причина? Чип: msp430g2453


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 02:05:42 
Собутыльник Кота
Аватар пользователя

Карма: 60
Зарегистрирован: Ср дек 24, 2008 10:58:58
Сообщений: 2829
Рейтинг сообщения: 0
Медали: 2
Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Не можете в Протеусе или в железе - с этого следует начинать вопрос. Если первое, то я бессилен. Строчки кода для установки частоты DCO правильные. Посмотрите отладчиком содержимое этих регистров (DCOCTL и BCSCTL1) и посчитайте какая должна быть частота. Или просто выведите SMCLK на P1.4 и измерьте. В общем, мало информации. Может у Вас в коде светодиод управляется таймером тактируемым от ACLK, или частотой независимой от DCO.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 08:44:15 
Родился
Аватар пользователя

Карма: 1
Зарегистрирован: Ср мар 09, 2016 09:07:41
Сообщений: 15
Рейтинг сообщения: 0
Ser60 писал(а):
Не можете в Протеусе или в железе - с этого следует начинать вопрос. Если первое, то я бессилен. Строчки кода для установки частоты DCO правильные. Посмотрите отладчиком содержимое этих регистров (DCOCTL и BCSCTL1) и посчитайте какая должна быть частота. Или просто выведите SMCLK на P1.4 и измерьте. В общем, мало информации. Может у Вас в коде светодиод управляется таймером тактируемым от ACLK, или частотой независимой от DCO.

речь шла конечно же о реальном чипе. отладчика увы нет, есть только BSL программатор. теоретически можно было бы значения нужных регистров передать через UART, но чтобы выставить битрейт передатчика, нужно знать скорость работы микроконтроллера.
прошивка простейшая:
Код:
#include <msp430g2453.h>
#include <sys/types.h>
#define LED BIT0

int main (void)
{
    WDTCTL=WDTPW | WDTHOLD; //turn off watchdog

    P1DIR = LED;
    P1OUT &=~LED;

    //  setup DCO
    DCOCTL=CALDCO_1MHZ;
    BCSCTL1=CALBC1_1MHZ;

    int i=0;
    while (1)
    {
        for(i=0;i<20;i++)
            __delay_cycles(0xFFFF);
        P1OUT ^= LED;
    }

    return 0;
 }



здесь если суффиксы констант поменять на 16MHZ, то если судить по частоте мигания светодиода, эффекта никакого это не производит. причем, если вообще убрать это строки:
Код:
    DCOCTL=CALDCO_1MHZ;
    BCSCTL1=CALBC1_1MHZ;

то микроконтроллер работает на частоте 1MHz если судить по коэффициенту UART.

Если сравнивать ассемблерный код для 16MHz варианта, то здесь все правильно:
Код:
0000e03e <main>:
    e03e:   b2 40 80 5a    mov   #23168,   &0x0120   ;#0x5a80
    e042:   20 01
    e044:   d2 43 22 00    mov.b   #1,   &0x0022   ;r3 As==01
    e048:   f2 f0 fe ff    and.b   #-2,   &0x0021   ;#0xfffe
    e04c:   21 00
    e04e:   d2 42 f8 10    mov.b   &0x10f8,&0x0056   
    e052:   56 00
    e054:   d2 42 f9 10    mov.b   &0x10f9,&0x0057   
    e058:   57 00
    e05a:   0e 43          clr   r14      
    e05c:   06 3c          jmp   $+14        ;abs 0xe06a
    e05e:   3f 40 54 55    mov   #21844,   r15   ;#0x5554
    e062:   1f 83          dec   r15      
    e064:   fe 23          jnz   $-2         ;abs 0xe062
    e066:   03 43          nop         
    e068:   1e 53          inc   r14      
    e06a:   3e 90 14 00    cmp   #20,   r14   ;#0x0014
    e06e:   f7 3b          jl   $-16        ;abs 0xe05e
    e070:   d2 e3 21 00    xor.b   #1,   &0x0021   ;r3 As==01
    e074:   0e 43          clr   r14      
    e076:   f3 3f          jmp   $-24        ;abs 0xe05e

0000e078 <__stop_progExec__>:
    e078:   32 d0 f0 00    bis   #240,   r2   ;#0x00f0
    e07c:   fd 3f          jmp   $-4         ;abs 0xe078



для 1MHz варианта:
Код:
0000e03e <main>:
    e03e:   b2 40 80 5a    mov   #23168,   &0x0120   ;#0x5a80
    e042:   20 01
    e044:   d2 43 22 00    mov.b   #1,   &0x0022   ;r3 As==01
    e048:   f2 f0 fe ff    and.b   #-2,   &0x0021   ;#0xfffe
    e04c:   21 00
    e04e:   d2 42 fe 10    mov.b   &0x10fe,&0x0056   
    e052:   56 00
    e054:   d2 42 ff 10    mov.b   &0x10ff,&0x0057   
    e058:   57 00
    e05a:   0e 43          clr   r14      
    e05c:   06 3c          jmp   $+14        ;abs 0xe06a
    e05e:   3f 40 54 55    mov   #21844,   r15   ;#0x5554
    e062:   1f 83          dec   r15      
    e064:   fe 23          jnz   $-2         ;abs 0xe062
    e066:   03 43          nop         
    e068:   1e 53          inc   r14      
    e06a:   3e 90 14 00    cmp   #20,   r14   ;#0x0014
    e06e:   f7 3b          jl   $-16        ;abs 0xe05e
    e070:   d2 e3 21 00    xor.b   #1,   &0x0021   ;r3 As==01
    e074:   0e 43          clr   r14      
    e076:   f3 3f          jmp   $-24        ;abs 0xe05e

0000e078 <__stop_progExec__>:
    e078:   32 d0 f0 00    bis   #240,   r2   ;#0x00f0
    e07c:   fd 3f          jmp   $-4         ;abs 0xe078


что я делаю не так?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 15:19:25 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
Ser60 писал(а):
Не понял какие доп. библиотеки искали. Для Протеуса что-ли? Мой Вам совет - забудьте о нём. Зачем Вам нужен инструмент, в котором баг на баге сидит, и который, к тому-же, не гарантирует, что после него будет работать в железе. Я код, выложенный выше только чтo лично проверит с G2553 и USB-UART конвертером на CP2104 и терминальной программой от Parallax и работоспособность его гарантирую.


Пока нет внутрисхемного. Максимум что есть отладочная платка за 4 бакса от TI и то как-то не пользуюсь ею - только для прошивки, как правило.
Протеус глючный и я в этом убедился, но все же некоторые вещи он помогает выполнить быстрее и проще. По крайней мере пока мне помогает.

Добавлено after 4 minutes 5 seconds:
JackSmith писал(а):
ice126 писал(а):
К стати, G2553 тоже дает выбрать на стадии создания проекта, но компонента такого нет.
Жаль.

?
Изображение



Изображение

Вы бы не могли выложить свои библиотеки где-то?

Добавлено after 3 hours 8 minutes 23 seconds:
Извините - протупил. Протеусов у меня два и, соответственно, 8.6 хватнул пути библиотек от 8.1
Разрулил. Спасибо.
Самое интересное, когда даешь список из двух путей то он берет не самую новую библиотеку, а первую по списку...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 17:01:52 
Собутыльник Кота
Аватар пользователя

Карма: 60
Зарегистрирован: Ср дек 24, 2008 10:58:58
Сообщений: 2829
Рейтинг сообщения: 2
Медали: 2
Мявтор 2-й степени (1) Мявтор 3-й степени (1)
JackSmith - всё правильно у Вас в коде. Сдаётся мне, что Вы затерли калибровочные константы в памяти МК. Они хоть и дефолтно защишены от записи после ресета, но ... всё бывает. Попробуйте згрузить непосредственно их значения для моего экземпляра 2553. Точных частот у себя вряд-ли получите, но разницу между 1 и 16 мгц ощутите:
CALDCO_16MHZ = 0x90
CALBC1_16MHZ = 0x8F
CALDCO_12MHZ = 0x9A
CALBC1_12MHZ = 0x8E
CALDCO_8MHZ = 0x8C
CALBC1_8MHZ = 0x8D
CALDCO_1MHZ = 0xCD
CALBC1_1MHZ = 0x86

ice126 - какая у Вас платка за $4? Такая? Раньше она действительно $4 стоила, сейчас около $10.

Коты - купите себе хотя-бы такую по ссылке выше. На ней и программатор и внутрисхемный отладчик имеется. Без него будете тыркаться с МК как слепые котята. Начнёте пользоваться - сами поймёте, что никакой Протеус и не нужен будет.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 18:55:25 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
Ser60 писал(а):
ice126 - какая у Вас платка за $4? Такая? Раньше она действительно $4 стоила, сейчас около $10.

Коты - купите себе хотя-бы такую по ссылке выше. На ней и программатор и внутрисхемный отладчик имеется. Без него будете тыркаться с МК как слепые котята. Начнёте пользоваться - сами поймёте, что никакой Протеус и не нужен будет.


Да, такая. Но я ее брал на Али дешевле. Давно не паял и не програмил - со студенческих, по сути. Сейчас оброс и комплектухой и инструментами, осцилл купил, но всего сразу не купишь.
Чесно говоря, в сторону внутрисхемного даже не думал, но теперь подумаю. Поищу у китайцев.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 19:05:01 
Собутыльник Кота
Аватар пользователя

Карма: 60
Зарегистрирован: Ср дек 24, 2008 10:58:58
Сообщений: 2829
Рейтинг сообщения: 1
Медали: 2
Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Вы на правильном пути :beer: Но прежде чем покупать что-то более серьёзное, начните с той платки. С её помощью можно и внешние чипы отлаживать внутрисхемно. Их можно к ней подключить сняв джамперы, в мануале на плату все расписано.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 22, 2017 19:46:50 
Родился
Аватар пользователя

Карма: 1
Зарегистрирован: Ср мар 09, 2016 09:07:41
Сообщений: 15
Рейтинг сообщения: 0
Ser60 писал(а):
JackSmith - всё правильно у Вас в коде. Сдаётся мне, что Вы затерли калибровочные константы в памяти МК. Они хоть и дефолтно защишены от записи после ресета, но ... всё бывает. Попробуйте згрузить непосредственно их значения для моего экземпляра 2553. Точных частот у себя вряд-ли получите, но разницу между 1 и 16 мгц ощутите:
CALDCO_16MHZ = 0x90
CALBC1_16MHZ = 0x8F
CALDCO_12MHZ = 0x9A
CALBC1_12MHZ = 0x8E
CALDCO_8MHZ = 0x8C
CALBC1_8MHZ = 0x8D
CALDCO_1MHZ = 0xCD
CALBC1_1MHZ = 0x86


с этими константами вроде все заработало как надо, потом еще буду проверять с соответствующими UART коэффициентами. спасибо)


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: UART MSP430 вопрос
СообщениеДобавлено: Ср мар 29, 2017 20:11:55 
Открыл глаза

Зарегистрирован: Чт май 26, 2016 15:56:43
Сообщений: 57
Рейтинг сообщения: 0
К стати, USCI u I2C, которые работали на F2132, на G2553 в Proteus 8.6 не ожило. Причина не понятна. Ноги поменял, а все остальное оставил в прежнем виде.
Не работает. Ну и фиг с ним - буду в железе уже реализовывать.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y