jcxz 172 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 3 часа назад, Allregia сказал: Для остального хватит и втрое меньшего количества ног, чем остается в 144-ногом корпусе. Если поставите 6 отдельных МК, то их суммарное количество ног будет ещё больше. А занимаемое на плате место - ещё больше. Странная экономия... Цитата Но я пока не отбрасываю совсем и этот вариант. Правда, там одного канала ПДП не хватает. Там каналов ПДП хватит на всё. Так как у Вас один источник тактирования на все битовые потоки, то можно одним каналом ПДП обслуживать несколько потоков. Да к тому же - есть второе вычислительное ядро, которым так же можно обслуживать SGPIO. Даже так пожалуй будет проще и лучше - вообще без ПДП, программное обслуживание всех каналов одним ядром. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 2 часа назад, _pv сказал: Для задания пары байт в одну сторону хватит и уарта на всех распараллеленного. А ещё - обновление прошивки каждого МК - это ещё на каждый МК нужно пробросить SWD или UART. Плюс - синхронизация, чтобы не каждый сам по себе а синхронно один с другими работали. Это как сделать? Да + как минимум два SWD на 2 разных МК (раз нужно два разных ПО отлаживать). Тот ещё комбайн получается... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 4 hours ago, Allregia said: 11 hours ago, x893 said: Минимальная задержка в 8 тактов устроит (байт) ? Устроит и 4 байта. Тогда можно SPI на 16 бит включить и совсем много времени свободного будет у процессора (через ДМА пусть пуляет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 49 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 27 minutes ago, jcxz said: А ещё - обновление прошивки каждого МК - это ещё на каждый МК нужно пробросить SWD или UART. Плюс - синхронизация, чтобы не каждый сам по себе а синхронно один с другими работали. Это как сделать? Да + как минимум два SWD на 2 разных МК (раз нужно два разных ПО отлаживать). Тот ещё комбайн получается... У каких-нибудь мелких lpc8x уарт можно на той же ноге заюзать что и у родного бутлодыря через него же всех и прошивать, да и если прибор с тупо ручным управлением, возможно удалённое обновление и не подразумевается. Синхронизация сама по себе получается от заданных клоков spi. Всё слэйвы и так работают по нему. Ну да, немного костылей, но при упихивании всего-всего в один МК тоже грабли могут быть. Ну и наращивание каналов при необходимости тут не ограничено, а если аппаратные spi у жирного контроллера закончились, то всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 2 hours ago, jcxz said: Там каналов ПДП хватит на всё. Я про STM, там на 6 SPI можно только 11 потоков задействовать. Но есть некоторое послабление в ТЗ - как выяснилось, один из 6 потоков задерживать не надо, т.е. надо остальные 5 по отношению к нему. Значит его можно вообще не заводить в проц, и тогда нужно 5 SPI и 10 DMA, а это уже влезит в 64-х ногий F411. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 2 минуты назад, Allregia сказал: Я про STM, там на 6 SPI ... Так, на всякий случай. Есть топология "звезда", когда надо много интерфейсов, а есть - "кольцо" и двойное "кольцо", когда интерфейсов надо мало, но в кольце приходится данные гонять быстрее, чтобы всем хватило... Ну так тут же есть резерв... И можно сделать компромисс - допустим 2 кольца... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 50 минут назад, _pv сказал: У каких-нибудь мелких lpc8x уарт можно на той же ноге заюзать что и у родного бутлодыря через него же всех и прошивать, да и если прибор с тупо ручным управлением, возможно удалённое обновление и не подразумевается. Я не про удалённое, а вообще просто все МК ведь прошить нужно. И наверное - не раз. Цитата Ну да, немного костылей, но при упихивании всего-всего в один МК тоже грабли могут быть. Там (на SGPIO) всё просто: 1. Храним в регистрах R0-R5 значения для вывода на сериализаторы. 2. Ждём заполнения приёмных сериализаторов, опрашивая в цикле статусный бит. 3. По получении статуса "заполнено", записываем выходные значения из регистров R0-R5 одной командой STMIA R6!, {R0-R5} в последовательные регистры данных сериализаторов SGPIO. 4. Читаем регистры данных входных сериализаторов одной командой LDMIA R6!, {R0-R5} (сериализаторы идут подряд, сразу после передающих). 5. Записываем полученные данные в кольцевые буфера в ОЗУ 6-ю последовательными командами: STR R0, [Rx], #размер_кольц.буфера; STR R1, [Rx], #размер_кольц.буфера; ... 6. Читаем из кольцевых буферов данные для следующего цикла передачи. Сдвигаем их на нужно число бит - подготавливаем к следующему циклу передачи. 7. Переходим к п.1. DMA тут не нужно. Одно ядро отдать полностью под этот цикл, второе - под прикладную задачу. Правда если работать с 32-битными данными, то минимальная задержка будет ==64 такта. Но думаю - можно работать и с 16 битными данными - должно хватить скорости ядра. Цитата Ну и наращивание каналов при необходимости тут не ограничено, а если аппаратные spi у жирного контроллера закончились, то всё. Я не про SPI, а про SGPIO. Их всего 16 штук. Можно до 8-ми на ввод и до 8-ми - на вывод. Если они закончатся - поставить рядом ещё один такой-же жирный. Но ТСу вроде как только 5 надо. 29 минут назад, Allregia сказал: Значит его можно вообще не заводить в проц, и тогда нужно 5 SPI и 10 DMA, а это уже влезит в 64-х ногий F411. Думаете у него силёнок хватит хватит 12мбит * 10 обрабатывать? И памяти? Да ещё прикладную задачу успевать обслуживать? ПДП, не ПДП, но шину это тоже займёт неплохо. Да ещё SPI - все одновременно да без FIFO.... Я что-то сомневаюсь что хватит силёнок.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 29 декабря, 2019 Опубликовано 29 декабря, 2019 · Жалоба 26 minutes ago, jcxz said: Думаете у него силёнок хватит хватит 12мбит * 10 обрабатывать? И памяти? Памяти точно хватит, ее там 128кбайт (можно 412-й с 256 взять), а вот скорость ПДП надо проверить. По 16 бит это 0.75мгц пересылок *10 = 7.5мгц в общем, от 100мгц шины. 26 minutes ago, jcxz said: Да ещё прикладную задачу успевать обслуживать? Сейчас там прикладную задачу обеспечивает PIC16F819, 4Мгц :) Причем 99.9% времени он в слипе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться