Параллельная работа ШИМ и SPI
- Войдите на сайт для отправки комментариев
Чт, 07/04/2022 - 07:29
Для разработки устройства на Atmega 8 необходимо задействовать ШИМ (PB1-PB3)и аппаратный SPI (PB1-PB4) но вся беда в том что они занимают одни и те же ноги
можно как то реализовать их параллельную работу или нет ?
И вообще это реализуемо ?
И как ты себе представляешь "параллельную работу"?
Неодновременно можно, но нахер оно не уперлось.
Проще взять другой контроллер или пересмотреть схему устройства. Скажем включив в него микросхему которая может ШИМ и управляется по SPI
Или что то делать софтово, если есть такая возможность.
нет
Используй Atmega88
вообще-то смотрю распиновку Атмега8
и вижу что ШИМ - это PB1 PB2, а SPI - это PB3-PB5. то есть они не пересекаются.
вообще-то смотрю распиновку Атмега8
и вижу что ШИМ - это PB1 PB2, а SPI - это PB3-PB5. то есть они не пересекаются.
А PB2 ? )
Вообще, PB1 точно не пересекается. Сколько ШИМ нужно то? Все три?
А PB2 ? )
SS можно переназначить на любой другой пин, он не привязан к железу, так что уже два ШИМ есть.
ЗЫ то, что PB3 тоже ШИМ - каюсь, не заметил, потому и написал "не пересекаются". Правильнее - пересекаются на 1 пин :)
Не, не. SS нужен для SPI.)
Не, не. SS нужен для SPI.)
никто не спорит, что нужен. Однако, если правильно понимаю, задать в качестве SS можно любой GPIO, не обязательно этот. Если бы он был один и задан жестко. ты не смог бы подключить более одного устройства к шине.
Для ведомых устройств да, но Ардуино SPI не сможет работать без SS, который определяет мастер/слэйв (направление).
Для ведомых устройств да, но Ардуино SPI не сможет работать без SS, который определяет мастер/слэйв (направление).
Да ты угараешь штоли? SS жестко задан, када ардуино ведомое устройство, а когда ведущее - хоть A0 назначай
Кстати, в известной биб-ке для SD карт, SS пин 4, памойму.
Для ведомых устройств да, но Ардуино SPI не сможет работать без SS, который определяет мастер/слэйв (направление).
еще раз, никто не говорит "работать без SS". Но пин для SS можно выбрать любой, не обязательно PB2
напомню известную картинку:
допустим тут SS1 - это наш PB2 Атмеги8, SS1 SS2 - какие-то другие пины.
Ты хочешь сказать, что если отключить зеленого клиента, у которого SS = PB2 . два других тоже перестанут работать? - мне кажется ты неправ.
Да ты угараешь штоли?
Что ли.
Дед, тут есть другой вопрос.
При работе с СТМ32 я сталкивался, что хоть SS для SPI и можно выбрать любой, но к "системному" SS при этом все равно подключать ничего нельзя - SPI перестает работать. Но думаю, что это вывихи СТМ-овского аддона...
Более того, настроил ты SPI мастером, и вдруг коротнул SS на землю. Всё, мастер стал слэйвом. Это у AVR и лично со мной.
Что ли.
вот ты упертый. Что этот кусок кода доказывает? - ничего. Инициализации значения SS в нем нет. Этот код никак не опровергает мои слова, что пин для SS может быть назначен любой.
Более того, настроил ты SPI мастером, и вдруг коротнул SS на землю. Всё, мастер стал слэйвом. Это у AVR и лично со мной.
ты правда не проснулся? - заведи другой пин и не трогай его
Я хоть и склеротик, но http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/voprosy-po-spi-1-master-1-slave
Более того, настроил ты SPI мастером, и вдруг коротнул SS на землю. Всё, мастер стал слэйвом. Это у AVR и лично со мной.
с этим я согласен. тогда да, тогда я идиот, чо с меня взять.
млин, еше раз!
Никто не спорит, что SS нужен. Но прописанный на распиновке чипа пин PB2 - ТОЛЬКО ДЛЯ ПРИМЕРА.
SS можно перекинуть на любой другой GPIO сменой макроса #define PIN_SPI_SS, потому что он, в отличии от SCK MOSI MISO - не привязан к железу
Грин, вообще непонятно, о чем спор... ты мне про мягкое, я - про соленое.
И, кстати, в ветке по твоей ссылке ты САМ ПИШЕШЬ, что SS можно использовать как OUTPUT. Насколько я помню, в авр нет отдельного режима пина для ШИМ, это тоже OUTPUT, так что ТС вполне может совместить SPI и два ШИМ
Да, согласен, виноват.( SS настраивается на выход ТОЛЬКО при инициализации SPI, но в дальнейшем его можно использовать для ШИМ.
Прошу пардону у всех запутанных мною.)