_pv 61 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба 1 hour ago, jcxz said: a) Объясните как SPI подключить к ПК? b) Я выше писал - почти все пины заняты, а SPI-ные - так точно все. a) Сделать XOR клоков с данными (можно программно проксорить, но на удвоенной частоте, и вывести только данные, без клоков, на одну ногу) и в ethernet разъём, у 10BASE-T нет многоуровневой кодировки на физическом уровне, как у 100/1000, можно сказать "TTL", хоть и немного дифференциальный, второй провод пожалуй можно приподнять на полловину напряжения резисторами, с другой стороны провода в сетевой карте всё равно трансформатор есть. Ну или часть оставшихся XORов от "энкодера" манчестера на 74HC86 использовать как инвертор. б) Их же там 6 штук SPI, да ещё и вроде каждый на больше чем на один пин умеет мапиться. Но если прям все заняты тогда конечно ничего не поделать. 45 minutes ago, Rst7 said: Не хватит двух D-триггеров для декодирования манчестера. Да еще и не в каждом камне SPI умеет в слейв на 10М. Хватит, с детектором фронтов на XOR, и с задержкой на 1.5 такта на RC цепочке. Подключал так к msp430g2553+74HC74+74HC86 к езернету в обе стороны, хоть и half duplex, у него клоки spi слэйва к процессору вообще никак не привязаны. приходилось правда таймером измерять частоту ethernet и программно подкручивать частоту DCO процессора, чтобы за время приёма пакета (~200-300 байт максимум, там памяти всего 512байт :)) разница частот больше чем на один байт не разбежалась, иначе процессор либо терял байт, либо читал дважды, так как он на приёме ничего кроме while(1) *data++=SPIRXBUFF; делать не успевал и даже из этого цикла приходилось выходить подменяя адрес возврата на стэке в прерывании от таймера. Очень всё криво конечно, но ведь just for fun, а не для нормального использования, и как-то работало даже. Ну и ТСу возможно только на выход хватит, если для отладки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба Just now, _pv said: Хватит, с детектором фронтов на XOR, и с задержкой на 1.5 такта на RC цепочке. Ну так уже не 2 D-триггера ;) Повторюсь, основная проблема заключается в том, что большинство камней сильно ограничены по максимальной частоте SCK в режиме Slave. 5 minutes ago, _pv said: так как он на приёме ничего кроме while(1) *data++=SPIRXBUFF; делать не успевал Там же вроде 16МГц, что, все так печально? Вроде ж 6 тактов надо на саму пересылку, ну плюс еще тест и цикл. А всего есть 12.8 такта, вроде должно хватить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 217 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба 26 минут назад, _pv сказал: a) Сделать XOR клоков с данными (можно программно проксорить, но на удвоенной частоте, и вывести только данные, без клоков, на одну ногу) А какой смысл? Какой смысл надевать трусы через голову, если можно надеть нормально потратить на порядок больше усилий и получить на порядок хуже результат, если можно сделать проще и быстрее??? Я не понимаю - за что вы агитируете? в чём смысл ваших предложений??? 26 минут назад, _pv сказал: б) Их же там 6 штук SPI, да ещё и вроде каждый на больше чем на один пин умеет мапиться. Там не 6 SPI, а 6 USIC-ов. Разница большая. Кроме того в устройстве есть куча других функций, занимающих ноги. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 61 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба 2 minutes ago, jcxz said: Я не понимаю - за что вы агитируете? в чём смысл ваших предложений??? я ни за что не агитирую, просто предложил ещё одну возможность вытащить 10Мбит в ПК не через УСБ. да, получается немного через жопу, но зато без граблей с драйверами USB со стороны ПК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 61 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба 1 hour ago, Rst7 said: Там же вроде 16МГц, что, все так печально? Вроде ж 6 тактов надо на саму пересылку, ну плюс еще тест и цикл. А всего есть 12.8 такта, вроде должно хватить. На передачу do SPITXBUFF=*data++; while(--num); укладывался в 8 тактов, если не ошибаюсь, а на приём в обратную сторону там были какие-то особенности косвенной адресации у MSP430, и этот бесконечный цикл даже без счётчика получался уже 10 тактов и соответственно частота 12.5МГц, за два дополнительных такта которые можно было бы впихнуть, всё равно ничего не успеть проверить, а на таймер в режиме захвата была подана линия данных через диод и RC цепочку, так что он сразу и частоту передатчика с другой стороны измерял (через длительность пакета) для подстройки своей и заодно сообщал что пакет закончился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться