Перейти к содержанию
    

3 часа назад, Allregia сказал:

Для остального хватит и втрое меньшего количества ног, чем остается в 144-ногом корпусе.

Если поставите 6 отдельных МК, то их суммарное количество ног будет ещё больше. А занимаемое на плате место - ещё больше. Странная экономия... :wacko2:

Цитата

Но я пока не отбрасываю совсем и этот вариант. Правда, там одного канала ПДП не хватает.

Там каналов ПДП хватит на всё. Так как у Вас один источник тактирования на все битовые потоки, то можно одним каналом ПДП обслуживать несколько потоков. Да к тому же - есть второе вычислительное ядро, которым так же можно обслуживать SGPIO. Даже так пожалуй будет проще и лучше - вообще без ПДП, программное обслуживание всех каналов одним ядром.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, _pv сказал:

Для задания пары байт в одну сторону хватит и уарта на всех распараллеленного.

А ещё - обновление прошивки каждого МК - это ещё на каждый МК нужно пробросить SWD или UART.

Плюс - синхронизация, чтобы не каждый сам по себе а синхронно один с другими работали. Это как сделать?

Да + как минимум два SWD на 2 разных МК (раз нужно два разных ПО отлаживать).

Тот ещё комбайн получается...  :shok:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Allregia said:
11 hours ago, x893 said:

Минимальная задержка в 8 тактов устроит (байт) ?

Устроит и  4 байта.

Тогда можно SPI на 16 бит включить и совсем много времени свободного будет у процессора (через ДМА пусть пуляет).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, jcxz said:

А ещё - обновление прошивки каждого МК - это ещё на каждый МК нужно пробросить SWD или UART.

Плюс - синхронизация, чтобы не каждый сам по себе а синхронно один с другими работали. Это как сделать?

Да + как минимум два SWD на 2 разных МК (раз нужно два разных ПО отлаживать).

Тот ещё комбайн получается...  :shok:

У каких-нибудь мелких lpc8x уарт можно на той же ноге заюзать что и у родного бутлодыря через него же всех и прошивать, да и если прибор с тупо ручным управлением, возможно удалённое обновление и не подразумевается.

Синхронизация сама по себе получается от заданных клоков spi. Всё слэйвы и так работают по нему.

Ну да, немного костылей, но при упихивании всего-всего в один МК тоже  грабли могут быть. Ну и наращивание каналов при необходимости тут не ограничено, а если аппаратные spi у жирного контроллера закончились, то всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, jcxz said:

Там каналов ПДП хватит на всё.

Я про STM, там на 6 SPI можно только 11 потоков задействовать.

Но есть некоторое послабление в ТЗ - как выяснилось, один из 6 потоков задерживать не надо, т.е. надо остальные 5 по отношению к нему. Значит его можно вообще не заводить в проц, и тогда нужно 5 SPI и 10 DMA, а это уже влезит в 64-х ногий F411.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Allregia сказал:

Я про STM, там на 6 SPI ...

Так, на всякий случай. Есть топология "звезда", когда надо много интерфейсов, а есть - "кольцо" и двойное "кольцо", когда интерфейсов надо мало, но в кольце приходится данные гонять быстрее, чтобы всем хватило... Ну так тут же есть резерв... И можно сделать компромисс - допустим 2 кольца...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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....

Я что-то сомневаюсь что хватит силёнок....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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% времени он в слипе.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...