Как связать контроллеры (I2C? SPI? USART?...)

Работа интерфейса UART в Flowcode

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение Volume (Евгений) » 11 фев 2014, 08:02

mim писал(а):Каково требование к реакции управления?

Оперативные данные по положению нужны только самому слейву. Мастер задуман как верхний уровень обработки информации, у него свои задачи: сбор и распределение информации между подчиненными, индикация и хранение данных (алгоритма управления). К мастеру стекаются только уценки (статус) информации нижнего уровня. А уже у слейвов объект управления ЦАП с контролем по энкодеру.
mim писал(а):Не вижу смысла в миллиметрах и отображении их на ЖКИ.

Из-за лишней загроможденности? Единицу измерения нужно указывать.

Прописал инициализацию UART вручную. Немного выиграл в памяти. Протеус заметно зашустрил. Не разобрался где производить проверку переполнения буфера и сбоев при приеме. В макросе прерывания UART? И еще вопросик: применять диодную развязку можно? или это не есть хорошо для железа?
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Volume
Имя: Евгений
(Иркутск)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение mim (mim) » 11 фев 2014, 09:03

Volume писал(а):1. Из-за лишней загроможденности?
2. Не разобрался где производить проверку переполнения буфера и сбоев при приеме.
3. применять диодную развязку можно? или это не есть хорошо для железа?

1. Из-за прыжков в показаниях, период отображения больше чем период поступления данных, а при 6 источниках еще увеличится (не говоря уже о темпе изменения показаний в самом слейве)...
2. В прерывании по приему. Смотри тексты Матриксов. Но в режиме прерывания переполнения врядли будут, больше нужно контролировать бит ошибки.
3. А что будет железу - диод шотки и песня, если все на одной плате. Но ты пишешь про подключение??? Все зависит от расстояний, может и Максы нужны...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: Как связать контроллеры (I2C ? SPI ?...)

Сообщение adrvyho (adrvyho) » 30 мар 2014, 13:49

mim писал(а):Несмотря на то, что на форуме все время идет тема про USAR - толком ее не решил ни кто. Примеры Матриксов очень корявые, их конечно можно применять, но никто не хочет думать, а как же на самом деле работает этот самый USAR. Ну, а я не тороплюсь вдалбливать это в любого встречного, - жду жаждущего...


Добрый день.
Никак не получается вдохнуть жизнь в бездушный микроконтроллер.
Проблема в следующем:
Контроллер ATXMega128A1, подключен через USART к микросхеме преобразователя USB-COM FT232Rl (готовая отладочная плата MikroXMega Board). Прошивается микруха через USB без проблем, но после прошивки контроллера на приём-передачу эха на приёме получаются одни нули. Скорость использую 9600, её изменение никаких результатов не принесло
Программа написана в 5м ФК, использованы стандартные макросы RS232. Пока самостоятельно смог дойти до того, что в макросах прописан режим работы по трём проводам, а микруха подключена к преобразователю двумя проводами (то бишь асинхронный режим работы, правильно я понял?!). Предполагаю, что где-то в макросе нужно изменить режим работы USART, но мой экспириенс сильно не дотягивает до такого.
Укажите, пожалуйста, вектор направления слепцу
Ник: adrvyho
Имя: adrvyho
(Москва)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C ? SPI ?...)

Сообщение mim (mim) » 30 мар 2014, 14:16

adrvyho писал(а):1. Контроллер ATXMega128A1
2. Программа написана в 5м ФК, использованы стандартные макросы RS232.
3. прописан режим работы по трём проводам, а микруха подключена к преобразователю двумя проводами
4. Предполагаю, что где-то в макросе нужно изменить режим работы USART

1. Мне негде экспериментировать с таким МК...
2. Не вижу...
3. Не понимаю... Не нужно жаргонов. Нужно просто нарисовать.
4. Предполагаю, что нужно взять готовый пример (коих много), нарисовать схему, сделать его на МК который есть в Протеусе, заставить его работать там же, а затем перенести на свою платформу... Ну, или долбаться самому...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C ? SPI ?...)

Сообщение adrvyho (adrvyho) » 30 мар 2014, 18:26

