evgen2 0 4 сентября, 2009 Опубликовано 4 сентября, 2009 · Жалоба Посланный фрейм (байт) уходит сразу. В режиме мастера сразу же устанавливается SSPхSR_bit.BSY до конца передачи байта (опустошения всего FIFO). Если посланный фрейм уходит сразу, то почему он приходит обратно через 17 фреймов ? (если слейв тупо копирует вход на выход) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 4 сентября, 2009 Опубликовано 4 сентября, 2009 · Жалоба хз. Возможно это клинический случай Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 4 сентября, 2009 Опубликовано 4 сентября, 2009 · Жалоба хз. Возможно это клинический случай Если это клинический случай, то почему он повторяется ? Может я таки чего не понимаю и у читателей форума есть простой пример для измерения задержек при общении двух армов по SSP ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 4 сентября, 2009 Опубликовано 4 сентября, 2009 (изменено) · Жалоба Вообще, должен через 2 посылки. Если мастер будет передавать неспеша (делая паузы между посылками). Слэйв должен успевать "подкладывать" данные, а если мастер гонит непрерывный поток, то слэйв может не успеть отработать прерывание, в котором он прочитает данные и закинет их обратно в SSPхDR. Вот тогда по нормальной логике слэйв должен начать передавать пустой фрейм (но скорее всего старый SSPхDR), но вряд ли в SSP собьётся счётчик FIFO и слэйв будет передавать вместо одного пустого фрэйма весь FIFO буфер. Но опять же FIFO состоит из 8 фреймов. Откуда может быть 17 - ума не приложу. Может я таки чего не понимаю и у читателей форума есть простой пример для измерения задержек при общении двух армов по SSP ? Задержки можно вычислить "на пальцах". Fpclk/SSPnCPSR/bits ==> где bits это 2 фрейма по-минимуму (16 бит для байтового SPI) для алгоритма копирования в слэйве принятого фрейма обратно мастеру. Изменено 5 сентября, 2009 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 5 сентября, 2009 Опубликовано 5 сентября, 2009 · Жалоба Вообще, должен через 2 посылки. Если мастер будет передавать неспеша (делая паузы между посылками). Слэйв должен успевать "подкладывать" данные, а если мастер гонит непрерывный поток, то слэйв может не успеть отработать прерывание, в котором он прочитает данные и закинет их обратно в SSPхDR. Вот тогда по нормальной логике слэйв должен начать передавать пустой фрейм (но скорее всего старый SSPхDR), но вряд ли в SSP собьётся счётчик FIFO и слэйв будет передавать вместо одного пустого фрэйма весь FIFO буфер. Но опять же FIFO состоит из 8 фреймов. Откуда может быть 17 - ума не приложу. Задержки можно вычислить "на пальцах". Fpclk/SSPnCPSR/bits ==> где bits это 2 фрейма по-минимуму (16 бит для байтового SPI) для алгоритма копирования в слэйве принятого фрейма обратно мастеру. прерываний нет, там и там - тупой поллинг в цикле, 17 может быть 8+8 + 1 - ? Причем это для 2 байтного фрейма и на максимальной скорости . для 8-битного получается немного меньше :-/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 9 сентября, 2009 Опубликовано 9 сентября, 2009 · Жалоба Кстати о птичках. В несколько другом проекте с использованием LPC2148 c выставленной частотой 60МГц, обнаружили, с осциилографом, засаду с частотой у SSP (LPC - мастер): если делитель частоты равен 4 или больше - частота клоков ведет себя как и положено, т.е. для 4 - 15МГц. Если ставить 3 или 2, то частота не меняется и равна 38 с чем-то МГц! Самое интересное, что на этой частоте используемый DAС от TI "почти всегда" работал, хотя у него в даташите ограничение в 30МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 9 сентября, 2009 Опубликовано 9 сентября, 2009 · Жалоба Кстати о птичках. Птички какие-то .... не вызывающие доверия :(. Для начала SSP тактируется через совершенно независимый прескалер, который делит на 2, минимум. Посему получить 15 MHz должно получить при 2, а отнюдь не 4... А больше 30MHz вообще не получить. Другое дело, что на 30 MHz уже становятся жутко заметными (В errata документировано) укорочениея первого ( и по нисходящих последующих) импульсов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 9 сентября, 2009 Опубликовано 9 сентября, 2009 · Жалоба Птички какие-то .... не вызывающие доверия :(. Для начала 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 вообще не получить. Я тоже знаю, что получаться не должно, но тектроникс показывал таки больше. Если б не показывал - я б сюда не писал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 10 сентября, 2009 Опубликовано 10 сентября, 2009 · Жалоба на 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 единица. Я тоже знаю, что получаться не должно, но тектроникс показывал таки больше. Если б не показывал - я б сюда не писал. :) Вы даже не представляете, сколько "лабораторных" работ по исследованию SPI я провел для выжимания всего и вся из SSP LPC21xx То, что Вы действительно могли видеть, это, уже писал, укорочение первых импульсов, что действительно могло создать некую иллюзию, что частота более высокая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 10 сентября, 2009 Опубликовано 10 сентября, 2009 · Жалоба Однако, речь велась о SSP Clock Prescale Register а не о тактовой частоте перефиирии. Таким образом тактовая частота SSP не более 1/2 PCLK, и даже если собственный делитель в SSPCR единица. Ну так PCLK - 60МГц, При установке SSP Clock Prescale Register в 2 получаем 30 МГц, при 3 - 20 Мгц. :) Вы даже не представляете, сколько "лабораторных" работ по исследованию SPI я провел для выжимания всего и вся из SSP LPC21xx А вы случаем не два LPC между собой связывали ? То, что Вы действительно могли видеть, это, уже писал, укорочение первых импульсов, что действительно могло создать некую иллюзию, что частота более высокая. Я конечно бестолковый, "человек без паяльника" и даже без осциллографа, но есть коллега с паяльником и осциллографом, который меня ткнул носом в экран осциилографа, на котором было четко видно в случае делителя 2 и 3: (далее следует описание словами, поскольку не догадался зафиксировать на цифровик) клоки в виде, похожем на синусоиду с фиксированным периодом амплитуда первой после паузы синусоиды раза в два меньше последующих. Частота, которую "тектроникс" показывал - 38МГц - примерно соотетствовала ручному подсчету по шкале Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 10 сентября, 2009 Опубликовано 10 сентября, 2009 · Жалоба Ну так PCLK - 60МГц, При установке SSP Clock Prescale Register в 2 получаем 30 МГц, при 3 - 20 Мгц. Да, а как на счет того, что только четные :) 2-4-6....? Кроме того, сколько нужно поставить, что бы 38 получить :) А вы случаем не два LPC между собой связывали ? В основном FPGA, но и 4 штуки LPC на субмодулях с центральным тоже. Естественно, при LPC-LPC работа идет не 30 MHz, и не на 15. Ибо есть докуменированные ограничения на частоту клоков для slave mode LPC. [*]клоки в виде, похожем на синусоиду с фиксированным периодом Дальше можете не продолжать - там нет "синусоиды" - четкие, как и документировано, 10ns фронты. На 30MHz первый импульс и-за укорочения практически треугольник, остальные обычные трапеции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 11 сентября, 2009 Опубликовано 11 сентября, 2009 · Жалоба Да, а как на счет того, что только четные :) 2-4-6....? :smile3046: ааааааа.... ну 3 я ставил уже в качестве попытки понять, что за фигня Кроме того, сколько нужно поставить, что бы 38 получить :) так сказал же, 2 и 3. В основном FPGA, но и 4 штуки LPC на субмодулях с центральным тоже. О, вот как раз такой случай мне и интересен. Не могли бы вы рассказать, хотя бы на пальцах - что делать с FIFO мастеру при переключении слейвов ? И что делать слейву, когда он отключен от SSP ? Естественно, при LPC-LPC работа идет не 30 MHz, и не на 15..... Ну так ясен пень, что для слейва делитель 12. Дальше можете не продолжать - там нет "синусоиды" - четкие, как и документировано, 10ns фронты. На 30MHz первый импульс и-за укорочения практически треугольник, остальные обычные трапеции. Таки попробую это дело заснять и предъявить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 11 сентября, 2009 Опубликовано 11 сентября, 2009 · Жалоба О, вот как раз такой случай мне и интересен. Не могли бы вы рассказать, хотя бы на пальцах - что делать с FIFO мастеру при переключении слейвов ? ??? А что делать? Мастер он на то и мастер, дабы командовать и переключать слейвы после того, как задул им все что надо из FIFO И что делать слейву, когда он отключен от SSP ? А что ему делать? Бить баклуши. Если нужно передать, то либо ждать, либо просить обслужить генеря прерывание мастеру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgen2 0 11 сентября, 2009 Опубликовано 11 сентября, 2009 · Жалоба Дальше можете не продолжать - там нет "синусоиды" - четкие, как и документировано, 10ns фронты. На 30MHz первый импульс и-за укорочения практически треугольник, остальные обычные трапеции. Коллега пообсуждал с другим коллегой и таки пришли к выводу что тектроникс таки наврал с частотой и что там таки было 30 МГц. (Ибо для первого коллеги этот дивайс еще в новинку и не вполне к нему привык. Ну а "синусомда" - это мое личное впечатление, потому как если уж строго математические подходить - и трапеции там никакой нет ;-) ??? А что делать? Мастер он на то и мастер, дабы командовать и переключать слейвы после того, как задул им все что надо из FIFO Так если мастер смотрит на ответ, то что он должен делать ? Задуть все в fifo и ждать когда прийдет последний ответ И только после этого слейвы переключать ? А если я на лету переключу слейв - что будет ? Плюнул фрейм в фифо, переключил слейв на следующий - мне в ответ пойдет ответ из фифо нового слейва ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 11 сентября, 2009 Опубликовано 11 сентября, 2009 · Жалоба Ну а "синусомда" - это мое личное впечатление, потому как если уж строго математические подходить - и трапеции там никакой нет ;-) Это уже опять "Тектронис" просто показать чего-либо с наносекундным, хотя-бы разрешением просто не смог - не обязан, если у него на морде под гигагерц полоса написана. Так если мастер смотрит на ответ, то что он должен делать ? Задуть все в fifo и ждать когда прийдет последний ответ И только после этого слейвы переключать ? Дождаться опустошения FIFO, что является завершения обмена, и переключать. .... что будет ? Кусок дерьма. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться