реклама на сайте
подробности

 
 
17 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> MSP430 - снова вопросы от чайника, Вопросы от чайника про MSP и магнитный компас
rezident
сообщение Sep 13 2008, 20:13
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(MrYuran @ Sep 13 2008, 23:31) *
А вообще, как говорил кот Матроскин, холодильник чей - государственный, а холод, который он вырабатывает - наш.

Так же и тут.
Компилятор - GPL, а код, который он вырабатывает - наш.
Вы явно не читали или читали невнимательно текст GNU GENERAL PUBLIC LICENSE sad.gif
Цитата(Сергей Борщ @ Sep 14 2008, 00:20) *
Насколько я понимаю, лицензия GPL предписывает предоставлять по первому требованию исходники самого компилятора, но не код, им произведенный.
При компиляции используются какие-то библиотеки компилятора, так? Так вот, если полученный в результате компиляции код содержит внутри себя хотя бы часть этой библиотеки (например, библиотеки вычислений с "плавучкой"), то весь он попадает под действие лицензии GPL. Если же какие-то части программы, имеющие возможность функционировать самостоятельно и не содержащие компоненты, попадающие под действие GPL, были лишь скомпилированы GNU-тым компилятором, тогда да, они также свободны от действия GPL.

Давайте не будем засорять ветку bb-offtopic.gif. Если вопрос лицензий free software и open source волнует кого-то, то можно завести отдельный топик.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Sep 15 2008, 17:38
Сообщение #62


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(rezident @ Sep 14 2008, 02:13) *
При компиляции используются какие-то библиотеки компилятора, так? Так вот, если полученный в результате компиляции код содержит внутри себя хотя бы часть этой библиотеки (например, библиотеки вычислений с "плавучкой"), то весь он попадает под действие лицензии GPL.


Библиотеки обычно не gpl, а lgpl. Но тут надо конечно быть очень внимательным...

Цитата
Давайте не будем засорять ветку bb-offtopic.gif. Если вопрос лицензий free software и open source волнует кого-то, то можно завести отдельный топик.


Я был бы не против почитать такой топикsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Daria
сообщение Sep 18 2008, 13:34
Сообщение #63


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(rezident @ Sep 12 2008, 22:27) *

rezident, большое спасибо. Все работает. Вы хороший smile.gif
Go to the top of the page
 
