74HC595

Использование расширителей портов и обсуждение пользовательских блоков
seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#1

Сообщение seri0shka » 29.12.2016{, 01:22}

Можно ли как-то поменять в блоке расширения  74HC595 пины 11 и 13 на другие? Откуда в скомпилированном скетче берётся пин 10, который я не задействовал? Может есть у кого пользовательский блок для  74HC595?

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

74HC595

#2

Сообщение arisov77 » 29.12.2016{, 09:01}

Я уже задавал подобный вопрос здесь http://forum.flprogwiki.ru/viewtopic.php?f=7&t=1248 .

У меня есть рабочий, но с неоформленным описанием пользовательский блок для двух последовательно соединённых 74НС595.

Если время будет - доделаю описание и сделаю для одной НС595 блочёк, потом выложу на форум.
Вложения
74HC595_16bit-C.ubi
(62.33 КБ) 146 скачиваний

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

74HC595

#3

Сообщение rw6cm » 29.12.2016{, 09:26}

Прочитайте.
Обратите внимание на: Особенности работы вывода SS в Ардуино на базе AVR

п/с хотел найти аналогичную тему на форуме, arisov77, опередил ))
Последний раз редактировалось rw6cm 29.12.2016{, 10:14}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#4

Сообщение seri0shka » 29.12.2016{, 21:25}

arisov77, спасибо, в том числе и за 74HC165. Я правильно понимаю, что все ограничения, связанные с номерами выводов, касаются только аппаратного SPI, использующего библиотеку SPI.h. А  в вашем блоке SPI программный, и его эти ограничения не касаются?

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#5

Сообщение seri0shka » 29.12.2016{, 22:28}

Можно ли что-то руками изменить в скетче, чтоб использовать одну НС595, а не две?
Вложения
16_595.txt
(1.92 КБ) 132 скачивания

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

74HC595

#6

Сообщение arisov77 » 30.12.2016{, 02:21}

seri0shka попробуйте блок из этой библиотеки.
Сделал 4 отдельных блока - для 1, 2, 3 и 4 микросхем в каскаде.
В блоках не используется аппаратный SPI.
Три вывода, по которым соединяются Arduino и 74НС595 - можно использовать любые, в том числе и из "аналоговых".

Отпишитесь, пожалуйста о результатах, т.к. "в железе" эти блоки я не тестировал (кроме 16-разрядного блока), только в Proteus - в нём всё работает.
Последний раз редактировалось arisov77 30.12.2016{, 02:31}, всего редактировалось 1 раз.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#7

Сообщение seri0shka » 31.12.2016{, 21:24}

Спасибо огромное! С наступающим Новым Годом! 
В железе попробую на следующей неделе, кроме того попробую 74HC595 и 74HC165 по 5 проводам (как в статье http://robocraft.ru/blog/arduino/541.html). Правда по 3 и 4 микросхем в каскаде в ближайшее время пробовать не буду, мне не надо пока, может попозже.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

74HC595

#8

Сообщение Слимпер » 31.12.2016{, 22:23}

seri0shka писал(а):В железе попробую на следующей неделе, кроме того попробую 74HC595 и 74HC165 по 5 проводам (как в статье http://robocraft.ru/blog/arduino/541.html). Правда по 3 и 4 микросхем в каскаде в ближайшее время пробовать не буду, мне не надо пока, может попозже.
Я пробовал на базе этой статьи сделать блоки, вроде получалось, и LCD по  74HC595 и 74HC165, но только нормального описания не делал, если будет надо могу поискать блоки, и сделать к ним описания.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#9

Сообщение seri0shka » 31.12.2016{, 23:11}

Я думаю вам многие будут благодарны, если сделаете.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

74HC595

#10

Сообщение Слимпер » 01.01.2017{, 15:53}

seri0shka писал(а):Я думаю вам многие будут благодарны, если сделаете.
Ну вроде нашел и сделал описания к блокам. (Нудное это дело делать описание)
Ссылка

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#11

Сообщение seri0shka » 01.01.2017{, 22:03}

Спасибо, я правда пока не всё понял, но кому-то эти блоки точно пригодятся. Выкладывайте в раздел "блоки пользователей". Только наверно нужно поменять 49 пин по умолчанию на какой другой до 13, всё ж больше пользователей не с мегой работают.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

74HC595

#12

Сообщение Слимпер » 02.01.2017{, 08:09}

seri0shka писал(а):правда пока не всё понял
А что именно не понятно?

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#13

Сообщение seri0shka » 05.01.2017{, 01:05}

Пробовал в железе 74HC595 и 74HC165 по 5 проводам (блоки 74НС165_8bit и 74НС595_8bit). Провозился 2 дня, пока понял, что они в таком режиме не работают. По 6 проводам- работают отлично. Пока не пробовал блоки SPI 5 проводов, мне не очень подходят по пинам.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

74HC595

#14

Сообщение arisov77 » 05.01.2017{, 10:14}

seri0shka писал(а): Пробовал в железе 74HC595 и 74HC165 по 5 проводам (блоки 74НС165_8bit и 74НС595_8bit).
Проверил схему с общими "Clock-ами" (в.2 - НС165 и в.11 - НС595) в Протеусе -> не работает последний старший бит (по схеме, а программмно он "отправляется" первым). Все остальные биты работают нормально.
Буду разбираться.
seri0shka писал(а): Пока не пробовал блоки SPI 5 проводов, мне не очень подходят по пинам.
Эта была одна из многочисленных причин, побудившая меня написать свои блоки. С аппаратным SPI, по сравнению с программным способом на мой взгляд одно преимущество - более высокая скорость считывания/передачи.

Также при исполльзовании стандартного блока 74НС595 мне не понравилось, то что данные передаются только при изменении числа на входе. Пока отлаживал макетку столкнулся, что в результате помех по входам 74НС595 на её выходе могут появиться случайные данные и они остаются до тех пор, пока не сменится команда на изменение, какого либо выхода. С "самодельным" блоком такого не наблюдалось.
Последний раз редактировалось arisov77 05.01.2017{, 10:25}, всего редактировалось 1 раз.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#15

Сообщение seri0shka » 06.01.2017{, 21:09}

arisov77 писал(а):не работает последний старший бит (по схеме
Ещё часть битов сдвинута на один пин (скажем вместо В изменяется С, вместо А изменяется В), а часть битов проинвертированы (к примеру с Е по Н), точно по памяти не скажу. То есть нельзя сказать, что схема не работает совсем, потому и провозился так долго.

Добавлено (06.01.2017, 21:09)
---------------------------------------------
Дошли руки попробовать SPI. Тут нарисовалась проблема. После компиляции проекта в IDE он выдаёт ошибку при проверке, соответственно не может быть вгружен  в ардуину. Попробовал Тест  SPI, что в комплекте с блоками SPI шёл, получил то же самое.
Вот такие ошибки выдаёт  IDE при проверке скетча ( Тест  SPI
):

pr2.ino:32:53: error: 'SpiCascade' was not declared in this scope
pr2.ino: In function 'void setup()':
pr2.ino:61:1: error: 'flagSpiDisp' was not declared in this scope
pr2.ino: In function 'void loop()':
pr2.ino:135:6: error: '_SpiStartDisp' was not declared in this scope
pr2.ino:138:50: error: 'SpiLcdString' was not declared in this scope
pr2.ino:139:36: error: 'SpiLcdPrint' was not declared in this scope
pr2.ino:143:43: error: '_SpiClearDisp' was not declared in this scope
pr2.ino:149:6: error: '_SpiStartDisp' was not declared in this scope
pr2.ino:152:50: error: 'SpiLcdString' was not declared in this scope
pr2.ino:153:36: error: 'SpiLcdPrint' was not declared in this scope
pr2.ino:157:43: error: '_SpiClearDisp' was not declared in this scope
pr2.ino: In function 'void test_236439219_2(byte, bool)':
pr2.ino:201:38: error: 'SpiCascadeLineWrite' was not declared in this scope
Ошибка компиляции.
 
Открываю новый проект, забрасываю только нужные мне блоки: SPI_IN_1m, SPI_OUT_slave,  SPI_OUT_master, компилирую и получаю ошибки:

pr3.ino: In function 'void test_236439219_1(byte, bool)':
pr3.ino:90:38: error: 'SpiCascadeLineWrite' was not declared in this scope
Ошибка компиляции.
 
Удаляю блок SPI_OUT_slave, компилирую, проверяю, ошибок нет.
  А я такие надежды на  SPI возлагал, мне очень нужно управление по 5 проводам.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

74HC595

#16

Сообщение arisov77 » 06.01.2017{, 22:24}

seri0shka писал(а):Ещё часть битов сдвинута на один пин (скажем вместо В изменяется С, вместо А изменяется В), а часть битов проинвертированы (к примеру с Е по Н), точно по памяти не скажу. То есть нельзя сказать, что схема не работает совсем, потому и провозился так долго.
seri0shka Этот блок попробуйте по 5 проводам. В Протеусе - у меня всё заработало.
Вложения
74HC595_Proteus.rar
(27.48 КБ) 119 скачиваний
74HC165_595_16b.flp
(352.93 КБ) 131 скачивание
0717819.jpg
Последний раз редактировалось arisov77 06.01.2017{, 22:29}, всего редактировалось 1 раз.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#17

Сообщение seri0shka » 06.01.2017{, 23:16}

Совсем запутался в блоках, надо в название блока номер версии дописывать. Попробовал последний 595, работает по 5 проводам совместно с блоком 165, но не работает совместно с блоком  SPI_IN_1m (ну и не нужно теперь).
По поводу предыдущей проблемы: нашёл ошибку, показано на картинке, руками исправлял- заработали SPI входы и выходы по 5 проводам. Но теперь надо как-то в блоке отредактировать, а во-вторых при включении на выходах случайное состояние аж до первого воздействия на вход (блоки  SPI_IN_1m,  SPI_OUT_master,  SPI_OUT_slave)
Вложения
2695504.png

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

74HC595

#18

Сообщение arisov77 » 07.01.2017{, 00:46}

seri0shka писал(а):Совсем запутался в блоках, надо в название блока номер версии дописывать. Попробовал последний 595, работает по 5 проводам совместно с блоком 165, но не работает совместно с блоком  SPI_IN_1m (ну и не нужно теперь).
Я тоже запутался - не понятно, это к кому обращение, ко мне или Слимпер?
Если ко мне, то я в "новых" блоках изменил в описании дату создания блока. Как Вы протестрируете (с положительным результатом), я выложу в раздел "Блоки пользователей" - и там уже эта версия будет "точкой отсчёта".
Последний раз редактировалось arisov77 07.01.2017{, 00:51}, всего редактировалось 1 раз.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

74HC595

#19

Сообщение seri0shka » 07.01.2017{, 01:46}

arisov77 писал(а):не понятно, это к кому обращение, ко мне или Слимпер
Ой, я как-то упустил, что блоки SPI другого автора. Но запутался в ваших. С датой уже проще, хотя нашёл её только сейчас. Опробовал 165х8бит + 595х8бит - работает! Могу ещё попробовать  165х16бит + 595х8бит и  165х24бит + 595х8бит. Остальные варианты сложнее, у меня не макетка, а готовые распаянные платы. Хотя думаю, что если 8битные работают, то и с остальными не должно быть проблем.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

74HC595

#20

Сообщение arisov77 » 07.01.2017{, 04:01}

seri0shka писал(а):Хотя думаю, что если 8битные работают, то и с остальными не должно быть проблем.
Согласен, надеюсь, что сейчас всё нормально будет, т.к. все блоки протестировал в Протеусе.
Разместил блоки здесь.

Ответить

Вернуться в «Расширители портов»