Отговори на тема  [ 38 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
I2C м/у контролер на 3.3В и сензор на 5В 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Значи общо пулъпите са ти по 5к. Би трябвало да е ОК.


Пет Май 10, 2013 8:47 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Ясно, но очевидно имам някакъв проблем. Като пусна скенер на I2C, той ми открива сензора на правилния адрес, но веднага след това, когато опита на следващия адрес(при търсенето), командата i2c_stop() не може да се извърши. И съответно блокира там

_________________
www.elkran.com


Пет Май 10, 2013 9:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Имаш контролер, дебъгер, нямаш една памет. Купи си. Така или иначе и2ц библиотека трябва да направиш/намериш и тестваш. Едва ли този контролер ще го ползваш само и единствено в комплект с този сензор. Ако искаш спешни резултати - просто работиш повече, не прескачаш етапи - никой не почва къща от втора плоча.


Пет Май 10, 2013 9:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Команда стоп се издава в края на трафика, не след прочитане на един байт/дума - или аз не те разбирам. Какво значи "на следващия адрес" ? Следващия хрдуерен? Какво значи "открива сензора на правилния адрес" ? Че правиш старт, адресен байт и опитваш стоп? Изглежда използваш хардуерен и2ц контролер, колко байта му даваш да прочете на дадения хардуерен адрес?
Потретвам за паметта. Това е "стандартен" чарк, това си има достойнства.


Пет Май 10, 2013 9:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Скенерът изпробва набор от адреси. За всеки адрес изпълнява следното:
Код:
i2c_start(); //започва комуникация
status = i2c_write(address);  // чака потвърждение
i2c_stop(); // прекратява



След като намери сензора, адресът се инкрементира и започва тази процедура отново, но този път блокира при i2c_stop().

Дали става дума за някакъв хардуерен проблем или аз бъркам нещо?
ПП: Същият сензор си работи на 6, когато контролерът е на 5В без MOSFET моста!

_________________
www.elkran.com


Пет Май 10, 2013 9:19 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Цитат:
Същият сензор си работи на 6, когато контролерът е на 5В

Със същия контролер и библиотека?


Пет Май 10, 2013 9:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Е не! Единият е 18F2550(на 5В), другият 24FJ64GA306. Кодът е кажи речи един и същ.

_________________
www.elkran.com


Пет Май 10, 2013 10:25 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
По скоро си пропуснал нещо в настройката на периферията,
почти не съм работил с Пик , но съм се зачитал. Разликата между 8 и 16 битовите си е сериозна, не само при Пик.


Пет Май 10, 2013 10:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
stefan63 написа:
По скоро си пропуснал нещо в настройката на периферията,
почти не съм работил с Пик , но съм се зачитал. Разликата между 8 и 16 битовите си е сериозна, не само при Пик.


Ако ползваш микрочипските библиотеки, разлика в кода няма или ако има е съвсем малка. Повечето библиотеки са едни и същи, от PIC16 та до PIC32. А самата периферия е например в 3-4 варианта като хардуер, и в една и съща фамилия чипове (например PIC24), може да има 2 варианта.

Аз за простата периферия, какъвто е случая, обикновено си пиша мои библиотеки. Едно че така се пести място, и второ че се избагва дебъгване на чужд код, пък и се печели скорост обикновено.


Съб Май 11, 2013 12:38 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Кодът съм си го писал сам и работи на 18F2550. Ето малко повече информация какво се случва тук: сензорът изисква да се изпрати адрес на регистър, от който после да се прочетат данните. Пускам си програмата, иницализирам сензора. Изпращам адреса и прочитам данните.
Ето код:
Код:
   i2c_start();
   status=i2c_write(sensorAddressRead);
        data=i2c_read(1);


Втори път опитвам да прочета данните, но този път програмата ми блокира. Успешно изпраща адреса (status=i2c_write(sensorAddressRead);), но когато трябва да почете информацията достига до тук:
Код:
  0246  AE2208     btss.b 0x0208,#1
  0248  37FFFE     bra 0x000246


До колкото ми е известно това трябва да е някаква функция за изчакване, която си е стандартна за I2C. Това е код, който ми го генерерира компилатора. Някаква идея какво всъщност става и защо забива така??

_________________
www.elkran.com


Съб Май 11, 2013 9:43 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Много неща ти куцат в обясненията.
Отначало пускаш функция старт, после запис на адрес (не разбрах къде се предава байта с хардуерен адрес, тип на у-вото и флага за запис). После изведнъж има четене. На асемблерско ниво преди четенето трябва да има рестарт на бъса, отново "хардуерния" байт с флаг за четене.Дали това го прави майкрочипската библиотека - не знам, май и ти не знаеш.
Съмнявам се , че постановката ти с 18Ф действително е работела.

Показваш асемблерска команда , която чака нещо на адрес 208хекс. Какво има там, прочете ли?


Съб Май 11, 2013 9:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Да, не твърдя, че мога да обяснявам. Кодът, който съм написал е на С, но има т. нар. Disassembly list, в който мога да видя как точно къмплайера ми е превел командите. От там съм направил извадката, за да се види къде точно забива програмата. Относно флагове и т. нат. те се предават преди тази част, но при тях няма проблем, за това не съм ги дал.

Оправих го! Благодаря на всички за помощта. Особени благодарности на ike. В момента съм със схемата, която той предложи - без мосфети, само пулъпите към 3.3В и с някой корекции спрямо програмата за 5 волтовия се получиха нещата.
Поздрави!

_________________
www.elkran.com


Нед Май 12, 2013 8:07 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
И к'во с MOSFET-ите не работи така ли :?

_________________
Най-опасният враг на истината и свободата е мнозинството.


Нед Май 12, 2013 8:25 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Много си потаен, не че обясняваш лошо.
Какви корекции направи в програмата?


Нед Май 12, 2013 8:55 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: I2C м/у контролер на 3.3В и сензор на 5В
Ами добавих FORCE_SW към инициализацията на I2C. Когато направя схемата с МОСФЕТ-и(използвам IRF830), дори и с тази опция пак не работи и блокира....

_________________
www.elkran.com


Нед Май 12, 2013 9:06 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 38 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

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


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

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