+Quote Post
Daria
сообщение Sep 23 2008, 18:33
Сообщение #64


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Здравствуйте. Такие вопросы -
сейчас я прошиваю контроллер самодельной отладкой, схему которой советовали, по-моему, вы, rezident - она питается с платы, 3,3 В. В дальнейшем хочу использовать MSP-FET430PIF, так как требования - либо на свою отладку оформлять докуметацию по всем правилам, либо пользоваться готовой. и вот вопрос - у MSP-FET430PIF питание от LPT - мне сказали, что это опасно, что LPT часто горят, если программатор питается прямо от порта. Это правда? насколько часто? smile.gif Может, лучше не покупать этот MSP-FET430PIF?
И еще - не совсем в по теме. Не подскажите какой-нибудь кварцевый резонатор на 8MГц, как можно меньших размеров? И, желательно, планарный smile.gif Не могу найти, на такую частоту все какие-то здоровые, а нужно сокращать размеры платы sad.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 23 2008, 19:56
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Sep 24 2008, 00:33) *
В дальнейшем хочу использовать MSP-FET430PIF, так как требования - либо на свою отладку оформлять докуметацию по всем правилам, либо пользоваться готовой. и вот вопрос - у MSP-FET430PIF питание от LPT - мне сказали, что это опасно, что LPT часто горят, если программатор питается прямо от порта. Это правда? насколько часто? smile.gif Может, лучше не покупать этот MSP-FET430PIF?
Согласен. MSP-FET430PIF покупать не нужно в любом случае smile.gif. Если вам нужен индивидуальный отладчик и программатор, то купите лучше MSP-FET430UIF или его полнофункциональный клон MSPLink. Olimex-овский USB-FET покупать не рекомендую.
Если же вы хотите передать прошивку кристаллов на производство, то лучше сразу купить MSP-GANG430. Мы покупали в Терраэлектронике.
Преимущества:
- можно программировать до 8ми кристаллов одновременно.
- все кристаллы можно запитать непосредственно от MSP-GANG430.
- поддерживает функцию прожигания fuse.
- можно загрузить прошивку в программатор и использовать его автономно, т.е. он не требует обязательного наличия компьютера. С компьютера вы только загружаете образ прошивки и конфигурацию программирования через последовательный интерфейс RS-232. Соответственно при отсутствии в компе RS-232 можно дополнить программатор любым готовым кабелем USB-COM и работать дальше. В случае же LPT-ного MSP-FET430PIF и отсутствия LPT-порта вы получите массу трудностей.
- MSP-GANG430 поддерживает все предыдущие и последующие серии MSP430, т.е. у него есть перспективы техподдержки. Например, аналогичный по функциям MSP-PRGS430 уже сейчас не поддерживает интерфейс Spy-Bi-Wire и некоторые кристаллы из серии MSP430x2xx.
- чуть не забыл упомянуть главное достоинство MSP-GANG430 для производства, на котором не всегда адекватные по знаниям люди работают smile.gif У MSP-GANG430 из органов управления всего ОДНА кнопка! wink.gif Из индикации два ряда светодиодов (красные и зеленые). Обучить нажатию на кнопку можно даже неквалифицированный персонал. biggrin.gif
Кстати, раз вы планируете программировать кристаллы уже запаянные в плату, то обдумайте стоит ли для этого использовать именно JTAG? Я, например, в серийных устройствах на MSP430 вывожу для программирования сигналы BSL. Во-первых, требуется меньше контактов (всего 6). Во-вторых, BSL позволяет и в дальнейшем менять firmware, когда уже установлена защита (fuse уже пережжен) и JTAG не работает.
Цитата(Daria @ Sep 24 2008, 00:33) *
И еще - не совсем в по теме. Не подскажите какой-нибудь кварцевый резонатор на 8MГц, как можно меньших размеров? И, желательно, планарный smile.gif Не могу найти, на такую частоту все какие-то здоровые, а нужно сокращать размеры платы sad.gif
Посмотрите резонаторы фирм Geyer Electronic и Golledge. Мы часовой (32768Гц) KX-327LT от Geyer недавно начали применять, размеры его всего 1,5х7мм. Продукцией Geyer Electronic торгует Компел и Терраэлектроника, а продукцию Golledge представляет фирма ЭФО.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 23 2008, 20:01
Сообщение #66


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Daria @ Sep 23 2008, 21:33) *
мне сказали, что это опасно, что LPT часто горят, если программатор питается прямо от порта. Это правда?
Нет, неправда. Горит не от питания, а от бестолковости питающего. Когда корпус компьютера не заземлен, когда втыкают в запитанное устройство, питающееся от незаземленного блока питания, ну и т.д. Для MSP-FET430PIF питание от порта - один из штатных режимов.
Цитата(Daria @ Sep 23 2008, 21:33) *
Может, лучше не покупать этот MSP-FET430PIF?
Да. Лучше купите MSP-FET430UIF. Это почти то же самое, только от USB. И питание от него тоже можно брать.
Цитата(Daria @ Sep 23 2008, 21:33) *
Не подскажите какой-нибудь кварцевый резонатор на 8MГц, как можно меньших размеров?
Выбирайте: "Чип И Дип", Кварцевые резонаторы (Всего товаров: 357)


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Daria
сообщение Sep 23 2008, 20:12
Сообщение #67


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Ага, но мне, как пока неквалифицированному программисту, хотелось бы все же программить именно на плате, сразу непосредсственно смотреть сигналы с датчиков. Возможность BSL заложу, но с JTAG мне гораздо проще - удобно отлаживать все это дело, то так, то так попробовать smile.gif А с полноценным отладчиком не знаю, как и работать biggrin.gif такой парадокс. Пробовать ведь надо на реальной плате 05.gif а так - вставить кристалл и... чего дальше? biggrin.gif Мое парадоксальное мышление проявляется тут с новой силой biggrin.gif Когда прога будет уже окончательно выверена, тогда, конечно - вставил кристалл, прошил - давай следующий. Но окончательно - это еще неизвестно когда, к тому же задание постоянно меняется biggrin.gif
Значит PIF - не пойдет? A UIF - разве позволяет программировать прямо на плате?
Резонаторы посмотрю, спасибо

