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

 
 
> SSEL1 в SSP в LPC21x всё-таки машет аппаратно!
InsolentS
сообщение Aug 29 2009, 07:30
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Не знаю, сделал ли я большое открытие, но SSP всё-таки дёргает аппаратно SSEL !! Надо просто вешать на этот вывод подтяжку, т.к. в данном случае тип выхода меняется на открытый коллектор. Лично я долго парился по этому вопросу, в интернете ничего нет на эту тему, в даташите тоже не ясно. Видел многих кто плюнул и работал с SSEL через GPIO.


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 31)
zltigo
сообщение Aug 29 2009, 09:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(InsolentS @ Aug 29 2009, 10:30) *
Не знаю, сделал ли я большое открытие, но SSP всё-таки дёргает аппаратно SSEL
...
в даташите тоже не ясно.

Полагаю, что после таких заявлений подпись про "курильщика даташитов..." придется убрать sad.gif"
Цитата
Slave Select/Frame Sync/Chip Select. When the SSP is a
bus master, it drives this signal from shortly before the start
of serial data, to shortly after the end of serial data, to signify
a data transfer as appropriate for the selected bus and
mode. When the SSP is a bus slave, this signal qualifies the
presence of data from the Master, according to the protocol
in use. When there is just one bus master and one bus
slave, the Frame Sync or Slave Select signal from the
Master can be connected directly to the slave’s
corresponding input. When there is more than one slave on
the bus, further qualification of their Frame Select/Slave
Select inputs will typically be necessary to prevent more
than one slave from responding to a transfer.

Какие именно моменты из отцитированного выше не ясны?
Цитата
Надо просто вешать на этот вывод подтяжку, т.к. в данном случае тип выхода меняется на открытый коллектор.

Тоже нет.
Цитата
Видел многих кто плюнул и работал с SSEL через GPIO.

Я и не такое видел, ну и что? И сам работаю через GPIO, если нужно обеспечить постоянное наличие SSEL при передаче потока байтов вне зависимотси от темпа их запихивания в FIFO.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Aug 29 2009, 15:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(zltigo @ Aug 29 2009, 13:58) *
Тоже нет.

Проверьте у себя, без подтяжки SSP машет чип-селектом только в режиме microwire или SSI, но не SPI.
И в даташите на этот счёт ничего нет, тот кусок что Вы привели, я выучил наизусть уже smile.gif


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2009, 15:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(InsolentS @ Aug 29 2009, 18:04) *
..

Не морочте людям голову. В документации ясно описано и поведение SSEL0, SSEL1 и различие в их поведении, и НЕ описан ни один из SSEL как OD. LPC213x/LPC214x оба SPI документации соответствуют.
И
Цитата
SSEL1 в SSP в LPC21x всё-таки машет аппаратно!

Машет не "все-таки" а в полном соответствии с документацией, чем и пользуюсь с момента появления SSP у первых LPC213x.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 2 2009, 14:50
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Aug 29 2009, 18:24) *
чем и пользуюсь с момента появления SSP у первых LPC213x.

а не покажете бестолковому, как использовать SSP для связи двух LPC213x ? Вроде бы все делаю как надо, а куда-то не туда все уходит :-/.

Сообщение отредактировал evgen2 - Sep 2 2009, 14:51
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 2 2009, 15:37
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 2 2009, 17:50) *
а не покажете бестолковому, как использовать SSP для связи двух LPC213x ? Вроде бы все делаю как надо, а куда-то не туда все уходит :-/.

Вам ответить в стиле Вашего вопроса, или попрбуете нормально рассказать что не получается?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 2 2009, 15:55
Сообщение #7


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(evgen2 @ Sep 2 2009, 20:50) *
а не покажете бестолковому, как использовать SSP для связи двух LPC213x ? Вроде бы все делаю как надо, а куда-то не туда все уходит :-/.

Сложно?
Цепляете SCK,MISO,MOSI одного проца к тем же линиям другого проца. SSEL можно не использовать. Остальное дело программы. В настройках SSP один ессно должен быть мастером, другой слэйвом, а в остальном одинаковые настройки. Режим работы SPI.

Земля у процов дожна быть тоже общей.

Сообщение отредактировал GetSmart - Sep 2 2009, 16:01


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 2 2009, 20:37
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 2 2009, 18:37) *
Вам ответить в стиле Вашего вопроса, или попрбуете нормально рассказать что не получается?

Вот это и не получается. В слейве выдает 8 фреймов и все, в мастере и передает, и принимает, даже если кабель на друго проц выдернуть. Принимает исключительно 0xffff, причем только если в jtag-отладчике нажимать F5, если ходить пошагово - приема нет.
/* master.c */

#include "LPC230x.h" // Keil: Register definition file for LPC2378
#define MASTER 1

void LPCInit(void);
void SSP_Init(int master);
static int razs=0;
static int razr=0;
int mas[256];

int main()
{ int cmd=0, rcmd=0, par;
LPCInit();
#if MASTER
SSP_Init(1);
#else
SSP_Init(0);
#endif
while(1)
{
#if MASTER
if(SSP0SR & 0x02) //1= TNF Transmit FIFO Not Full.
{ SSP0DR = cmd;
cmd++;
razs ++;
}
if(SSP0SR & 0x04) //1= RNE Receive FIFO Not Empty
{ rcmd = SSP0DR;
mas[razr&0xff] = rcmd;
razr++;
}
#else
if(SSP0SR & 0x04) //1= RNE Receive FIFO Not Empty
{ rcmd = SSP0DR;
mas[razr&0xff] = rcmd;
razr++;
}
// if(rcmd != 0)
{
if(SSP0SR & 0x02) //1= TNF Transmit FIFO Not Full.
{ cmd = razr; //(rcmd&0xff) | ((razr<<8)& 0xff00);
SSP0DR = cmd;
razs++;
}
}

#endif
}
}

void SSP_Init(int master)
{
PCONP |= (1<<21); // power on SSP0 module (default = ON)
/* Вариант 0 /
PINSEL0 = 0x80000000; // configure P0.15 as SCK0
PINSEL1 = 0x0000002a; // configure P0.16 as SSEL0, 0.17 as MISO0, 0.18 as MOSI0
*/
/* Вариант 1 */

PINSEL2 = 0;
PINSEL3 = 0x3cf00; //11 1100 1111 0000 0000
/* */
//P1.20 SCK0, P1.21 - SSEL0, P1.23 - MISO0, P1.24 - MOSI0

SSP0CR0 = 0xf; // 16 бит
/*
SSP0CR0
15:8 SCR Serial Clock Rate. The number of prescaler-output clocks per bit on the bus, minus one. Given that CPSDVR is the prescale
divider, and the APB clock PCLK clocks the prescaler, the bit frequency is PCLK / (CPSDVSR x [SCR+1]).
*/
if(master)
{
SSP0CPSR = 2; // CPSDVSR Master
SSP0CR1 = 0x2; // Enabled, Master mode
} else {
SSP0CPSR = 12; // CPSDVSR Slave
SSP0CR1 = 0x6; // Enabled, Slave mode
}
}


void LPCInit(void)
{
T1TCR=1;
return;
}
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 2 2009, 20:54
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 2 2009, 23:37) *
В слейве выдает 8 фреймов....

Ну, для начала, slave сам никогда ничего сам не выдает. Начинаем с простого - slave передачу master видит?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 2 2009, 21:05
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(evgen2 @ Sep 3 2009, 02:37) *
Вот это и не получается. В слейве выдает 8 фреймов и все, в мастере и передает, и принимает, даже если кабель на друго проц выдернуть.
В SPI нет приема или передачи по-отдельности, а только обмен данными. Чтобы что-то принять нужно что-то передать. SPI-слейв не генерит сам тактовый сигнал. Поэтому чтобы мастер принял данные от слейва он должен что-то передавать. Причем передавать данные в таком же количестве в каком он желает принять от слейва.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 2 2009, 21:20
Сообщение #11


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Код
In Slave mode, the SSP clock rate provided by the master must not exceed 1/12 of the
SSP peripheral clock selected in Section 4–7.4. The content of the SSPnCPSR register is
not relevant.

Вроде это в переводе значит, что SSPnCPSR у слэйва не используется, а у мастера должно быть не ниже 12 (и чётное) в пересчёте на peripheral clock слэйва.

Сообщение отредактировал GetSmart - Sep 2 2009, 21:27


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 2 2009, 21:24
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 2 2009, 23:54) *
Ну, для начала, slave сам никогда ничего сам не выдает. Начинаем с простого - slave передачу master видит?

Поставил и там, и там SSP0CPSR = 12; после чего вроде заработало.
Люди с паяльниками утверждали, что должно и так работать. Правда они же и MISO c MOSI перевернули, как в компорте

Цитата(rezident @ Sep 3 2009, 00:05) *
В SPI нет приема или передачи по-отдельности, а только обмен данными. Чтобы что-то принять нужно что-то передать. SPI-слейв не генерит сам тактовый сигнал. Поэтому чтобы мастер принял данные от слейва он должен что-то передавать. Причем передавать данные в таком же количестве в каком он желает принять от слейва.

Так на готовности aka RNE и TNF слейв должен смотреть ?
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 3 2009, 22:55
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



процессор LPC2378, в паре планируется LPC214.

Обнаружил что FIFO не вполне FIFO. Т.е. посланный фрейм похоже что не уходит сразу, даже если в FIFO ничего не было ( в SSP0SR сидит TFE), а 8 раз прыгает по ступенькам туда и 8 раз обратно... Вот нельзя ли как-нибудь обрезать или укоротить FIFO ?


#if MASTER
if(SSP0SR & 0x02) //TNF Transmit FIFO Not Full.
{ SSP0DR = cmd;
}
if(SSP0SR & 0x04) // RNE Receive FIFO Not Empty
{ rcmd = SSP0DR;
}

#else
if(SSP0SR & 0x04) //RNE Receive FIFO Not Empty
{ rcmd = SSP0DR;
}
if(SSP0SR & 0x02) //TNF Transmit FIFO Not Full.
{ cmd = rcmd;
SSP0DR = cmd;
}
#endif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 3 2009, 23:39
Сообщение #14


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(evgen2 @ Sep 4 2009, 04:55) *
Т.е. посланный фрейм похоже что не уходит сразу, даже если в FIFO ничего не было ( в SSP0SR сидит TFE), а 8 раз прыгает по ступенькам туда и 8 раз обратно...

Посланный фрейм (байт) уходит сразу. В режиме мастера сразу же устанавливается SSPхSR_bit.BSY до конца передачи байта (опустошения всего FIFO).


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 4 2009, 07:11
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 4 2009, 01:55) *
а 8 раз прыгает по ступенькам туда и 8 раз обратно...

О чем все это???


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 4 2009, 22:57
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(GetSmart @ Sep 4 2009, 02:39) *
Посланный фрейм (байт) уходит сразу. В режиме мастера сразу же устанавливается SSPхSR_bit.BSY до конца передачи байта (опустошения всего FIFO).

Если посланный фрейм уходит сразу, то почему он приходит обратно через 17 фреймов ? (если слейв тупо копирует вход на выход)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 4 2009, 23:18
Сообщение #17


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



хз. Возможно это клинический случай biggrin.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 4 2009, 23:34
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(GetSmart @ Sep 5 2009, 02:18) *
хз. Возможно это клинический случай biggrin.gif

Если это клинический случай, то почему он повторяется ? Может я таки чего не понимаю и у читателей форума есть простой пример для измерения задержек при общении двух армов по SSP ?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 4 2009, 23:43
Сообщение #19


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Вообще, должен через 2 посылки. Если мастер будет передавать неспеша (делая паузы между посылками). Слэйв должен успевать "подкладывать" данные, а если мастер гонит непрерывный поток, то слэйв может не успеть отработать прерывание, в котором он прочитает данные и закинет их обратно в SSPхDR. Вот тогда по нормальной логике слэйв должен начать передавать пустой фрейм (но скорее всего старый SSPхDR), но вряд ли в SSP собьётся счётчик FIFO и слэйв будет передавать вместо одного пустого фрэйма весь FIFO буфер. Но опять же FIFO состоит из 8 фреймов. Откуда может быть 17 - ума не приложу.

Цитата(evgen2 @ Sep 5 2009, 05:34) *
Может я таки чего не понимаю и у читателей форума есть простой пример для измерения задержек при общении двух армов по SSP ?

Задержки можно вычислить "на пальцах". Fpclk/SSPnCPSR/bits ==> где bits это 2 фрейма по-минимуму (16 бит для байтового SPI) для алгоритма копирования в слэйве принятого фрейма обратно мастеру.

Сообщение отредактировал GetSmart - Sep 5 2009, 00:10


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 5 2009, 05:12
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(GetSmart @ Sep 5 2009, 03:43) *
Вообще, должен через 2 посылки. Если мастер будет передавать неспеша (делая паузы между посылками). Слэйв должен успевать "подкладывать" данные, а если мастер гонит непрерывный поток, то слэйв может не успеть отработать прерывание, в котором он прочитает данные и закинет их обратно в SSPхDR. Вот тогда по нормальной логике слэйв должен начать передавать пустой фрейм (но скорее всего старый SSPхDR), но вряд ли в SSP собьётся счётчик FIFO и слэйв будет передавать вместо одного пустого фрэйма весь FIFO буфер. Но опять же FIFO состоит из 8 фреймов. Откуда может быть 17 - ума не приложу.


Задержки можно вычислить "на пальцах". Fpclk/SSPnCPSR/bits ==> где bits это 2 фрейма по-минимуму (16 бит для байтового SPI) для алгоритма копирования в слэйве принятого фрейма обратно мастеру.

прерываний нет, там и там - тупой поллинг в цикле, 17 может быть 8+8 + 1 - ? Причем это для 2 байтного фрейма и на максимальной скорости . для 8-битного получается немного меньше :-/
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 9 2009, 19:56
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Кстати о птичках.

В несколько другом проекте с использованием LPC2148 c выставленной частотой 60МГц, обнаружили, с осциилографом, засаду с частотой у SSP (LPC - мастер): если делитель частоты равен 4 или больше - частота клоков ведет себя как и положено, т.е. для 4 - 15МГц. Если ставить 3 или 2, то частота не меняется и равна 38 с чем-то МГц! Самое интересное, что на этой частоте используемый DAС от TI "почти всегда" работал, хотя у него в даташите ограничение в 30МГц.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 9 2009, 20:43
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 9 2009, 21:56) *
Кстати о птичках.

Птички какие-то .... не вызывающие доверия sad.gif. Для начала SSP тактируется через совершенно независимый прескалер, который делит на 2, минимум. Посему получить 15 MHz должно получить при 2, а отнюдь не 4... А больше 30MHz вообще не получить.
Другое дело, что на 30 MHz уже становятся жутко заметными (В errata документировано) укорочениея первого ( и по нисходящих последующих) импульсов.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 9 2009, 23:32
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 10 2009, 00:43) *
Птички какие-то .... не вызывающие доверия sad.gif. Для начала SSP тактируется через совершенно независимый прескалер, который делит на 2, минимум. Посему получить 15 MHz должно получить при 2, а отнюдь не 4...

на 2148 PCLK можно сделать равным тактовой частоте.

VPBDIV
00 VPB bus clock is one fourth of the processor clock.
01 VPB bus clock is the same as the processor clock.

Цитата
А больше 30MHz вообще не получить.


Я тоже знаю, что получаться не должно, но тектроникс показывал таки больше. Если б не показывал - я б сюда не писал.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 10 2009, 06:07
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 10 2009, 01:32) *
на 2148 PCLK можно сделать равным тактовой частоте.

Однако, речь велась о SSP Clock Prescale Register а не о тактовой частоте перефиирии.
Цитата
CPSDVSR This even value between 2 and 254, by which PCLK is divided
to yield the prescaler output clock..

Таким образом тактовая частота SSP не более 1/2 PCLK, и даже если собственный делитель в SSPCR единица.
Цитата
Я тоже знаю, что получаться не должно, но тектроникс показывал таки больше. Если б не показывал - я б сюда не писал.

smile.gif Вы даже не представляете, сколько "лабораторных" работ по исследованию SPI я провел для выжимания всего и вся из SSP LPC21xx
То, что Вы действительно могли видеть, это, уже писал, укорочение первых импульсов, что действительно могло создать некую иллюзию, что частота более высокая.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 10 2009, 21:37
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 10 2009, 10:07) *
Однако, речь велась о SSP Clock Prescale Register а не о тактовой частоте перефиирии.

Таким образом тактовая частота SSP не более 1/2 PCLK, и даже если собственный делитель в SSPCR единица.

Ну так PCLK - 60МГц,
При установке SSP Clock Prescale Register в 2 получаем 30 МГц, при 3 - 20 Мгц.

Цитата
smile.gif Вы даже не представляете, сколько "лабораторных" работ по исследованию SPI я провел для выжимания всего и вся из SSP LPC21xx

А вы случаем не два LPC между собой связывали ?

Цитата
То, что Вы действительно могли видеть, это, уже писал, укорочение первых импульсов, что действительно могло создать некую иллюзию, что частота более высокая.


Я конечно бестолковый, "человек без паяльника" и даже без осциллографа, но есть коллега с паяльником и осциллографом, который меня ткнул носом в экран осциилографа, на котором было четко видно в случае делителя 2 и 3: (далее следует описание словами, поскольку не догадался зафиксировать на цифровик)
  • клоки в виде, похожем на синусоиду с фиксированным периодом
  • амплитуда первой после паузы синусоиды раза в два меньше последующих.
  • Частота, которую "тектроникс" показывал - 38МГц - примерно соотетствовала ручному подсчету по шкале
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 10 2009, 23:10
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 10 2009, 23:37) *
Ну так PCLK - 60МГц,
При установке SSP Clock Prescale Register в 2 получаем 30 МГц, при 3 - 20 Мгц.

Да, а как на счет того, что только четные smile.gif 2-4-6....? Кроме того, сколько нужно поставить, что бы 38 получить smile.gif
Цитата
А вы случаем не два LPC между собой связывали ?

В основном FPGA, но и 4 штуки LPC на субмодулях с центральным тоже. Естественно, при LPC-LPC работа идет не 30 MHz, и не на 15. Ибо есть докуменированные ограничения на частоту клоков для slave mode LPC.
Цитата
[*]клоки в виде, похожем на синусоиду с фиксированным периодом

Дальше можете не продолжать - там нет "синусоиды" - четкие, как и документировано, 10ns фронты. На 30MHz первый импульс и-за укорочения практически треугольник, остальные обычные трапеции.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 11 2009, 07:50
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 11 2009, 03:10) *
Да, а как на счет того, что только четные smile.gif 2-4-6....?

smile3046.gif
ааааааа.... ну 3 я ставил уже в качестве попытки понять, что за фигня
Цитата
Кроме того, сколько нужно поставить, что бы 38 получить smile.gif

так сказал же, 2 и 3.
Цитата
В основном FPGA, но и 4 штуки LPC на субмодулях с центральным тоже.

О, вот как раз такой случай мне и интересен. Не могли бы вы рассказать, хотя бы на пальцах - что делать с FIFO мастеру при переключении слейвов ? И что делать слейву, когда он отключен от SSP ?
Цитата
Естественно, при LPC-LPC работа идет не 30 MHz, и не на 15.....

Ну так ясен пень, что для слейва делитель 12.

Цитата
Дальше можете не продолжать - там нет "синусоиды" - четкие, как и документировано, 10ns фронты. На 30MHz первый импульс и-за укорочения практически треугольник, остальные обычные трапеции.

Таки попробую это дело заснять и предъявить
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 11 2009, 08:11
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 11 2009, 09:50) *
О, вот как раз такой случай мне и интересен. Не могли бы вы рассказать, хотя бы на пальцах - что делать с FIFO мастеру при переключении слейвов ?

??? А что делать? Мастер он на то и мастер, дабы командовать и переключать слейвы после того, как задул им все что надо из FIFO
Цитата
И что делать слейву, когда он отключен от SSP ?

А что ему делать? Бить баклуши. Если нужно передать, то либо ждать, либо просить обслужить генеря прерывание мастеру.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 11 2009, 12:20
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 11 2009, 03:10) *
Дальше можете не продолжать - там нет "синусоиды" - четкие, как и документировано, 10ns фронты. На 30MHz первый импульс и-за укорочения практически треугольник, остальные обычные трапеции.

Коллега пообсуждал с другим коллегой и таки пришли к выводу что тектроникс таки наврал с частотой и что там таки было 30 МГц. (Ибо для первого коллеги этот дивайс еще в новинку и не вполне к нему привык.
Ну а "синусомда" - это мое личное впечатление, потому как если уж строго математические подходить - и трапеции там никакой нет ;-)


Цитата(zltigo @ Sep 11 2009, 12:11) *
??? А что делать? Мастер он на то и мастер, дабы командовать и переключать слейвы после того, как задул им все что надо из FIFO


Так если мастер смотрит на ответ, то что он должен делать ? Задуть все в fifo и ждать когда прийдет последний ответ И только после этого слейвы переключать ?

А если я на лету переключу слейв - что будет ? Плюнул фрейм в фифо, переключил слейв на следующий - мне в ответ пойдет ответ из фифо нового слейва ?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 11 2009, 12:41
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Sep 11 2009, 14:20) *
Ну а "синусомда" - это мое личное впечатление, потому как если уж строго математические подходить - и трапеции там никакой нет ;-)

Это уже опять "Тектронис" просто показать чего-либо с наносекундным, хотя-бы разрешением просто не смог - не обязан, если у него на морде под гигагерц полоса написана.
Цитата
Так если мастер смотрит на ответ, то что он должен делать ? Задуть все в fifo и ждать когда прийдет последний ответ И только после этого слейвы переключать ?

Дождаться опустошения FIFO, что является завершения обмена, и переключать.
Цитата
.... что будет ?

Кусок дерьма.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 11 2009, 12:56
Сообщение #31


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Sep 11 2009, 18:41) *
Кусок дерьма.

:-))))
Как верно smile.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
evgen2
сообщение Sep 11 2009, 15:23
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Sep 11 2009, 16:41) *
Дождаться опустошения FIFO, что является завершения обмена, и переключать.

так хочется как-то извратится, чтоб поднять производительность
Цитата
Кусок дерьма.

уже почуял :-/
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:03
Рейтинг@Mail.ru


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