Перейти к содержанию
    

Microchip SAM E Series: обмен опытом

1 hour ago, Vasily_ said:

Я не знаю что там в Элитане пишут эффективные менеджеры, в миру разницы практически нет.

Как это нет !?

По вашей ссылке разница в цене между первой и последней строчкой в 1,5 раза !!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, dimka76 сказал:

Как это нет !?

По вашей ссылке разница в цене между первой и последней строчкой в 1,5 раза !!!

Да-уж, что еще можно сказать, если вы тупо сравниваете строчки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Vasily_ said:

Да-уж, что еще можно сказать, если вы тупо сравниваете строчки.

А что можно сказать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16.11.2020 в 18:46, Arlleex сказал:

О как.

Вчера пытался заморозить чип ревизии А, не получилось, контроллер всегда стабильно стартует.

Морозил до -25с морозилка меньше не выдает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Vasily_ сказал:

Вчера пытался заморозить чип ревизии А, не получилось, контроллер всегда стабильно стартует.

Морозил до -25с морозилка меньше не выдает.

ИМХО, там все-таки есть какой-то плюс/минус относительно этих -20 градусов.
Как правило, если есть документированная особенность - я ей верю на слово:smile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 минут назад, Arlleex сказал:

если есть документированная особенность - я ей верю на слово

Там и выход из ситуации описан.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 минуты назад, Vasily_ сказал:

Там и выход из ситуации описан.

У меня на всех девайсах стоит внешний супервизор (WDT + BOR на 2.9В), так что все норм:smile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вдруг кому пригодится. Пользуюсь примером от  Атмела  gmac_lwip GMAC lwIP Example.

Включен аппаратный подсчет CRC на передачу и приём (биты GMAC_NCFGR_RXCOEN и GMAC_DCFGR_TXCOEN), программный подсчёт в lwip отключен.

При отправке пакета UDP необходимо поле UDP checksumm занулять.

Похоже, что МАС-контроллер пересчитывает её с учётом этих байтов, и если там уже лежит правильная сумма, то в пакет в эти поля вставляется FFFF.

При этом для TCP и для ICMP ничего подобного не наблюдается, для IP-header checksumm тоже. 

 

Похожее же было и с STM32, но там нужно было занулять поля чексуммы только для icmp, остальные нормально считались.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- Может кто подскажет, а зачем сделаны 64-разрядными  шины DTCM (2x32) и ITCM(64)  ?

В его ассемблере (я не изучал) есть инструкции для загрузки 64-битных данных?

Посмотрел инструкции cortex-m7 по работе с памятью ADR/LDR - у них операнды 32-хразрядные. Если по этим шинам и так доступ без задержек, выполняется за 1 цикл, то зачем шина данных DTCM удвоенная? Как это можно использовать из Си-программы?

- Можно ли область ITCM использовать под данные? (К примеру, если не нужно переносить код в память, а itcm+dtcm включаются вместе) 

Изменено пользователем TU-104

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, TU-104 сказал:

Посмотрел инструкции cortex-m7 по работе с памятью ADR/LDR - у них операнды 32-хразрядные.

Ищите LDRD/STRD. Кроме того есть команды LDM/STM, которые теоретически тоже могут быть ускорены 64-битным доступом.

Кроме того CM7 имеет FPU умеющий double-арифметику с соответствующими командами загрузки/выгрузки памяти (не знаю - умеет ли double данный МК? это implementation specific). Опять-же - внимательнее см.мануал на систему команд CM7.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, TU-104 сказал:

Посмотрел инструкции cortex-m7 по работе с памятью ADR/LDR - у них операнды 32-хразрядные. Если по этим шинам и так доступ без задержек, выполняется за 1 цикл, то зачем шина данных DTCM удвоенная? Как это можно использовать из Си-программы

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14.12.2020 в 13:07, TU-104 сказал:

Может кто подскажет, а зачем сделаны 64-разрядными  шины DTCM (2x32) и ITCM(64)  ?

Наверно, чтоб в режиме конвейера передавать сразу 2 32х битных команды, как еще в первых пентиумах было, там вообще о 64х битных процах еще никто не думал...Иначе как добиться быстродействия более 1 команды на такт..

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SAME70. Кто-нибудь использовал в нём выход частоты из встроенной PLLA? 

Почему-то у меня она получилась дёрганная и на это дёрганье как-то влияет FreeRTOS.

Вот такая картинка в даташите, можно любой клок выдать на три определённых ноги PCK_0..2

image.thumb.png.65fd41afcd06af18719878dc08081598.png

Включаю выход PCK_1, источник выбираю PLL, делитель на 12 (300/12=25МГц)

  #define PIN_PCK_1  {PIO_PA17B_PCK1, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}

  PMC->PMC_SCDR = PMC_SCDR_PCK1;  // disable PCK 1
  while ((PMC->PMC_SCSR)& PMC_SCSR_PCK1);
  PMC->PMC_PCK[1] = PMC_PCK_PRES(11)| PMC_PCK_CSS_PLLA_CLK; //PMC_PCK_CSS_MCK; //;
  PMC->PMC_SCER = PMC_SCER_PCK1;
  while (!((PMC->PMC_SR) & PMC_SR_PCKRDY1));

 

В пустом проекте всё красиво выводится, осциллограф в режиме запоминания показывает сдвиги меньше 1 нс

НО как только запускаю FreeRTOS, частота начинает "дёргаться" - фронты двигаются на  +-5нс.

 

Пробовал убрать все задачи - дёрганья есть, т.е. не в моих задачах дело.

Пробовал в xPortSysTickHandler() поставить return - дёрганья пропадают.

Появляются где-то в этом 1мсек обработчике  xPortSysTickHandler

   portDISABLE_INTERRUPTS();
    {
        /* Increment the RTOS tick. */
        if( xTaskIncrementTick() != pdFALSE )
        {
            /* A context switch is required.  Context switching is performed in
             * the PendSV interrupt.  Pend the PendSV interrupt. */
            portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
        }
    }
   portENABLE_INTERRUPTS();
}

 

PS. Если выводить 24МГц на ту же ногу, но от источника UPLL, то никаких дёрганий нет

PPS убирал из этого обработчика по очереди всё что можно. Выяснил пока, что инструкции __DSB() ISB() в прерывании от СисТика "портят" частоту на ноге PCKxx. Как такое вообще может быть?

ppps. Выглядит, что на дёрганье частоты PLLA влияет вообще всё - и прерывания и какой-либо код (не относящийся к работе с pll и с  периферией портов). При этом с UPLL такого нет

 

 

 

Изменено пользователем TU-104

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и ещё добавлю новость: в новой еррате написано не использовать SDRAM. И на страничке рекламы и в новом даташите сдрам контроллера нет...

image.thumb.png.133736020d33eaaa7f027c50574b75e8.png

зато цветные колонтитулы добавили

image.thumb.png.7e1d78c9478e2ec9394e99c82b51e6fe.png

Изменено пользователем TU-104

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/7/2023 at 1:05 PM, TU-104 said:

SAME70. Кто-нибудь использовал в нём выход частоты из встроенной PLLA? 

вообще всё - и прерывания и какой-либо код (не относящийся к работе с pll и с  периферией портов). При этом с UPLL такого нет

Перепроверил всё ещё несколько раз - запустил демо-пример на двух платах.

При выводе PLLA на пин - есть джиттер. При выводе UPLL - нету.

Если ядро отладчиком остановить - то частота на ножке стабильна.

Если ядро работает (в примере опрашивает регистр уарта, ждёт нажатия кнопки), то появляется такой вот "джиттер":

image.thumb.png.d03fc63721a5d25901d1f7a7483eee02.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...