Сообщение отредактировал Daria - Sep 23 2008, 20:53
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 23 2008, 20:47
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Sep 24 2008, 02:12) *
Значит PIF - не пойдет? A UIF - это ведь тоже отдельная коробка smile.gif
Для вашего нынешнего случая (MSP430F149) подойдет и PIF и UIF. Я вам на будущее/перспективу рекомендации давал. Для отладки конечно же лучше нормальный отладчик. BSL это для серии и техподдержки.
Go to the top of the page
 
+Quote Post
Daria
сообщение Sep 23 2008, 20:56
Сообщение #69


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(rezident @ Sep 24 2008, 00:47) *
Для вашего нынешнего случая (MSP430F149) подойдет и PIF и UIF. Я вам на будущее/перспективу рекомендации давал. Для отладки конечно же лучше нормальный отладчик. BSL это для серии и техподдержки.

А UIF позволяет программировать прямо на плате? Как-то он так выглядит... я думала. что нет. по его внешнему виду biggrin.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 23 2008, 21:35
Сообщение #70


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Sep 24 2008, 02:56) *
А UIF позволяет программировать прямо на плате? Как-то он так выглядит... я думала. что нет. по его внешнему виду biggrin.gif
Конечно позволяет. Он функционально более расширен по сравнению с MSP-FET430PIF. В принципе вы даже сами можете изготовить MSP-FET430UIF wink.gif Схема его имеется в slau138, а прошивку тут в форуме где-то выкладывали.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 23 2008, 21:52
Сообщение #71


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Daria @ Sep 23 2008, 23:56) *
Как-то он так выглядит... я думала. что нет. по его внешнему виду biggrin.gif
Эээ... А вы его случайно с ez430 (USB-"свистком") не перепутали? FET430-UIF внешне отличается от FET430-PIF (если не изменяет память) только кабелем к компьютеру.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Daria
сообщение Sep 24 2008, 17:18
Сообщение #72


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(Сергей Борщ @ Sep 24 2008, 01:52) *
Эээ... А вы его случайно с ez430 (USB-"свистком") не перепутали?

Ага, точно biggrin.gif Теперь понятно, спасибо. Кварц, кстати, подходящий нашла у Murata - CSTCE8M0G53 - нормальный? smile.gif
Теперь дальше.
rezident, пытаюсь воспроизвести что-то вроде протоколоа SLIP, который вы упоминали. Вот текст.
Код
#define sizeBufTx 16
#define sizeBufRx 16

unsigned char bufRx[sizeBufRx];
unsigned char bufTx[sizeBufTx];

typedef struct CharBuffer
{
    unsigned char* Data;            
    int NData;                        
    int cData;                        
    int pWrite;                        
    int pRead;                        
}
CharBuffer;
void BufferReset(CharBuffer* pBuffer)
{
    pBuffer->pWrite = 0;
    pBuffer->pRead = 0;
    pBuffer->cData = 0;
}
int    BufferWrite(CharBuffer* pBuffer,unsigned char Byte)
{
    if(pBuffer->cData == pBuffer->NData - 1)
        return 1;                    
    pBuffer->Data[pBuffer->pWrite] = Byte;
    if(pBuffer->pWrite == pBuffer->NData - 1)
        pBuffer->pWrite = 0;
    else
        pBuffer->pWrite++;
    pBuffer->cData++;
    return 0;
}
int BufferRead(CharBuffer* pBuffer, unsigned char* Byte)
{
    if(pBuffer->cData == 0)
       return 1;                    
    *Byte = pBuffer->Data[pBuffer->pRead];
    if(pBuffer->pRead == pBuffer->NData - 1)
        pBuffer->pRead = 0;
    else
        pBuffer->pRead++;
    pBuffer->cData--;
    return 0;
}

struct CharBuffer UARTTxBuf, UARTRxBuf;
void WriteTxbuf(int* data, char size)
{
    unsigned char a, j;
    if ((IE1 & UTXIE0) == 0)        
    {
        BufferWrite(&UARTTxBuf, 0xC0);
        for(j = 0; j < size; j++)
        {
          
            a = data[j] & 0xFF;
            switch (a)
            {
                case 0xC0:
                {
                    BufferWrite(&UARTTxBuf, 0xDB);
                    BufferWrite(&UARTTxBuf, 0xDC);
                    break;
                }
                case 0xDB:
                {
                    BufferWrite(&UARTTxBuf, 0xDB);
                    BufferWrite(&UARTTxBuf, 0xDD);
                    break;
                }
                default:
                    BufferWrite(&UARTTxBuf, a);
            }
            
            a = data[j] >> 8;
            switch (a)
            {
                case 0xC0:
                {
                    BufferWrite(&UARTTxBuf, 0xDB);
                    BufferWrite(&UARTTxBuf, 0xDC);
                    break;
                }
                case 0xDB:
                {
                    BufferWrite(&UARTTxBuf, 0xDB);
                    BufferWrite(&UARTTxBuf, 0xDD);
                    break;
                }
                default:
                    BufferWrite(&UARTTxBuf, a);
            }
            BufferWrite(&UARTTxBuf, 0xC0);
        }
        
        IE1 |= UTXIE0;                    
        IFG1 |= UTXIFG0;            
    }
}


void ReadRxbuf(unsigned char *data)
{
    IE1 &= ~URXIE0;
    BufferRead(&UARTRxBuf, data);
    
    IE1 |= URXIE0;
}

Потом в main
Код
char i, txsize;
    unsigned char rxdata;
    int txdata[sizeBufTx];
BufferReset(&UARTRxBuf);
    UARTRxBuf.NData = sizeBufRx;
    UARTRxBuf.Data = bufRx;
    BufferReset(&UARTTxBuf);
    UARTTxBuf.NData = sizeBufTx;
    UARTTxBuf.Data = bufTx;

Ну. и вся остальная настройка всего , потом

Код
IE1 |= URXIE0;
_BIS_SR(GIE);    
for(;;)
    {
        rxdata = 0;
        txsize = 0;
        ReadRxbuf(&rxdata);
        if (rxdata)
        {
            txdata[txsize++] = rxdata;

            WriteTxbuf(txdata, txsize);
            
        }
    }
}

#pragma vector = UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
    BufferWrite(&UARTRxBuf, U0RXBUF);
}


#pragma vector = USART0TX_VECTOR
__interrupt void usart0_tx (void)
{
    unsigned char data;
    if (!BufferRead(&UARTTxBuf, &data))        
        U0TXBUF = data;
    else
        IE1 &= ~UTXIE0;                        
}


Байты C0 - END, начало и конец посылки, DB - ESC. Если такой байт встречается в самой посылке, то он заменяется на два - DB,DС или DB, DD - ну, вы-то уж. наверное, знаете этот протокол.
В чем проблема -
вроде бы все работает, но -
при сбросе питания всегда присылается 0 или 0,1. При включении - тоже. откуда это берется - не понятно sad.gif И в первой после включения питания посылке теряется первый стартовый C0 - т.е. теряется-то вся посылка, а это недопустимо для меня - моя плата должна отсылать управляющие команды на другую - потеря одной команды приведет к проблемам. почему теряется - тоже никак не могу понять sad.gif
Вот. Будет время - спаите. помогите smile.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 24 2008, 18:12
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Я не вижу функции инициализации UART, но попробуйте перед тем как разрешать прерывание от приемника UART (по)чистить его флаги.
В строках
Цитата
IE1 |= UTXIE0;
IFG1 |= UTXIFG0;

следует поменять их очередность.
Кроме того, функции работы с буфером у вас не полностью реентерабельные. Они не обеспечивают атомарности доступа к переменным индекса и счетчика.
Go to the top of the page
 
+Quote Post
LCD
сообщение Sep 24 2008, 19:14
Сообщение #74


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 1-06-08
Пользователь №: 37 959



Цитата(Daria @ Sep 23 2008, 22:33) *
Не подскажите какой-нибудь кварцевый резонатор на 8MГц, как можно меньших размеров?
А не лучше ли использовать DCO с внешним резистором, если толщина схемы важнее стабильности частоты?
Go to the top of the page
 
+Quote Post
VAI
сообщение Sep 25 2008, 06:57
Сообщение #75


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Цитата
Кварц, кстати, подходящий нашла у Murata - CSTCE8M0G53 - нормальный?


Мы используем Муратовские керамические трёхногие SMD-шные резонаторы с установлеными в них емкостями.
CSTCE8M00G55A-R0 - на 8МГц
CSTCR6M00G53-R0 - на 6МГц
И довольны.Прикрепленный файл  Murata_Ceramic_Resonators__CERALOCK_.pdf ( 609.11 килобайт ) Кол-во скачиваний: 276


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post

17 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01521 секунд с 7
ELECTRONIX ©2004-2016