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

 
 
17 страниц V  « < 11 12 13 14 15 > »   
Reply to this topicStart new topic
> MSP430 - снова вопросы от чайника, Вопросы от чайника про MSP и магнитный компас
Сергей Борщ
сообщение Nov 27 2008, 21:40
Сообщение #181


Гуру
******

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



Цитата(Daria @ Nov 27 2008, 22:19) *
но может вместо одного можно как-то использовать BSL? Или это глупая версия?
Нет, почему же. Вот в соседней ветке ссылка на пример реализации. Только не сам BSL (BSL-это программа внутри процессора), а программный UART (точно такой же, какой используется и в BSL).


--------------------
На любой вопрос даю любой ответ
"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
rezident
сообщение Nov 28 2008, 00:16
Сообщение #182


Гуру
******

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



Цитата(Daria @ Nov 28 2008, 01:19) *
А вот такой вопрос - для еще одной версии недоделанного девайса, получается нужно три uart 05.gif Т.е. будет три адресата. таких кристаллов не нашла, но может вместо одного можно как-то использовать BSL? Или это глупая версия? многопроцессорный формат разбирать сейчас не очень хочется... 05.gif
Если интерфейс внешний, то для не слишком высокой скорости приемопередачи возможно сделать программно-аппаратный на TimerA или чисто программный UART. Сергей Борщ, уже выше привел ссылку на тему где это обсуждается. В той теме я давал ссылки и на соответствующий application note и на его перевод.
Если же интерфейс у вас чисто внутренний для связи внутри платы/устройства, то рассмотрите возможность применения синхронного интерфейса (SPI, например). Потому что в модуле USCI (который имплементирован в МК серии MSP430F2xxx) имеется возможность одновременного использования двух интерфейсов одного модуля: одного асинхронного (UART/IrDA) и одного синхронного (SPI/I2C) или двух синхронных (SPI/I2C). Аппаратная реализация интерфейса I2C что в модуле USART, что в USCI довольно заморочена, к тому же я сам его ни разу на деле не использовал (в смысле аппаратную поддержку I2C в MSP430, чисто программный I2C-master делал) поэтому из синхронных интерфейсов, имеющихся в MSP430, могу рекомендовать пока только SPI. laughing.gif
Go to the top of the page
 
+Quote Post
aag
сообщение Nov 28 2008, 04:25
Сообщение #183


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

Группа: Свой
Сообщений: 81
Регистрация: 8-04-06
Из: Новосибирск
Пользователь №: 15 939



в MSP430F2617 четыре уарта на борту, можно его попробовать. Причем распиновка у 64-пинового корпуса такая же как в F149 или F169
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 28 2008, 07:53
Сообщение #184


Гуру
******

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



Цитата(aag @ Nov 28 2008, 09:25) *
в MSP430F2617 четыре уарта на борту, можно его попробовать. Причем распиновка у 64-пинового корпуса такая же как в F149 или F169
Вы ошибаетесь. В даташите конечно написано, что там четыре USCI модуля, но именно как UART (Universal Asynchronous Receiver / Transmitter) можно использовать только два, как я и описал в своем предыдущем сообщении. И вообще деление на четыре модуля весьма условное. Я бы классифицировал их скорее как два модуля, каждый из которых содержит один USCI и один USI.
Go to the top of the page
 
+Quote Post
msalov
сообщение Nov 28 2008, 08:08
Сообщение #185


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(Daria @ Nov 27 2008, 22:19) *
А вот такой вопрос - для еще одной версии недоделанного девайса, получается нужно три uart 05.gif Т.е. будет три адресата. таких кристаллов не нашла, но может вместо одного можно как-то использовать BSL? Или это глупая версия? многопроцессорный формат разбирать сейчас не очень хочется... 05.gif


Возможно в тему
http://tech.groups.yahoo.com/group/msp430/message/33745
Цитата
Re: MSP430F417 UART

