реклама на сайте
подробности

 
 
> Как сделать SPI Slave устройство на атмега?
inventor
сообщение Jul 16 2012, 17:46
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



проблема такая-на микропроцессоре не хватает свободных ножек, поэтому был сделан расширитель портов на атмега.
ну..чтобы чипселекты выставлять, проверять наличие всяких готовностей и прочего.
прикинул, что плодить навороченный протокол для SPI slave - это достаточно напряжная вешь.
очень навороченным его не сделать-нужно будет тогда снижать скорость обмена по SPI-d даташыте написано что SCLK не можето быть более половины тактовой частоты.
У меня тактовая частота атмеги 8 мегагерц, но и 4 мегагерца - это предел.
я начал писать на C для этого камня (на асме нельзя)
вот что получилось-хочу обращаться к этому камню со стороны основного процессора
так же как к обычному уись..
стройству.
я распределил какие типы команд я могу посылать DDRx PORTx и PINx соответственно протокол такой придумал-
первый байт это команда и к какому порту обращаюсь (PA PB PC итд) второй байт что туда нудно выставить.
то есть еслли m,s команда в атмеге выглядела бы так PORTA = 0x24
я бы паередавал эти два байта-код операции и запись...
то есть понятно что я имел ввиду
в устройстве slave на атмеге сделал прерывание "по окончанию записи байта мастером" - оно вроде так называется и в этом прерывании читаю то что там пришло в SPDR - так вроде SPI регистр называется.
но мне вот что непонятно-для SPI и чтение и запись это одно и тоже.
то есть если я в прерывании прочитал принятый байт - то я как бы уже автоматом должет передать в мастер dummy байт.
или я не прав?
как вот мне реализовать команду a = PINx
то есть чтение порта?
принял я команду и хочу в слеве передать ответ-как мне это правильно сделать?
прошу прощения, я не задавал бы вопрос, если бы у меня было настоящее устройство-я бы просто посидел с дебагером и разобрался-но у меня устройства пока нет, но код предварительный накидать надо.
спасибо!

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 05:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016