|
Скорость работы PIO - почему такая маленькая?, на AT91SAM7S |
|
|
|
 |
Ответов
|
May 21 2006, 17:05
|
Частый гость
 
Группа: Свой
Сообщений: 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 (больше он у меня не берёт)
|
|
|
|
|
May 21 2006, 20:23
|
Частый гость
 
Группа: Свой
Сообщений: 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 тактов - высокий.
Эскизы прикрепленных изображений
|
|
|
|
|
May 22 2006, 06:06
|
Частый гость
 
Группа: Свой
Сообщений: 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 ) ; }
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|