Kvant Due
#61
(30-05-2024, 15:23)vako : которая у меня компилится
С этим ядром и у меня комилится, там есть libmaple, не получается с другим ядром, ругается на всё где есть libmaple.

   
#62
Большинство примеров DAC->DMA для HAL комилится без проблем с этим ядром, но там простыни из кода.

Нашёл простенькую функцию и в Arduino IDE она компилится без ошибок, но как оно будет работать на реальном железе это ещё вопрос.



Код:
void StartDAC(DAC_TypeDef *dac, int DACchannel, uint16_t Nsamples, uint16_t *samples, uint16_t psc, uint16_t arr)
{

    DMA_Channel_TypeDef *DMA_Channel = !DACchannel ? DMA2_Channel3 : DMA2_Channel4;
    TIM_TypeDef *tim = !DACchannel ? TIM6 : TIM7;

    DMA_Channel->CCR = 0;
    if (!DACchannel)
    {
        dac->CR &= ~(DAC_CR_DMAUDRIE1 | DAC_CR_DMAEN1);
        dac->CR |= (DAC_CR_DMAUDRIE1 | DAC_CR_DMAEN1);
    }
    else
    {
        dac->CR &= ~(DAC_CR_DMAUDRIE2 | DAC_CR_DMAEN2);
        dac->CR |= (DAC_CR_DMAUDRIE2 | DAC_CR_DMAEN2);
    }
    DMA_Channel->CNDTR = Nsamples;
    DMA_Channel->CMAR = (uint32_t)samples;
    DMA_Channel->CPAR = !(DACchannel) ? (uint32_t)&DAC->DHR12R1 : (uint32_t)&DAC->DHR12R2;
    DMA_Channel->CCR |= DMA_CCR_MSIZE_0 | DMA_CCR_PSIZE_0 | DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_EN | DMA_CCR_TEIE | DMA_CCR_DIR;
    tim->DIER = TIM_DIER_UDE;// | TIM_DIER_UIE;
    tim->CR2 |= TIM_CR2_MMS_1;
    tim->PSC = psc;
    tim->ARR = arr;
    /* tim clock frequency / ((psc + 1) * (arr + 1) * nsamples)  == frequency of the  generated signal    - do the calculations yourself*/
    tim->CR1 |= TIM_CR1_CEN;
}
#63
(30-05-2024, 22:32)KEN : С этим ядром и у меня комилится, там есть libmaple, не получается с другим ядром, ругается на всё где есть libmaple.
У меня то же самое, хотя я ставил аддон от ST, может конечно и забыл, давно это было. В ардуине хрен поймёшь, где чего стоит. Поставьте себе CubeMX или сразу среду разработки CubeIDE, там можно код инициализации генерить, он по идее должен и в ардуине работать.
Посмотрите тут: https://habr.com/ru/articles/312810/ Ваша функция вроде на CMSIS, на Hal должна быть проще.
#64
KEN, ещё ссылки:
https://istarik.ru/blog/stm32/
https://istarik.ru/blog/stm32/138.html#cut  DMA с примерами на HAL часть первая
https://istarik.ru/blog/stm32/139.html DMA с примерами на HAL часть вторая


.pdf   Генерация сигналов с помощью таймера STM32L4, DMA и DAC.pdf (Размер: 60.79 KB / Загрузок: 127)
#65
Есть критическое обновление, предыдущие прошивки могли не работать.

Файлы вложений

.zip   KVANT_DUE_1.2.zip (Размер: 22.13 KB / Загрузок: 194)
#66
Платы пришли, на неделе попробую собрать.    
#67
Плату собрал, но где то косяк. Жрет жутко.
   
#68
Я собираю последовательно, сначала контроллер и его обвязку, потом прошиваю, если всё в норме далее каскад TX и тд... так понятнее на каком этапе например повысился ток.
Сейчас только нащупать где греться, ну или тепловизор в идеале.
#69
(09-07-2024, 23:01)KEN : Я собираю последовательно
Если паять паяльником то да, а когда пастой, то приходится забивать по максимуму. Косяк нашёл: поставил 5-ти вольтовый источник с другой цоколёвкой, поменял вроде всё стало нормально. Буду дальше ковыряться.
#70
В общем что то заработало. Больше часа не мог загрузить прошивку.