Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Управление на MCP42100 с PIC16F84A
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=228
Страница 1 от 2

Автор:  PIC [ Вто Дек 14, 2004 1:35 pm ]
Заглавие:  Управление на MCP42100 с PIC16F84A

Здравейте , от доста време се опитвам да управлявам програмируемия потенциометър на Микрочип с пик-а.
Изводите на потенциометъра са включени като делител ,
а с измервателния уред измервам все едно и също показание.
Поогледах внимателно командите , които изпращам и не забелязах грешка. Какво ли може да става ?

Автор:  Mozfet [ Вто Дек 14, 2004 1:54 pm ]
Заглавие: 

Дай да видим програмата ти. Доколкото помня трабваше да се прати 0х00 преди желаната стойност

Автор:  PIC [ Вто Дек 14, 2004 3:30 pm ]
Заглавие: 

;********************* DEFINE I/O PINS **********************
#define SCK PORTB,3
#define SI PORTB,2
#define CS PORTB,1
#define RS PORTB,0
;------------------------------------------------------------
Write_0 bcf SI
bsf SCK
bcf SCK
return
;------------------------------------------------------------
Write_1 bsf SI
bsf SCK
bcf SCK
return
;------------------------------------------------------------
Send_Comand movlw B'11011111'
movwf Comand_Reg
movlw D'8'
movwf Counter
refresh_1 RLF Comand_Reg,f
btfss STATUS,C
call Write_0
btfsc STATUS,C
call Write_1
decfsz Counter,f
goto refresh_1
return
;------------------------------------------------------------
Send_Data movlw D'8'
movwf Counter
refresh RLF Reg_Data,f
btfss STATUS,C
call Write_0
btfsc STATUS,C
call Write_1
decfsz Counter,f
goto refresh
return
;------------------------------------------------------------
main bcf SCK
bcf CS
movlw D'50'
movwf Reg_Data
call Send_Comand
call Send_Data
sleep_1 nop
goto sleep_1
END


На входа SHDN е подадено постоянно неактивно ниво "1"!

Автор:  Гост [ Чет Дек 23, 2004 2:21 pm ]
Заглавие: 

Âïðî÷åì íå íàìåðèõ â äàòàøèéòà îïèñàíèå íà òðàíñôåðà íà äàííè ò.å äàëè äàííèòå ñå ïðåäàâàò îò íàé-ìëàäøèÿ áèò èëè îáðàòíî?

Автор:  Wise [ Чет Дек 23, 2004 3:48 pm ]
Заглавие: 

Пробва ли да сложиш няколко "nop" между "bcf SCK" и "bsf SCK" и обратно?
смътно си спомням за подобен проблем с портовете - наложи се по-бавно да ги клатя
И да не си забравил да ги дефинираш като изходи

Автор:  Mozfet [ Чет Дек 23, 2004 5:39 pm ]
Заглавие: 

Здр.
При Spi се предава първо най-старшия бит.
Пробвай да сложиш BSF CS след call Send_Data.

Автор:  PIC [ Пон Дек 27, 2004 10:22 am ]
Заглавие:  Значи...

Действително предаването на данни започва от най-старшия бит. В даташийта са дадени времена на продължителност на импулса от порядъка на 150nS , при мен честотата е 4МНц и
съответно периода 1uS така , че мисля проблема да не е от там. Подкарах го до някаде , НО става така , че :
- нулирам регистъра с данни и го изпращам , след това измервам с уреда делителя , който съм реализирал и изхода е нула /до тук добре/.
- увеличавам данните с единица , а в изхода вече имам половината напрежение от делителя , при следващите три инкрементирания на регистъра отивам до захранващото напрежение на делителя /а потенциометъра е на 256 нива???/.
- при следващо инкрементиране в средната точка от делителя пак имам нула и всичко пак започва от начало , а стойността на регистъра е само 5 или 6.
Колкото до "bsf CS" с неговото нулиране се изпращат контролния регистър и този за данни и след това се вдига в единица т.е трябва да са минали 16 такта /това го бях пропуснал/ !

Автор:  PIC [ Пон Дек 27, 2004 1:33 pm ]
Заглавие:  STOP

Сега вече тръгна. Имах една логическа грешка и на дебъгера веднага лъсна. Единствения пропуск беше "bsf CS" след изпращането на данни. Благодаря за мненията!

Автор:  Mozfet [ Пон Дек 27, 2004 3:15 pm ]
Заглавие: 

Пак заповядай :)
Имаш възможност малко да оптимизираш кода. Ако се обръщаш към една и съща подпрограма "Send_byte" за Command_byte и Data_byte ще спестиш около 10 реда асемблер.

Автор:  Реконструктор [ Пон Дек 27, 2004 4:26 pm ]
Заглавие: 

Извинявам се за намесата, ама мога ли да си сложа такива потенциометри на усилвателя, вместо оригиналните механични? :)

Автор:  Ники [ Пон Дек 27, 2004 5:16 pm ]
Заглавие: 

що да не можеш, лепи и програмирай :)

Автор:  bateAz [ Пон Дек 27, 2004 5:40 pm ]
Заглавие: 

изкривявания

Автор:  ToHu [ Пон Дек 27, 2004 6:42 pm ]
Заглавие: 

А има и някои дето мног гадно препукват като сменят стойността си ......т.е. те не препукват, а усилвател с тях препуква ..... :)

Автор:  Mozfet [ Пон Дек 27, 2004 6:50 pm ]
Заглавие: 

Цифровите пот имат съпротивление на Wiper 50-150 ома(завсиси за какво съпр. ти е пот-а) . Т.е. не можеш да получиш 0 ома, винаги ще имаш най-малко 50 .

MCP4xxxx за звук не стават.

Автор:  Реконструктор [ Пон Дек 27, 2004 6:59 pm ]
Заглавие: 

Гадост. А кои стават? :)

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/