|
Сброс SPI (Verilog), Начальное состояние триггеров |
|
|
|
Sep 9 2015, 15:23
|

Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 30-09-13
Пользователь №: 78 536

|
Добрый день уважаемые, хочу поделиться моей проблемой. Имеется SPI Slave, вот код: Код module SPIslave( input wire RESET, input wire CSIN, input wire SCKIN, input wire MOSIIN, output wire MISOOUT, output reg [15:0] DATAOUT, );
reg [15:0] data; reg [4:0] count;
assign MISOOUT = data[15];
always @ (negedge SCKIN) if (RESET & ~CSIN) data <= { data[14:0], MOSIIN };
always @ (posedge SCKIN) if (~RESET | CSIN) count <= 5'b00000; else count <= count + 1'b1;
always @ (count[4]) DATAOUT <= data
endmodule Вся проблема в RESETe. Хочу обходиться без лишних ног, ибо на CPLD итак много всего. Если уберу из кода RESET, то счетчик начинает считать не с начала условий, под которые он подписан. Т.е. Подаю клок, потом подаю CSIN = 1 (до этого она в нуле). Далее отпускаю CSIN = 0, но счетчик не начинает считать. И только по прошествии 7 - 8 клоков оживает. Я думал что при включении питания CPLD выставляет все в "0", но получше глянув в Post-моделировании заметил что не все в нуле. Мож я чет не понимаю? На Verilogе сижу не долго и прошу помощи у экспертов.
|
|
|
|
|
 |
Ответов
|
Sep 10 2015, 07:42
|

Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 30-09-13
Пользователь №: 78 536

|
Цитата(Golikov A. @ Sep 10 2015, 11:07)  Сдается мне что дело не в ресете.... конечно при наличии CS, RESET не нужен, на первом же клоке счетчик должен уйти в 0, а на следующем с падением CS пойти считать. И тут у меня возникает вопрос клок присутствует до CS? Выдержан ли фронт CS относительно клока, не может быть какой-то метастабильности? Нет ли какого-то выхода на режим всей схемы? для того чтобы все было в тех состояниях что желаете не поможет ли такой ход? Код reg [15:0] data = 0; reg [4:0] count = 0; Есть вариант что клок до CS не присутствует. ТАм схема такая: CPLD связана с микросхемой по SPI, та в свою очередь переводит данные из SPI в I2C и обратно. Т.е. так: (FMC-ПОРТ) <-I2C-> (SC18IS602IPW) <-SPI-> CPLD. Но на CPLD еще заведен клок от I2C (наверно постоянный). Вот собственно мне и нужен SPI-Slave, ток как его сделать.
|
|
|
|
|
Sep 10 2015, 07:55
|

Знающий
   
Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402

|
Цитата(estel23 @ Sep 10 2015, 10:42)  ТАм схема такая: CPLD связана с микросхемой по SPI, та в свою очередь переводит данные из SPI в I2C и обратно. Т.е. так: (FMC-ПОРТ) <-I2C-> (SC18IS602IPW) <-SPI-> CPLD. Но на CPLD еще заведен клок от I2C (наверно постоянный). Вот собственно мне и нужен SPI-Slave, ток как его сделать. Ничего не понятно  Зачем конвертировать SPI<>I2C и обратно? Ну ладно. У SPI существует несколько режимов работы в плане того - в какой момент выдаются данные и когда их надо захватывать. Т.е. железно сделанный SPI для одного случая, может категорически не подойти для другого. Например, из вики цитата: Цитата Возможны четыре комбинации фазы (CPHA) и полярности (CPOL) сигнала SCLK по отношению к сигналам данных. Режимы работы определяются комбинацией бит CPHA и CPOL: CPOL = 0 — сигнал синхронизации начинается с низкого уровня; CPOL = 1 — сигнал синхронизации начинается с высокого уровня; CPHA = 0 — выборка данных производится по переднему фронту сигнала синхронизации; CPHA = 1 — выборка данных производится по заднему фронту сигнала синхронизации. Тактовый импульс I2C в общем случае не является регулярным сигналом. Как именно у Вас - надо смотреть.
--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
|
|
|
|
|
Sep 10 2015, 08:05
|

Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 30-09-13
Пользователь №: 78 536

