Сообщение от 3d cube
|
Software SPI Library
Library configuration:
SPI to Master mode
Clock value = 20 kHz.
Data sampled at the middle of interval.
Clock idle state low.
Data sampled at the middle of interval.
Data transmitted at low to high edge.
Много факторов. Афтар че то не учел.
|
Согласен, где-то не учел.
Тестированиями нашел интересный момент, если в плис я отправляю константу - она всегда доходит и на ТТЛ ее видно и в массив она заносится верно. В плис пишу на верилоге. механизм отправки не трогаю, просто содержимое регистра на отправку задаю так:
Код:
|
HYM2‹=40'b1111010101010101010101010101010101010101; |
Если же я этот регист набираю побитно (биты - есть данные с датчика):
Код:
|
else if (FSDR_fallingedge==1 & id_gorb!=1 & shet›30 & shet‹75)
begin
HYM ‹= {HYM[38:0], 1'b1}; //заносим 1
shet‹=0;
end else if (FSDR_fallingedge==1 & id_gorb!=1 & shet›10 & shet‹35)
begin
HYM ‹= {HYM[38:0], 1'b0}; //заносим 0
shet‹=0;
end else if (shet›100) begin
shet‹=0;
mstate‹=3; //стейт в ожидание новой передачи
HYM2‹=HYM;//40'b1111010101010101010101010101010101010101;
end |
То всегда видим первые 2 байта, остальные нулями. При том что ТТЛ-анализатор видит и правильно понимает все байты в обоих случаях.
Сигналы по ТТЛ карте одинаковые, длительность 1 и 0 одинакова.
Происходит спад на клоке, через 62нсек данные меняются, чтобы защелкнуться на подъеме клока.