Форум по Роботика

Технически форум => Електроника => Темата е започната от: IbT в Април 27, 2010, 09:44:27 pm

Титла: Проблем с PIC18F6620
Публикувано от: IbT в Април 27, 2010, 09:44:27 pm
Колеги, надявам се някой да може да помогне. Не мога да подкарам генератора на този PIC. С 20MHz кристал е, кондензаторите са 22р, но пробвах и с 15р. Като тип съм го задал HS. Ползвам CCS, пробвах и в MPLAB-a на асемблер, но не ще да тръгне и това е. Захранването ми е малко импровизирано, но е само за пробата. Състои се от един диод само изправителен, 7805 и два електролитни кондензатора (един на входа и един на изхода) по 1000uF. Възможно ли да е толкова капризен към него или е някакъв друг проблема?
Титла: Проблем с PIC18F6620
Публикувано от: CarBeta5 в Април 28, 2010, 12:43:11 pm
Дай повече инфо. Как проверяваш дали работи?

Ако си сигурен, че всичко ти е наред и не иска да работи провери конфигурационните битове. Също така 7 крак трябва да го изтеглиш през резистор към VDD (напр. 10к)
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Април 28, 2010, 06:58:54 pm
Имаш ли керамичен кондензатор 100nF - 1uF непосредствено на захранващите пиниве на процесора? Трябва му. Също така трябват и на входа, и на изхода на 7805. Провери дали процесорът на стои в RESET.
Титла: Проблем с PIC18F6620
Публикувано от: emil74 в Април 28, 2010, 09:51:21 pm
СЛЕД 78ХХ се слагат кондензатори с малки стойности. С този 1000uF мога да си представя какво ще видиш на изхода, ако сложиш осцилоскоп... слагай 1-10uF и 10-100nF там. Това за захранването.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Април 28, 2010, 11:09:59 pm
Наистина са големи тези 1000uF, но такива имах под ръка. Утре ще взема по-малки и ще ги сменя. 7 извод е изтеглен както си трябва. Но нямам кондензатори между захранващите пинове. Ще сложа и на тях и ще пиша какво се е получило.

Иначе проверявам дали работи с осцилоскоп. В момента на изводите на генератори има постоянно ниво от порядъка на 70-80mV.
Титла: Проблем с PIC18F6620
Публикувано от: Vexorian в Април 28, 2010, 11:52:05 pm
Не вярвам проблема да е в кондензаторите. Вероятно не си задал правилно бит-овете в кода.
Титла: Проблем с PIC18F6620
Публикувано от: emil74 в Април 29, 2010, 12:39:27 am
Първо да се направи захранването както трябва, а после ще видим. Преди години бях правил захранване за един датчик по сходен начин, След втория изгорен датчик, производителят ме накара да занеса захранването. Убеждавах го, че всичко е наред, защото мултицетът показваше 5V. Но като го закачи на осцилоскопа и ми стана много глупаво... беше всичко друго, но не и стабилно напрежение.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Април 29, 2010, 08:32:00 pm
Първо, кондензаторите се оказа, че са 3300u, а не 1000 както съм писал отначало. Второ - сложих по-малки 47u, но картинката беше много зле - почти правоъгълни импулси. Върнах 3300u кондензаторите и се изглади чудесно. Пробвах също и с външен такт, но и това не проработи. Явно контролерът е нещо дефектен или нещо му има, незнам и аз. Но си купих друг 18F2580 с подобни параметри и ще действам с него. Благодаря за отговорите все пак.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Април 29, 2010, 11:30:15 pm
Цитат на: "bateAz"
Имаш ли керамичен кондензатор 100nF - 1uF непосредствено на захранващите пиниве на процесора? Трябва му. Също така трябват и на входа, и на изхода на 7805. Провери дали процесорът на стои в RESET.
Титла: Проблем с PIC18F6620
Публикувано от: Vexorian в Април 30, 2010, 12:23:41 am
Проблема не е в кондензаторите... И на мен ми се е случвало, и то най-често като преди това съм програмирал контролера в "Debug" режим. Друг случай е когато съм пргорамирал нещо случайно в "FOSC". И най-често съм обърквал конфигуриращите битове. В краен случай сигурно има дефект. Въпреки това малко повече инфо като схема и код щеше да е много полезно за анализиране на проблема.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Април 30, 2010, 08:06:33 am
Ами схемата мисля, че няма нужда да я поствам. Има захранване, Pull-Up към +5 на MCLR и на RG3 има резистор със светодиод. Това е цялата схема. Ето и кода:
main.h

#include <18F6620.h>
#device adc=8

#FUSES NOWDT
#FUSES WDT1                     //Watch Dog Timer uses 1:1 Postscale
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV25                   //Brownout reset at 2.5V
#FUSES PUT                      //Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)


main.c


#include "C:\Users\NRJ\Desktop\test\main.h"


void main()
{

   output_high(PIN_G3);
   while(1);
}


Компилаторът е CCS.
Титла: Проблем с PIC18F6620
Публикувано от: CarBeta5 в Април 30, 2010, 11:48:13 am
Към описанието на схемата не си споменал кварцов резонатор. Предполагам, че си го пропуснал само в поста а в схемата си го има.

Всички портове при POR са изходи. В твоя случай трябва да конфигурираш TRISG. Трябва да има и някаква първоначална инициализация на другите регистри които ще ползваш. Ето ти примерна инициализация на PORTG:

CLRF     PORTG
CLRF     LATG
CLRF     TRISG  ; RG0:RG4 --> изходи
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Април 30, 2010, 12:11:56 pm
Да, пропуснал съм го, но го има. 20MHz кварц с 22p кондензатори. TRISG не съм я конфигурирал, защото CCS го прави автоматично. Въпреки това го пробвах и с ръчна конфигурация.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Април 30, 2010, 01:41:09 pm
Добре де! Хайде тогава да вземем да го подкараме най-накрая. Предлагам ти да постъпим так: аз ще питам, ти ще отговаряш, докато най-накрая се получи.
1. Какви са напреженията (спрямо маса) на двата извода на кварца? Измери го с електронен волтметър, не с осцилоскоп.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Април 30, 2010, 04:01:54 pm
Напреженията са приблизително 0.7V
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Април 30, 2010, 05:45:22 pm
0.7 волта ми изглежда ниско.  Очаквах и двете да са в интервала 1.5 - 3.0. Това означава, че или чипът не е читав, или фюзовете му нещо са сбъркани или Бог знае какво. Как разбра, че точно осцилаторът не работи? Ако го пуснеш на въшнен осцилатор или на вътрешен RC работи ли?
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 01, 2010, 12:11:26 am
Вътрешен такт няма (поне така пише в даташийта), а на външен такт (от генератор) не работи, затова реших, че просто не става. И без това като чета форуми се оказва, че е доста бъгав и доколкото разбрах е спрян от производство. Направо го махам и няма да се мъча с него. Слагам си 18F2580 i ще пробвам с него. Той даже има възможност за 4x PLL с вътрешния, което ще рече 32Mhz. Устройва ме перфектно.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 01, 2010, 10:46:36 am
Дай малко информация с какъв компилатор си, какъв дебъгер ползваш, как го ползваш и т.н. Колкото и да е бъгав чипът, поне един изход може да вдигне.
Има ли разлика в положението на дебъгер и ако го пуснеш "да си върви" ?
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 01, 2010, 05:12:27 pm
Пробвах CCS, както MPLAB с асемблер. Програматорът е PicKit2 Clone. Под дебъг режим не мога да го пусна. Работи и програмира със сигурност, защото с други контролери нямам никакви проблеми.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 01, 2010, 05:29:45 pm
А наистина ли програмира и твоя процесор? Ако си сетнал да прави "verify" след програмиране, ще се разбере.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 01, 2010, 06:20:09 pm
Прави си verify без проблеми, както и го прочитам.
Титла: Проблем с PIC18F6620
Публикувано от: CarBeta5 в Май 02, 2010, 10:20:01 am
След като се чете и се пише нормално според мен проблемът си остава в конфигурацията на контролера. Може ли да постнеш каквото си му качвал с MPLAB на асемблер.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 02, 2010, 03:02:32 pm
Ами качвах му единствено template-а:

;******************************************************************************
;   This file is a basic template for assembly code for a PIC18F6620. Copy    *
;   this file into your project directory and modify or add to it as needed.  *
;                                                                             *
;   Refer to the MPASM User's Guide for additional information on the         *
;   features of the assembler.                                                *
;                                                                             *
;   Refer to the PIC18FXX20 Data Sheet for additional information on the      *
;   architecture and instruction set.                                         *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Filename:                                                                *
;    Date:                                                                    *
;    File Version:                                                            *
;                                                                             *
;    Author:                                                                  *
;    Company:                                                                 *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Files Required: P18F6620.INC                                             *
;                                                                             *
;******************************************************************************

LIST P=18F6620 ;directive to define processor
#include <P18F6620.INC> ;processor specific variable definitions

;******************************************************************************
;Configuration bits
;Microchip has changed the format for defining the configuration bits, please
;see the .inc file for futher details on notation.  Below are a few examples.





;   Oscillator Selection:

;******************************************************************************
;Variable definitions
; These variables are only needed if low priority interrupts are used.
; More variables may be needed to store other special function registers used
; in the interrupt routines.

CBLOCK 0x060
WREG_TEMP ;variable used for context saving
STATUS_TEMP ;variable used for context saving
BSR_TEMP ;variable used for context saving
ENDC

CBLOCK 0x000
EXAMPLE ;example of a variable in access RAM
ENDC

;******************************************************************************
;EEPROM data
; Data to be programmed into the Data EEPROM is defined here

ORG 0xf00000

DE "Test Data",0,1,2,3,4,5

;******************************************************************************
;Reset vector
; This code will start executing when a reset occurs.

ORG 0x0000

goto Main ;go to start of main code

;******************************************************************************
;High priority interrupt vector
; This code will start executing when a high priority interrupt occurs or
; when any interrupt occurs if interrupt priorities are not enabled.

ORG 0x0008

bra HighInt ;go to high priority interrupt routine

;******************************************************************************
;Low priority interrupt vector and routine
; This code will start executing when a low priority interrupt occurs.
; This code can be removed if low priority interrupts are not used.

ORG 0x0018

movff STATUS,STATUS_TEMP ;save STATUS register
movff WREG,WREG_TEMP ;save working register
movff BSR,BSR_TEMP ;save BSR register

; *** low priority interrupt code goes here ***


movff BSR_TEMP,BSR ;restore BSR register
movff WREG_TEMP,WREG ;restore working register
movff STATUS_TEMP,STATUS ;restore STATUS register
retfie

;******************************************************************************
;High priority interrupt routine
; The high priority interrupt code is placed here to avoid conflicting with
; the low priority interrupt vector.

HighInt:

; *** high priority interrupt code goes here ***


retfie FAST

;******************************************************************************
;Start of main program
; The main program code is placed here.

Main:

; *** main code goes here ***
clrf PORTG
clrf TRISG
bsf PORTG,3

;******************************************************************************
;End of program

END
Титла: Проблем с PIC18F6620
Публикувано от: hunter в Май 02, 2010, 03:13:46 pm
Не съм се занимавал със серията 18 но не би ли трябвало да му се избират банки като на 16-ките. Имам чуството, че нещо не е както трябва. Междудругити BRA съм го срещъл някой може ли да каже за какво е и дали се подържа от 16ф877а. :D
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 02, 2010, 04:43:10 pm
Гледам ти Main-a и се чудя:
ясно ми е какво прави процесирът в понеделник, вторник и сряда. ама в четвъртък май отива у реката. Нещо като цикълче да се спре няма ли да му сложиш?
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 02, 2010, 06:56:38 pm
Ами този main дори го бях махнал. А са цикъла не се сетих - на CCS го слагам винаги по навик, ама тук не се съм се сетил.
Титла: Проблем с PIC18F6620
Публикувано от: hunter в Май 02, 2010, 08:04:16 pm
braaaaaaaaaaaaaaaaaaaaaaaaaaaaa ако може все пак
Титла: Проблем с PIC18F6620
Публикувано от: CarBeta5 в Май 02, 2010, 11:28:13 pm
Опитай така:


;******************************************************************************
;   This file is a basic template for assembly code for a PIC18F6620. Copy    *
;   this file into your project directory and modify or add to it as needed.  *
;                                                                             *
;   Refer to the MPASM User's Guide for additional information on the         *
;   features of the assembler.                                                *
;                                                                             *
;   Refer to the PIC18FXX20 Data Sheet for additional information on the      *
;   architecture and instruction set.                                         *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Filename:                                                                *
;    Date:                                                                    *
;    File Version:                                                            *
;                                                                             *
;    Author:                                                                  *
;    Company:                                                                 *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Files Required: P18F6620.INC                                             *
;                                                                             *
;******************************************************************************

   LIST P=18F6620      ;directive to define processor
   #include <P18F6620.INC>   ;processor specific variable definitions

;******************************************************************************
;Configuration bits
;Microchip has changed the format for defining the configuration bits, please
;see the .inc file for futher details on notation.  Below are a few examples.





;   Oscillator Selection:    
CONFIG OSC=HS , OSCS=ON
;******************************************************************************
;Variable definitions
; These variables are only needed if low priority interrupts are used.
; More variables may be needed to store other special function registers used
; in the interrupt routines.

      CBLOCK   0x060
      WREG_TEMP   ;variable used for context saving
      STATUS_TEMP   ;variable used for context saving
      BSR_TEMP   ;variable used for context saving
      ENDC

      CBLOCK   0x000
      EXAMPLE      ;example of a variable in access RAM
      ENDC

;******************************************************************************
;EEPROM data
; Data to be programmed into the Data EEPROM is defined here

      ORG   0xf00000

      DE   "Test Data",0,1,2,3,4,5

;******************************************************************************
;Reset vector
; This code will start executing when a reset occurs.

      ORG   0x0000

      goto   Main      ;go to start of main code

;******************************************************************************
;High priority interrupt vector
; This code will start executing when a high priority interrupt occurs or
; when any interrupt occurs if interrupt priorities are not enabled.

      ORG   0x0008

      ;bra   HighInt      ;go to high priority interrupt routine

;******************************************************************************
;Low priority interrupt vector and routine
; This code will start executing when a low priority interrupt occurs.
; This code can be removed if low priority interrupts are not used.

      ORG   0x0018

      movff   STATUS,STATUS_TEMP   ;save STATUS register
      movff   WREG,WREG_TEMP      ;save working register
      movff   BSR,BSR_TEMP      ;save BSR register

;   *** low priority interrupt code goes here ***
MOVLW H'8'
BTFSC EXAMPLE,7
XORWF PORTG
MOVLW H'4'
XORWF PORTG
BCF INTCON,2


      movff   BSR_TEMP,BSR      ;restore BSR register
      movff   WREG_TEMP,WREG      ;restore working register
      movff   STATUS_TEMP,STATUS   ;restore STATUS register
      retfie

;******************************************************************************
;High priority interrupt routine
; The high priority interrupt code is placed here to avoid conflicting with
; the low priority interrupt vector.

HighInt:

;   *** high priority interrupt code goes here ***


      retfie   FAST

;******************************************************************************
;Start of main program
; The main program code is placed here.

Main:

;   *** main code goes here ***
clrf PORTG
clrf    TRISG
CLRF LATG
MOVLW H'88'
MOVWF T0CON
MOVLW H'E0'
MOVWF INTCON
bsf PORTG,3
T1:
INCF EXAMPLE
goto T1

;******************************************************************************
;End of program

      END


... и провери изводи 5 и 6
Титла: Проблем с PIC18F6620
Публикувано от: Vexorian в Май 02, 2010, 11:34:55 pm
Още ли го мъчите процесора? Значи видях ти сорс-а и никъде не виждам зададени конфигуриращите бит-ове, сиг. защото го правиш в самия mplab.. ако е така, провери дали си премахнал тикчето на "Configuration bits set in code". Ако искаш да ги зададеш в кода, Help -> Topics -> PIC18 Config Settings -> PIC18F6620 . Задават се с "config". Освен това MPLAB задава DEBUG бит-а автоматично. Така, че промени проекта от Debug към Release. Казваш, че програматора чете Пик-а? Тогава можеш ли да пост-неш hex файл-а? Пробвай и да пуснеш процесора на собствен осцилатор.

Освен това ми е интересно, каква е развойната среда на този ПИК? Тестова платка или готова? Виж дали всички Vdd/Vss(включително и AVdd и AVss) са захранени.
Титла: Проблем с PIC18F6620
Публикувано от: hunter в Май 03, 2010, 05:57:44 pm
Добре хора аз да питам случайно да са ми невидими мненията сори че ползвам темата на колегата ама го видях това БРА някой от вас компетентните що не се произнесе за какво е така да се прескача вече второ мнение с въпросами е леко пренибрежение смятъм че не е проблем да се напише един ред закакво е и дали го подържа 16ф877а какво толкова. И се извинявам на колегата че му пълня темата ама до сега се някой да беше писал.

За ад не пиша новомнение да пълня, пиша в този отговор благодаря най сетне на CarBeta5 единствения отговорил на въпроса ми и да кажа че аз се бях включил по темата още в първия си пост и междъдругото като скоби попитах и за БРА-то но да не разтягам благодаря за отговора.
Титла: Проблем с PIC18F6620
Публикувано от: CarBeta5 в Май 03, 2010, 07:30:45 pm
BRA - безусловен преход. В 16F877, където инструкциите са само 35, тая инструкция не е валидна. За 16F877 подобна инструкция е GOTO

Не са ти невидими постовете, колега, но са извън темата.
Титла: Проблем с PIC18F6620
Публикувано от: Vexorian в Май 03, 2010, 11:37:33 pm
BRAnch е безусловен преход като GOTO, с тази разлика, че отнема само една дума за изпълнение, и следователно позволява преход само към адреси в интервала [-1024 : +1024] от текущия. Подобни инструкции са:

BZ, BNZ, BC, BNC, BN, BNN, etc.. Който и 18f дейташийт да погледнеш, все ще намериш инструкцийте в края описани подробно. Някои контролери имат допълнителни инструкции в "продължен режим" "Extended instruction set".
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 04, 2010, 10:42:15 am
Вече работя с другия ПИК - 182580. Но тези дни като ми остане време все пак ще пробвам пак и другия с тези препоръки. Платката си е моя и не е нищо особено, както писах - едно захранване и ПИК-а. Всички захранвания са включени. Ще пиша до няколко дена да кажа какво е станало.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 13, 2010, 04:23:12 pm
Колеги, с две думи тоя PIC няма да ми свърши работа се оказва. Част от целта на проекта е да се направи поне 32bit таймер (а може и 64bit), който да отмерва с възможно най-малко закъснение. Имам предвид, че ако го направя софтуерно с препълване на единия таймер да пуска импулс към другия (2х16b) се получава известно закъснение, което е недопостимо. Единият вариант е да го направя с Compare модула. Мислех си обаче дали няма да е най-добре да ползвам PIC, който има 32bit таймер. Прегледах сайта на Microchip с всички PIC18 и PIC24, но не намерих такъв. Някой срещал ли е подобен контролер? Знам, че dsPIC-овете имат, но за целта на проекта не е оправдано да ползвам такъв (поне на този етап). Моля, ако някой е по-навътре с PIC-овете и се е занимавал професионла да ми пише на ЛС, ако има време да ми обърне внимание, за да му обясня за какво става въпрос и да даде някой съвет евентуално.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 13, 2010, 08:44:23 pm
Младежо, 32 битов таймер се прави даже и с 8 битов. Е, софтуерно се добавя брояч, с който се увеличава периодът. А това за "закъснението", е много интересна работа. Ако е направено както трябва, всичко си става кварцово точно.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 13, 2010, 10:02:03 pm
Не исках да пиша в темата, за да не я спамя допълнително, но явно е по-добре да го направя. Забавянето ми бърка доста работите, защото ще се отчита датата и времето на постъпване на импулси и с точност до 100ns (ако се постигне по-ниска - още по-добре). При положение, че работя на 40MHz това означава един такт - 100ns. Оттам нататък всяка софтуерна намеса ми внася допълнителна грешка, която е сериозна. Поразрових се малко и като че ли засега се спрях на PIC24 серията. Там таймери 2 и 3 могат да работят като един 32 битов, освен това се работи на 20 или 30 MIPS-a, което мисля че ще даде задоволителен резултат. Опитах се да почета малко повече за тази серия, но Microchip явно имат проблем със сайта и ми изкарва Error, така че някой може ли да ми каже има ли голяма разлика с 8 битовете PIC-ове? То разлика е ясно, че има, но дали има нещо по-съществено, което трябва да имам предвид. Програмата ще я направя на Microchip C30 (нещо CCS май не ми допада особено).
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 13, 2010, 10:21:05 pm
Не знам какво космическо приложение спряташ, но както и да е.
100ns са на границата на това, което можеш да постигнеш с PIC18Fxxxx.
За решаването на тази задача се прави следното:
1. Пуска се един таймер да брой на 10 MHz ( то толкова си може ) с автоматично презапускане.
2. При препълване на таймера получаваш прекъсване. Броейки прекъсванията, знаеш колко време от по 65536 * 100ns е минало от началото на броенето на системата ти до началото на броенето на 16-битовоя таймер.
3. Импулсите, които искаш да следиш, се подават на входа за Capture на таймера. При фронт на тествания сигнал се получава прекъсване ( друго ), а в един регистър се записва стойността на брояча в момента на пристигане на фронта.
64-битов таймер не ти трябва. При 10 Mhz на входа до 21 дек 2012 няма да можеш и 48-битов да си запълниш ( 16 хардуерни + 32 софтуерни бита ).
Има и няколко "византийски момента", но ще ти ги оставя ти да се справиш с тях.
 Не ми е ясно каква "софтуерна грешка" ще натрупаш?
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 14, 2010, 09:04:52 am
Ами грешката ще е от софтуерната обработка на прекъсванията. По-горе незнам защо 64bit съм писал - имал съм предвид 48 :)

ПП. Грешка ще ми възникне и в самия брояч - закъснението от първия до последния тригер. И още други грешки и за това трябва да ги сваля до минимум. А тази технология наистина, че може да се нарече космическата, защото служи за улавяне и регистриране на космически частици :)
Титла: Проблем с PIC18F6620
Публикувано от: CarBeta5 в Май 14, 2010, 01:36:09 pm
Доколкото разбирам искаш на всеки 100ns да се проверява за импулс, но нямаш време за реакция ако постъпи такъв импулс. Според мен, ако правилно съм разбрал, ти трябва или двуядрен процесор или да се примириш, че докато се записват данните, каквито и да са, може да пропуснеш някой и друг импулс.
Титла: Проблем с PIC18F6620
Публикувано от: Vlado в Май 14, 2010, 03:20:31 pm
А защо не ползвате хардуерен брояч реализиран със ТТЛ http://www.kpsec.freeuk.com/components/74series.htm#74163 синхронни двоични броячи(серия ALS) по-бързо от това няма http://scitec.uwichill.edu.bb/cmp/online/P10F/counters1.htm
процесора само да чете брояча и софтуерно може да обработва препълването му.

ето и откъде може да се намерят стандартни TTL синхронни броячи серия LS http://mario.bg/shop/default.php?cPath=2_20

Цитат на: "IbT"
Колеги, надявам се някой да може да помогне. Не мога да подкарам генератора на този PIC. С 20MHz кристал е, кондензаторите са 22р, но пробвах и с 15р. Като тип съм го задал HS. Ползвам CCS, пробвах и в MPLAB-a на асемблер, но не ще да тръгне и това е. Захранването ми е малко импровизирано, но е само за пробата. Състои се от един диод само изправителен, 7805 и два електролитни кондензатора (един на входа и един на изхода) по 1000uF. Възможно ли да е толкова капризен към него или е някакъв друг проблема?

На един PIC-микроконтролер, генератора му не се пускаше, а беше шунтиран с два керамични кондензатора, както е по описание. Случайно се оказа, че ако единия кондензатор се откачи генерациите се появяват - Така, че пробвайте само с един кондензатор 15пФ.
Титла: Проблем с PIC18F6620
Публикувано от: kotaraka в Май 14, 2010, 05:53:24 pm
Това с брояча ми харесва като идея.
Може да го пробвам при някой мой проект.
Титла: Проблем с PIC18F6620
Публикувано от: emil74 в Май 14, 2010, 06:42:26 pm
Вържи някъде един светодиод и кажи къде. Ще ти пратя един hex и така ще разбереш дали ти работи контролерът.
Ама пак ще се заям за захранването. Ти на входа ли бодна 47uF? На входа 470uF, на изхода - 10uF. И тогава кажи къде ти е диодът, че да направим мигалка.
После ще получиш и асемберския файл, откъдето да си свалиш конфигурацията и ще имаш база за начало.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 14, 2010, 07:55:27 pm
Колеги, не се мъчете повече с тоя PIC и аз го захвърлих и сега съм взел PIC24 и ще пробвам с него. Там си пускам двата таймера като един 32bit и мисля, че ще е достатъчно бързо.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 14, 2010, 09:47:04 pm
Цитат на: "Vlado"
А защо не ползвате хардуерен брояч реализиран със ТТЛ ....


Ужас! Това същото ( дори доста по-развито ) го има в почти всеки микроконтролер. Не виждам защо трябва да се ползва външно. Не е ли доста по-елегантно да се прочете дейташитът и да се направи както трябва.
Титла: Проблем с PIC18F6620
Публикувано от: Vlado в Май 14, 2010, 10:56:17 pm
bateAz напълно съм съгласен съм с вас.

А ако става въпрос за много бързо от порядъка на наносекунди и съвременно решение, ще трябва да се използват програмируеми логики FPGA (http://lark.tu-sofia.bg/asic/index.htm).

Доколкото са ми обяснявали за космическите лъчи (http://translate.google.bg/translate?hl=bg&langpair=en|bg&u=http://imagine.gsfc.nasa.gov/docs/science/know_l1/cosmic_rays.html)(космическата радиация (http://en.wikipedia.org/wiki/Cosmic_ray))/радиационен фон (http://nauka.bg/index.php?mod=front&fnc=pub_page&pid=11055)/. Процеса е случаен и няма как да се предвиди кога ще се получи импулс(частица). И самия детектор след отчитане на импулс има временна нечуствителност за нови импулси. Затова се слагат два и повече детектора, а изходите им се сумират със лог. схема "ИЛИ" и се подават на брояча.
 Интересно от физична гледна точка е да се следи едновременното настъпване на лавинно събитие(лог. схема "И"). Когато два или повече детектора разположени на по-голямо разстояние един от друг се активират в един и същ момент от време. Това се случва при падане на високо заредени частици, които се разпадат в атмосферата и създават вълна от частици (http://bgnauka.com/index.php?mod=front&fnc=pub_page&pid=10501), който едновременно активират детекторите в дадена зона.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 15, 2010, 09:24:05 am
Точно за такива високоенергийни частици става въпрос - т.нар. мюони.   А схемите "И" и "ИЛИ" в случая се наричат схеми за съвпадение и съответно - антисъвпадение.
Титла: Проблем с PIC18F6620
Публикувано от: bateAz в Май 15, 2010, 09:48:26 am
Какъв е минималният интервал от време, за което един сензор може да даде 2 импулса? Т.е. какво е времето за възстановяване на сензора ? Колко сензора има в системата ?
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 15, 2010, 06:25:19 pm
Самата система със детектори, селектори и т.н. е направена вече от някакви физици. Моята работа е да направя само регистрацията на импулсите. Все още не е ясно обаче дали ще се регистрират един или два сигнала, но това не е голям проблем, защото очакваното количество събия е около 30-50 за секунда. Миналата година разработвах един трансимпедансен усилвател за сваляне на сигнал от фотоволтаичен детектор, но така и не стигнах до лабораторията да го пробвам. По тази причина си мисля, че самите детектори ще са от този тип. Колкото до броя на детектори - поне 2 със сигурност, а може и да са 4. Колкото повече, толкова по-добра филтрация ще има. Лошото е, че това ми е проект, който ми върви от миналата година (с различни допълнения, не че го влача) и сега преминава в дипломно задания. Наред с това е реален проект, който ще влезе в експлоатация в различни лаборатория, а ръководителят ми все още не е ясно с подробностите. Засега целта ми е да регистрирам един импулс с дадената точност и да го превържа към GPS по дата час. Оттам нататък ще чакам да се изяснят работите за да продължа.
Титла: Проблем с PIC18F6620
Публикувано от: IbT в Май 15, 2010, 06:31:41 pm
Колкото по въпроса за самия сензор, честно казано и аз не съм напълно неясно, защото технологията е сравнително нова (специално за този тип измервания). На практика представлява фотоволтаичен панел. Точната стойност на мъртвото време не я знам, но става въпрос за няколко стотин наносекунди (ако не и по-малко - по непотвърдена информация). Това става въпрос за мъртвото време на самия панел, без да включва същото на последващата електроника. При тест за изходния сигнал от детектора той се указа с амплитуда между 100nА и 1uA и продължителност горе-долу от същия порядък (под 1us). Усилвателя, който правих беше с променлив коефициент на преобразуване - 5*10^6, 5*10^3 и 500. Почти няма никаква информация за този тип детектори (поне аз много трудно намерих и то някакви презентации и общи приказки). Ако на някой му е по-интересно мога да му пусна на пощата една презентация от миналата година на семинара по Ядрена електроника в Приморско.
Титла: Проблем с PIC18F6620
Публикувано от: Vexorian в Май 21, 2010, 01:10:01 pm
Така нека внеса малко светлина по въпроса.

Първо като ти трябва по-бърз процесор, използвай примерно 18f4550, който работи до 48MHz, за какво се хвърляш в неизвестната територия на 16-битовите PIC24 микроконтролери толкова бързо?

Второ ако смяташ със C да направиш точен брояч, та да цепиш наносекундите, дума да не става(да не говорим, че ти работиш със CCS, който според мен е СУПЕР неефикасен компилатор, а и не използва ANSI C). Задължително на асемблер!

Трето, не разбирам какво толкова ти пречат тези "софтуерни закъснения", като ти лесно можеш да ги компенсираш ако седнеш за 1-2 дена и си настройш брояча да работи като хората. Самото повикване на прекъсванията е 4-5 инструкции ако не се лъжа. Сигурно обаче имаш нещо друго в предвид.

В крайна сметка проявих интерес към проекта ти. Ако можеш да ми дадеш малко повече подробности ще съм ти благодарен. Ако искаш мога и да ти помогна с програмирането. Пиша на асемблер вече 2 години.