ATmega328 и LED&KEY модуль на базе TM1638

Обсуждаем контроллеры компании Atmel.
Ответить
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Пн окт 26, 2020 08:37:51
Откуда: г.Волгоград

Сообщение С.Н. »

День добрый народ.
В рамках проработки идеи одного прибора из подручных (старых модулей) "подружил" LED&KEY модуль на базе TM1638 и ATmega328 через аппаратный SPI интерфейс.
Сложность в том, что модуль TM1638 имеет полудуплексный режим работы, а SPI интерфейс не имеет такого режима.

Кому интересно?
До сих пор видел только программную эмуляцию этого "содружества". Не исключаю, что сделал "велосипед".
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Реклама
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Есть Attiny24/44/84 с полуфабрикатным USART модулем. На нём делается любой каприз, так практически всё отдано на откуп программисту.
Реклама
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Пн окт 26, 2020 08:37:51
Откуда: г.Волгоград

Сообщение С.Н. »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=4041313#p4041313"]Есть Attiny24/44/84[/uquote]
Очень рад за них. Речь шла за конкретный МК и аппаратный SPI.
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Сегодня ассортимент МК такой, что нет никакой проблемы подобрать МК под задачу. Зачем создавать проблемы на ровном месте и затем героически их решать?
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Пн окт 26, 2020 08:37:51
Откуда: г.Волгоград

Сообщение С.Н. »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=4041345#p4041345"]Сегодня ассортимент МК такой, что нет никакой проблемы подобрать МК под задачу. Зачем создавать проблемы на ровном месте и затем героически их решать?[/uquote]
Извините, не пойму, зачем Вы все это пишете. Просто, что бы что-то написать? Да никто не сомневается в Вашей компетентности и разнообразности мира МК.

Я описал условия задачи - использовать, то что под рукой. Описал всё это на ветке про МК AVR. Разрешил интересную проблемку, как мне показалось, нестандартным образом. Нет нужды в этом - просто игнорируйте.

Какой смысл говорить про другие МК?
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="С.Н.",url="/forum/viewtopic.php?p=4041310#p4041310"]SPI интерфейс не имеет такого режима...
Не исключаю, что сделал "велосипед".[/uquote]
1) MISO и MOSI соединить и будет такой режим
2) возможно велосипед
https://tomalmy.com/tm1638-interfacing-continued/
Реклама
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

использовать, то что под рукой.
не то, что под рукой, а то, что есть у ТС. У меня под рукой нет 328 камня и врядли будет.
Разрешил интересную проблемку
Если это вопрос - го надо задать. Если это решение - его надо описать. Иначе
Какой смысл говорить
об этом? Я каждый день решаю какие-то задачи. О чём-то даже рассказываю.
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Пн окт 26, 2020 08:37:51
Откуда: г.Волгоград

Сообщение С.Н. »

[uquote="oleg110592",url="/forum/viewtopic.php?p=4041371#p4041371"][uquote="С.Н.",url="/forum/viewtopic.php?p=4041310#p4041310"]SPI интерфейс не имеет такого режима...
Не исключаю, что сделал "велосипед".[/uquote]
1) MISO и MOSI соединить и будет такой режим
2) возможно велосипед
https://tomalmy.com/tm1638-interfacing-continued/[/uquote]

Реально похоже. Я правда плохо СИ понимаю...
Отличия:
1. ASM.
2. Нет никаких задержек типа delay в рабочих цепочках. Изначально они конечно были по PDF TM1638. Потом убрал.
3. Частота передачи 4 МГц (у меня кварц 16МГц)
4. Нет изменения режима работы линии MOSI. Эта линия через резистор к MISO присоединена -не я придумал.
5. Выбран режим 0, а не 2 (CPOL=0 и CPHE=0). PDF TM1638 вроде изучал. Один из нас что-то напутал или TM1638 "схавала" и такое обращение.
6. Я флаг проверяю при приеме/передаче (у автора прерывание отрабатывает по завершению, если я правильно понял)

А так конечно велосипед.

"We have to send something to start each read, so we send zeros" - вот ключ который он нашел на полгода раньше.
Поскольку я не меняю направление линии MOSI, то вместо 0 посылаю 1.
Интересно, но эту статейку не находил ранее.

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

WriteSPI:
	out 	SPDR,r16
Wait_Transmit:
	in 	r16,SPSR
	sbrs 	r16,SPIF
	rjmp	Wait_Transmit
	ret

ReadSPI:
	out 	SPDR,0xFF
	rcall	Wait_Transmit
	in 	r16,SPDR
	ret

Тема исчерпана.
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Ответить

Вернуться в «AVR»