Мелкие вопросы по МК и ПЛИС.
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
- Реклама
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
накидал по вашей схеме проект в протеусе, странно но с последней прошивкой вообще ни какой индикации не наблюдаю. Кстати выводы портов С и D остаются в Z- состоянии...
Сейчас попробую декомпилировать и в MPLAB скормить гляну что там при включении происходит.
Сейчас попробую декомпилировать и в MPLAB скормить гляну что там при включении происходит.
Наверняка банально аудиочип не отвечает, а программа крутится на месте ожидая ответа от него. Без логического анализатора сказать что-то конкретное будет сложно. Обычно такая проблема из-за недостаточной подтяжки на шинах I2C или активный флюс на плате мешает нормальной работе. Нужна диагностическая прошивка... Я обычно так и делаю, помимо нормальной рабочей имеется и диагностическая которая позволяет проверить правильность монтажа и работу железа.
- Реклама
Мучаю PIC16F887, АЦП. Возник вопрос - как мне подключить внутренний Vref и при этом выбрать только канал AN0?
За это отвечает как я понял ADCON0 <CHS(3:0)>. Получается какая то фигня
CHS<3:0> = 0000 - это выбор AN0 и
CHS<3:0> = 1111 - это выбор Vref=0.6 Вольт.
Как так?
За это отвечает как я понял ADCON0 <CHS(3:0)>. Получается какая то фигня
CHS<3:0> = 0000 - это выбор AN0 и
CHS<3:0> = 1111 - это выбор Vref=0.6 Вольт.
Как так?
Никакой фигни. Эти биты отвечают ТОЛЬКО за мультиплексор который выбирает к какому источнику будет подключен вход АЦП. Ну да, при помощи АЦП можно измерить так же и опорное напряжение, выбрав соответствующий номер канала мультиплексора.
Источник опорного напряжения задается следующими битами в этом регистре, читай документацию внимательно! Если АЦП настроен на внутреннее опорное напряжение, и измеришь напряжение на канале №15(Vref) АЦП тебе беспрекословно покажет 0x03FF.
А если опорное будет напряжение питания(+3.3В), то измерение канала #15 даст число 186 = 0x00BA.
Понятна логика?
Источник опорного напряжения задается следующими битами в этом регистре, читай документацию внимательно! Если АЦП настроен на внутреннее опорное напряжение, и измеришь напряжение на канале №15(Vref) АЦП тебе беспрекословно покажет 0x03FF.
А если опорное будет напряжение питания(+3.3В), то измерение канала #15 даст число 186 = 0x00BA.
Понятна логика?
Не покажет.Alexeyslav писал(а):Если АЦП настроен на внутреннее опорное напряжение, и измеришь напряжение на канале №15(Vref) АЦП тебе беспрекословно покажет 0x03FF.
Потому что:
1. опорное напряжение АЦП не может быть менее 2,2 вольт
2. внутренний референсный источник CVref никакого отношения к опорному Vref не имеет и не может быть подключен в его качестве.
Назначение внутреннего источника 0,6 вольта состоит в том, что бы измерить ОПОРНОЕ НАПРЯЖЕНИЕ АЦП. Или питание МК, если именно оно используется в качестве опорного.
Понятно, т.е. внутреннего опорного источника в данном МК нет.
А я хотел не заморачиваться со стабилизацией питания.
А я хотел не заморачиваться со стабилизацией питания.
И правда, зачем питание стабилизировать? Когда можно сформировать любое удобное опорное напряжение. Например при помощи TL431.
Попался мне МК HD404019RS. Скачал на него даташит. Чтобы стереть - нужно ультрафиолет.
Вот только не могу понять, какой для него нужен компилятор и на чём можно написать прошивку? и как его можно прошить?..
Вот только не могу понять, какой для него нужен компилятор и на чём можно написать прошивку? и как его можно прошить?..
Это называется некрофилия...Xatrix писал(а):Попался мне МК....
Вот только не могу понять...
Софт и хард для подобных устройств выпускал производитель.
Когда выпускал...
Зачем Вам это?
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
про внутрисхемное программирование вопрос, старый как и все на этом свете, но все же.
вот взять скажем ATmega8A-AU TQFP.
ну сваяли схемку, припаялись, но ее еще ж прошить нужно.
но к примеру, вывод MOSI совпадает с выводом ШИМА.
остальные ноги типа MISO SCK не задействованы. про подсоединении программатора неизвестно же заранее, как схема себя поведет.
как в таких случаях поступают? можно конечно перемычку поставить , что бы отключать схему от программатора, или микровыключатель, но это мои идеи.
в гугл не посылать, читаю)
вот взять скажем ATmega8A-AU TQFP.
ну сваяли схемку, припаялись, но ее еще ж прошить нужно.
но к примеру, вывод MOSI совпадает с выводом ШИМА.
остальные ноги типа MISO SCK не задействованы. про подсоединении программатора неизвестно же заранее, как схема себя поведет.
как в таких случаях поступают? можно конечно перемычку поставить , что бы отключать схему от программатора, или микровыключатель, но это мои идеи.
в гугл не посылать, читаю)
вы должны сделать такую схему, чтобы она не помешала прошивке МК, т.е. не "перегрузила" программатор. а что касается того, что сигналы программатора пойдут в схему - ну что с того? мигнет какой-то светодиод на плате у вас во время прошивки - и чо? а если там схема управеления какой-то аппаратурой - отключите ей (аппаратуре) питание на время прошивки, да и все дела...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
мне по правде сказать вот такой вариант больше понравился

Линия MCLR' развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
------
там конечно для пика указана схема, но не суть важно, те же 5 проводков.
просто как представил рубильник на схеме, пусть даже маленький, но все же)))

Линия MCLR' развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
------
там конечно для пика указана схема, но не суть важно, те же 5 проводков.
просто как представил рубильник на схеме, пусть даже маленький, но все же)))
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
Если для себя или малое число плат то вполне себе нормальное решение. Если для производства монтажники и ОТК Вас проклянут, ибо при прошивке платы перемычку ппоставить/снять забудут и как следствие или схему подпалят или девайс работать не будет так как перемычки не поставили после прошивки.
Вместо J2 лучше поставить диод - на схему сброса влиять не будет а напряжение программирования в плату не уйдет.
По VDD тоже не однозначно - многие программаторы определяют наличие питания на камне а не питают камень.
Ну и главное нужно отталкиваться от КОНКРЕТНОГО МК, а то Вы написали про AVR а приводите схему включения PIC.
Вместо J2 лучше поставить диод - на схему сброса влиять не будет а напряжение программирования в плату не уйдет.
По VDD тоже не однозначно - многие программаторы определяют наличие питания на камне а не питают камень.
Ну и главное нужно отталкиваться от КОНКРЕТНОГО МК, а то Вы написали про AVR а приводите схему включения PIC.
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
да нет, для себя только. буду делать на атмеге , а картинку привел как то, что мне понятно и просто для восприятия.
Помогите, пожалуйста разобраться. Честно говоря не знаю в той ли теме задаю вопрос, но вроде ближе всего к этой теме...
Имеется ключ VND600SP с выходами называемыми Current Sense 1 и 2. Так же есть выходы Output 1 и 2, на которые вешается нагрузка. Согласно датащиту на выходах Current Sense имеется токовый сигнал, пропорциональный току, протекающему через соответствующий канал нагрузки. Так вот, эти самые выходы соединены с МК PIC16F913 по следующей схеме:

Так же МК управляет ключём, т.е. открывает и закрывает его с частотой, зависящей от тока, протекающего через нагрузку. Частота может быть либо 2 Гц (нормальный режим работы, ток через нагрузку >3 А), либо 1Гц (аварийный режим работы, ток через нагрузку <3 А). Но на схеме я это не отобразил...
Мне нужно снизить ток нагрузки (например до 2,25 А) с сохранением нормального режима работы всей схемы.
Каким образом настроены выводы микросхемы не известно, но мне всё же кажется что работают они как аналоговый вход. Какими способами МК может замерить ток, я, к сожалению, не знаю. Возможно существуют какие-нибудь типовые варианты? На схеме номиналы конденсаторов указаны не верные, т.к. какие они на самом деле не известны. Честно говоря удивлен включением таким образом диодов и дял чего это сделано не понятно, но так и есть...
Возможно глупо, но попробовал по уменьшать сопротивление резисторов, но схема при токе в 2,25 А сваливалась в аварийный режим работы.
Имеется ключ VND600SP с выходами называемыми Current Sense 1 и 2. Так же есть выходы Output 1 и 2, на которые вешается нагрузка. Согласно датащиту на выходах Current Sense имеется токовый сигнал, пропорциональный току, протекающему через соответствующий канал нагрузки. Так вот, эти самые выходы соединены с МК PIC16F913 по следующей схеме:
Так же МК управляет ключём, т.е. открывает и закрывает его с частотой, зависящей от тока, протекающего через нагрузку. Частота может быть либо 2 Гц (нормальный режим работы, ток через нагрузку >3 А), либо 1Гц (аварийный режим работы, ток через нагрузку <3 А). Но на схеме я это не отобразил...
Мне нужно снизить ток нагрузки (например до 2,25 А) с сохранением нормального режима работы всей схемы.
Каким образом настроены выводы микросхемы не известно, но мне всё же кажется что работают они как аналоговый вход. Какими способами МК может замерить ток, я, к сожалению, не знаю. Возможно существуют какие-нибудь типовые варианты? На схеме номиналы конденсаторов указаны не верные, т.к. какие они на самом деле не известны. Честно говоря удивлен включением таким образом диодов и дял чего это сделано не понятно, но так и есть...
Возможно глупо, но попробовал по уменьшать сопротивление резисторов, но схема при токе в 2,25 А сваливалась в аварийный режим работы.
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
Микроконтроллер с помощью внутреннего АЦП измеряет напряжение. и в зависимости от результата управляет ключом.имеется токовый сигнал, пропорциональный току, протекающему через соответствующий канал нагрузки
Решения два:
1. Преписать соответствующим образом программу(прошивку).
2. Между выходом ключа и входом МК включить операционный усилитель с таким КУ чтобы выходное напряжение соответстующее 3А было уже при 2,25 или сколько вам там требуется.
А чего непонятного в диодах? пусковые токи там больше номинальных, с токового датчика импульсы могут приходить превышающие номинал в десятки раз и чтобы срезать эти импульсы и не пустить их дальше стоят эти диоды. Конечно, такая схема как здесь нарисована НЕ ИМЕЕТ НИКАКОГО СМЫСЛА, ибо стабилизатор не удержит напряжение на выходе если оно пойдет вверх. Но в реальной схеме, стабилизатор стоит не просто так, он питает всю электронику и его выход это шина питания на которую сбрасывается лишнее напряжение через диоды, но только при условии что ток через эти диоды будет существенно ниже тока потребления схемы или шина питания будет чем-то ограничена сверху, например стабилитроном. Иначе ток через эти диоды поднимет напряжение на этой шине и спалит всю схему. Вобщем, в этой схеме пока напряжение на входах "current sense" меньше 5 вольт оно будет беспрепятственно поступать на входы контроллера, а все что выше - будет через диоды подключено на шину питания и там уже "кто кого". Этот ток ограничивают резисторы R3 R4 - при 10В на входе ток через них на шину питания будет порядка 1мА.