|
Цитата(EvgenyNik @ Sep 10 2015, 11:55)  Ничего не понятно  Зачем конвертировать SPI<>I2C и обратно? Ну ладно. У SPI существует несколько режимов работы в плане того - в какой момент выдаются данные и когда их надо захватывать. Т.е. железно сделанный SPI для одного случая, может категорически не подойти для другого. Например, из вики цитата: Тактовый импульс I2C в общем случае не является регулярным сигналом. Как именно у Вас - надо смотреть. Конвертация нужна, потому что некоторые микросхемы только по I2C, а некоторые только по SPI (см. рисунок). Про режимы я вроде разобрался. И мне нужно реализовать SPI так, как на графиках. Но для начала я пытаюсь сделать просто сдвиговый регистр. И из возможных пинов есть только 4 под SPI и один клок I2C. И я думаю как сделать сброс если клок не с начала подается, а при передачи информации.
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
estel23 Сброс SPI (Verilog) Sep 9 2015, 15:23 EvgenyNik Мастер-устройство работать с CS будет по словам (т... Sep 9 2015, 15:44 estel23 Цитата(EvgenyNik @ Sep 9 2015, 19:44) Мас... Sep 9 2015, 15:49 EvgenyNik Выведите состояние регистра на внешние пины (как с... Sep 9 2015, 19:12 Golikov A. Множество SPI slave режимов реализуются при асинхр... Sep 10 2015, 08:14 EvgenyNik Вариант: выкинуть SC18IS602IPW, подставив вместо н... Sep 10 2015, 10:12 estel23 Цитата(EvgenyNik @ Sep 10 2015, 14:12) Ва... Sep 10 2015, 11:24 Golikov A. в CPLD асинхронный сброс возможен?
Кодalways @ ... Sep 10 2015, 12:26 estel23 Цитата(Golikov A. @ Sep 10 2015, 16:26) в... Sep 23 2015, 13:37 Golikov A. ЦитатаPLD работает когда начальная установка MISO ... Sep 23 2015, 16:50 estel23 Вообщем не могу правильно передавать биты во время... Sep 24 2015, 08:27 Golikov A. ЦитатаПоложение MISO важно, т.к. если я его оставл... Sep 24 2015, 09:30 estel23 Цитата(Golikov A. @ Sep 24 2015, 13:30) M... Sep 24 2015, 09:44 Genadi Zawidowski Выход слейва - MISO - в каждом слейве дожден прохо... Sep 24 2015, 09:53 estel23 Цитата(Genadi Zawidowski @ Sep 24 2015, 13... Sep 24 2015, 09:55 Genadi Zawidowski OE буфера не должен ничем стробироваться, просто у... Sep 24 2015, 10:00 estel23 Цитата(Genadi Zawidowski @ Sep 24 2015, 14... Sep 24 2015, 10:07  EvgenyNik Цитата(estel23 @ Sep 24 2015, 13:07) АЦП,... Sep 24 2015, 13:53   estel23 Цитата(EvgenyNik @ Sep 24 2015, 17:53) А ... Sep 24 2015, 14:28 Golikov A. есть вещи которые я не понимаю и не смогу понять н... Sep 24 2015, 19:49 estel23 Цитата(Golikov A. @ Sep 24 2015, 23:49) е... Sep 25 2015, 06:30 Golikov A. Ох....
Ну если вы схемотехник то вам должно быть з... Sep 25 2015, 07:03 estel23 Цитата(Golikov A. @ Sep 25 2015, 11:03) к... Sep 25 2015, 07:43 Golikov A. ЦитатаЯ согласен что мой код кривоват, но он по кр... Sep 25 2015, 09:00 estel23 Цитата(Golikov A. @ Sep 25 2015, 13:00) т... Sep 25 2015, 09:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|