Акронис
Пн, 6 ноября 2017 г. 12:14
Привет .
Как сделать задержку (пауза) менее 1 мкс ?
Например, 10 наносекунд ?
Как сделать задержку (пауза) менее 1 мкс ?
Например, 10 наносекунд ?
Пито
Пн, 6 ноября 2017 г. 12:24
Вы не можете сделать это в SW, afaik. Попробуйте его в HW - например, один 74HC -ворота (или инвертор) производит ~ 10NS на 3.3В..
Акронис
Пн, 6 ноября 2017 г. 12:38
Я понял тебя.
И если у меня есть 1 наносекунда ?
И если у меня есть 1 наносекунда ?
Эдогальдо
Пн, 6 ноября 2017 г. 12:49
Запуск @72 МГц ваш период часов составляет чуть менее 14 нс (при условии, что F103 MCU), поэтому я бы сказал, что 14NS - это минимальное разрешение, которое вы могли бы достичь.
Чтобы отложить один тактовой цикл по коду, который вы можете использовать:
Чтобы отложить один тактовой цикл по коду, который вы можете использовать:
volatile int f1;
Акронис
Пн, 6 ноября 2017 г. 12:53
Большой !
Спасибо, я постараюсь F407Vet6 Black.
Я отписываю подписку на результаты
Спасибо, я постараюсь F407Vet6 Black.
Я отписываю подписку на результаты
Пито
Пн, 6 ноября 2017 г. 13:03
И если у меня есть 1 наносекунда ?
Вы можете получить 1NS или меньше с:
1. FPGA (у некоторых есть XXX Picoseconds Fine-Tunig с задержками)
2. Линии задержки - т.е. линии передачи, кабель коаксиаса
3. Есть серия STM32 (3x4), которая получила: Таймер с высоким разрешением: 217 л.с., самокомпенсированные по сравнению с источником питания и дрейф температуры.
1. FPGA (у некоторых есть XXX Picoseconds Fine-Tunig с задержками)
2. Линии задержки - т.е. линии передачи, кабель коаксиаса
3. Есть серия STM32 (3x4), которая получила: Таймер с высоким разрешением: 217 л.с., самокомпенсированные по сравнению с источником питания и дрейф температуры.
Акронис
Вторник 07 ноября 2017 г. 14:00
Сегодня я попробовал
ASM volatile ("nop");
код:
петля ()
{
DigitalWrite (PA5, Low);
ASM volatile ("nop");
DigitalWrite (PA5, High);
}
Осциллограф показал неудачу в 200NS на борту STM32F407.
Как вы получили 14NS на STM32F103 ?
ASM volatile ("nop");
код:
петля ()
{
DigitalWrite (PA5, Low);
ASM volatile ("nop");
DigitalWrite (PA5, High);
}
Осциллограф показал неудачу в 200NS на борту STM32F407.
Как вы получили 14NS на STM32F103 ?
Акронис
Вторник 07 ноября 2017 г. 14:06
Вы прокомментировали "Nop"
петля ()
{
DigitalWrite (PA5, Low);
// asm volatile ("nop");
DigitalWrite (PA5, High);
}
время остается прежним - 200 нс в состоянии переключения на сосне ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((ном
петля ()
{
DigitalWrite (PA5, Low);
// asm volatile ("nop");
DigitalWrite (PA5, High);
}
время остается прежним - 200 нс в состоянии переключения на сосне ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((ном
Zoomx
Вторник 07 ноября 2017 г. 16:10
Эдогальдо
Вторник 07 ноября 2017 г. 16:19
Конечно, это цифровой и цифровой накладной..
14NS - это продолжительность одиночного ASM (NOP) (на F407 это 1US/168 = 6NS), что гораздо мало уважает продолжительность всех других вещей..
14NS - это продолжительность одиночного ASM (NOP) (на F407 это 1US/168 = 6NS), что гораздо мало уважает продолжительность всех других вещей..
Рик Кимбалл
Вторник 07 ноября 2017 г. 16:34
Вы должны искать в фрагментах кода для поста, который я сделал об использовании периферийного устройства DWT для подсчета цикла
Рик Кимбалл
Вторник 07 ноября 2017 г. 11:34
Я использовал код Пито, чтобы создать переключатель 100 кГц с помощью таймера DWT. Конечно, вы не сможете создать импульс 10NSEC, так как количество циклов в 72 МГц составляет 13.888 NSEC, однако вы можете сделать точные импульсы использования, используя периферийные устройства DWT.
CMOS ---> 360ohm -----> BPill interrupt input
Эдогальдо
Ср. 8 ноября 2017 г. 11:14
[Акронис - Вторник 07 ноября 2017 г. 14:06] - Вы прокомментировали "Nop"Если вы хотите достичь скорости уровня часов, вам нужно пойти с сборкой..
петля ()
{
DigitalWrite (PA5, Low);
// asm volatile ("nop");
DigitalWrite (PA5, High);
}
время остается прежним - 200 нс в состоянии переключения на сосне ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((ном
Здесь образец эскиза ASM для переключения PA5 на F407:
#define SS BOARD_SPI1_NSS_PIN
#define MOSI BOARD_SPI1_MOSI_PIN
#define MISO BOARD_SPI1_MISO_PIN
#define SCK BOARD_SPI1_SCK_PIN
Акронис
Ср. 8 ноября 2017 г. 12:17
Вы очень много.
Я постараюсь сделать это
Я постараюсь сделать это
Эдогальдо
Ср. 8 ноября 2017 г. 13:18
[Акронис - Ср. 8 ноября 2017 г. 12:17] - Вы очень много.Извините, я допустил ошибку с установкой BSRR..
Я постараюсь сделать это
Здесь коррекция в любом случае я не могу проверить его на F407, поэтому я не могу гарантировать, что больше нет ошибок:
static const uint8_t SS = BOARD_SPI1_NSS_PIN;
static const uint8_t SS1 = BOARD_SPI2_NSS_PIN;
static const uint8_t MOSI = BOARD_SPI1_MOSI_PIN;
static const uint8_t MISO = BOARD_SPI1_MISO_PIN;
static const uint8_t SCK = BOARD_SPI1_SCK_PIN;