mim писал(а):1. Мне негде экспериментировать с таким МК...
2. Не вижу...
3. Не понимаю... Не нужно жаргонов. Нужно просто нарисовать.
4. Предполагаю, что нужно взять готовый пример (коих много), нарисовать схему, сделать его на МК который есть в Протеусе, заставить его работать там же, а затем перенести на свою платформу... Ну, или долбаться самому...


Проблема решена. Всё дело было в неправильной частоте работе процессора. Спасибо
Ник: adrvyho
Имя: adrvyho
(Москва)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение vlad145 (Владимир) » 09 май 2014, 13:45

Доброго времени суток всем. С праздником Великой Победы!!!
Подскажите одну вещь, как можно в свойствах макроса написать обращение к другому макросу(например SPI)?
Ник: vlad145
Имя: Владимир
(Курган)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение Вячеслав (Вячеслав) » 10 май 2014, 05:29

Владимир писал(а):С праздником Великой Победы!!!

Взаимно.
Владимир писал(а):в свойствах макроса написать обращение к другому макросу(например SPI)?

Термины. Назовем первый твой макрос - вызывающий. Второй (например SPI) -вызываемый макрос. Надо сделать типа матрешки: в вызывающий макрос упаковать вызываемый (из вызывающего вызвать вызываемый).
Пробуй так:
1. Создай вызываемый макрос( если используешь готовый - из набора FC -тогда будешь использовать в вызывающем макросе кубик "макрос компонента" и создавать его не надо ). У него будет имя.
2. В вызывающем макросе (где надо) поставь кубик вызываемого макроса (кубик "макрос" с его именем, если он создан тобой или "макрос компонента", если он из набора FC). Смотри, как будет выполняться программа в отладке.
HELP в помощь. Возможно вопрос не о том. Типа: как указать в аргументе функции вызываемый макрос? Тогда - извини, не понял вопроса.
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение Volume (Евгений) » 12 май 2014, 00:57

Владимир писал(а):как можно в свойствах макроса написать обращение к другому макросу(например SPI)?

У меня для PIC это выглядело следующим образом:
1. В начале программы инициализируешь SPI.
2. В дополнительном коде пишешь функцию обработки SPI. Например:
Код: выделить все
char SPI(char data)              // объявление функции работы с SPI
{
cr_bit(sspstat,BF);              // сброс бита BF
sspbuf=data;                     // передача бита
while (!(sspstat & 0x01));       // ожидание окончания передачи
st_bit(portc,2);                 // разрешение
cr_bit(portc,2);                       
return sspbuf;                   // и одновременно принимаем бит
}

3. И где необходимо вставляешь обращение к функции SPI:
Код: выделить все
SPI(FCV_ VARIABLE);           // процедура передачи SPI
FCV_ VARIABLE = SPI(0);       // процедура приема SPI
Аватар пользователя
Ник: Volume
Имя: Евгений
(Иркутск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение Volume (Евгений) » 30 окт 2014, 08:36

Здравствуйте коллеги.
Столкнулся с проблемой. (А точнее сам себя загнал)
Построена сеть: во главе МК Master и несколько ведомых. Одному из ведомых поставлена задача управлять частотным преобразователем (ЧП) и отслеживать перемещение вала. Управление ЧП осуществляется на скорости 19200 бод. Общение с МК Мастер на скоростях 38400 + выставлен ускоренный режим (BRGH бит).
2.jpg
И вот возникает вопрос, как одновременно слейву работать на двух скоростных режимах?
Программный UART? Или «на ходу» переинициализация аппаратного UARTа? К примеру, если нужно пообщаться с мастером txsta=0b00100100; spbrg = 0b00000101, а если передаем задание ЧП, то регистры на время принимаеют значения txsta=0b00100000; spbrg = 0b01000000.
P.S. Понятно, что слейв на время общения с ЧП перестает отвечать на запросы Мастера, это не критично (в разумных пределах).
1.jpg


P.P.S. Сильно не бейте)
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Volume
Имя: Евгений
(Иркутск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как связать контроллеры (I2C? SPI? USART?...)

Сообщение mim (mim) » 30 окт 2014, 08:52

Так ты сам все и ответил...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Пред.След.

Вернуться в Flowcode + RS232

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

Пользователь просматривает форум: нет зарегистрированных пользователей