ra9flw, три ножки переводятся в режим выхода:
DDRB |= (1<<DD_SS)| (1<<DD_SCK) | (1<<DD_MOSI);
далее производится инициализация аппаратного SPI в режиме мастер:
SPCR = (1<<SPIE)|(1<<SPE)|( 1<<MSTR)|(1<<SPR0); // irq, enable, master, clock/16
Теперь самое интересное.
В книжке Евстафьева по атмегам ниже написано (получается, что ss никуда не надо подключать), фразу зачеркнул - смысл к месту или не к месту, не знаю. Добавить больше ничего не могу.
Последний раз редактировалось RA3PKJ; 23.02.2023 в 21:37.
Николай. а исходник сюда(или куда-нить) выложить можно?Видимо этот вариант так никого и не заинтересовал раньше.
Попробовать придется наобум, а вдруг заработает.я бы вместо "чип селект" еще попробовал MOSI подключить, не видел раньше подключения SPI по двум проводам.может если чип один , то и выбирать его не нужно.
Ra3pkj, спасибо, теперь болен менее понятно. Остался вопрос по ножкам фпга.
Может быть кто то ещё посмотрит проект sg9 в квартус? Ведь текст в ответе dl2stg явно был скопирован из проекта. Текст смотрите выше в одном из моих постов.
И ещё один вопрос. Можно ли из фпга вытащить I/Q наружу? Через две ножки.
Последний раз редактировалось ra9flw; 24.02.2023 в 07:59.
#define DD_SS PB4
#define DD_MOSI PB5
#define DD_SCK PB7
Надо учесть, что эти дефайны в исходнике атмеги сделаны для удобства понимания кода. Названия используются только при назначении этих ножек в качестве выходов. И всё. Можно было легко обойтись без дефайнов.
О чём это я... другая ножка PB6 по умолчанию остаётся входом. После инициализации аппаратного SPI она автоматически становится входом MISO. Как и положено.
Я бы соединил линии MISO, MOSI, CLK. А SS никуда не подключил бы в соответствии с идеологией атмел, т.к. ножка назначена выходом (скрин из книжки говорит, что она после этого перестаёт работать на нужды SPI, хотя пользователь в принципе может при желании использовать её на эти нужды, написав для ножки код выбора другой микросхемы в качестве slave).
Добавлено через 7 минут(ы):
И ещё. Модуль spi в квартусе не содержит ss (на две последние строчки не смотреть, это какие-то регистры):
module spi(spi_clk, spi_mosi, spi_miso, spi_out, spi_in);
input spi_clk;
input spi_mosi;
output spi_miso;
input [23:0] spi_out;
output reg [23:0] spi_in;
Больше в квартусе ничего интересного не нашёл, да и не знаю как искать (поиск по словам во всём проекте там отсутствует что-ли, только поиск в открытом файле).
Последний раз редактировалось RA3PKJ; 24.02.2023 в 16:21.
надо смотреть присвоение сигналов ногам в pin planer в квартусе, там описано следующее:
spi_clk input PIN_52
spi_miso output PIN_51
spi_mosi input PIN_50
сигнал ss никуда не заводится, да и не нужен он.
Работает это все как расширение стандартно протокола обмена (как я понял). Взаимодействие с платой расширения идет с использованием 3-х байтового числа. Далее оно зачем-то становится 4-х байтовым и передается по Ethernet в ПО на компьютере, в обратную сторону так-же.
ra9flw сообщил, что залил прошивку в атмегу. Видимо завтра будет подключать SPI. Ждёмс...
Добрый день всем. Прежде чем разводить платку решил симулировать в Proteuse. Комп слабый вин7 с 2 ГБ. Может поможет кто?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)