Отговори на тема  [ 5 мнения ] 
PIC16x -> SPI Master0,0 -> MCP3201 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение PIC16x -> SPI Master0,0 -> MCP3201
Е дойде и тоз момент да ползвам SPI , като цяло елементарна работа и наистина. И по законите на мърфи точно на елементарното нещата запецнаха. Нямам връзка ghrrrr :evil:

По темата:

почнах с 16F819-I/P , викам си да не би да е от мцу-то ,сложих 16F877 с леки изменения , все пак SPI-а там е на PORTC.

Друго MCP3201 - ADC 12bit , 1ch, SPI

Какво разбрах от datasheet: къде какво да се включи и как да си комуникирам:

CS(active LOW)

spi mode 0,0 clock idles low (това е което ползвам)
или
spi mode 1,1 clock idles high

MCP3201 sends data out on falling edge ! (т.е high to low , нали ?)

(и съм казал на PIC-a Transmit occurs on transition from active to Idle clock state (BIT6 SSPSTAT = 1))

--------

На базата на това (връзките са ми ок , всичко е вързано където трябва):

Момент , видях си недоглеждане - сменил съм само PORTC с PORTB, без да променя номера на бита/крака с този на 877 , оправих го , тествах , сега запецва и чака BUSYFLAG-a да падне, че е свършило получаването :(

Код:

SPI_INIT:

   BANK1

   bsf      TRISC,4   ;   SPI IN
   bcf      TRISC,5   ;   SPI OUT
   bcf      TRISC,3   ;   CLK
   bcf      TRISA,1   ;   CS
   
   movlw   B'01000000'
   movwf   SSPSTAT

   BANK0

   movlw   B'00100010'
   movwf   SSPCON
;
   return
;
;


Код:

#define   CS   PORTA,1

ADC:

   BANK0

   bsf      CS
   bcf      CS

   nop
   nop

; 200ns trqbwat na MCP3201 " da wyzprieme " promqnata na CS

   movlw   0x01
   movwf   SSPBUF

; С ICD2 следя какво става , но след movwf SSPBUF е равен на 0xFF, вместо 0x01 , което в случея не е проблем
; защото това се прави само за да задейства комуникацията , защото ПИК-а се явява мастър, поне така разбрах  ,че  трябва да бъде

   BANK1

   btfss   SSPSTAT,BF
   goto   $-1
   
   BANK0

   movfw   SSPBUF
   movwf   TEMP1

   movlw   0x01
   movwf   SSPBUF

   BANK1

   btfss   SSPSTAT,BF
   goto   $-1

   BANK0

   movfw   SSPBUF
   movwf   TEMP2

   bsf      CS
;
;
   bcf      SSPCON,SSPEN
;
;
   return
;
;


Това, което получавам е винаги 0xFF :-(
VRef Ми е 1.226 а при подаваният ~1mV от термодатчик (termocouple type K 20-30C = ~1.2mV) би трябвало да е или 0 или 1 (десетично).

идеи :?

edit: е как ще работи като не съм захранил ADC-то.
То е вързано, ама не му е подадено 5в ... :goodman: :yawinkle: :rolleyes:

засега всичко е на 6

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Вто Яну 03, 2006 8:40 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение 
Засякох 11,97265625mv при 12mv идващи от термодвойката :-)

Или B'000000101000' = D'40' -> 40/4096 * 1.226V * 1000 = X mV :-)

:supz: :partyman: :weedman:

edit: т.е стъпката ми е 0,29931640625 mV ~ 0.3mV :-) което за опитите ме у-ва напълно.

Само се чудя защо след

movlw 0x01
movwf SSPBUF

SSPBUF не е 0х01, а друго.

Примерно сега , когато работи както си му е реда е все 0x00 :? явно веднага се запълва със полученият отговор от АЦП-то

Защото засега 4-те най-големи MSB са ми все 0(нула), които се подават като 1вият байт от АЦП-то:

0000хххх

хххх = 4-те най-... MSB

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Вто Яну 03, 2006 9:12 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 2:35 pm
Мнения: 6
Мнение 
а бе прятел от къде мога да го намеря това MCP3201 че се отрепах да го търся


Пон Юли 09, 2007 2:42 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
wwwroot написа:
а бе прятел от къде мога да го намеря това MCP3201 че се отрепах да го търся


http://comet.bg


Пон Юли 09, 2007 3:31 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 2:35 pm
Мнения: 6
Мнение 
blagodarq :)


Пон Юли 16, 2007 3:03 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни