Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
PIC12F675 не понятки
tolyan249 Дата: Пн, 22.09.2025, 16:09  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 217
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Device = 12F675   ; или    629
Declare Xtal= 4
Declare Reminders OFF
'All_Digital ON
Config CPD_OFF, CP_OFF, MCLRE_OFF, PWRTE_ON, WDT_OFF, INTRC_OSC_NOCLKOUT

Symbol Led = GPIO.5           ; светодиод    '

Set_OSCCAL OSCCAL      ;Загрузить константу OSCCAL

 All_Digital On  ; отключить аналоговые входы перевести все порты как цифровые

Clear

'--------------------------Íà÷àëî ïðîãðàììû-----------------------------

GPIO = %000000                    ; Настроить порты
CMCON = 7                          ; отключить компаратор
TRISIO = %011101                ; Yfcnhjbnm yfghfdktybt gjhnjd

Main:
Led=1
DelayMS 10
Led=0
DelayMS 5
GoTo Main

end

вот такая простая программа ,работает в  протеусе и в железе ,но есть одно но .
В железе ширина импульса не соответствует заданному ,10мс-1 и 5мс-0 ,должно быть ,на самом деле 7.3мс-1 и 2.3-0 ,не понятно Применяю внутренний генератор ,и записываю константу на место.
В чём может быть проблема ? В протеусе норм. в железе не соответствует.
Спасибо.
Прикрепления: 7086952.png (113.7 Kb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вт, 23.09.2025, 05:15
ЯНДЕКС Дата: 22.09.2025
tolyan249 Дата: Пн, 22.09.2025, 16:58  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 217
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Это снимок с осциллографа. Клетка равна 5мс. Должно быть 2 клетки полные и 1 клетка полная. Но что то не то.  .Не понятно.

Добавлено (22.09.2025, 18:14)
---------------------------------------------
Сделал на pic 12f629 ,это же программа ,токо 629 и запрограммировал 629, там всё отлично даже в железе ширина импульсов чётко соответствует назначенному ,10мс и 5мс ,чётко ,странно не работает на 675. 4пика  менял 675 и у всех вот так ,на 629 всё отлично не понятно ,может конфиг другой какой то надо может быть.
Прикрепления: 9728999.png (733.8 Kb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Пн, 22.09.2025, 19:20
xvovanx Дата: Пн, 22.09.2025, 19:58  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 363
Репутация: 65   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Если смотреть по даташиту, то единственное отличие - это АЦП у 675. Попробуйте регистрами отключить не только компаратор но и работу АЦП. Возможно он по умолчанию делает разряд внутреннего кондера АЦП, вот тайминги и плывут.
tolyan249 Дата: Вт, 23.09.2025, 05:01  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 217
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

xvovanx

Да совершенно верно ,даташит у них один в один кроме ацп, думаю что скорее дело в конфигурации, Не понятно ,просто всегда работал с 629 ,с 675 не работал ,хотя в протеусе работает без нареканий ,но вся проблема в том что АЦП мне будет нужно все 4 канала.

All_Digital On  ; отключить аналоговые входы перевести все порты как цифровые(не помогло)

Спасибо за ответ и помощь.
Может кто сталкивался с этим. ?


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вт, 23.09.2025, 05:15
tolyan249 Дата: Вт, 23.09.2025, 06:49  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 217
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Это на PIC12F629, всё чётко работает в железе ,ширина импульсов соответствует заданным параметрам.,
клетка 2.5мс ,получается 10мс-1 и 5мс-0 .
почему на 675 не работает не понятно ,работает но ширина не соответствует заданным параметрам.
Программа та же ,конфиг тоже ,на 629 работает нормально ,на 675 несоответствие.

Добавлено (23.09.2025, 09:32)
---------------------------------------------
Всё нашёл причину ,всем спасибо. Вся проблема в самих контроллерах 675 ,видать бракованные ,записал программу в 675 ещё в 2 следующих ,всё заработало ,а эти 4 контроллера сколько не пытался ,работаю не правильно ,программу не менял ,просто менял сами контроллеры другие ,так что проверяйте их меандром на соответствие ширины импульса.

Добавлено (24.09.2025, 19:25)
---------------------------------------------
Ещё вопрос ,почему на GP4 присутствует 2.5в  хотя на эту ногу я не подаю напряжения а ацп меряет на нём это напряжение.
Спасибо.

Device 12F675 
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_OFF, BODEN_OFF, MCLRE_OFF 
Declare Xtal = 4 
Declare Reminders On
Set_OSCCAL OSCCAL 
All_Digital On

Declare Adin_Res 10
Declare Adin_Tad 32_FOSC
Declare Adin_Stime 50

; Declare  option reg.7=1'отключить подтягивающие резисторы
                     
;   OPTION_REG=%10000000 'отключить подтягивающие резисторы
   
;   OPTION_REG = %00001100 
 ;  WPU = %000000  ;Настройка подтягивающих резисторов индивидуально для каждого порта

  
   
;  GPIO = %000000   
  TRISIO = %011111 'GP0, GP1 - АЦП; GP2, GP4, GP5 - выходы; GP3 - 10к на +5В 
  ANSEL.4 = 1 ' \ 
  ANSEL.5 = 1 ' FRC 
  ANSEL.6 = 0 ' / 
  ANSEL.0 = 1 'Установим GPIO.0 аналоговым входом 
  ANSEL.1 = 1 'Установим GPIO.1 аналоговым входом 
  ANSEL.2 = 1 'Установим GPIO.2 аналоговым входом 
  ANSEL.3 = 1 'Установим GPIO.3 аналоговым входом 
  ANSEL.4 = 1 'Установим GPIO.4 аналоговым входом 
  
  
  ADCON0.6 = 0 'Источник опорного напряжения - +5В от шины питания   0
  ADCON0.7 = 1 '    
  

 CMCON=7  

    WPU = 0 ' отключаем подтягивающие резисторы

В PIC12F675  4 ацп ,3 меряют нормально ,а 4 ацп меряет не правильно ,даже если нет напряжение на входе ,но есть на ноге 3(GPIO 4). Как его от туда убрать ,пока не получается ,

Может кто что подскажет.?

Спасибо.

Прикрепления: 9685471.png (1.26 Mb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вт, 23.09.2025, 07:48
xvovanx Дата: Чт, 25.09.2025, 19:12  |                                                                                                                Сообщение # 6
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 363
Репутация: 65   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата tolyan249 ()
почему на GP4 присутствует 2.5в  хотя на эту ногу я не подаю напряжения а ацп меряет на нём это напряжение.

На висящем в воздухе входе может напряжение плавать как ему вздумается. Надо либо подавать ему напругу, либо притягивать резистором к нулю. В воздухе некорректно оставлять входы без привязок.
tolyan249 Дата: Пт, 26.09.2025, 07:19  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 217
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Спасибо всем за помощь .Сделал, всё работает ,просто при программирование в программаторе надо было выбрать флаг генератора (Вн., Rс), а так как я использую внутренний генератор 4мгц , то  выбирал флаг (Вн.,Rс.,CLKOUT), и  получалось что 3 нога контроллера работала как выход внутреннего генератора. Поэтому там было 2.5в.  Сейчас всё нормально работает.

Как то так.


если знаешь,помоги.
  • Страница 1 из 1
  • 1
Поиск: