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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Быстрый доступ в срам avr, Осц.пробник
yarunt
сообщение Mar 15 2007, 11:07
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Подключая АД9280 , быстрый ацп , столкнулся с ситуацией быстрой записи из порта в срам авра.
Частота процессора 16 мег и адс. Все условия типа if,else не использую так-как занимают от 5 до 8 циклов, 67(количество колонок в дисплее) раз делаю запись из порта подключеного адс в срам ,с инкрементом.Такой доступ должен мне должен какбы обеспечить доступ в срам за 2 цикла. Тоесть полезный каждый 2-й цикл,значит 8 мгц выборки.Чтоб увидеть синусоиду на дисплее мне нужно как минимум 5 выборок , делю 8мгц на 5 выборок получаю полезных 1.6 мгц.

Но нетут-то было получается 300кгц с натягом ,подскажите может где-то я в расчетах ошибся?


Проэкт не могу показать так-как в алгоритм билдере. Приму любую критику на свой счет.


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 15 2007, 11:56
Сообщение #2


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



А что за мега, то? может ацп на шину внешней памяти повесить? и работать с ней как с памятью.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
yarunt
сообщение Mar 15 2007, 12:32
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(GDI @ Mar 15 2007, 12:56) *
А что за мега, то? может ацп на шину внешней памяти повесить? и работать с ней как с памятью.

Атмега128 . Я уже думал над внешней памятью,но опять же загвоздка в циклах ,доступ к внешней памяти 3 цикла, а не 2-а значит минус 100кг из 300кгц.


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Mar 15 2007, 12:40
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 yarunt -
в принципе есть идея , только не знаю поможет она вам или нет - я гляжу вы запихиваете в срам 67 записей(не сильно много но и не сильно мало..), а почему бы не взять фифо буфер - его цена конечно до 50 грн(за 256 или 512 байт - не вспомню счас), но зато можно запихивать данные с большей скоростью (я работал на 10 мгц - влёт записывал 512 байт после сигнала с дну, потом анализ, вроде можно и более скоростную найти...)
Go to the top of the page
 
+Quote Post
yarunt
сообщение Mar 15 2007, 12:57
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(Kuzmi4 @ Mar 15 2007, 13:40) *
2 yarunt -
в принципе есть идея , только не знаю поможет она вам или нет - я гляжу вы запихиваете в срам 67 записей(не сильно много но и не сильно мало..), а почему бы не взять фифо буфер - его цена конечно до 50 грн(за 256 или 512 байт - не вспомню счас), но зато можно запихивать данные с большей скоростью (я работал на 10 мгц - влёт записывал 512 байт после сигнала с дну, потом анализ, вроде можно и более скоростную найти...)

А есть даташит на фифо буфер интересно посмотреть?Но особо нехочеться навесов делать ,все-же пробник.


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Mar 15 2007, 13:49
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Сча собой нету(диплом у меня такой был), как доберусь домой , могу скинуть даж схемку подключения, если надо - да и там не сильные навороты ....
+ если не сильно быстро буш цифровать - у тя ещё реалтайм может даже получится( в смысле 2 фифо,попеременно юзаеш то 1 то 2, заливка в накопительную вн память нужное кол-во, а потом передача в комп для анализа..)

Сообщение отредактировал Kuzmi4 - Mar 15 2007, 14:03
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 15 2007, 13:49
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(yarunt @ Mar 15 2007, 11:07) *
Проэкт не могу показать так-как в алгоритм билдере. Приму любую критику на свой счет.

Посмотрите это http://electronix.ru/forum/index.php?showt...26877&st=45
Go to the top of the page
 
+Quote Post
yarunt
сообщение Mar 15 2007, 14:16
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(muravei @ Mar 15 2007, 14:49) *

Да...тема уже поднималась . Заметил еще факт на АД9280 семплирование прои сходит по переднему фронту а это значит 16мгц делим на 2?


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
mse
сообщение Mar 15 2007, 14:19
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(yarunt @ Mar 15 2007, 11:07) *
Подключая АД9280 , быстрый ацп , столкнулся с ситуацией быстрой записи из порта в срам авра.
Частота процессора 16 мег и адс. Все условия типа if,else не использую так-как занимают от 5 до 8 циклов, 67(количество колонок в дисплее) раз делаю запись из порта подключеного адс в срам ,с инкрементом.Такой доступ должен мне должен какбы обеспечить доступ в срам за 2 цикла. Тоесть полезный каждый 2-й цикл,значит 8 мгц выборки.Чтоб увидеть синусоиду на дисплее мне нужно как минимум 5 выборок , делю 8мгц на 5 выборок получаю полезных 1.6 мгц.

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

Ха...А из порта читаешь? Из одного? А запуск АЦП делаешь?.. А счоччик какой есть с переходом по условию? Посмотри листинг, чего там твой билдер наворотил.
Go to the top of the page
 
