| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Хардуерен i2c с CCS http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=18247 |
Страница 1 от 2 |
| Автор: | ToHu [ Вто Мар 01, 2022 11:21 pm ] |
| Заглавие: | Хардуерен i2c с CCS |
Пускам тук един пикльо 16F721, има вграден i2c, ама нещо се пъни да работи с на CCS-а функциите, та се чудя някой дали го е борил. В софтуерен режим i2c-то си пее, но ако му кажа да използва хардуера, #use i2c(Master,sda=PIN_B4,scl=PIN_B6,force_hw), и забива още на i2c_start(). На CCS дебъгера май умря, имам Pickit 3, но CCS си търси някакви жабешки dll-ти и няма подкарване, та работя без дебъг. Това което става според мен е че зацикля на 008F .................... i2c_start(); 008D: BSF 03.5 008E: BSF 11.0 008F: BTFSC 11.0 0090: GOTO 08F Гледам листинга не виждам да сменят адресирането, и това ръчка нейде в OSCCON регистъра, той е на адрес 11 в банка 1, изглежда ми на поредната сбъркана функция на CCS-а, но ако някой го е подкарвал да каже как го е вразумил. |
|
| Автор: | Desert Leo [ Сря Мар 02, 2022 10:19 am ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
i2c_init(1); // ? |
|
| Автор: | Stoimen [ Сря Мар 02, 2022 2:58 pm ] | |||||||||
| Заглавие: | Re: Хардуерен i2c с CCS | |||||||||
Ползвал съм i2c със вградените функции на CCS-а, но на 18f452. Сега пробвах със 16ф721 и 16ф690 - и за двата генерира този неадекватен код. Пробвах и за 18ф452 и там нещата изглеждат добре.
FC5.0 е SEN: START Condition Enabled/Stretch Enabled bit |
||||||||||
| Автор: | ToHu [ Сря Мар 02, 2022 4:28 pm ] | |||||||||
| Заглавие: | Re: Хардуерен i2c с CCS | |||||||||
Ами и така мисля го пробвах и със скорост го пробвах. За тоя случай е все тая дали ще е хардуерния или не, но в следващият проект вече трябва да е хардуерният, там ще е слейв и софтуерното i2c ще изяде ненужно много ресурс. Ще го мъча, пък ако не стане ще го напиша, няма да е първия път |
||||||||||
| Автор: | Desert Leo [ Сря Мар 02, 2022 5:00 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Какво е свързано на i2c-то? Пробвай SMBUS опцията в #use i2c(). Не е лошо да питаш и в CCS форума... |
|
| Автор: | ToHu [ Сря Мар 02, 2022 5:10 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
В момента има CAP1293, но той си отговаря чинно, в момента в който махна да го форсва хардуерно започва да си работи. Ще му отделя време ама няма да е сега. Аз друго си мисля, д ане би да е правена библиотеката да поддържа слейв режим, и това i2c_start да не са го донаписали. |
|
| Автор: | Desert Leo [ Сря Мар 02, 2022 6:04 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Никога не съм имал проблем с i2c_start(). Изкопах един проект с PIC16F1825 и MMA8652: #use i2c(master, slow, sda=PIN_C1, scl=PIN_C0, smbus, force_hw) i2c_init(TRUE); .................... i2c_start(); 030C: MOVLB 04 030D: BSF 16.0 030E: BTFSC 16.0 030F: GOTO 30E |
|
| Автор: | ToHu [ Сря Мар 02, 2022 6:40 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Ами ами пробвах същия инит със същите #use но листинга е все същия, 11 е TMR2, 91 обаче е OSCTUNE. В твоя код виждам че проверява на таймер 1 младшия бит, нещо не им е наред в адресите ми се чини. |
|
| Автор: | Stoimen [ Сря Мар 02, 2022 6:51 pm ] | |||||||||
| Заглавие: | Re: Хардуерен i2c с CCS | |||||||||
Дааа за 16F1825 се генерира коректен код. #use i2c(Master,Fast,sda=PIN_C1,scl=PIN_C0,force_hw)
|
||||||||||
| Автор: | Desert Leo [ Сря Мар 02, 2022 7:19 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Освен проба с друга ревизия на компилатора, за друго не се сещам. Имах преди време случай - попадам на нова ревизия и ъпдейтвам, след което компилиран със старата ревизия код дава множество грешки при компилация. |
|
| Автор: | ToHu [ Сря Мар 02, 2022 8:38 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
За тоя ще го карам в софтуерен режим, не губя нищо, другата седмица като почна другия проект ще го боря вече по-сериозно, но там е друг чип току виж компилирало вярно. |
|
| Автор: | slav4o.com [ Сря Мар 02, 2022 8:49 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Е предполагам не е сложно да се напишат нови функции за хардуерният модул. |
|
| Автор: | ToHu [ Сря Мар 02, 2022 9:44 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Да не е, ако не работи на другия точно това ще направя, то не е кой знае какво, за този директно си казвам мързи ме За другия пък проект чакам пдф-и на едни лед рингове, и там дърво. Та за момент спирам до тук докато не ми дойдат пратчиците, пък сега подхващам ЕРП-то, че 2 години добрите мексиканци не са го пипвали, сега трябва да въведа ред в нещата |
|
| Автор: | itso.t [ Сря Мар 02, 2022 10:15 pm ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Прегледах по диагонал инклуд файловете на XC8 за 16F721. И за него, и за 16F720 няма и ред за I2C. За други пикове има. Да няма някаква бъгавиня в периферията и затова да са го канселирали? |
|
| Автор: | ToHu [ Чет Мар 03, 2022 12:55 am ] |
| Заглавие: | Re: Хардуерен i2c с CCS |
Ами знам ли, едва ли. По скоро проблема е в CCS-а, няма да е първия. Преди години, доста мъчих някакъв onewire пак с библиотека на CCS, вече не помня ама имаше някаква простотия в кода, дърво някакво имаше и библиотеката им за LCD контролери, и там забиваше в някакъв while. Случвало ми се е и грешни дефиниции. Може да проверя какво има в дефинициите за 721,ама не е в 17F721.h файла, друг файл имаха някъде по спомен, ама вече не поня и къде. Аз от години използвам основно силабси и почвам да забравям кое къде е в ccs-а |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|