SUNISS. Первая маленькая победа!
И вот он заработал! Давненько так долго не отлаживал новые проекты. Обычно включаешь после сборки и оно работает, даже и не интересно как-то было. А тут такая интрига четыре дня крутилась!
Что самое интересное, так ведь все работало на отладочной плате PIC-P32MX от Olimex, а тут как собрал, так за несколько дней и не зажег ни разу светодиоды… Ну может основная работа немного сил отнимала.
Первое, что было проверено — соответствие разводки на новой плате той, что была на рабочей.
Второе. Проверка осциллографом всех сигналов на всех важных ножках микросхем, чтобы доходили. Уровни были один-в-один, временные диаграммы — тоже.
Но подключаю регистры к отладочной плате — работает, подключаю к контроллеру на новой (родной) — не работает. Вообще никак! Глухо, как в танке. Заподозрил, что уровни низкие на выходах PIC32, а регистры то от 5В питаются. Начал по одной дорожке резать и вместо «процессорных» сигналов подавать свои, тестовые, соответствующие норме. Никак. Все дорожки перерезал, бесполезно. Собрал простую схемку для управления регистрами вручную, но один сигнал взял от процессора (по одному решил выявить, от какого уровня не срабатывает). И этот первый не работает. Ура! Нашел! Ставлю на место, меняю его на тестовый. Подключаю другой… хм… и тоже не работатет… Да что же это такое! И тут мысль, давно витавшая в голове, практически уже материально и осязательно оформилась в порыв действовать.
Всего то убавил напряжение питания регистров с 5.1В до 4,4В и все сразу заработало!
Все ясно. С повышением напряжения питания на регистрах верхний порог чувствительности тоже поднимался и не хватало буквально долей вольта, чтобы его мог преодолеть микроконтроллерный сигнал с выхода в 3,6В. А еще, возможно, в этих регистрах на входе триггеры Шмитта стоят, усугубляя и без того пограничную ситуацию с уровнями.
Да, возможно, в будущем стоит подумать о промежуточном преобразователе уровня между 5-ти и 3-х вольтовой электроникой. А иначе, все же, совместимость у них надо находить весьма аккуратно.
Комментарии
Привет!
Рад, что ты продолжаешь развивать эту тему!
Не совсем понял, 10мбит.сек на сферы: это из памяти на плате, или ты решил проблему передачи информации «снаружи»?
Желаю всяческих успехов в развитии проекта!
Алексей.
Алексей, взаимно рад видеть тебя здесь!
Спасибо за комментарий и поддержку!
Насчет 10 мегабит — это я поскромничал, похоже (а осциллограф именно так и говорит 🙂 ), что там все 20 мегабит будут! Просто в «запаре» не учел какого-то коэффициента деления.
80МГц — тактовая CPU
40МГц — периферия
20МГц — тактовая SPI
Выводим картинку из памяти на кристалле, благо что у микрочиповских последних по 128 кило на борту появилось!
Картинка хранится в виде дампа и работать с ней удобно, как с видеопамятью.
DMA, пока как вижу, справляется со своей задачей. Вопрос в том, что если я начну нагружать CPU всякими рутинами для просчета картинки до 90%-95% — не начнет ли DMA «лагать» от занятий шины? Вот это я и решил выяснить после сборки этой модельки.