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

Вопрос по схемотехнике авто стробоскопа


Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов 175
  • Создана
  • Последний ответ

Топ авторов темы

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

4 часа назад, IMXO сказал:

зачем? тестировщика наслушались?

Угу слушай гуру у которого код с аппаратной зависимостью, что нормально написать не можешь.

Без всяких сложностей.

Спойлер

led.jpg.66b9d3af543cd831472a422693be4d70.jpg

 led1.jpg.39644e1c1b82edce9730a2386ac8885f.jpg

Спойлер

led2.jpg.45015b0ac3468d27615c3c52c14d1da9.jpg

 

Изменено пользователем vrytsev
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, vrytsev сказал:

что нормально написать не можешь.

э как у тебя пригорело :D
читай пока не дойдет смысл написанного: 

Спойлер

 

а то что ты его запустить не смог, я  причем? :D

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

Итак, плата проверена при дергании ножки enable. 

Что сделано:

- накидал скетч на ардуино, длительность импульса 49 мс, пауза 49, всего 3 импульса, период 882 мс (все кратно 49 мс). Точно такой же сигнал как выдает PIC;

- сток-исток соединены перемычкой;

- ножка enable и земля заведены на arduino;

Что получилось:

- все работает, на вид вспышки имеют даже большую "видимость" и "четкость" (мнение 3-х человек, на видео не будет понятно)

- ножка enable действительно подтянута к Vcc NCL30160, если в воздухе светодиод горит постоянно.

Вывод: 

зачем поставили этот транзистор в схему я так и не понял... )

Благодарю всех участников обсуждения, особенно @Гость_Григорий_Т. @vrytsev @colorad @BARS_  @ChePay @J_Ohm

Особое спасибо за листинги программы @IMXO @_vintik

Еще чуть понаглею:

А можно как то эту программу модифицировать?

- нужно 3 коротких импульса "1", паузы "0" (то, что на осциллограмме внизу - инвертировать);

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

просто ассемблер не воспринимается у меня никак, маленький кусок кода понимаю и теряюсь в следующей строчке...

Спойлер

IMG_20221007_224753_resized_20221008_122335940.thumb.jpg.9327f22b9907d746c4a34d9a15da8f07.jpgSDS00006.png.4767769f3ef248a0ee333a34c3e2e2b4.png

 

Изменено пользователем vishay
Ссылка на комментарий
Поделиться на другие сайты

Внутренний осциллятор работает на частое Fosc=4MHz , МК выполняет команды (маш.циклы) с частотой F=Fosc/4=1MHz или с периодом 1us - время выполнения 1го маш.цикла .
256 это коэффициент предделителя таймера TMR0 , выставляется в регистре OPTION
если проще счетчик маш.циклов через которое таймер увеличится на 1
CONST_DELAY = число до которого считает таймер TMR0
18 - погрешность выполнения кода

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

3 часа назад, vishay сказал:

Еще чуть понаглею:

Спойлер
	list      p=10F200            ; list directive to define processor
	#include <p10F200.inc>        ; processor specific variable definitions

	__CONFIG   _MCLRE_OFF & _CP_OFF & _WDT_OFF


;***** CONSTANT DEFINITIONS*********************************
; DELAY = 1us*(256*CONST_DELAY + 18) = 256*195 +18 = 49.938ms
CONST_DELAY_1	EQU   .195        
CONST_DELAY_2	EQU   .18 

CONST_CAUNT_IMP EQU  .5 ; = кол-во импульсов
CONST_CAUNT_PAUSE EQU  .13 ; = кол-во пауз
;***** VARIABLE DEFINITIONS**********************************
    CBLOCK 0x11 
      CAUNT_IMP   
      CAUNT_PAUSE 
    ENDC
;**********************************************************************
	ORG     0xFF             
; Internal RC calibration value is placed at location 0xFF by Microchip
; as a movlw k, where the k is a literal value.
	ORG     0x000             

start:  movwf OSCCAL
        BCF GPIO,GP0
        CLRF FSR 
        BSF FSR,FSR 	
        BSF GPIO,GP1
        
        MOVLW (1<<GP3)|(0<<GP2)|(0<<GP1)|(0<<GP0)
        TRIS GPIO

        MOVLW (1<<NOT_GPWU)|(1<<NOT_GPPU)|(0<<T0CS)|(1<<T0SE)|(0<<PSA)|(7<<PS0)
        OPTION
        CALL delay
loop:   
        MOVLW CONST_CAUNT_IMP
		MOVWF CAUNT_IMP
while_imp:  
            BSF GPIO,GP0
            CALL delay
            BCF GPIO,GP0
            CALL delay
		DECFSZ CAUNT_IMP,F
		GOTO while_imp

        MOVLW CONST_CAUNT_PAUSE
		MOVWF CAUNT_PAUSE
while_pause:  
            CALL delay
		DECFSZ CAUNT_PAUSE,F
		GOTO while_pause	

        GOTO loop
;************************************************************
delay:  MOVLW CONST_DELAY_1
        MOVWF INDF 
        CALL caunt
        RETLW 0
delay1: MOVLW CONST_DELAY_2
        MOVWF INDF 
        CALL caunt
        RETLW 0
;*************************************************************
caunt:  CLRF TMR0
label:  MOVF TMR0,W
        XORWF INDF,W
        BTFSS STATUS,Z
        GOTO label   
        RETLW 0

	END                       ; directive 'end of program'

 

 

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

12 часов назад, vishay сказал:

просто ассемблер не воспринимается у меня никак

ассемблер это очень просто , тупо сокращения от английских слов:
 

Спойлер

W = working register (рабочий регистр, аккумулятор )
F = file register (файловый регистр, ОЗУ )
L =  literal constant (буквально константа)
MOV = move (двигать, перемещать)
ADD = add (сложение)
SUB = subtraction (вычитание)

общая структура команд
[label]  command  [adress] , dest
label - указатель компилятору на адрес расположения  команды в памяти команд МК для команд перехода (GOTO, CALL), ставится если нужно.
command - собственно сама команда.
[adress] - адрес файлового регистра
dest - указатель куда помещаем результат операции в рабочий или файловый регистр.

metka  SUBWF REG,F
SUB
вычесть содержимое аккумулятора W из значения файлового регистра F расположенного в ОЗУ по адресу REG и результат операции  поместить в F файловый регистр.

         ADDWF REG1,W
ADD
сложить содержимое аккумулятора W и значение файлового регистра F расположенного в ОЗУ по адресу REG1 и результат операции  поместить в W аккумулятор.
  GOTO  metka
пререйти по адресу metka на команду SUBWF REG,F

 

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

12 часов назад, vishay сказал:

зачем поставили этот транзистор в схему

У них этих транзисторов ну просто завались, вот и ставят, куда попало.

Для людей, которые пишут "мФ" вместо "мкФ", в аду приготовлен отдельный котёл. 1 мФ = 1000 мкФ.

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

22 часа назад, IMXO сказал:

э как у тебя пригорело

У меня нет, а ты вижу стал благоразумнее. :D 

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

 

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

Невидно. :D 

Где модератор? Пусть подотрет цитирование, нарушение однако. :) 

Пойду плюсик поставлю.

Изменено пользователем vrytsev
Ссылка на комментарий
Поделиться на другие сайты

В 08.10.2022 в 02:26, IMXO сказал:

18 - погрешность выполнения кода

Эта цифра будет от чипа к чипу меняться? Зависит от стабильности частоты внутреннего генератора? Или это "среднее" значение выполнения кода?

Изменено пользователем vishay
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Вопрос про калибровочное число генератора МК pic10F200. Оно храниться по какому то адресу? 

Вот строка программы от @IMXO:  

ORG     0xFF             
; Internal RC calibration value is placed at location 0xFF by Microchip

Я должен сначала новый МК взять, считать из него по адресу (0xFF) это число? А если затем там будет основная программа? Или этот адрес выделен только под это? И в каком случае он стирается? Каждый раз при перепрограммировании? 

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

@Shahabbas Какой тогда алгоритм, чтобы эту константу не потерять?

- взять новый МК и прочитать значение, которое лежит по адресу 0xFF (например это "1A"), запомнить его;

- далее внести в текст программы: 

ORG     0xFF

MOVLW 0x1A

Так ? 

Еще читал, что якобы pickit может считать даже стертую константу... 

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

Калибровка Осциллятора

В текст программы контроллера я, лично, не лез. Просто до программирования контроллера я считываю содержание контроллера и в программу для программатора вношу константу.

По собственному опыту: если не нужна точность частоты внутреннего генератора микроконтроллера - при случайном стирании константы в ячейку константы можно записать среднее значение. Ну будет, к примеру, частота внутреннего генератора не 4,0 МГц, а 3,9 или 4,1 МГц - ничего не случится, в работе зачастую этого может быть и не будет заметно.

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

Технические вопросы решаю в теме , в личке не обсуждаю !!!

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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