roboforum.ru

Технический форум по робототехнике.

Parallax Propeller

Re: Parallax Propeller

Master » 27 сен 2009, 22:39

blindman я думаю EdGull ведет к тому что лучше изучить этот чип или вплотную заняться изучением арма.

Re: Parallax Propeller

=DeaD= » 27 сен 2009, 23:06

Angel71 писал(а):blindman, а в сторону SEAforth 40C18 не посматривал?

40 евро, 40 ядер, которые всей толпой могут выдать до 25 000 MIPS...
Жуть!

Re: Parallax Propeller

Сергей » 27 сен 2009, 23:07

Только вот толку что "заниматься плотным изучением" камня? Если есть задача - нужно подбирать под эту задачу схемотехническое решение, а если нет задачи? Создается впечатление, что народ идет "от противного", выбирая камень и впихивая в него задачу.

Re: Parallax Propeller

Angel71 » 27 сен 2009, 23:13

let me google that for you: =DeaD=, яж предупреждал, что это спецфический камушек. кстати на энергопотребление обрати внимание

Re: Parallax Propeller

blindman » 28 сен 2009, 05:25

Angel71 писал(а):blindman, а в сторону SEAforth 40C18 не посматривал? :oops: немного дороже и менее достовабельный, но тоже очень неплохой спецфический камушек

Да много чего интересного. У Silicon Labs 51-я серия очень интересная. Но пока интересует Propeller.

Добавлено спустя 8 минут 31 секунду:
Сергей писал(а):Только вот толку что "заниматься плотным изучением" камня? Если есть задача - нужно подбирать под эту задачу схемотехническое решение, а если нет задачи? Создается впечатление, что народ идет "от противного", выбирая камень и впихивая в него задачу.

Чтобы выбрать, надо иметь представление о том, из чего выбираешь. Порой весьма детальное представление.

Модератор "blibdman":Попрошу в этом топике больше вопросы типа "круче", "лучше", "зачем" и т.п. не поднимать. И наооборот, приветствуются вопросы "а можно ли на пропеллере сделать вот такое?" "а как на пропеллере сделать вот это?"

Re: Parallax Propeller

uz6 » 09 окт 2009, 20:37

А пропеллер потянет с камеры распознавание точки от л.указки? :)

наверно можно былобы создать неплохой конвейер ?!

Re: Parallax Propeller

blindman » 10 окт 2009, 06:37

Думаю, вопрос можно разделить на 2 части:
1. Сможет ли он достаточно быстро читать данные с камеры?
2. Сможет ли он достаточно быстро проанализировать изображение?

1. Да. С той же TCM8240 при тактовой 6 МГц и разрешении 320*240 2 процессора в лёгкую справятся.
2. Думаю, что да. AVRCam вполне управляется со слежением за цветными объектами - а у пропеллера всё же мощи чуть поболее будет

Re: Parallax Propeller

blindman » 10 окт 2009, 15:59

Ещё идея по применению - осциллограф. С 8-битным разрешением, можно сделать частоту выборок 20 МГц по 2 каналам (пропеллер к тому же нормально разгоняется до 100 МГц - тогда частота выборок будет 25 МГц). 4 процессора будут читать сэмплы с АЦП, 1 - ловить синхронизацию, 1 - рисовать, 1 - интерфейс с ПК, 1 - читать органы управления.

Добавлено спустя 2 минуты 46 секунд:
Разрешение может быть и больше, главное чтоб все выходы АЦП можно было завести на ноги пропеллера, и осталось достаточно свободных ног для органов управления. У пропеллера 32 вывода, 4 из которых заняты под загрузчик.

Добавлено спустя 7 минут 36 секунд:
Отсчётов правда будет всего 1024 - из-за ограничений объёма памяти.

Re: Parallax Propeller

blindman » 12 окт 2009, 08:49

Пока чипы едут, начал ковырять ассемблер. Смотрю, как можно организовать цикл записи с АЦП в память. Вот как это выглядит:
Код: Выделить всёРазвернуть
{{
    Цикл записи сэмплов с АЦП в основную память.
    Сигналом остановки служит изменение состояния
    одного из выводов чипа. Это удобно тем, что
    линии ввода/вывода доступны всем процессорам
    без доступа к концентратору
}}

            ORG 0
            {
             WRORD пишет в основную память, а значит
             требует синхронизации с концентратором -
             отсюда переменное число тактов.
            }
loop        wrword INA, addr        '7..22
            add addr, #1            '4
            and addr, addr_mask     '4

            wrword INA, addr        '7..22
            add addr, #1            '4
            test INA, stop_mask wz  '4 Сказано остановиться?

            wrword INA, addr        '7..22
            nop                     '4
            add addr, #1            '4

            wrword INA, addr        '7..22
            add addr, #1            '4
    IF_NZ   jmp #loop               '4/8

' Запись остановлена, ждём команды на продолжение

{  ..............   }

addr       long 0
stop_mask   long $0800_0000
addr_mask   long $1FFF ' 8 КиБ под буфер сэмплов


Ну да, ничего особенного, ассемблер как ассемблер :) Но пара интересных особенностей всё же есть. В большинстве процессоров, выполнение арифметических и логических операций безусловно влияет на флаги. Здесь же нужно явно указывать модификаторы WZ, WC - что и используется в моём коде. После тестирования бита остановки цикла, времени на условный переход не остаётся, иначе пропустим окно доступа к концентратору. Но так как модификатор WZ больше не используется, можно спокойно проверить условие в конце цикла. Ещё интересная возможность - условное выполнение любой операции. Существует 16 модификаторов IF_*, проверяющая различные комбинации флагов. Наличие условия не влияет на время исполнения операции - очень удобно, когда важно точно задать время выполнения участка кода. Есть также модификатор NR, который отменяет запись результат операции. Например, если надо проверить, возникнет ли переполнение при сложении двух чисел, не изменяя операнды, пишем
Код: Выделить всёРазвернуть
add A, B wc nr


Продожение следует ;)

Re: Parallax Propeller

=DeaD= » 12 окт 2009, 08:51

Такое ощущение, что под такой МК только на асме писать :) очень плохо представляю как эти фишки можно на си использовать, или я ошибаюсь?

Re: Parallax Propeller

blindman » 12 окт 2009, 09:02

С Си на нём не очень хорошо дела обстоят, из-за ограниченного объёма памяти непосредственно доступного процессору. Есть компилятор от Imagecraft, который эти ограничения пытается обходить, но по сравнению с ассемблером значительные тормоза. Есть ещё SPIN - "родной" язык, компилируемый в байт-код. Типичная схема - 1-2 процессора выполняют SPIN, остальные - на ассемблере, для задач, требующих скорости

Re: Parallax Propeller

blindman » 24 окт 2009, 10:55

Сделал по-быстрому платку, запустил тестовую программу с графикой - работает :Yahoo!:
1.jpg

Видео снято с экрана телевизора

Re: Parallax Propeller

avr123.nm.ru » 24 окт 2009, 14:41

Красиво !

И как раз показано как монтировать электронику без сверления плат, я тоже так делаю.

Re: Parallax Propeller

Michael_K » 24 окт 2009, 14:46

blindman писал(а):Видео снято с экрана телевизора

Неплохо...
Оно поднесущую цвета что-ли программно генерит?

Re: Parallax Propeller

blindman » 24 окт 2009, 15:16

Поднесущая цвета генерируется таймером с PLL. Можно также генерировать сигнал высокой частоты (до 128 МГц), модулированный видеосигналом + звук, и подавать на антенный вход ТВ. Качество картинки слабовато - мерцает заметно. Возможно, надо подстраивать точнее PLL на использованный кварц.


Rambler\'s Top100 Mail.ru counter