|
|
  |
MSP430 - снова вопросы от чайника, Вопросы от чайника про MSP и магнитный компас |
|
|
|
Nov 29 2008, 23:42
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Цитата(rezident @ Nov 29 2008, 22:10)  Как я понял у вас три различных устройства и все они независимо-автономные. Одно устройство (компас?) является т.с. "управляющим ретранслятором" и транслирует команды, переданные по технологическому каналу с PC на два других. Тип связи (асинхронный) уже определен и изменению не подлежит. Вам не хватает одного UART в вашем компасе для технологического канала. Я все правильно понял? Почти. Центральное устройство - не компас, а именно "управляющий ретранслятор", он транслирует команды PC, "сверяясь" с компасом  Там тоже стоит MSP(потому что больше я ничего не знаю  ) И вот для этого MSP мне и нужно три UART - для приема команд PC, для опроса компаса и для передачи команд поворотнику. Вообще какой кристалл посоветуете для такой цели "ретранслятора"? Цитата(rezident @ Nov 29 2008, 22:10)  Когда-то я "баловался" с приемопередатчиком IrDA на TimerA по мотивам тех же самых апликух производителя. Скорость 38400 получил довольно легко даже на заморачиваясь написанием функций на ASM. Реализовывал на Си. Так что 19200 при вашей тактовой (8МГц) можно тоже реализовать без особых затруднений. Только следует учесть, что связь будет полудуплексной. Если для технологического канала вам это не подходит, то используйте обычный UART, а к программно-аппаратному UART подключите устройство, которое не так критично к полудуплексной связи. Вы меня извините... а что значит ПОЛУдуплексная?
Сообщение отредактировал Daria - Nov 29 2008, 23:50
|
|
|
|
|
Nov 30 2008, 00:01
|

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

|
Цитата(rezident @ Nov 30 2008, 03:29)  Синхронный интерфейс это... Спасибо, понятно. (Иногда и ляпнуть что-то не подумамши полезно  ) Но всё же несколько смущает, что на клоки может воздействовать и слейв. Сложно провести аналогию с классическим синхронным режимом USART или с SPI. Как-то несинхронно это Хотя наверное можно считать, что сигнал SCL используется двояко - для передачи синхроимпульсов от передатчика к приёминку и для подтверждения приёма - в другую сторону. ЗЫ. Ещё раз спасибо Вам (и Сергею). ЗЫЫ. Оффтопить прекращаю
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 30 2008, 00:02
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Daria @ Nov 30 2008, 04:42)  Почти. Центральное устройство - не компас, а именно "управляющий ретранслятор", он транслирует команды PC, "сверяясь" с компасом  Там тоже стоит MSP(потому что больше я ничего не знаю  ) И вот для этого MSP мне и нужно три UART - для приема команд PC, для опроса компаса и для передачи команд поворотнику. Вообще какой кристалл посоветуете для такой цели "ретранслятора"? Дык выбирайте сами из таблицы. TimerA есть во всех кристаллах, а количество UARTов там отдельно указано. Если же не останавливаться на MSP430, то среди МК с ядром ARM, например, и с 5-ю UART на борту кристаллы имеются. http://mcu.caxapa.ru/db.htmЦитата(Daria @ Nov 30 2008, 04:42)  Вы меня извините... а что значит ПОЛУдуплексная?  Полудуплексный режим работы означает, что в конкретный момент времени UART может выполнять только одно действие: либо прием, либо передачу. Аппаратный же модуль USART в MSP430 может одновременно и то и другое, т.е. он полнодуплексный. Если ваш протокол обмена использует схему "запрос-ответ", то полный дуплекс и не нужен.
|
|
|
|
|
Nov 30 2008, 00:13
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(AHTOXA @ Nov 30 2008, 05:01)  Но всё же несколько смущает, что на клоки может воздействовать и слейв. Сложно провести аналогию с классическим синхронным режимом USART или с SPI. Как-то несинхронно это  Почему сложно? Отчего несинхронно? Данные выдаются на шину SDA синхронно с SCL и считываются опять же синхронно с SCL. Какая разница кто именно (какое именно устройство) определяет длительность "нуля" на шине SCL? Вы что никогда логику I2C в ПЛИС не реализовывали что ли? Цитата(AHTOXA @ Nov 30 2008, 05:01)  Хотя наверное можно считать, что сигнал SCL используется двояко - для передачи синхроимпульсов от передатчика к приёминку и для подтверждения приёма - в другую сторону. SCL не используется "для передачи синхроимпульсов", а сам является источником синхроимпульсов. Может вас смущает, что в спецификации нет четкой привязки к фронтам SCL? Ну дык это сделано с расчетом на программную реализацию интерфейса, когда переходы определяются программным поллингом (опросом) пинов МК, подключенных к шинам SCL и SDA. Насчет оффтопа. Если у вас есть еще желание подискутировать, то давайте выделю сообщения в отдельную тему. Либо завязываем.
|
|
|
|
|
Nov 30 2008, 19:13
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Цитата(rezident @ Nov 30 2008, 03:02)  Полудуплексный режим работы означает, что в конкретный момент времени UART может выполнять только одно действие: либо прием, либо передачу. Аппаратный же модуль USART в MSP430 может одновременно и то и другое, т.е. он полнодуплексный. Если ваш протокол обмена использует схему "запрос-ответ", то полный дуплекс и не нужен. Ага, ясно. Вообще именно "запрос-ответ", так что все в порядке АНТОХА, спасибо за пример, скачала, посмотрю.
|
|
|
|
|
Dec 1 2008, 20:34
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Такой вопрос - раньше работала только с положительными напряжениями. поэтому просто брала отсчеты АЦП, теперь могут быть и отрицательные . Питание 3,3 В, Vref=1.5B. Схема включения операционнка как в предыдущем вопросе про датчик  Когда посылаешь короткий импульс тока, выходы датчика инвертируются, и нужно считать это показание Правильно ли будет так: Задаю V- = Vss, V+ = Vcc. V - показания АЦП, V1=(V*3.3/4096 - 1.5) и работать уже с этими значениями. Извините, что меня опять повело на тупые вопросы  Просто когда изделие уже вроде работает и калибруется начали выявляться всякие непонятки  оказывается, все не так надо было делать, и даже не понятно - а как же оно ухитряется работать?
|
|
|
|
|
Dec 4 2008, 20:54
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Нет, вопрос был не про калибровку  калибровок у меня несколько, под разные условия. Максимум и минимум сигнала, кстати, довольно сложно определить в полевых условиях, а перекалибровываться придется именно в полевых. Бог с ней, с калибровкой. Просто я думала, что для правильного выполнения алгоритмов мне нужно работать не с отсчетами АЦП, а с реальными напряжениями, и для этого переводить данные АЦП в напряжения  Но вроде и так все нормально
|
|
|
|
|
Dec 4 2008, 21:44
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Daria @ Dec 5 2008, 01:54)  Максимум и минимум сигнала, кстати, довольно сложно определить в полевых условиях, а перекалибровываться придется именно в полевых. У прямой линии (в отличие от, например, отрезка или вектора) нет начала и конца. В то же самое время, согласно доказательству одной геометрической теоремы, через две точки можно провести только одну прямую.  Коэффициент a=(Umax-Umin)/(КОДmax-КОДmin) определяет угол наклона прямой к оси абцисс и для его расчета можно выбирать любые две точки лежащие на прямой. Извините, если вдруг обидел этим напоминанием прописных истин из школьного курса математики  Цитата(Daria @ Dec 5 2008, 01:54)  Просто я думала, что для правильного выполнения алгоритмов мне нужно работать не с отсчетами АЦП, а с реальными напряжениями, и для этого переводить данные АЦП в напряжения  Любое измерение относительно. "Измерить" означает "сравнить с чем-либо". Но пока у вас результаты измерений не выходят за пределы прибора и/или их не нужно использовать каким-либо образом вне прибора, то вы можете измерять в каких угодно "попугаях". А вот данные, выдаваемые прибором наружу, лучше представлять в каких-либо стандартных единицах измерения.
|
|
|
|
|
Dec 5 2008, 21:16
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Цитата(rezident @ Dec 5 2008, 00:44)  Коэффициент a=(Umax-Umin)/(КОДmax-КОДmin) определяет угол наклона прямой к оси абцисс и для его расчета можно выбирать любые две точки лежащие на прямой. Извините, если вдруг обидел этим напоминанием прописных истин из школьного курса математики  Нет, нет, не обидели  Просто я не поняла сначала, про что вы говорите - голова забита своими калибровками. ( Слово одно, а подразумевается разное )  Цитата(rezident @ Dec 5 2008, 00:44)  Любое измерение относительно. "Измерить" означает "сравнить с чем-либо". Но пока у вас результаты измерений не выходят за пределы прибора и/или их не нужно использовать каким-либо образом вне прибора, то вы можете измерять в каких угодно "попугаях". А вот данные, выдаваемые прибором наружу, лучше представлять в каких-либо стандартных единицах измерения. Да.да, вы совершенно правы, полностью согласна  Немного сама себя запутала(с посторонней помощью), но вовремя одумалась  Какая разница - в напряжениях или в отсчетах АЦП, главное соотношения между числами. а выдаются у меня - углы  Ну, и управляющие команды
|
|
|
|
|
Dec 7 2008, 17:37
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Такой вопрос - во время работы в отладчике происходят следующие глюки - если "шагать" по коду, то где-то на 10-м, 12-м шаге все зависает, и нужно выходить из отладчика. Более того, такой кристалл, 149, по даташиту позволяет три точки останова при работе в реальном времени, если не ставить флажок Run to, но далеко не всегда позволяет на самом деле, иногда уже после первой в глухую зависает. И еще - иногда самопроизвольно выходит из отладчика, при этом flash стирается. Работаешь, вдруг - бац, вышел, стер и даже ничего не сообщил  С каждым днем это происходит все чаще. если раньше раз в месяц, то сейчас уже буквально каждый день. Вопрос - это скорее глюки IARa или самого проца?
Сообщение отредактировал Daria - Dec 7 2008, 17:38
|
|
|
|
|
Dec 23 2008, 16:29
|

читатель даташитов
   
Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999

|
Цитата(rezident @ Nov 19 2008, 13:42)  К сочетанию volitile и const у компилятора идиосинкразия какая-то.  А что если считать переменную через укзатель? Не подставит ведь константу? В крайнем случае через volatile указатель.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|