28.10.2021, 05:27
|
|
Прописка
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
|
PIC16, USART, вывод SS
Внезапно возникла нехватка одной ноги в МК PIC16F1829. Все в притык уже и тут появилась необходимость ловить уровни от внешнего устройства ногой МК. В конструкции задействован USART2 для передачи данных в дисплей. USART модуль работает в режиме мастер и линия SS, очевидно, не используется.
Но, в даташите я так и не смог найти инфы по состоянию порта которому назначается функция SS в режиме Master.
Для режима Slave все четко расписано:
0100 = SPI Slave mode, clock = SCKx pin, SSx pin control enabled
и
0101 = SPI Slave mode, clock = SCKx pin, SSx pin control disabled, SSx can be used as I/O pin
Во втором случае SS функция на линии порта выключена и порт используется по своему прямому назначению - ввод-вывод.
А что с этим портом в режиме Master? В этом режиме читаю линию порта RC0 в PIC16F1829 (это SS2 в режиме USART), сконфигурировав его как цифровой вход. Подаю на вход высокий и низкий уровни. Нулевой бит порта C читается как 0 при любом уровне на входе.
Что же получается, в режиме Master порт с функцией SS безвозвратно потерян для пользователя?
|
|
|
|
28.10.2021, 08:00
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 584
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
|
Re: PIC16, USART, вывод SS
Сообщение от Alcest
|
А что с этим портом в режиме Master?
|
ничего должен работать как обычный I/O
я бы на вашем месте для начала проверил регистры ANSEL по дефолту все пины аналоговые,
Последний раз редактировалось DmitriyVDN; 28.10.2021 в 08:05.
|
|
|
Сказали "Спасибо" DmitriyVDN
|
|
|
28.10.2021, 09:47
|
|
Прописка
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
|
Re: PIC16, USART, вывод SS
Нет, все пины включены как цифровые, я когда что с портом делаю обязательно смотрю что у меня там в ANSEL и TRIS. Но все равно RC0 не хотел читаться. Я тут подумал, а переназначу я SS2 на другой порт, благо 16F1829 это позволяет. Переназначил, и RC0 заработал нормально на вход, стал читаться как ноль при низком уровне и как 1 при высоком на пине.
И вроде все ничего, но переназначился SS2 на порт, на котором висит один из выводов кварцевого осциллятора. И, хотя тактовый генератор не заглох и продолжил нормально работать (походу, у осциллятора более высокий приоритет при назначении функций пинам), мне как-то сцыкотно стало. Как знать, чем оно позже обернется? Вернул SS2 обратно на порт RC0 и... оказалось вдруг, что этот порт нормально читается и с функцией SS2. Чего там произошло после передергивания функции с одного пина на другой и обратно, я никогда не узнаю. Но работает, и это не может не радовать.
Последний раз редактировалось Alcest; 28.10.2021 в 09:55.
|
|
|
|
28.10.2021, 11:20
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 584
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
|
Re: PIC16, USART, вывод SS
может просто контакта не было?
|
|
|
|
28.10.2021, 11:34
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 679
Сказал спасибо: 362
Сказали Спасибо 753 раз(а) в 358 сообщении(ях)
|
Re: PIC16, USART, вывод SS
|
|
|
|
28.10.2021, 13:17
|
|
Прописка
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
|
Re: PIC16, USART, вывод SS
На этот раз все было надежно пропаяно проводами, прямо по пайкам разъема-гребенки на переходной платы с МК. Беспаечная макетка использовалась только как держатель платы.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:18.
|
|