Мелкие вопросы по МК и ПЛИС.
Re: Мелкие вопросы по МК и ПЛИС.
Забыл сказать, помимо чтения примерно 300 линий надо еще и в обратную сторону примерно 50-60 линий управлять (выдавать земельку). Тогда и правда может ModBus использовать (USART)?! А по SPI я буду с Ethernet-модулем общаться. 
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Димаn писал(а):Забыл сказать, помимо чтения примерно 300 линий надо еще и в обратную сторону примерно 50-60 линий управлять (выдавать земельку).
Ну я тоже управляю. И что? Какая разница, в какую сторону информация передается?
Димаn писал(а):Тогда и правда может ModBus использовать (USART)?!
А при чем здесь ModBus? У меня обмен с подчиненными процессорами выглядит просто:
Протокол обмена:
Параметры настройки UART следующие:
длина слова - 9 бит
четность - нет
скорость обмена - 115200 бод
Пакет имеет следующий вид:
1. Адрес подчиненного процессора
2. Код команды для выполнения
3. Количество байт данных в пакете
4. Собственно байты данных
Адрес подчиненного процессора передается с единичным 9-м битом,
остальная часть пакета передается с нулевым 9-м битом.
Количество байт данных в пакете может быть нулевым.
Ответ передается с нулевым 9-м битом и
имеет следующий вид:
1. Количество байт данных в пакете
2. Собственно байты данных
Re: Мелкие вопросы по МК и ПЛИС.
Леонид Иванович Спасибо большое!
Опередили меня - я следующим вопросом хотел спросить про протокол как раз.
А про ModBus я просто в личке с Jack_A разговаривал....
Опередили меня - я следующим вопросом хотел спросить про протокол как раз.
А про ModBus я просто в личке с Jack_A разговаривал....
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
ModBus - очень древний, можно сказать, устаревший протокол. Держится лишь за счет того, что на нем работает куча промышленного оборудования. Сам по себе в настоящее время он абсурден. Когда в собственных задачах стала задача сделать замену ModBus, я сделал Wake: http://digit-el.com/files/open/wake/wake.html
Re: Мелкие вопросы по МК и ПЛИС.
"Че-то мне твое лицо знакомо - ну прямо как мое!" (С) "Свадьба в Малиновке"
Это я к тому, что мой протокол был очень похож
1. Длина пакета ( включая его самого и CRC ) = 5...255
2. Адрес ( обычный, 8-битный ) . (1...127) "Всехный" адрес - 0
3. Команда
4. Данные
5. CRC
Поскольку количество элементов ( кроме данных ) фиксировано, выделять длину блока данных не стал - она определяется вычитанием - 5.
В ответе 7-й бит = 1 ( 80h ... FFh ) - чтобы сидящие на шине слейвы знали, что это ответ и не реагировали. Команда = переданной команде + 80h , если ошибка.
Без затей - просто, надежно, и никаких терок со Шнайдер Электрик за лицензию
Про Б.Гейтса - отдельная песня 
Это я к тому, что мой протокол был очень похож
1. Длина пакета ( включая его самого и CRC ) = 5...255
2. Адрес ( обычный, 8-битный ) . (1...127) "Всехный" адрес - 0
3. Команда
4. Данные
5. CRC
Поскольку количество элементов ( кроме данных ) фиксировано, выделять длину блока данных не стал - она определяется вычитанием - 5.
В ответе 7-й бит = 1 ( 80h ... FFh ) - чтобы сидящие на шине слейвы знали, что это ответ и не реагировали. Команда = переданной команде + 80h , если ошибка.
Без затей - просто, надежно, и никаких терок со Шнайдер Электрик за лицензию
Re: Мелкие вопросы по МК и ПЛИС.
Да похоже все идут похожим путём. Правда у меня команд на 255 не тянуло и процессоров 8 в подчинении , поэтому я "слил" адрес и команду вместе. Правда был префекс перед началом основной посылки и ответ проца , если он префекс правильно получил. Это как бы занят не занят.
Re: Мелкие вопросы по МК и ПЛИС.
Привет всем котам.
Обращаюсь с таким вопросом:
Прошивал микросхемы 24C64W6 и 24C64WP всё проходит вроде неплохо- код записывается и считывается, но при установке в стиральную машинку чипа начинает без конца выполнять программу.
Подскажите в чём тут может быть дело микросхемы в корпусе soic, прошивались через колодку- переходник. Программатор вот этот http://www.5v.ru/extrapic.htm
Обращаюсь с таким вопросом:
Прошивал микросхемы 24C64W6 и 24C64WP всё проходит вроде неплохо- код записывается и считывается, но при установке в стиральную машинку чипа начинает без конца выполнять программу.
Подскажите в чём тут может быть дело микросхемы в корпусе soic, прошивались через колодку- переходник. Программатор вот этот http://www.5v.ru/extrapic.htm
Re: Мелкие вопросы по МК и ПЛИС.
ILYAUL писал(а):Правда у меня команд на 255 не тянуло и процессоров 8 в подчинении , поэтому я "слил" адрес и команду вместе.
Был у меня такой печальный опыт. Я тогда работал в паре с одним молодым программером, делавшим верхний уровень. Исходя из здравого смысла : короче пакет - быстрее передача - меньше вероятность ошибки, я тоже слил. Но молодой коллега заявил : расцепи, а то я не могу применить в проге верх. уровня оператор case . На мое недоумение : у тебя могучий Селерон, тебе проще приспособиться к ресурсам маленького 8535 - он ответил : Я ЗДЕСЬ ГЛАВНЫЙ. И я понял, что ему уже бесполезно доказывать, что 99% выпущенных нами дивайсов работают ( и будут работать ) в автономе вообще без всякого сетевого интерфейса, поэтому главным ты не можешь быть по определению .
Трудно было работать, когда как минимум 3 сверху_стоящих точно знали, как я должен проектировать интерфейсный протокол, хотя никто из них в жизни не написал и строчки кода
Re: Мелкие вопросы по МК и ПЛИС.
Леонид Иванович
Пните пожайлуйста, где почитать про мультипроцессорный режим работы USART микроконтроллеров. А то у Евстифеева что то мало написано... Я раньше только комп с Meg'ой соединял.
Или кусочек программы где посмотреть.... Пожалуйста!
Пните пожайлуйста, где почитать про мультипроцессорный режим работы USART микроконтроллеров. А то у Евстифеева что то мало написано... Я раньше только комп с Meg'ой соединял.

Или кусочек программы где посмотреть.... Пожалуйста!
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
ILYAUL писал(а):Да похоже все идут похожим путём. Правда у меня команд на 255 не тянуло и процессоров 8
Команд то получается тоже 127 как я понял.в команде первый бит ведь ноликом должен быть, чтобы отличать от адреса, если адрес не передается.
Но молодой коллега заявил : расцепи, а то я не могу применить в проге верх. уровня оператор case .
Печально когда коллега нуб.
Решается вопрос с case добавлением всего одной строчки перед каждым switch. Не знаю конечно как там точно, но предполагаю что все равно адрес и команда отдельно рассматриваются в программе.
Код: Выделить всё
temp =buffer[1]&ADDRESS_MASK;
switch (temp){
/yours code ...
}
В поисках истины человек развивается.
Re: Мелкие вопросы по МК и ПЛИС.
Команд то получается тоже 127 как я понял.в команде первый бит ведь ноликом должен быть, чтобы отличать от адреса, если адрес не передается.
Команд было толи 11 - толи 12 ( домой приду посмотрю) . Старшие 4 бита -адрес . Младшие команда
Re: Мелкие вопросы по МК и ПЛИС.
А схемка получается цепочкой?! Передатчик (Мастер) -> приемник (Ведомый 1) передатчик -> приемник (Ведомый 2) передатчик ->....
Re: Мелкие вопросы по МК и ПЛИС.
vitalik_1984 писал(а):Печально когда коллега нуб.
Отож. Но он позже нашел себя в торговле забугорными железяками, кажется, Сименса.
Re: Мелкие вопросы по МК и ПЛИС.
Димаn писал(а):А схемка получается цепочкой?! Передатчик (Мастер) -> приемник (Ведомый 1) передатчик -> приемник (Ведомый 2) передатчик ->....
Если применить RS-485, то там 2 линии А и Б с терминаторами на концах, а на них через преобразователь вешаются TxD,RxD , и каждый может быть как передатчиком, так и приемником , и кто в конкретный момент будет передатчиком - определяется протоколом сети.
-
Лютик
- Нашел транзистор. Понюхал.
- Сообщения: 161
- Зарегистрирован: Вт мар 25, 2008 22:10:23
- Откуда: Минск
Re: Мелкие вопросы по МК и ПЛИС.
Всем привет!
Есть микросхемы из оптической мыши http://www.pixart.com.tw/upload/PAW3101DB_SPEC_V32_20080526_20100319090338.pdf, которая общается по i2c(twi).
есть контроллер mega8. скачал библиотеку twi http://blindage.org/wp-content/uploads/2011/06/twi.c http://blindage.org/wp-content/uploads/2011/06/twi.h.
Но никак не удается сконнектиться с датчиком =(
что-то не совсем разобрался я с i2c видимо...
делаю так:
инициализирую интерфейс:
в теле цикла пытаюсь считать регистр с адресом 0x02:
в итоге получаю зависание.. =(
Есть микросхемы из оптической мыши http://www.pixart.com.tw/upload/PAW3101DB_SPEC_V32_20080526_20100319090338.pdf, которая общается по i2c(twi).
есть контроллер mega8. скачал библиотеку twi http://blindage.org/wp-content/uploads/2011/06/twi.c http://blindage.org/wp-content/uploads/2011/06/twi.h.
Но никак не удается сконнектиться с датчиком =(
что-то не совсем разобрался я с i2c видимо...
делаю так:
инициализирую интерфейс:
Код: Выделить всё
void initI2C(void)
{
CLEARBIT(DDRC,4);
CLEARBIT(DDRC,5);
SETBIT(PORTC,4);
SETBIT(PORTC,5);
TWSR = 0x00;
TWBR = 0x20;
}
в теле цикла пытаюсь считать регистр с адресом 0x02:
Код: Выделить всё
twi_send(0x02);
a=(unsigned char)twi_receive(1);
в итоге получаю зависание.. =(
Re: Мелкие вопросы по МК и ПЛИС.
Здраствуйте, уважаемые форумчане!
Кто-нибуть работал с Atmega16u4?
Есть ли какие-то подводные камни, о которых не написано в даташите?
И правда, что в нем зашит бутлоадер, позволяющий запрограмировать его без программатора?
Кто-нибуть работал с Atmega16u4?
Есть ли какие-то подводные камни, о которых не написано в даташите?
И правда, что в нем зашит бутлоадер, позволяющий запрограмировать его без программатора?
-
mr.boroda
- Встал на лапы
- Сообщения: 124
- Зарегистрирован: Вт июл 10, 2012 00:13:27
- Откуда: Белгородская обл.
Re: Мелкие вопросы по МК и ПЛИС.
Возможно ли на базе AVR сделать ph метр для аквариума? может схемы еть какие?
Re: Мелкие вопросы по МК и ПЛИС.
DrHlus писал(а):Здраствуйте, уважаемые форумчане!
Кто-нибуть работал с Atmega16u4?
Есть ли какие-то подводные камни, о которых не написано в даташите?
Всегда есть
DrHlus писал(а):И правда, что в нем зашит бутлоадер, позволяющий запрограмировать его без программатора?
The 8 bits mega AVR with USB interface devices are factory configured with a USB bootloader located in the on-chip flash boot section of the controller..
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Димаn писал(а):Пните пожайлуйста, где почитать про мультипроцессорный режим работы USART микроконтроллеров
Так всё есть в datasheet.
Димаn писал(а):Или кусочек программы
Для приемника так:
Спойлер
Код: Выделить всё
#pragma vector = USART_RXC_vect
__interrupt void Rx_Int(void)
{
if(UCSRB & (1<<RXB8)) //если бит RXB8 = 1
{
if(UDR == Address) //если адрес совпал,
{
UCSRA &= ~(1<<MPCM); //выключаем многопроцессорный режим
Rx_Pointer = WAIT_CMD; //готовимся принять команду
}
else //если адрес не совпал,
{
UCSRA |= (1<<MPCM); //включаем многопроцессорный режим
Rx_Pointer = WAIT_ADDR; //готовимся принять адрес
}
}
else //если бит RXB8 = 0
{
//здесь принимаем пакет
//в конце приема:
UCSRA |= (1<<MPCM); //включаем многопроцессорный режим
}
Для передатчика еще проще:
Спойлер
Код: Выделить всё
UCSR1B |= (1<<TXB81); //TXB8 = 1
uC_Tx_Byte(addr); //передача адреса
UCSR1B &= ~(1<<TXB81); //TXB8 = 0
//здесь передача пакета
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо, Леонид Иванович и Jack_A!
Что б я без вас делал! Столько полезного сказали!
Что б я без вас делал! Столько полезного сказали!
