Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: External RAM в С8051F12x
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Moks
Добрый день!
У меня проблема. Я работаю с двумя каналами, что делается - для вас неважно. Флаги, переменные, сами понимаете, идентичные, только с разными индексами/постфиксами и т.д.
Буфер 0 канала занимает область 0x1000-0х1FFF
Буфер 1 канала занимает область 0x2000-0х2FFF
Так вот: при осуществлении БПФ в канале 0 всё проходит нормально и чётко. А вот при ос. БПФ в канале 1 происходит полная лажа. Там возникает фиг знает что. Хотя идентичность с каналом 0 уж упроверялся, с ней всё в порядке.
Осциллограммы приаттачивваю, надеюсь, в них всё понятно. Масштабность там более или менее соблюдена. В чём может заключаться проблема, а?
Огромное спасибо за возможную помощь. А может, у кого и были подобные проблемы.
Moks
Не знаю что произошло, но теперь прошу на левую часть картинки внимания не обращать! Пробленма так и не исчезла. Ну никто помочь не хочет?
Moks
Всё, пока что отбой. Причину глюков нашли. Догадаться действительно со стороны тяжело. Спасибо за внимание. a14.gif
Moks
И это снова я!
Опять проблема. Я вот пытаюсь записать и считать переменную
unsigned int xdata VAL _at_ 0x5000

Частота SYSCLK 22110000

EMI0CF = 0x17 (internal + external without bank select)

Так вот. Когда переменная char, то всё в порядке и супер.

Но вот с int ...

Сигналы /RD и /WR нормальные:
____ ___ ____
\___/ \___/

НО: если смотреть на пинах AD0...AD7, то
- при записи числа, например 0xAAAA, на этих портах я вижу 10101010 (0хАА),
а при чтении - 10101110 (0хАЕ) (использую двухлучевой осциллограф. Синхронизация по сигналу или RD, или WR) . Но в то же время программа, которая высылает двухбайтовое число и показывает его, демонстирирует мне число 0xFFFF.
Есть какие-нибудь мысли по этому поводу? Говорю, когда имею дело с char, то всё окей!
Хелп ми плиз!
Moks
Решили мы тут проверить память внешнюю всю (External XRAM) (от 0x2000 до 0x7FFF, точнее, ячейки с 8192 по 32768), записываем и через некоторое время считываем одно и то же значение во все ячейки... И только в порядка 50...70% случаев получаем истинные значения. Использую память Cypress CY7C199, она в отличие от контроллера 5В, а не 3,3В!!!
Вроде бы все рекомендации по подключению выполнили. И ещё: длительность строба чтения и записи очень сильно отличаются, 0,2 и 10 мкс соответственно, с микросхемой и без неё.
Есть какие-нибудь соображения по этому поводу, а?
help.gif
AndreyS
Добрый день.

Рекомендую вам включить режим Split Mode with Bank Select или External Only.

Иными словами вместо EMI0CF = 0x17
EMI0CF = 0x1B Split Mode with Bank Select
EMI0CF = 0x1F External Only

Запись происходит через DPTR или MOVX A,@R0 ???
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.