Микроконтроллеры | TEX учится |
|
---|---|---|
Можно не использовать метод сдвигов. Суть, передать бит по шине данных. Не могу понять, в чем у Вас загвоздка. |
|
|
Есть непонятный момент, прошу заранее прощения за непомерную тупость сего вопроса. Данные передаются и принимаются одновременно? например, мы поместили в ACC (считаем просто регистром) передаваемый байт, сдвинули его влево, чтоб "голова" (MSB) выдвинулась в бит переноса (С). Далее, скопировали С в ногу, назначенную MOSI (к ведомому) , дали тактовый импульс на SCK (с CPHA и полярностью я сам разберусь). Дальше что: |
|
|
TEX: Есть непонятный момент, прошу заранее прощения за непомерную тупость сего вопроса Не комплексуйте, мне например еще не приходилось общаться с людьми, знающими абсолютно все))) Если Вам нужно еще и принимать по шине MISO, то после передачи тактового импульса(по спаду), читаем состояние порта на шине MISO. Результат записывается в рабочий регистр приема. Прочитали первый бит байта данных для передачи. Прочитали второй бит байта данных для передачи. Прочитали восьмой бит байта данных для передачи. |
|
|
Попался документик, вроде по Вашим МК. |
|
|
vintik: На 226 странице пример программного SPI. А вот и решение в лоб. Воспользовались тем, что ACC - бит-адресуемый регистр. Ну и я тоже воспользуюсь. |
|
|
|
||
TEX: Данные передаются и принимаются одновременно? Да, SPI так работает. По сигналу CLOCK идет взаимный обмен данными. Но не вся приферрия это использует. Чаще передается команда, а потом принимается ответ (т.е. тот, кто передает не обращает внимание на принимаемые биты считает только CLOCK). Кстати, не забывайте, что в SPI бывают режимы 0,1, 2... отличаются они тем, в каком состоянии находится линия CLOCK во время ожидания (0/1), и по какому фронту (или его середине) выполняется изменение уровня на линии D_out и считывание результата на D_in. |
|
|
vintik: Т.е. ведомый принимает бит по шине MOSI по фронту SCK, а передает по шине MISO по спаду на шине SCK. Ага, тут ошибочка, у ведомого по шине MISO и MOSI перезапись происходит по одному фронту или спаду, на шине SCK. |
|
|
Читал нечто относящееся к программированию, и там встретил некую двоичную систему счисления, под названием "серый код". По-русски про этот серый код не нашел ничего путного. Что это такое? |
|
|
Gray code + горе-переводчик = серый код. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |