Страница 352 из 628

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

Добавлено: Чт авг 23, 2012 18:14:59
Димаn
Забыл сказать, помимо чтения примерно 300 линий надо еще и в обратную сторону примерно 50-60 линий управлять (выдавать земельку). Тогда и правда может ModBus использовать (USART)?! А по SPI я буду с Ethernet-модулем общаться. :)

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

Добавлено: Чт авг 23, 2012 22:09:20
Леонид Иванович
Димаn писал(а):Забыл сказать, помимо чтения примерно 300 линий надо еще и в обратную сторону примерно 50-60 линий управлять (выдавать земельку).
Ну я тоже управляю. И что? Какая разница, в какую сторону информация передается?
Димаn писал(а):Тогда и правда может ModBus использовать (USART)?!
А при чем здесь ModBus? У меня обмен с подчиненными процессорами выглядит просто:
Протокол обмена:
Параметры настройки UART следующие:
длина слова - 9 бит
четность - нет
скорость обмена - 115200 бод
Пакет имеет следующий вид:
1. Адрес подчиненного процессора
2. Код команды для выполнения
3. Количество байт данных в пакете
4. Собственно байты данных
Адрес подчиненного процессора передается с единичным 9-м битом,
остальная часть пакета передается с нулевым 9-м битом.
Количество байт данных в пакете может быть нулевым.
Ответ передается с нулевым 9-м битом и
имеет следующий вид:
1. Количество байт данных в пакете
2. Собственно байты данных

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

Добавлено: Чт авг 23, 2012 22:36:01
Димаn
Леонид Иванович Спасибо большое!
Опередили меня - я следующим вопросом хотел спросить про протокол как раз. :))
А про ModBus я просто в личке с Jack_A разговаривал.... :idea:

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

Добавлено: Чт авг 23, 2012 23:28:14
Леонид Иванович
ModBus - очень древний, можно сказать, устаревший протокол. Держится лишь за счет того, что на нем работает куча промышленного оборудования. Сам по себе в настоящее время он абсурден. Когда в собственных задачах стала задача сделать замену ModBus, я сделал Wake: http://digit-el.com/files/open/wake/wake.html

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

Добавлено: Пт авг 24, 2012 11:30:36
Jack_A
"Че-то мне твое лицо знакомо - ну прямо как мое!" (С) "Свадьба в Малиновке"

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

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

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

Добавлено: Пт авг 24, 2012 12:06:30
ILYAUL
Да похоже все идут похожим путём. Правда у меня команд на 255 не тянуло и процессоров 8 в подчинении , поэтому я "слил" адрес и команду вместе. Правда был префекс перед началом основной посылки и ответ проца , если он префекс правильно получил. Это как бы занят не занят.

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

Добавлено: Пт авг 24, 2012 12:20:09
Mr.SerZ
Привет всем котам.
Обращаюсь с таким вопросом:
Прошивал микросхемы 24C64W6 и 24C64WP всё проходит вроде неплохо- код записывается и считывается, но при установке в стиральную машинку чипа начинает без конца выполнять программу.
Подскажите в чём тут может быть дело микросхемы в корпусе soic, прошивались через колодку- переходник. Программатор вот этот http://www.5v.ru/extrapic.htm

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

Добавлено: Пт авг 24, 2012 13:07:57
Jack_A
ILYAUL писал(а):Правда у меня команд на 255 не тянуло и процессоров 8 в подчинении , поэтому я "слил" адрес и команду вместе.
Был у меня такой печальный опыт. Я тогда работал в паре с одним молодым программером, делавшим верхний уровень. Исходя из здравого смысла : короче пакет - быстрее передача - меньше вероятность ошибки, я тоже слил. Но молодой коллега заявил : расцепи, а то я не могу применить в проге верх. уровня оператор case . На мое недоумение : у тебя могучий Селерон, тебе проще приспособиться к ресурсам маленького 8535 - он ответил : Я ЗДЕСЬ ГЛАВНЫЙ. И я понял, что ему уже бесполезно доказывать, что 99% выпущенных нами дивайсов работают ( и будут работать ) в автономе вообще без всякого сетевого интерфейса, поэтому главным ты не можешь быть по определению .
Трудно было работать, когда как минимум 3 сверху_стоящих точно знали, как я должен проектировать интерфейсный протокол, хотя никто из них в жизни не написал и строчки кода :(

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

Добавлено: Пт авг 24, 2012 14:31:42
Димаn
Леонид Иванович
Пните пожайлуйста, где почитать про мультипроцессорный режим работы USART микроконтроллеров. А то у Евстифеева что то мало написано... Я раньше только комп с Meg'ой соединял. :dont_know:
Или кусочек программы где посмотреть.... Пожалуйста! :)

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

Добавлено: Пт авг 24, 2012 15:32:08
vitalik_1984
ILYAUL писал(а):Да похоже все идут похожим путём. Правда у меня команд на 255 не тянуло и процессоров 8
Команд то получается тоже 127 как я понял.в команде первый бит ведь ноликом должен быть, чтобы отличать от адреса, если адрес не передается.
Но молодой коллега заявил : расцепи, а то я не могу применить в проге верх. уровня оператор case .
Печально когда коллега нуб.
Решается вопрос с case добавлением всего одной строчки перед каждым switch. Не знаю конечно как там точно, но предполагаю что все равно адрес и команда отдельно рассматриваются в программе.

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

temp =buffer[1]&ADDRESS_MASK;
switch (temp){
/yours code ...
}
 

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

Добавлено: Пт авг 24, 2012 15:47:07
ILYAUL
Команд то получается тоже 127 как я понял.в команде первый бит ведь ноликом должен быть, чтобы отличать от адреса, если адрес не передается.
Команд было толи 11 - толи 12 ( домой приду посмотрю) . Старшие 4 бита -адрес . Младшие команда

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

Добавлено: Пт авг 24, 2012 22:03:55
Димаn
А схемка получается цепочкой?! Передатчик (Мастер) -> приемник (Ведомый 1) передатчик -> приемник (Ведомый 2) передатчик ->....

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

Добавлено: Пт авг 24, 2012 22:05:09
Jack_A
vitalik_1984 писал(а): Печально когда коллега нуб.
Отож. Но он позже нашел себя в торговле забугорными железяками, кажется, Сименса.

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

Добавлено: Сб авг 25, 2012 11:58:23
Jack_A
Димаn писал(а):А схемка получается цепочкой?! Передатчик (Мастер) -> приемник (Ведомый 1) передатчик -> приемник (Ведомый 2) передатчик ->....
Если применить RS-485, то там 2 линии А и Б с терминаторами на концах, а на них через преобразователь вешаются TxD,RxD , и каждый может быть как передатчиком, так и приемником , и кто в конкретный момент будет передатчиком - определяется протоколом сети.

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

Добавлено: Сб авг 25, 2012 19:14:56
Лютик
Всем привет!
Есть микросхемы из оптической мыши http://www.pixart.com.tw/upload/PAW3101 ... 090338.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: Мелкие вопросы по МК и ПЛИС.

Добавлено: Сб авг 25, 2012 22:02:19
DrHlus
Здраствуйте, уважаемые форумчане!
Кто-нибуть работал с Atmega16u4?
Есть ли какие-то подводные камни, о которых не написано в даташите?
И правда, что в нем зашит бутлоадер, позволяющий запрограмировать его без программатора?

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

Добавлено: Сб авг 25, 2012 22:54:38
mr.boroda
Возможно ли на базе AVR сделать ph метр для аквариума? может схемы еть какие?

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

Добавлено: Сб авг 25, 2012 23:39:30
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..

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

Добавлено: Вс авг 26, 2012 00:05:27
Леонид Иванович
Дима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: Мелкие вопросы по МК и ПЛИС.

Добавлено: Вс авг 26, 2012 21:30:25
Димаn
Спасибо, Леонид Иванович и Jack_A!
Что б я без вас делал! Столько полезного сказали! :music: