Jump to content

    

smk

Свой
  • Content Count

    2363
  • Joined

  • Last visited

Community Reputation

0 Обычный

About smk

  • Rank
    Гуру
  • Birthday 08/20/1971

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

6429 profile views
  1. А что за атмосфера в которой поджиг происходит? В конце концов можно пуш-пулом катушку запитать если диод мешает. Кстати диод обычный нужен, не трансил и т.п. Нужно чтобы через первичку протекал ток.
  2. Я так понял ЗМЗ-406 и есть катушка зажигания? Если да, то поджечь не сложно. Первичную обмотку коммутировать мосфетом с некоторой частотой. В первичку диод обязательно. Включен обратно. Частоту подобрать по осциллографу так чтобы один-два периода самоиндукция проделала. Посмотрите картинки флайбэка. Они как раз про это.
  3. Cube и H7 не дружат. Проверено. Что-то работает, что-то нет. Или вообще еще до инициализации виснет. Так что сыровато оно там все. Ручками надежнее.
  4. Да так и не понял. Выкинул все и оставил в цикле запись на передачу по флагу завершения передачи. Все и заработало. Завтра выложу если интересно. Купился по сути на танцы куба и других примеров. Через некоторое время сделаю передачу-прием буферов. Пока другое надо подтянуть. Усарт кстати просто с ходу заработал. Там все просто.
  5. SPI похоже заработал. Инициализировал и гоняю 16 бит с проверкой флага TXC. Уходит. С ДМА не пробовал пока.
  6. А вот это как выглядит? HARDWARE_SPI_CONNECT();
  7. Я могу попросить показать инициализацию SPI? Все сделал по инструкции, но не работает. Опытным путем определил, что пины спиаем не управляются. Пины рабочие, простым дерганием меандр получаю. Хочу узнать что не так делаю. Кстати куб тоже не дает результата. Что вручную, что кубом, все одно и тоже. Не работает. Подскажите, что я не учел? Может в коде увижу. Спасибо.
  8. STM32H747 + SDRAM

    Благодарю. Теперь понятнее.
  9. STM32H747 + SDRAM

    Почитал хелп от кейла. С ходу не могу понять как что делать. Поскольку никогда раньше такого не делал можно попросить подсказать как это сделать правильно? Вот скаттер-фай, что создал кейл: ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_IROM1 0x08000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } RW_IRAM1 0x38000000 0x00010000 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x24000000 0x00080000 { .ANY (+RW +ZI) } } Внешнее ОЗУ стартует от 0xD0000000 и имеет размер 0x800000. Научите как вот это: static uint32_t Cadr[1315840] __attribute__((section(".ARM.__at_0xD0000000"))); сделать правильно. Инициализировать не нужно. Спасибо.
  10. STM32H747 + SDRAM

    Ну тогда подсказывай как это делается. Раньше не делал.
  11. STM32H747 + SDRAM

    Вот так похоже работает: static uint32_t Cadr[CADR_SIZE] __attribute__((section(".ARM.__at_0xD0000000")));
  12. STM32H747 + SDRAM

    Инициализировать получилось. Отладчик память видит. Возник вопрос как теперь объяснить кейлу, что у программы есть эта память и как объявить расположенный в ней массив? Если указывать ее как внешнюю, то виснет на старте. При этом если указать размер 0х8000, то все нормально. Реально она же больше. Как правильно ее описать кейлу? Как объявить массив в ней? Спасибо. Ну и привожу инициализацию на 120 МГц. Может кому пригодится. Думаю, ноги инициализировать не будет проблемой. void FMC (void) { unsigned int i; /* Включаем тактирование FMC */ /* For 2.7 V<VDD<3.6 V, FMC_CLK = 125 MHz at 20 pF */ /* Для работы с IS42S16400J-5TL 120 MHz устанавливается в SystemClock_Config() */ RCC->AHB3ENR |= RCC_AHB3ENR_FMCEN; FMC_Bank1_R->BTCR[0] |= FMC_BCR1_FMCEN; FMC_Bank5_6_R->SDCMR |= FMC_SDCMR_CTB2; FMC_Bank5_6_R->SDCR[0] |= FMC_SDCRx_RPIPE_1; FMC_Bank5_6_R->SDCR[0] |= FMC_SDCRx_SDCLK_1; FMC_Bank5_6_R->SDCR[1] &= ~FMC_SDCRx_WP; FMC_Bank5_6_R->SDCR[1] &= ~FMC_SDCRx_CAS; FMC_Bank5_6_R->SDCR[1] |= FMC_SDCRx_CAS_1; FMC_Bank5_6_R->SDCR[1] |= FMC_SDCRx_NB; FMC_Bank5_6_R->SDCR[1] &= ~FMC_SDCRx_MWID; FMC_Bank5_6_R->SDCR[1] |= FMC_SDCRx_MWID_0; FMC_Bank5_6_R->SDCR[1] &= ~FMC_SDCRx_NR; FMC_Bank5_6_R->SDCR[1] |= FMC_SDCRx_NR_0; FMC_Bank5_6_R->SDCR[1] &= ~FMC_SDCRx_NC; FMC_Bank5_6_R->SDTR[1] = 0; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TRCD_0; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TRP_0; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TWR_0; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TRC_1 | FMC_SDTRx_TRC_2; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TRAS_2; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TXSR_0 | FMC_SDTRx_TXSR_1 | FMC_SDTRx_TXSR_2; FMC_Bank5_6_R->SDTR[1] |= FMC_SDTRx_TMRD_0; FMC_Bank5_6_R->SDCMR |= FMC_SDCMR_MODE_0 | FMC_SDCMR_CTB2; //Mode 001 i = 96000; while(i--) __NOP(); FMC_Bank5_6_R->SDCMR &= ~FMC_SDCMR_MODE; FMC_Bank5_6_R->SDCMR |= FMC_SDCMR_MODE_1 | FMC_SDCMR_CTB2; //Mode 010 FMC_Bank5_6_R->SDCMR |= FMC_SDCMR_NRFS_0 | FMC_SDCMR_NRFS_1 | FMC_SDCMR_NRFS_2 | FMC_SDCMR_MODE_0 | FMC_SDCMR_MODE_1 | FMC_SDCMR_CTB2;//Mode 011 FMC_Bank5_6_R->SDCMR &= ~FMC_SDCMR_MODE; FMC_Bank5_6_R->SDCMR |= (0x220 << FMC_SDCMR_MRD_Pos) | FMC_SDCMR_MODE_2 | FMC_SDCMR_CTB2; FMC_Bank5_6_R->SDRTR |= (1855 << FMC_SDRTR_COUNT_Pos); }
  13. STM32H747 + SDRAM

    К контроллеру STM32H747 подключена SDRAM IS42S16400J. Нужна помощь в инициализации FMC. Инициализация куба не работает. Так же необходимо правильно определиться с регистрами FMC_SDCRx и FMC_SDTRx. Прошу помочь, может кто уже делал это. Спасибо.
  14. STM32H7 + Keil + Ethernet

    Как одним ядром записать байт, а другим прочитать?
  15. STM32H7 + Keil + Ethernet

    Добрый день! Всех с наступившим! Хочу спросить как правильно организовать настройку тактbрования STM32H747. Какое из двух ядер должно этим заниматься и в каком порядке это делается? Собственно что куда писать я разберусь. Интересует технология этого дела. Спасибо.