Список разделов Flyback.org.ru » не HV » Микроконтроллеры и всё, что с ними связано
Тему сейчас просматривают - зарегистрированных: 0, скрытых: 0 и гостей: 0
Зарегестрированные - Нет
Ответить с цитатой

perezx
 


Да вот пишут, что им 3.3В надо. А где их взять, ежели платки пятивольтовые...

Добавлено: Mon Nov 14, 2016 7:36 pm
Ответить с цитатой

Анна
 


Ну использовать какое-нибудь LM1117-3.3 или MC78LC33

Добавлено: Mon Nov 14, 2016 7:54 pm
Ответить с цитатой

perezx
 


Там и так уже 180В, 12В, 5В... Хотя за наводку спасибо, вполне возможно, что так и сделаю

Добавлено: Mon Nov 14, 2016 8:03 pm
Ответить с цитатой

Break_Neck
 


однопроводной обмен организовать по к-линии(m-bus) - в авто например множество блоков ранее висело на однопроводной диагностической шине, отличались адресом - если скорости килобитов хватит - отличный вариант.

Добавлено: Mon Nov 14, 2016 11:44 pm
Ответить с цитатой

Анна
 


ну так если можно проводами - тогда можно и RS485, и I2C, и CAN, и тд

Добавлено: Mon Nov 14, 2016 11:50 pm
Ответить с цитатой

Break_Neck
 


rs485 - драйвер нуна, а для к-линии 2 ноги порта атмелины (или аппаратный уарт) и 1 транзиcтор npn да пара резиков. Кана в ардуине этой аппаратного нет - нужен и контроллер(mcp2515 например) кана внешний и драйвер тоже внешний.

Добавлено: Mon Nov 14, 2016 11:55 pm
Ответить с цитатой

Анна
 


А эта к-линия - это "шина", сделанная из объединения сигналов UART?

Добавлено: Tue Nov 15, 2016 12:43 am
Ответить с цитатой

perezx
 


Проводами-то, пожалуй, и лучше. Скорости в килобиты тоже хватит. Вопрос сводится к тому, чтобы не изобретать велосипед в ходе разработки устройства и чтобы не иметь никаких проблем в ходе эксплуатации.

Добавлено: Tue Nov 15, 2016 6:49 am
Ответить с цитатой

Ivani
 


Расстояние между ними, питание общее?

Добавлено: Tue Nov 15, 2016 8:59 am
Ответить с цитатой

perezx
 


Расстояние - единицы метров, грубо говоря, на одном или двух соседних столах стоят. Питание общее. Это камеры для изучения поведения крысок. Крыса ходит туда-сюда, ардуина следит, включает свет, бьет током, засекает время и сдает данные на компьютер.
Хотелось бы, конечно, чтобы к компьютеру все это подключалось без каких-то адаптеров, чтоб одну камеру можно было взять и унести в другую комнату, например.

Добавлено: Tue Nov 15, 2016 10:03 am
Ответить с цитатой

Break_Neck
 


2anton: - вот дока на Physical layer - http://www.alfa145.co.uk/obd/14230-1s.pdf

2perezx: Если хочется уносить и без проводов - у китайцев туева хуча модулей передачи данных безпроводных Smile - что на 315/433МГц и далее 868МГц и 2.4ГГц - это помимо вайфай и блюпуп модулей. Простор для творчества Smile - пользовал SX1278
А так все можно обьединить проводами и на одну повесить блюпуп модуль.

Добавлено: Tue Nov 15, 2016 11:20 am
Ответить с цитатой

perezx
 


Под "уносить" подразумевается "разбивать связку 5 камер + 1 комп" на "4+1" и "1+1", потому как камера без компа смысла не имеет. Соответственно, особого смысла в беспроводности нет, а вот в чем есть - так это в том, чтобы со стороны компа задействовался какой-то стандартный интерфейс и не требовались переходники, чтобы при разбивании связки "5+1" не требовался второй адаптер. По этой причине I2C и k-line не самые желательные решения. Вот кабы дурдуинку да напрямую в USB воткнуть...

Добавлено: Tue Nov 15, 2016 3:56 pm
Ответить с цитатой

Ivani
 


Самое простое заменить минипро на нано с CH340 и их воткнуть в USB хаб с питанием, поддельные PL2303 вешаются.
Также есть простой вариант КОМ - блютус модулей, на компе стандартный блютус, а к нему по воздуху модули для ардуинки (земля рх тх), но тоже 3,3 В - сам не пробовал

Добавлено: Tue Nov 15, 2016 4:25 pm
Ответить с цитатой

Break_Neck
 


к-линия делается из уарта Smile любого = усбкомпорта или усб-уарта - как грязи их. По сути тот же компорт остается Smile А на главную ордуину - блюпуп уарт Smile Ну или блюпуп-к-лайн сразу замутить Smile

Добавлено: Tue Nov 15, 2016 4:50 pm
Ответить с цитатой

Денис
 


Руки наконец дошли до освоения цветного дисплея 1.44", общение по SPI. И вот застрял на записи данных в графическую память.
Для проверки дисплея пришлось установить arduino ide, залил готовую программу с их библиотеками, дисплей работает.
Потом не сбрасывая дисплей, прошиваю МК своим кодом, писанным на простом си в Кодвижне.
Простые команды отрабатывает нормально, например такие как "display_off", "inverting mode" и т.п. - содержимое графической памяти еще от прошивки ардуино сохранилось, все изменения от моего кода на экране видны.
Код:

 DC=0;  // Data/Command
 CS=0;  // Chip_Select_Not
 spi(command); //шлем команду аппаратным SPI
 CS=1;


Но когда пытаюсь залить новые данные в граф. память, просто ничего не происходит. Делаю вроде бы как в ДШ написано:

Код:

  CS=0;
  DC=1;        //включаем режим записи данных
  spi(0x2C);  //команда начала записи в граф.память                                                                                           
 
  for (i=1; i<10000; i++){
  spi(0b01010101);            //пишем в граф.память всякую лабуду, чтобы увидеть изменения на части экрана lcd
  }
 
  DC=0;
  CS=1;


Реакции - ноль. Изображение остается как было, после этого кода простые функции типа инверсии продолжают нормально работать. А этот кусок как будто пролетает незамеченным. Может кто подскажет что не так, я уже вне знаю что делать с ним. Главное, что прошивка ардуино на нем пашет нормально.


Добавлено: Sat Dec 03, 2016 5:51 pm
Ответить с цитатой

Тёма
Больше не студент


Ничего не понял. В коде ниже, сначала включаем режим записи ДАННЫХ и сразу шлем КОМАНДУ. По идее надо включить режим записи КОМАНД (DC=0).
Ну по крайней мере, в моем дисплее так. (STM32)
(LCD_WR_Set) = (DC=1)
(LCD_WR_Reset) = (DC=0)


Код:

void LCD_SendCommand(uint8_t data) {
   LCD_WR_Reset;
   LCD_CS_Reset;
   SPI_SendData(SPI2, data);
   LCD_CS_Set;
}

void LCD_SendData(uint8_t data) {
   LCD_WR_Set;
   LCD_CS_Reset;
   SPI_SendData(SPI2, data);
   LCD_CS_Set;
}


Добавлено: Sat Dec 03, 2016 6:19 pm
Ответить с цитатой

Денис
 


В ДШ на контроллер дисплея (ili9163) написано, что он проверяет уровень DC после 8 по счету тактового сигнала, т.е. когда уже была отправлена команда. Хотя если честно, то пробовал поднимать DC и сразу после команды, перед данными. Один хрен, ничего не меняется.

Добавлено: Sat Dec 03, 2016 8:13 pm
Ответить с цитатой

Тёма
Больше не студент


Судя по даташиту, после передачи 8 бит данных/комманды надо дернуть CS. В цикле получается что-то типа:

Код:

CS=0;
DC=0;        //включаем режим записи КОММАНД
spi(0x2C);  //команда начала записи в граф.память
CS=1;

DC=1;      //включаем режим записи ДАННЫХ
for (i=1; i<10000; i++){
CS=0;
spi(0b01010101);  //пишем в граф.память всякую лабуду, чтобы увидеть изменения на части экрана lcd
CS=1;           
}
 


Добавлено: Sat Dec 03, 2016 10:05 pm
Ответить с цитатой

Денис
 


Сделал все так, все равно это проходит мимо дисплея.

Тут еще обнаружилась такая вещь. Простые команды, типа инверсии цвета, работают после прошивки ардуиновским тестовым скетчем, когда на дисплее уже есть какой-то текст. А вот если выключить питание диплея, включить снова (будет белый экран), инверсия цвета уже не работает! Экран остается белым.

Это вроде бы намекает, что не хватает какой-то инициализации в начале, но я смотрел по ДШ состояния регистров после сброса - там вроде все ОК, все выставляются как нужно для быстрого старта.
У меня сейчас инициализация, по сути, включает только объявление состояния ножек МК, да настройку режима SPI. Пробовал добавлять сюда сброс ножкой Reset, так вот после ардуино если был текст - текст пропадает, но потом по команде "инверсия" белый экран на черный не меняется, остается как был.

Добавлено: Sat Dec 03, 2016 11:16 pm
Ответить с цитатой

sergh
 


perezx писал(а):
Есть несколько arduino pro mini - 4 или 5 штук. Каждая из них должна общаться с компьютером, желательно - все с одним. Как лучше реализовать? Желания делать каждой дурдуине usb-com переходник и пытаться втыкать эти переходники в usb-разветвитель не имею, ибо опасаюсь, что работать будет архихреново.

Arduino - не тот уровень.
Курить в сторону CoDeSys, и RaspberryPi:
http://flyback.org.ru/viewtopic.php?p=4308771#4308771

Добавлено: Sun Dec 04, 2016 12:03 am
Ответить с цитатой

Денис
 


Короче, с дисплеем так и не получилось разобраться. Если у кого есть рабочий код для любого аналогичного (SPI) дисплея, писанный на Си и _без_ использования спец.библиотек, скиньте пожалуйста.
Процедуры для всех должны быть аналогичными, система команд у графических контроллеров идентичная. Х/з в чем у меня ошибка.

Добавлено: Sun Dec 04, 2016 2:52 am
Ответить с цитатой

Ivani
 


Денис писал(а):
рабочий код для любого аналогичного (SPI) дисплея, писанный на Си и _без_ использования спец.библиотек
А ардуиновские либы разве не на Си написаны?

sergh писал(а):
Arduino - не тот уровень.
Курить в сторону CoDeSys, и RaspberryPi:

Как раз тот уровень и исполняемого кода на несколько порядков в месте с ошибками меньше.

Добавлено: Sun Dec 04, 2016 11:17 pm
Ответить с цитатой

Денис
 


Денис писал(а):
Короче, с дисплеем так и не получилось разобраться.
...
Х/з в чем у меня ошибка.


А ошибка была как и ожидалось, в инициализации. После сброса дисплей переходит за каким-то хреном в режим "Display Off", да еще и Sleep-On. crazy
Я конечно рад, что в итоге дисплей завелся. Но имхо, такие вещи надо писать большими красными буквами в даташите, где 200 страниц на бусурманском Smile

Итого, если кому-то еще пригодится, работают примитивные последовательности. Для отправки команд без параметров это будет код
Код:

//display-on
CS=0;
spi(0x29);
CS=1;

//sleep-out
CS=0;
spi(0x11);
CS=1;
...
CS=0;
spi(command);
CS=1;


для записи N байт в регистры или граф.память:
Код:

//display-on
CS=0;
spi(0x29);
CS=1;

//sleep-out
CS=0;
spi(0x11);
CS=1;
...
CS=0; //активируем на прием
spi(command);
DC=1; //обозначаем передачу данных
for (i=0; i<N; i++) {spi(data[n]);}
DC=0; //конец передачи данных
CS=1;


Частоту SPI 4МГц проглатывает нормально.


Добавлено: Mon Dec 05, 2016 2:17 am
Ответить с цитатой

ptk2003
 


А никому не попадались готовые модули или чипы для RZ кодирования UART?
Задача отвязаться от постоянной составляющей.
802.3/MIL-STD-1553B, Манчестер был бы идеальным вариантом, но ничего "однокристального" я не нашел.
115КБод хватит, среда - только одна витая пара без сигнальной земли.
Силовой земли местами тоже нет Smile

Добавлено: Wed Dec 07, 2016 11:53 pm
Ответить с цитатой

TAN
 


Пойдет? Есть в перечне.

http://npofizika.ru/pdf/5559in13.pdf

Добавлено: Fri Dec 09, 2016 12:36 am
Список разделов Flyback.org.ru » не HV » Микроконтроллеры и всё, что с ними связано
На страницу Пред.  1, 2, 3 ... 90, 91, 92 ... 150, 151, 152  След.     Просмотр темы целиком



Лицензионное соглашение

(c)Flyback.org.ru
Российское общество любителей высоких напряжений.
Использование материалов с данного сайта и форума возможно только с разрешения администрации.