реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> связь Mega128 <=>ARM7
IJAR
сообщение Jun 9 2009, 06:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Необходимо организовать обмен между 2-мя контроллерами.

Скорость порядка 1 Мбайта. Расстояние между конт-ми ~10 см на
плате.

Хотелось бы со стороны каждого контроллера иметь буфер организованный в виде стека на 256 - 1024 байт а уже между

буферами что то вроде параллельног канала. Т.е. минимальная

нагрузка на ПО контроллеров. Для работы с навеской есть по 11 ног

в каждом контроллере. Прямое соединение не катит из-за разности

в скоростях контроллеров.USB - не подходит по ряду причин.

Естественно эта навеска должна быть в чипе. Цена не особеноо лимитирует.

Может кто использовал такой девайс.

Заранее спасибо.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Jun 9 2009, 07:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(IJAR @ Jun 9 2009, 10:55) *
Необходимо организовать обмен между 2-мя контроллерами.

Скорость порядка 1 Мбайта. Расстояние между конт-ми ~10 см на
плате.

Хотелось бы со стороны каждого контроллера иметь буфер организованный в виде стека на 256 - 1024 байт а уже между

буферами что то вроде параллельног канала. Т.е. минимальная

нагрузка на ПО контроллеров. Для работы с навеской есть по 11 ног

в каждом контроллере. Прямое соединение не катит из-за разности

в скоростях контроллеров.USB - не подходит по ряду причин.

Естественно эта навеска должна быть в чипе. Цена не особеноо лимитирует.

Может кто использовал такой девайс.

Заранее спасибо.


Ну про USB для меги128 забудь сразу и навсегда. А вот где проблема порылась? Чем не устраивают стандартные SPI или TWI(I2C) или USART? А с размерами буферов сами разберетесь.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Jun 9 2009, 07:37
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата
Скорость порядка 1 Мбайта.


Большая скорость. А мега сможет обеспечить такой поток данных?
Можно попробовать завести SPI с удвоением скорости (на 16МГц вроде скорость должна быть F/2 = 8Мбит), но и времени на аппаратную обработку практически не остаётся. Если выводить через паралельный порт то врятли будет достигнута такая скорость (2 такта получить данные из памяти или порта, 2 такта положить их порт, 2 такта выставить готовность данных, есщё несколько тактов дождаться подтверждения, плюс время на обработку - при грубом подсчёте даже 1 мегабайта не получается)

А откуда собственно берётся такой поток данных? может быть там нужна ПЛИС или второй ARM7?
Go to the top of the page
 
+Quote Post
IJAR
сообщение Jun 9 2009, 07:41
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(VladimirYU @ Jun 9 2009, 11:19) *
Ну про USB для меги128 забудь сразу и навсегда. А вот где проблема порылась? Чем не устраивают стандартные SPI или TWI(I2C) или USART? А с размерами буферов сами разберетесь.

1. У меня сейчас в проекте Mega128 + FT245BM от FTDI и далее USB HOST в PC104 под Win5.0 CE и все работает
Но вот вместо PC104 есть желание поставить ARM7. Использование чипа VINCLUM со стороны ARM7 оказалось проблематично
из-за нестабильности времени обмена.
2. Скорость ~ 1Mбайта: UART, I2C, SPI этого не обеспечат+ большие нагрузки ра обслуживание.

Вот если бы можно было соединять 2 FT245 друг сдругом - все было бы O'K


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 9 2009, 07:53
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Я делал параллельный обмен м/у контроллерами. Принцип приблизительный как в CENTRONICS.

Код
data ----<=====>----
           ____
rdy  ____/     \____
            _____
ask ______/      \___


Здесь 10 ног, но чаще всего требуется типа команды передавать (1 нога) ну и направление (1 нога), либо синхронизацию начальную как-то обеспечивать. 11 ног принципиально достаточно. У меня было столько-же. Работало очень устойчиво.


Цитата(IJAR @ Jun 9 2009, 10:41) *
Вот если бы можно было соединять 2 FT245 друг сдругом - все было бы O'K

Их можно соединить даже без микроконтроллера. На примитивной логике. Только 1 Мбайт это скорее желаемое чем бействительное значение. Хотя заявлено 2. Надо будет программно обеспечивать чтобы переполнения буферов не происходило.
Go to the top of the page
 
+Quote Post
alvy
сообщение Jun 9 2009, 07:55
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809



Как вариант:

использовать чтото типа 74АС164, которую к SAM7 подцепить по SPI (1МГц без проблем прокачает), а к Меге подцепить многоразрядную шину с битами управления. Просто, имхо, меге будет намного проще и быстрее работать с параллельным интерфейсом, а САМ7 - с последовательным (в режиме DMA будет минимум ресурсов расходоваться).

Сообщение отредактировал alvy - Jun 9 2009, 07:56
Go to the top of the page
 
+Quote Post
IJAR
сообщение Jun 9 2009, 08:05
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(SasaVitebsk @ Jun 9 2009, 11:46) *
Я делал параллельный обмен м/у контроллерами. Принцип приблизительный как в CENTRONICS.

Код
data ----<=====>----
           ____
rdy  ____/     \____
            _____
ask ______/      \___


Здесь 10 ног, но чаще всего требуется типа команды передавать (1 нога) ну и направление (1 нога), либо синхронизацию начальную как-то обеспечивать. 11 ног принципиально достаточно. У меня было столько-же. Работало очень устойчиво.

Я такой вариат и рассматривал, НО!!!
Я не могу обеспечить на Mege непрерывное, из-за прерываний, обслуживание потока.
Стало быть ARM7 войдя в обмен бужет непредсказуемо подвисать, если же использовать на
нем прерывания, то это приплюсует еще большее время на обслуживание. У ARM7 своих задач выше крыши.
Замена Mega128(Fosc=7.372800 МГц) на что-либо невозможна из-за разработки большого объема ПО.

Цитата(alvy @ Jun 9 2009, 11:55) *
Как вариант:

использовать чтото типа 74АС164, которую к SAM7 подцепить по SPI (1МГц без проблем прокачает), а к Меге подцепить многоразрядную шину с битами управления. Просто, имхо, меге будет намного проще и быстрее работать с параллельным интерфейсом, а САМ7 - с последовательным (в режиме DMA будет минимум ресурсов расходоваться).

SPI на ARM7 занят под контроллер ETHERNET, кроме того заняты 2 UART-a.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 9 2009, 08:12
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(IJAR @ Jun 9 2009, 11:05) *
Замена Mega128(Fosc=7.372800 МГц) на что-либо невозможна из-за разработки большого объема ПО.

biggrin.gif

Всё смешалось, кони-люди. smile.gif

А как вы обеспечите "около 1 Мбайта" на микроконтроллере с пиковой производительностью 7Мипсов, если он ещё чем-то занят? Это и так 7 тактов на транзакцию. О каких прерываниях мы ведём речь? И куда этот поток складывать?

Да и ARM7 с потоком 1Мбайт тоже будет напряжённо громыхать костылями.
Go to the top of the page
 
+Quote Post
IJAR
сообщение Jun 9 2009, 08:29
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(SasaVitebsk @ Jun 9 2009, 12:12) *
biggrin.gif

Всё смешалось, кони-люди. smile.gif

А как вы обеспечите "около 1 Мбайта" на микроконтроллере с пиковой производительностью 7Мипсов, если он ещё чем-то занят? Это и так 7 тактов на транзакцию. О каких прерываниях мы ведём речь? И куда этот поток складывать?

Да и ARM7 с потоком 1Мбайт тоже будет напряжённо громыхать костылями.


В том то и суть, что порт обмена должен быть "всегда готов", ну кроме начала обмена (возможно)
А передача идет блоками по 0.5-1.5КБайт каждые 100 mS. Если кидать блоками не более 0.5 Кбайт,
то на это время прерывания, в моем случае, можно "придержать".

Собственно всего то и нужен чип "Параллельный порт CENTRONIX с буфером памяти"


Цитата(alvy @ Jun 9 2009, 11:55) *
Как вариант:

использовать чтото типа 74АС164, которую к SAM7 подцепить по SPI (1МГц без проблем прокачает), а к Меге подцепить многоразрядную шину с битами управления. Просто, имхо, меге будет намного проще и быстрее работать с параллельным интерфейсом, а САМ7 - с последовательным (в режиме DMA будет минимум ресурсов расходоваться).


А вообще то идея не плохая. У ETHERNET чипа можно вместо SPI || порт использовать
На "худой конец" можно и так попробовать.
Спасибо!


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 9 2009, 08:36
Сообщение #10


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(IJAR @ Jun 9 2009, 12:05) *
Я не могу обеспечить на Mege непрерывное, из-за прерываний, обслуживание потока.
Стало быть ARM7 войдя в обмен бужет непредсказуемо подвисать, если же использовать на
нем прерывания, то это приплюсует еще большее время на обслуживание. У ARM7 своих задач выше крыши.
Замена Mega128(Fosc=7.372800 МГц) на что-либо невозможна из-за разработки большого объема ПО.

1Мбайт/сек на Fosc=7.372800 МГц выглядит как-то малореалистично.
А вот если поднять до Fosc=14.7456 то примерно потянет, ну или урезать осетра(1Мбайт/сек)

Я бы соединял по SPI но не напрямую. В разрыв можно поставить SPI RAM(23K256 от микрочипа) или
SPI FRAM(FM25xx), ну и пару линий квитирования для разграничения доступа к ней,
тогда ARM7 по DMA сможет пару мбайт/сек прокачивать а Mega уже как будет успевать.

Цитата
SPI на ARM7 занят под контроллер ETHERNET, кроме того заняты 2 UART-a.
бывают ведь и с 2мя SPI на борту.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 9 2009, 08:38
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(IJAR @ Jun 9 2009, 11:05) *
Замена Mega128(Fosc=7.372800 МГц) на что-либо невозможна из-за разработки большого объема ПО.

Да, повеселили.

Перевод проекта среди MSP430 <> AVR <> STM32 <> LPC, если ресурсов хватает, требует неделю максимум. Чем больше ресурсов - тем быстрее.

Так что скажите лучше, что ПО на AVR написано бессистемно, а программист забил и уволился.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
xelax
сообщение Jun 9 2009, 08:55
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(Dog Pawlowa @ Jun 9 2009, 12:38) *
Перевод проекта среди MSP430 <> AVR <> STM32 <> LPC, если ресурсов хватает, требует неделю максимум.


Вот только ненадо шапкозакидательства.
Есть приличный опыт перевода систематизированного кода(в котором строго соблюдался стиль, кодестайлинг и который постоянно ревьюили) с AVR на ARM. Так вот исключения вроде data и perfetch абортов около полугода выскакивали и время и нервов на вычищения пришлось потратить прилично.
Так что не вводите в заблуждение.

А если написанно бессистемно и программист уволился, то точно такую авантюру затевать не стоит. Зашьёшься на 2-3 месяца. И ещё столько же свои баги ловить потом будешь.
Go to the top of the page
 
+Quote Post
IJAR
сообщение Jun 9 2009, 08:56
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(Dog Pawlowa @ Jun 9 2009, 12:38) *
Да, повеселили.

Перевод проекта среди MSP430 <> AVR <> STM32 <> LPC, если ресурсов хватает, требует неделю максимум. Чем больше ресурсов - тем быстрее.

Так что скажите лучше, что ПО на AVR написано бессистемно, а программист забил и уволился.

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


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 9 2009, 09:25
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(IJAR @ Jun 9 2009, 10:41) *
1. У меня сейчас в проекте Mega128 + FT245BM от FTDI и далее USB HOST в PC104 под Win5.0 CE и все работает
Но вот вместо PC104 есть желание поставить ARM7. Использование чипа VINCLUM со стороны ARM7 оказалось проблематично
из-за нестабильности времени обмена.

На том "ARM7", который Вы используете свет клином не сошелся (впочем, ка и вообще на ARM7). Возьмите, например, от NXP с вполне приличным USB Host и попробуйте оставить, как есть
Цитата
2. Скорость ~ 1Mбайта: UART, I2C, SPI этого не обеспечат+ большие нагрузки ра обслуживание.

Принципиально не больше, чем у нынешнего Вашего фаворита USB - байты по любому прилетают и принимать/складировать их надо. Вне зависимости от букв в названии интерфейса по любому FIFO да DMA в помощь...
Цитата
Вот если бы можно было соединять 2 FT245 друг сдругом - все было бы O'K

Что OK- то? Дрыгание ножками кажется панацеей?


Цитата(xelax @ Jun 9 2009, 11:55) *
Так вот исключения вроде data и perfetch абортов около полугода выскакивали и время и нервов на вычищения пришлось потратить прилично.

Значит действительно все было совершенно не так, как Вы оптимистично утверждали относительно качества исходного восьмибитового кода sad.gif


Цитата(SasaVitebsk @ Jun 9 2009, 11:12) *
Всё смешалось, кони-люди. smile.gif

Да sad.gif, хотя и Автор пытается строить хорошию "мину" sad.gif и слепить их того, "что было".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 9 2009, 09:32
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(IJAR @ Jun 9 2009, 11:56) *
мне как разработчику известны все нюансы

В такой обработке - нет вопросов smile.gif

А по теме, если рассуждать логически ...
Любой интерфейс на AVR отнимет практически все ресурсы производительности -> Значит, интерфейса не должно быть -> значит, данные должны оказаться в адресном пространстве AVR без передачи по интерфейсу -> значит, двупортовая память (или самопальное аппаратное решение, обеспечивающее доступ к одной и той же памяти, в данном случае достаточно разделенное во времени).


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 2nd July 2025 - 05:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.0151 секунд с 7
ELECTRONIX ©2004-2016