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

 
 
> Скорость работы PIO - почему такая маленькая?, на AT91SAM7S
Pasha 111
сообщение May 21 2006, 13:27
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Сделал такую вот программу:

void main()
{
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);
AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, 1 << 17);

while(1)
{
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, 1 << 17);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, 1 << 17);
}
}

Почему скорость переключения такая маленькая (~730 Гц)?? Прога в целом работает быстро, а вот PIO почему-то тормозит. Можно как-то выставить частоту для PIO?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение May 21 2006, 16:23
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Вы ещё подеритесь, господа, из-за чужой глупости. Ну даже если обкекаться то АРМ не может выдавать такое медленное переключение в при компиляции такого простого кода - 730 Гц !!! Это просто немыслимо! Я бы ещё чуть-чуть поверил если 730 КГц. Но и это для САМа маловероятно. Что-то здесь в другом дело.

Хозяин, листинг покажи. Ну и кварц какой?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
sff
сообщение May 21 2006, 17:05
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(GetSmart @ May 21 2006, 20:23) *
Вы ещё подеритесь, господа, из-за чужой глупости. Ну даже если обкекаться то АРМ не может выдавать такое медленное переключение в при компиляции такого простого кода - 730 Гц !!! Это просто немыслимо! Я бы ещё чуть-чуть поверил если 730 КГц. Но и это для САМа маловероятно.


Испытал я данную констукцию у себя для интереса, компилятор WinARM, на кварце 18.432 (MSK 73.9232)
при компиляции без оптимизации (-O0) даёт приетно 0.5 Мгц
при компиляции с оптимизацией (-O2) скважность сигнала уже не 0.5 да и форма на моем домашнем осцилографе сильно непрямоугольная F > 2-4 mhz (больше он у меня не берёт)
Go to the top of the page
 
+Quote Post
ANT
сообщение May 21 2006, 20:23
Сообщение #4


Частый гость
**

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



Цитата(sff @ May 21 2006, 21:05) *
Цитата(GetSmart @ May 21 2006, 20:23) *

Вы ещё подеритесь, господа, из-за чужой глупости. Ну даже если обкекаться то АРМ не может выдавать такое медленное переключение в при компиляции такого простого кода - 730 Гц !!! Это просто немыслимо! Я бы ещё чуть-чуть поверил если 730 КГц. Но и это для САМа маловероятно.


Испытал я данную констукцию у себя для интереса, компилятор WinARM, на кварце 18.432 (MSK 73.9232)
при компиляции без оптимизации (-O0) даёт приетно 0.5 Мгц
при компиляции с оптимизацией (-O2) скважность сигнала уже не 0.5 да и форма на моем домашнем осцилографе сильно непрямоугольная F > 2-4 mhz (больше он у меня не берёт)

Померил на своей плате с таким же кварцем и MCK 48 Мгц (IAR EWAVR 4.30A).
................................................................................
...........
#define EXT_OC 18432000 // Exetrnal ocilator MAINCK
#define MCK 48054857 // MCK (PLLRC div by 2)
................................................................................
...........
while(1) {
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED0 ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED0 ) ;
}
Получилось:
при исполнении из RAM:
частота 5,34 Мгц и скважность 67%, джиттер не заметен.
Т.е. 3 такта MCK - низкий уровень, 6 тактов - высокий.
при исполнении из FLASH:
частота 4,00 Мгц и скважность 67%, джиттер не заметен.
Т.е. 4 такта MCK - низкий уровень, 8 тактов - высокий.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
sff
сообщение May 22 2006, 06:06
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(ANT @ May 22 2006, 00:23) *
while(1) {
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED0 ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED0 ) ;
}
Получилось:
при исполнении из RAM:
частота 5,34 Мгц и скважность 67%, джиттер не заметен.
Т.е. 3 такта MCK - низкий уровень, 6 тактов - высокий.
при исполнении из FLASH:
частота 4,00 Мгц и скважность 67%, джиттер не заметен.
Т.е. 4 такта MCK - низкий уровень, 8 тактов - высокий.


Есть подозрение что простой джам искажает сигнал так как его тоже надо учитывать =)

лучше мерить что-то типа

while(1) {
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED0 ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED0 ) ;

AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED0 ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED0 ) ;

AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED0 ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED0 ) ;

AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED0 ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED0 ) ;

}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pasha 111   Скорость работы PIO - почему такая маленькая?   May 21 2006, 13:27
- - aaarrr   А как ему не тормозить в таких условиях? 1. Регист...   May 21 2006, 13:47
- - beer_warrior   Цитата1. Регистры PIO стоит писать напрямую, без и...   May 21 2006, 15:34
- - aaarrr   ИМХО, библиотечными функциями можно пользоваться т...   May 21 2006, 15:44
|- - zltigo   Цитата(aaarrr @ May 21 2006, 18:44) Цитат...   May 21 2006, 17:24
- - beer_warrior   ЦитатаИМХО, библиотечными функциями можно пользова...   May 21 2006, 16:06
- - aaarrr   Цитата(beer_warrior @ May 21 2006, 20:06)...   May 21 2006, 16:21
|- - ANT   Цитата(sff @ May 22 2006, 10:06) лучше ме...   May 22 2006, 12:53
- - vet   действительно, надо бы в генерируемый ассемблерный...   May 21 2006, 17:40
- - aaarrr   По поводу do..while. Хочу тоько заметить, что: Код...   May 21 2006, 18:05
- - vet   Напротив, для себя пришёл к выводу, что самым грам...   May 21 2006, 18:24
|- - zltigo   Цитата(vet @ May 21 2006, 21:24) Напротив...   May 21 2006, 19:05
- - beer_warrior   ЦитатаМожете обы не волноваться :-) оба приведенны...   May 21 2006, 19:20
- - aaarrr   Цитата(zltigo @ May 21 2006, 23:05) Для б...   May 21 2006, 20:36
|- - zltigo   Цитата(aaarrr @ May 21 2006, 23:36) Ну по...   May 21 2006, 21:14
- - GetSmart   Вот в это я верю. 5 МГц лучше 730 герц! Хотя и...   May 21 2006, 20:42
- - beer_warrior   2 aaarrr Скоро модераторы надают нам по ушам.... и...   May 21 2006, 21:13
- - ivstech   Цитата(Pasha 111 @ May 21 2006, 20:27) Сд...   May 22 2006, 02:08
- - aaarrr   Цитата(zltigo @ May 22 2006, 01:14) И чем...   May 22 2006, 05:15
|- - zltigo   Цитата(aaarrr @ May 22 2006, 08:15) Хотя ...   May 22 2006, 06:16
- - Pasha 111   Здравствуйте, уважаемые коллеги По поводу таймер...   May 22 2006, 19:24
- - GetSmart   ЦитатаПо поводу PIO. Выполнение происходило в инте...   May 22 2006, 19:32
- - Pasha 111   На самом деле код в проге совсем другой, а тот, чт...   May 22 2006, 19:44
- - aaarrr   Цитата(Pasha 111 @ May 22 2006, 23:24) P....   May 22 2006, 19:54


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 00:50
Рейтинг@Mail.ru


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