http://www.forum.getchip.net/

SPI для Tiny
http://www.forum.getchip.net/viewtopic.php?f=16&t=348
Страница 1 из 2

Автор:  mcmega [ 12 мар 2013, 19:06 ]
Заголовок сообщения:  SPI для Tiny

Ребята, столкнулся с SPI. :-) Прошу помощи!!! :?:
Давайте подробнее разберём организацию SPI для МК Tiny.
Предлагаю начать с ATTiny2313 (USI).
Как настроить, за что отвечают галочки в надстройщике, может какие особености есть?
Как передать биты ВАМ или ШИМ по SPI на регистр сдвига 595? (когда ножек МК не хватает)
Примеров вроди в инете есть, но хотелось бы на АВ.
Создать, так сказать, небольшую библиотеку по SPI. :D
Помогите разобраться!!!

Автор:  GetChiper [ 12 мар 2013, 20:14 ]
Заголовок сообщения:  Re: SPI для Tiny

ATtiny2313 очень не показателен для SPI. Вот как выглядит работа SPI:


Для других АВР - немного проще:

Автор:  mcmega [ 12 мар 2013, 20:34 ]
Заголовок сообщения:  Re: SPI для Tiny

А Тини45(85)?
А как настроить SPI через надстройщик?
В примере выше организован програмно или через USI?
Есть смысл через USI настраивать? Скиньте пример какой ;)

Автор:  GetChiper [ 12 мар 2013, 23:24 ]
Заголовок сообщения:  Re: SPI для Tiny

Походу там такая же петруха как и в 2313.

Автор:  mcmega [ 25 мар 2013, 15:10 ]
Заголовок сообщения:  Re: SPI для Tiny

Разобрался с програмной реализацией SPI через сдвиговый регистр 595. Прикрепил пример для tiny13 (45). В примерах отправляются несколько каналов ШИМ на каждый выход регистра.

Вложения:
Комментарий к файлу: Пример tiny13 (45)
PWM_74CH595.rar [81.57 КБ]
Скачиваний: 808

Автор:  SVN [ 25 мар 2013, 18:32 ]
Заголовок сообщения:  Re: SPI для Tiny

Ну вот, а прибеднялся. Давай добивай до конца и выкладывай примеры. Чем больше разных алгоритмов тем и самому в помощь. Да и здесь всегда будет лежать запасной вариант если свой где-то потеряешь. :OK: :-)

Автор:  mcmega [ 25 мар 2013, 18:49 ]
Заголовок сообщения:  Re: SPI для Tiny

Пока микрухи не пришли, не могу закончить :-) Кстати как в AB отправлять 12 Битный код по SPI?
Поясню, микруха TLC5947 представляет собой 24-х канальный светодиодный драйвер с внутренним 12 Битным контроллером ШИМ. Так как ШИМ уже в микре, то контроллер должен отправлять только 12 Битное значение для каждого канала.
Но в АВ 12 Бит нет, есть только 8 или 16. Соответственно при отдаче 16 бит, 4 Бита будут лишние. Как можно их отсечь от передачи, чтоб передавать только 12 Бит и соответственно 4096 уровней яркости, а не 65535?

Автор:  SVN [ 25 мар 2013, 19:24 ]
Заголовок сообщения:  Re: SPI для Tiny

Так из большего всегда можно сделать меньшее. Не понял в чём проблема. Передавай из 16 всего 12, а что ему 4 старших бит (нолики) мешают. У тебя программная реализация SPI или аппаратная?

Автор:  mcmega [ 25 мар 2013, 19:59 ]
Заголовок сообщения:  Re: SPI для Tiny

Да, "нолики" помешают, потому что внутри 12-и разрядный регистр, а эти "нолики" отправятся в следующий канал как полезная информация.
Я хотел аппаратно, на mege какой-нибудь :-) или tiny (если влезет) . Я хочу привязать к подсветке лестницы. Поэтому буду ждать с нетерпением твоего с Евгением релиза!!! :D
Кстати, чтоб не наступили на грабли, при существующем алгоритме (SVN+MCMega) частота ШИМ на выводах МК уменьшается пропорционально количеству каналов, при 7-и канахах памяти в Tiny2313 уже не остаётся. Поэтому мне кажется более рационально использовать спец. микрухи со встроеным контроллером ШИМ, а МК будет только им управлять. Свободные ресурсы МК можно применить для чего-нибудь ещё ;)

Автор:  SVN [ 25 мар 2013, 20:56 ]
Заголовок сообщения:  Re: SPI для Tiny

Это известно, что программный ШИМ хот и идеально рисует сигнал но жрёт ресурсы МК не по мерно. :D Так что ШИМ как токовой не рассматриваем. :-) Использовать будем ВАМ, хоть он и не идеален, но при глубоком анализе можно отбросить те значения ВАМа, которые портят картинку и вперёд на баррикады. :lol: Использования специальных микросхем это хорошо, но мы то пытаемся сделать конструкцию простой, но в тоже время привлекательной. :congrats: Так что время покажет, что из этого выйдет. ВАМ уже побеждён, теперь идёт работа над эффектами. :OK:

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/