+Quote Post
yarunt
сообщение Mar 15 2007, 14:21
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(Kuzmi4 @ Mar 15 2007, 14:49) *
Сча собой нету(диплом у меня такой был), как доберусь домой , могу скинуть даж схемку подключения, если надо - да и там не сильные навороты ....
+ если не сильно быстро буш цифровать - у тя ещё реалтайм может даже получится( в смысле 2 фифо,попеременно юзаеш то 1 то 2, заливка в накопительную вн память нужное кол-во, а потом передача в комп для анализа..)

Схемку интересно посмотреть, буду признателен. На yarunt@mail.ru


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 15 2007, 14:28
Сообщение #11


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(yarunt @ Mar 15 2007, 08:07) *
Подключая АД9280 , быстрый ацп , столкнулся с ситуацией быстрой записи из порта в срам авра.
Частота процессора 16 мег и адс. Все условия типа if,else не использую так-как занимают от 5 до 8 циклов, 67(количество колонок в дисплее) раз делаю запись из порта подключеного адс в срам ,с инкрементом.Такой доступ должен мне должен какбы обеспечить доступ в срам за 2 цикла. Тоесть полезный каждый 2-й цикл,значит 8 мгц выборки.Чтоб увидеть синусоиду на дисплее мне нужно как минимум 5 выборок , делю 8мгц на 5 выборок получаю полезных 1.6 мгц.

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

Максимально возможной быстроты записи данных из АЦП во внутреннюю память можно достичь двумя командами, повторенными в вашем случае 67 раз.
Код
     in    r16,pinе
     st    x+,r16

Занимает 3 такта на выборку. При 16 МГц это даст 5.3 Мвыборок/с. Для пробника неплохо. Быстрее нельзя, нет никакой возможности. Для синхронизации выборок подайте клоки на АЦП, тогда без труда (в смысле без затрат на синхронизацию) будете читать каждую третью выборку.

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

Кстати, идея не моя, она уже реализована, к сожалению, не могу найти ссылку, на компе порядка 300000 неразобранных файлов, уже трудно ориентироваться(:-(.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
yarunt
сообщение Mar 15 2007, 14:34
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(mse @ Mar 15 2007, 15:19) *
Ха...А из порта читаешь? Из одного? А запуск АЦП делаешь?.. А счоччик какой есть с переходом по условию? Посмотри листинг, чего там твой билдер наворотил.

Ну вот пример;
AD_TO PIN
|
$200->y
|
0-> threestate \\ включаем адс
pine->[y++] \\ записываем с порт е в срам с инкриментом
pine->[y++] \\ записываем с порт е в срам с инкриментом
pine->[y++] \\ записываем с порт е в срам с инкриментом
......
и так 67 раз
1-> threestate \\ выключаем адс
|
SR_TO LCD \\ выводим на дисплей
RET \\ назад


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 15 2007, 14:51
Сообщение #13


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Прикрепленный файл  colourStrips.bmp ( 23.24 килобайт ) Кол-во скачиваний: 73
Цитата(yarunt @ Mar 15 2007, 11:34) *
Ну вот пример;
AD_TO PIN
|
$200->y
|
0-> threestate \\ включаем адс
pine->[y++] \\ записываем с порт е в срам с инкриментом
pine->[y++] \\ записываем с порт е в срам с инкриментом
pine->[y++] \\ записываем с порт е в срам с инкриментом
......
и так 67 раз
1-> threestate \\ выключаем адс
|
SR_TO LCD \\ выводим на дисплей
RET \\ назад

Ну вот, я говорил, что си замедляет в 5-10 раз, а билдер, значит, ещё больше. Вы с трудом получаете 300 кГц, по сравнению с потенциально достижимым 5333 билдер проигрывает в 17 раз.

Вот, посмотрите, откопал один снапшот с тем пробником на 5333 кГц.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
yarunt
сообщение Mar 15 2007, 15:02
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Ну вот, я говорил, что си замедляет в 5-10 раз, а билдер, значит, ещё больше. Вы с трудом получаете 300 кГц, по сравнению с потенциально достижимым 5333 билдер проигрывает в 17 раз.

Вот, посмотрите, откопал один снапшот с тем пробником на 5333 кГц.
[/quote]
Вопрос а запись в стек быстрее ,ато мне кажется инкримент добавляет один цикл? Ну а по билдеру это тот-же ассемблер глюков своих в нем хватает.


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 15 2007, 16:28
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(=GM= @ Mar 15 2007, 14:51) *
Ну вот, я говорил, что си замедляет в 5-10 раз, а билдер, значит, ещё больше. Вы с трудом получаете 300 кГц, по сравнению с потенциально достижимым 5333 билдер проигрывает в 17 раз.

Да не замедляет Билдер, это руки кривые замедляют, на Билдере можно писать таже как и на Асм , команда в команду.
И зачем запуск АЦП делать ? Пусть себе молотит по клокам АВР.
Просто читаете порт и сохраняете с постинкрементом .
PINX->tmp
tmp->[Y++]
.
.
.


Надо было делать на Мегах 48-88 все быстрее -20 мГц.
А запись в стек теже 2 такта.
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 Текстовая версия Сейчас: 18th July 2025 - 15:29
Рейтинг@Mail.ru


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