Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Димаn
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн авг 18, 2008 22:29:59
Откуда: Архангельск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Димаn »

Забыл сказать, помимо чтения примерно 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. Собственно байты данных
Аватара пользователя
Димаn
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн авг 18, 2008 22:29:59
Откуда: Архангельск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Димаn »

Леонид Иванович Спасибо большое!
Опередили меня - я следующим вопросом хотел спросить про протокол как раз. :))
А про ModBus я просто в личке с Jack_A разговаривал.... :idea:
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Леонид Иванович »

ModBus - очень древний, можно сказать, устаревший протокол. Держится лишь за счет того, что на нем работает куча промышленного оборудования. Сам по себе в настоящее время он абсурден. Когда в собственных задачах стала задача сделать замену ModBus, я сделал Wake: http://digit-el.com/files/open/wake/wake.html
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Jack_A »

"Че-то мне твое лицо знакомо - ну прямо как мое!" (С) "Свадьба в Малиновке"

Это я к тому, что мой протокол был очень похож :)
1. Длина пакета ( включая его самого и CRC ) = 5...255
2. Адрес ( обычный, 8-битный ) . (1...127) "Всехный" адрес - 0
3. Команда
4. Данные
5. CRC

Поскольку количество элементов ( кроме данных ) фиксировано, выделять длину блока данных не стал - она определяется вычитанием - 5.
В ответе 7-й бит = 1 ( 80h ... FFh ) - чтобы сидящие на шине слейвы знали, что это ответ и не реагировали. Команда = переданной команде + 80h , если ошибка.
Без затей - просто, надежно, и никаких терок со Шнайдер Электрик за лицензию :) Про Б.Гейтса - отдельная песня :(
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ILYAUL »

Да похоже все идут похожим путём. Правда у меня команд на 255 не тянуло и процессоров 8 в подчинении , поэтому я "слил" адрес и команду вместе. Правда был префекс перед началом основной посылки и ответ проца , если он префекс правильно получил. Это как бы занят не занят.
Mr.SerZ
Родился
Сообщения: 5
Зарегистрирован: Пт июл 13, 2012 08:59:08

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Mr.SerZ »

Привет всем котам.
Обращаюсь с таким вопросом:
Прошивал микросхемы 24C64W6 и 24C64WP всё проходит вроде неплохо- код записывается и считывается, но при установке в стиральную машинку чипа начинает без конца выполнять программу.
Подскажите в чём тут может быть дело микросхемы в корпусе soic, прошивались через колодку- переходник. Программатор вот этот http://www.5v.ru/extrapic.htm
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Jack_A »

ILYAUL писал(а):Правда у меня команд на 255 не тянуло и процессоров 8 в подчинении , поэтому я "слил" адрес и команду вместе.


Был у меня такой печальный опыт. Я тогда работал в паре с одним молодым программером, делавшим верхний уровень. Исходя из здравого смысла : короче пакет - быстрее передача - меньше вероятность ошибки, я тоже слил. Но молодой коллега заявил : расцепи, а то я не могу применить в проге верх. уровня оператор case . На мое недоумение : у тебя могучий Селерон, тебе проще приспособиться к ресурсам маленького 8535 - он ответил : Я ЗДЕСЬ ГЛАВНЫЙ. И я понял, что ему уже бесполезно доказывать, что 99% выпущенных нами дивайсов работают ( и будут работать ) в автономе вообще без всякого сетевого интерфейса, поэтому главным ты не можешь быть по определению .
Трудно было работать, когда как минимум 3 сверху_стоящих точно знали, как я должен проектировать интерфейсный протокол, хотя никто из них в жизни не написал и строчки кода :(
Аватара пользователя
Димаn
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн авг 18, 2008 22:29:59
Откуда: Архангельск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Димаn »

Леонид Иванович
Пните пожайлуйста, где почитать про мультипроцессорный режим работы USART микроконтроллеров. А то у Евстифеева что то мало написано... Я раньше только комп с Meg'ой соединял. :dont_know:
Или кусочек программы где посмотреть.... Пожалуйста! :)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

ILYAUL писал(а):Да похоже все идут похожим путём. Правда у меня команд на 255 не тянуло и процессоров 8

Команд то получается тоже 127 как я понял.в команде первый бит ведь ноликом должен быть, чтобы отличать от адреса, если адрес не передается.
Но молодой коллега заявил : расцепи, а то я не могу применить в проге верх. уровня оператор case .

Печально когда коллега нуб.
Решается вопрос с case добавлением всего одной строчки перед каждым switch. Не знаю конечно как там точно, но предполагаю что все равно адрес и команда отдельно рассматриваются в программе.

Код: Выделить всё


temp 
=buffer[1]&ADDRESS_MASK;
switch (temp){
/
yours code ...
}
 
В поисках истины человек развивается.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ILYAUL »

Команд то получается тоже 127 как я понял.в команде первый бит ведь ноликом должен быть, чтобы отличать от адреса, если адрес не передается.

Команд было толи 11 - толи 12 ( домой приду посмотрю) . Старшие 4 бита -адрес . Младшие команда
Аватара пользователя
Димаn
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн авг 18, 2008 22:29:59
Откуда: Архангельск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Димаn »

А схемка получается цепочкой?! Передатчик (Мастер) -> приемник (Ведомый 1) передатчик -> приемник (Ведомый 2) передатчик ->....
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Jack_A »

vitalik_1984 писал(а):Печально когда коллега нуб.


Отож. Но он позже нашел себя в торговле забугорными железяками, кажется, Сименса.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Jack_A »

Дима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 видимо...
делаю так:
инициализирую интерфейс:

Код: Выделить всё

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);

в итоге получаю зависание.. =(
DrHlus
Встал на лапы
Сообщения: 119
Зарегистрирован: Чт май 10, 2012 21:56:27
Откуда: Львов

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DrHlus »

Здраствуйте, уважаемые форумчане!
Кто-нибуть работал с Atmega16u4?
Есть ли какие-то подводные камни, о которых не написано в даташите?
И правда, что в нем зашит бутлоадер, позволяющий запрограмировать его без программатора?
mr.boroda
Встал на лапы
Сообщения: 124
Зарегистрирован: Вт июл 10, 2012 00:13:27
Откуда: Белгородская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение mr.boroda »

Возможно ли на базе AVR сделать ph метр для аквариума? может схемы еть какие?
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ILYAUL »

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
  //здесь передача пакета
Аватара пользователя
Димаn
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн авг 18, 2008 22:29:59
Откуда: Архангельск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Димаn »

Спасибо, Леонид Иванович и Jack_A!
Что б я без вас делал! Столько полезного сказали! :music:
Ответить

Вернуться в «Разные вопросы по МК»