You can call the asynchronous serial Receive-a-Character and
Transmit-a-Character subroutines in the BSL of a MSP430F417 under the
following conditions:
(a) You must set up and use P1.0 as the serial output.
(cool.gif You must set up and use P1.1 as the serial input.
© MCLK must be faster than 100*BAUD. For example, to use 9600b/s,
you need to have MCLK>0.96MHz.
(d) You need to set up the word at RAM 0x0202-0x0203 to [MCLK/BAUD].
For example, if MCLK=1MHz and BAUD=9600b/s, this word need to be 100
(0x0064).
(e) You need to set up the word at RAM 0x0204-0x0205 to
[(MCLK/BAUD)/2-30]. For example, if MCLK=1MHz and BAUD=9600b/s, this
word need to be 20 (0x00).
(f) You must set up TimerA to count in Continuous Mode. The counting
rate should be the same as MCLK.
(g) You can do either serial input or serial output. You cannot do
both at the same time.
(h) You cannot handle interrupts while doing either serial input or
serial output.
(i) You must use Even Parity. You have none, 1-byte or 2-byte
block-checksum options.

For the checksum options, do one of the followings:
(1) If you do not want checksum, set R9 to 0x1000 or 0x1001 before you
call the subroutines. The subroutines will change R9 from 0x1000 to
0x1001 and from 0x1001 to 0x1000. Thus subsequent calls do not need to
set R9 again.
(2) If you want a 1-byte XOR checksum, set R9 to 0 every time you call
the subroutines. The subroutines will update a 1-byte checksum at
0x0212 and change R9 to 1. You need to initialize and read the
checksum yourself.
(3) If you want a 2-byte XOR checksum, set R9 to 0 when you initialize
the checksum. The subroutines will update a 2-byte checksum at
0x0212-0x0213 and change R9 from 0 to 1 or from 1 to 0 to select which
byte to update. You need to initialize and read the checksum yourself
but you should not change R9.

In addition to the above, to Receive-a-Character, you do the following:
Код
CLR R11
CALL #0x0F56

The character will be returned in R12.
R11:BIT1 is an error flag.
R5 is destroyed.
RAM 0x0209 is destroyed.

To Transmit-a-Character, you do the following instead:
Код
MOV.B [Character], R12
CALL #0x0EEA

R11 is destroyed
R5 is destroyed
RAM 0x0207 is destroyed.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 29 2008, 09:24
Сообщение #186


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

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



Цитата(rezident @ Nov 28 2008, 05:16) *
Потому что в модуле USCI (который имплементирован в МК серии MSP430F2xxx) имеется возможность одновременного использования двух интерфейсов одного модуля: одного асинхронного (UART/IrDA) и одного синхронного (SPI/I2C) или двух синхронных (SPI/I2C).

Позанудствуюsmile.gif i2c - не синхронныйsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 29 2008, 10:18
Сообщение #187


Гуру
******

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



Цитата(AHTOXA @ Nov 29 2008, 11:24) *
Позанудствуюsmile.gif i2c - не синхронныйsmile.gif
Оба-на! Вносите определение синхронного интерфейса и вместе посмотрим, где I2C этому определению не соответствует.


--------------------
На любой вопрос даю любой ответ
"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
rezident
сообщение Nov 29 2008, 15:02
Сообщение #188


Гуру
******

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



Цитата(AHTOXA @ Nov 29 2008, 14:24) *
Позанудствуюsmile.gif i2c - не синхронныйsmile.gif
Да-а-а? 07.gif А какой же тогда по-вашему? cranky.gif
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 29 2008, 16:48
Сообщение #189


Местный
***

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



Цитата(rezident @ Nov 28 2008, 03:16) *
Если интерфейс внешний, то для не слишком высокой скорости приемопередачи возможно сделать программно-аппаратный на TimerA или чисто программный UART. Сергей Борщ, уже выше привел ссылку на тему где это обсуждается. В той теме я давал ссылки и на соответствующий application note и на его перевод.
Если же интерфейс у вас чисто внутренний для связи внутри платы/устройства, то рассмотрите возможность применения синхронного интерфейса (SPI, например).

Нет, интерфейс внешний. Смысл в чем - есть одна плата(управляющая), она принимает команды с компа, опрашивает компасный модуль и дальше посылает команду на поворотное устройство. Вот вся программа. Сначала поворотное устройство было "тупое", без внутреннего контроллера, управлялось оно просто импульсами тока заданной длительности - это не здорово. Теперь есть другое устройство, с собственным контроллером, ему достаточно просто отправить команду - и оно поедет, куда сказали smile.gif Итого три абонента - комп, компас и поворотник.
Насчет "не слишком высокой скорости приемопередачи "... 05.gif вот не знаю. какую можно реализовать на TimerA? Хотя бы 19200 можно?
Ваши ссылки скачала, спасибо, буду разбираться. В понедельник ждите вопросов - не думаю, что все получится с первого раза biggrin.gif

Сообщение отредактировал Daria - Nov 29 2008, 16:50
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 29 2008, 19:10
Сообщение #190


Гуру
******

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



Цитата(Daria @ Nov 29 2008, 21:48) *
Нет, интерфейс внешний. Смысл в чем - есть одна плата(управляющая), она принимает команды с компа, опрашивает компасный модуль и дальше посылает команду на поворотное устройство. Вот вся программа. Сначала поворотное устройство было "тупое", без внутреннего контроллера, управлялось оно просто импульсами тока заданной длительности - это не здорово. Теперь есть другое устройство, с собственным контроллером, ему достаточно просто отправить команду - и оно поедет, куда сказали smile.gif Итого три абонента - комп, компас и поворотник.
Как я понял у вас три различных устройства и все они независимо-автономные. Одно устройство (компас?) является т.с. "управляющим ретранслятором" и транслирует команды, переданные по технологическому каналу с PC на два других. Тип связи (асинхронный) уже определен и изменению не подлежит. Вам не хватает одного UART в вашем компасе для технологического канала. Я все правильно понял?
Цитата(Daria @ Nov 29 2008, 21:48) *
Насчет "не слишком высокой скорости приемопередачи "... 05.gif вот не знаю. какую можно реализовать на TimerA? Хотя бы 19200 можно?
Когда-то я "баловался" с приемопередатчиком IrDA на TimerA по мотивам тех же самых апликух производителя. Скорость 38400 получил довольно легко даже на заморачиваясь написанием функций на ASM. Реализовывал на Си. Так что 19200 при вашей тактовой (8МГц) можно тоже реализовать без особых затруднений. Только следует учесть, что связь будет полудуплексной. Если для технологического канала вам это не подходит, то используйте обычный UART, а к программно-аппаратному UART подключите устройство, которое не так критично к полудуплексной связи.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 29 2008, 19:53
Сообщение #191


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

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



Цитата(Сергей Борщ @ Nov 29 2008, 15:18) *
Оба-на! Вносите определение синхронного интерфейса и вместе посмотрим, где I2C этому определению не соответствует.


У меня нет определения, есть лишь какое-то смутное чувство, что он не синхронныйsmile.gif Из-за задержек наверное... Хотя это можно рассматривать как синхронизацию с принимающей стороной... Может я и не подумамши ляпнулsmile.gif
А что такое синхронный в вашем понимании? С чем синхронный?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 29 2008, 20:49
Сообщение #192


Гуру
******

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



Цитата(AHTOXA @ Nov 29 2008, 21:53) *
А что такое синхронный в вашем понимании? С чем синхронный?
С тактовым сигналом. Это когда тактовый сигнал (SCLK) передается вместе с данными (SDAT) по каналу связи, а не восстанавливается из сигнала данных на приемной стороне.


--------------------
На любой вопрос даю любой ответ
"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
rezident
сообщение Nov 29 2008, 20:59
Сообщение #193


Гуру
******

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



Цитата(AHTOXA @ Nov 30 2008, 00:53) *
Может я и не подумамши ляпнулsmile.gif
Очень на это похоже biggrin.gif
Сергей Борщ вполне понятно пояснил.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 29 2008, 21:56
Сообщение #194


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

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



Цитата(Сергей Борщ @ Nov 30 2008, 01:49) *
С тактовым сигналом. И тактовый сигнал (SCLK) передается вместе с данными (SDAT) по каналу связи, а не восстанавливается из сигнала данных на приемной стороне.


А можно всё же определение синхронного интерфейса? Я что-то не нагуглил ничего. В описании i2c от Филипс не сказано, что интерфейс синхронный. Там упоминается синхронизация, но лишь в контексте арбитража шины при мультимастере.

Цитата(rezident @ Nov 30 2008, 01:59) *
Очень на это похоже biggrin.gif
Сергей Борщ вполне понятно пояснил.


Я въедливый:-)

ЗЫ. Прошу прощения за офтопик.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 29 2008, 22:29
Сообщение #195


Гуру
******

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



Синхронный интерфейс это интерфейс в котором наряду с сигналом(ами) данных передается сигнал тактовой синхронизации. Если к обычным сигналам UART (RX и TX) добавить тактовый сигнал UCLK, то интерфейс тоже станет синхронным. Модуль в MSP430 не зря называется USART (Universal Synchronous/Asynchronous Receive/Transmit), т.к. у него имеется вход внешнего тактирования, который может использоваться для синхронизации как в режиме UART, так и в режиме SPI (slave).
Кстати, двухпроводный синхронный интерфейс SSI с дифф. интерфейсом физической линии RS485/RS422 широко применяется в промышленных энкодерах.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:11
Рейтинг@Mail.ru


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