Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Pic ассемблер генератор импульсов

Чт фев 17, 2022 08:13:35

Добрый день! Нужно снять с мк pic18f4520 минимально короткий импульс, прогу написал на ассемблере, импульсов нет
На выходе rb5

Re: Pic ассемблер генератор импульсов

Чт фев 17, 2022 08:18:27

Загадочно :)

Re: Pic ассемблер генератор импульсов

Чт фев 17, 2022 08:29:06

Код:
;******************************************************************************
;    Author: FABIO MACHADO                                                   
;    GitHub: https://github.com/MrFMach                                       
;******************************************************************************

;******************************************************************************
;List directives
   
    list p=18F4520        ;directive to define processor
   
;******************************************************************************
;Includes
   
    #INCLUDE <P18F4520.INC>    ;processor specific variable definitions

;******************************************************************************
;Configuration bits

    CONFIG  OSC = HS        ;pic-board cristal cscillator = 20 MHz     

;******************************************************************************
;Reset Vector

RES_VECT    CODE    0x0000    ;processor reset vector
    GOTO    START        ;go to beginning of program

;******************************************************************************
;Add interrupts here if used
   
;******************************************************************************
;Main program

MAIN_PROG CODE            ;let linker place main program
 
    DCounter1 EQU 0x0C
    DCounter2 EQU 0x0D
    DCounter3 EQU 0x0E

DELAY_1s:
    MOVLW 0x6D
    MOVWF DCounter1
    MOVLW 0x5E
    MOVWF DCounter2
    MOVLW 0x1A
    MOVWF DCounter3
LOOPD1:
    DECFSZ DCounter1, 1
    GOTO LOOPD1
    DECFSZ DCounter2, 1
    GOTO LOOPD1
    DECFSZ DCounter3, 1
    GOTO LOOPD1
    RETURN
   
DELAY_200ms:
    MOVLW 0xAC
    MOVWF DCounter1
    MOVLW 0x13
    MOVWF DCounter2
    MOVLW 0x06
    MOVWF DCounter3
LOOPD2:
    DECFSZ DCounter1, 1
    GOTO LOOPD2
    DECFSZ DCounter2, 1
    GOTO LOOPD2
    DECFSZ DCounter3, 1
    GOTO LOOPD2
    NOP
    RETURN

START:
    MOVLW B'00000000'
    MOVWF TRISB        ;PORTB as output
    CLRF PORTB
    GOTO MAIN

MAIN:
    BSF PORTB,5        ;set bit 5
    BSF PORTB,6        ;set bit 6
    BSF PORTB,7        ;set bit 7
   
    CALL DELAY_200ms
   
    BCF PORTB,5        ;clear bit 5
    BCF PORTB,6        ;clear bit 6
    BCF PORTB,7        ;clear bit 7
   
    CALL DELAY_1s
   
    GOTO MAIN

;******************************************************************************
;End
    END



Добавлено after 2 minutes 56 seconds:
Взял с гитхаба, изменил только вкл rb5 и резкое отключение rb5
Далее пауза около 1,5 мкс импульс должен быть 100нс

Re: Pic ассемблер генератор импульсов

Чт фев 17, 2022 08:39:37

по-моему, время одной команды 200 нс.....поэтому хотеть 100 на выходе не реально...даже если импульс и появится...

Re: Pic ассемблер генератор импульсов

Чт фев 17, 2022 10:39:26

BSF LATB, 5
NOP
BCF LATB, 5

????

Re: Pic ассемблер генератор импульсов

Чт фев 17, 2022 11:42:35

Да
bsf portb.5
Bcf portb5
Nop
Nop задержка через переменную инкримент
Кварц 40мгц может на выходе дать 100нс
Временно использовал генератор с али 150кгц импульс 1‰
Но выход взял напрямую с мк генератора, отриц сигнал инвертировал через sn74hc14n 5вольтовый, на выходе получил
80нс

Добавлено after 5 minutes 26 seconds:
Это нужно для поиска обрыва кабеля, 40 метров можно найти обрыв самодельным рефлектометром

Re: Pic ассемблер генератор импульсов

Пт фев 18, 2022 20:57:45

Nop задержка через переменную инкримент
Кварц 40мгц может на выходе дать 100нс

Дебильный способ.
Для формирования импульсов и подсчета времени есть аппаратные способы в наборе периферии МК.
К слову, 1 метр UTP - 5,1 нс задержки (10,2 нс в обе стороны).
:wink: :tea:

Re: Pic ассемблер генератор импульсов

Пт фев 18, 2022 22:37:31

хм... он так сильно закручен, что длина самого провода настолько значительно длиньше?

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 03:51:08

Причем тут "закрутка"? И "длиньшне" чем что?

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 05:42:02

Если отдельные жилы UTP выпрямить, их фактическая длина окажется больше метра. Но я уже нашёл ответ - тот самый коэффициент укорочения, о котором Вы упоминали ранее.

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 05:42:30

Причем тут "закрутка"?


А при чём тут вообще UTP? Разве сабж про задержки в кабелях?

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 06:53:17

Изображение
Такое дополнение к контроллеру рассматривалось?

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 07:51:26

А при чём тут вообще UTP? Разве сабж про задержки в кабелях?

:facepalm: :)))
serega4789 писал(а):Это нужно для поиска обрыва кабеля, 40 метров можно найти обрыв самодельным рефлектометром


Добавлено after 4 minutes 32 seconds:
Если отдельные жилы UTP выпрямить, их фактическая длина окажется больше метра.

Вы правильно вспомнили про укорочение. И оно, естественно, связано с типом диэлектрика, а не физической длиной жил. Тем более, что в коаксиальном кабеле с полиэтиленом в диэлектрике задержка будет идентична.

Добавлено after 6 minutes 45 seconds:
Такое дополнение к контроллеру рассматривалось?

Тут проблема не в длительности импульсов. Настоящий рефлектометр вообще работает на длительности фронта, а не импульса. Проблема в подсчете времени. Дискретность в 100 нс даст дискретность расстояния примерно в 10 метров. Да и 100 нс нопами в программе не посчитать. Есть модуль Input Capture для таких целей.

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 08:31:11

Такое дополнение к контроллеру рассматривалось?


Так а зачем тогда вообще микроконтроллер, если есть готовое решение без микроконтроллера?
Или потому, что без микроконтроллера "любой дурак сможет"?

Re: Pic ассемблер генератор импульсов

Сб фев 19, 2022 08:45:08

Так а зачем тогда вообще микроконтроллер?

Наверное затем, что бы измерять отраженный сигнал и на этом основании вычислять физическую длину кабеля от прибора до обрыва...
Генерация импульса тут самая простая задача. Еще нужен усилитель для работы на кабель. Причем согласованный с кабелем.
Ответить