|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:38 am
I2C м/у контролер на 3.3В и сензор на 5В
| Автор |
Съобщение |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Значи общо пулъпите са ти по 5к. Би трябвало да е ОК.
|
| Пет Май 10, 2013 8:47 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Ясно, но очевидно имам някакъв проблем. Като пусна скенер на I2C, той ми открива сензора на правилния адрес, но веднага след това, когато опита на следващия адрес(при търсенето), командата i2c_stop() не може да се извърши. И съответно блокира там
_________________www.elkran.com
|
| Пет Май 10, 2013 9:00 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Имаш контролер, дебъгер, нямаш една памет. Купи си. Така или иначе и2ц библиотека трябва да направиш/намериш и тестваш. Едва ли този контролер ще го ползваш само и единствено в комплект с този сензор. Ако искаш спешни резултати - просто работиш повече, не прескачаш етапи - никой не почва къща от втора плоча.
|
| Пет Май 10, 2013 9:02 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Команда стоп се издава в края на трафика, не след прочитане на един байт/дума - или аз не те разбирам. Какво значи "на следващия адрес" ? Следващия хрдуерен? Какво значи "открива сензора на правилния адрес" ? Че правиш старт, адресен байт и опитваш стоп? Изглежда използваш хардуерен и2ц контролер, колко байта му даваш да прочете на дадения хардуерен адрес? Потретвам за паметта. Това е "стандартен" чарк, това си има достойнства.
|
| Пет Май 10, 2013 9:09 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Скенерът изпробва набор от адреси. За всеки адрес изпълнява следното: След като намери сензора, адресът се инкрементира и започва тази процедура отново, но този път блокира при i2c_stop(). Дали става дума за някакъв хардуерен проблем или аз бъркам нещо? ПП: Същият сензор си работи на 6, когато контролерът е на 5В без MOSFET моста!
_________________www.elkran.com
|
| Пет Май 10, 2013 9:19 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Със същия контролер и библиотека?
|
| Пет Май 10, 2013 9:45 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Е не! Единият е 18F2550(на 5В), другият 24FJ64GA306. Кодът е кажи речи един и същ.
_________________www.elkran.com
|
| Пет Май 10, 2013 10:25 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
По скоро си пропуснал нещо в настройката на периферията, почти не съм работил с Пик , но съм се зачитал. Разликата между 8 и 16 битовите си е сериозна, не само при Пик.
|
| Пет Май 10, 2013 10:35 pm |
|
 |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Ако ползваш микрочипските библиотеки, разлика в кода няма или ако има е съвсем малка. Повечето библиотеки са едни и същи, от PIC16 та до PIC32. А самата периферия е например в 3-4 варианта като хардуер, и в една и съща фамилия чипове (например PIC24), може да има 2 варианта. Аз за простата периферия, какъвто е случая, обикновено си пиша мои библиотеки. Едно че така се пести място, и второ че се избагва дебъгване на чужд код, пък и се печели скорост обикновено.
|
| Съб Май 11, 2013 12:38 am |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Кодът съм си го писал сам и работи на 18F2550. Ето малко повече информация какво се случва тук: сензорът изисква да се изпрати адрес на регистър, от който после да се прочетат данните. Пускам си програмата, иницализирам сензора. Изпращам адреса и прочитам данните. Ето код: Втори път опитвам да прочета данните, но този път програмата ми блокира. Успешно изпраща адреса (status=i2c_write(sensorAddressRead);), но когато трябва да почете информацията достига до тук: До колкото ми е известно това трябва да е някаква функция за изчакване, която си е стандартна за I2C. Това е код, който ми го генерерира компилатора. Някаква идея какво всъщност става и защо забива така??
_________________www.elkran.com
|
| Съб Май 11, 2013 9:43 am |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Много неща ти куцат в обясненията. Отначало пускаш функция старт, после запис на адрес (не разбрах къде се предава байта с хардуерен адрес, тип на у-вото и флага за запис). После изведнъж има четене. На асемблерско ниво преди четенето трябва да има рестарт на бъса, отново "хардуерния" байт с флаг за четене.Дали това го прави майкрочипската библиотека - не знам, май и ти не знаеш. Съмнявам се , че постановката ти с 18Ф действително е работела.
Показваш асемблерска команда , която чака нещо на адрес 208хекс. Какво има там, прочете ли?
|
| Съб Май 11, 2013 9:34 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 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 |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
И к'во с MOSFET-ите не работи така ли 
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Нед Май 12, 2013 8:25 am |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Много си потаен, не че обясняваш лошо. Какви корекции направи в програмата?
|
| Нед Май 12, 2013 8:55 am |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: I2C м/у контролер на 3.3В и сензор на 5В
Ами добавих FORCE_SW към инициализацията на I2C. Когато направя схемата с МОСФЕТ-и(използвам IRF830), дори и с тази опция пак не работи и блокира....
_________________www.elkran.com
|
| Нед Май 12, 2013 9:06 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|