| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Софтуерен I2C за работа с ЕЕПРОМ http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=16027 |
Страница 1 от 3 |
| Автор: | stoyanoff [ Пет Юли 13, 2018 9:11 pm ] |
| Заглавие: | Софтуерен I2C за работа с ЕЕПРОМ |
Здравейте! Някой има ли готова библиотека за софтуерен I2C? Трябва да добавя външеш ЕЕПРОМ, обаче контролерът няма I2C. Няма значение от езика, аз ще си я преведа ако трябва. PIC32 е чипчето и работи на 50МHz. Би трябвало да се получи... ПП: То и да имаше I2C нямаше да са свободните пинови и така че пак щях да опра до софтуерен... |
|
| Автор: | stefan63 [ Пет Юли 13, 2018 9:18 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Майкрочип нема ли? |
|
| Автор: | stoyanoff [ Пет Юли 13, 2018 9:24 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Има в Harmony, обаче ми се повръща от него... Видях, че има някаква в wikipedia. Ще я пробвам! |
|
| Автор: | TheWizard [ Съб Юли 14, 2018 6:52 am ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
а SPI няма ли - има и такива епроми |
|
| Автор: | ToHu [ Съб Юли 14, 2018 10:15 am ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Закачай на spi всички имат, от цялата серия само два нямат i2c как баш тях нацели... |
|
| Автор: | stoyanoff [ Съб Юли 14, 2018 2:02 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Оставете за сега тази работа! Harmony-то си работи, аз съм за ебане. Омотал съм настройките за портовете на UART интерфейсите и от там идват част от парчетата. Останалите са от един зулум, който направих при проектиране на платката. Нямаше RS485 транс на 3.3V с висока ESD защита и сложих на 5V, като използвам 5V толерантни пинове за входните данни. На управляващия пин съм сложил pull-down, за да е затворен при инициализация(да не може източника да блокира контролера ако праща данни при старт). Оказва се, че при това положение на интегралата и трябват поне 20ms, за да се преключи в режим на предаване. Явно защото подавам само 3.3V, а не 5... И съответно преди интегралата всичко е наред, а след нея "един гаща плява"... Добре, че превключих на по-ниска скорост и видях, че след известно време комуникацията тръгва правилно... Бях решил, че Harmony-то разбърква пиновете на UART-a... Ще оправим нещата... |
|
| Автор: | stoyanoff [ Нед Юли 15, 2018 3:43 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Господа, имам питане! Искам да знам има ли някакъв стандарт или максимална честота на това колко често се случва грешка при UART комуникация?! Говоря за хардуерна грешка при приемане - флаг за парити, стоп и т.н. Платките по-горе са близначета - едната е малка с бавен контролер и ниски скорости, а другата е бързичка. Контролер на 120MHz и 3G модем UG95. Проблемът се наблюдава, когато си говоря с модема на 921600 baud rate. Понеже обработвам всички заявки на контролера(PPP) всички данни се предават към него. И когато започна да пускам пинг от няколко източника се случва такава грешка примерно на 20-30 пакета примерно. Числата варират, понякога се случва и на 2-3-5... Когато източникът на пинг е само един се случва рядко - примерно на 100-150 пакета... Нямам конкретни данни. При по-ниска скорост(460800) за сега не съм установил да се случва или е много рядко. Може ли да споделите като сте работили на такива скорости и сериозен обмен на данни какви резултати сте постигнали?! Искам да знам дали ако си поиграя с терминаторите на линията ще мога да постигна някаква значителна промяна или това е положението?! Благодаря! |
|
| Автор: | ToHu [ Нед Юли 15, 2018 4:56 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Не няма, и да има все тая, в зависимост от опорната честота имаш някои скорости при които грешката е малка, и други при които е голяма, погледни за конкретните контролери които мъчиш каква е реалната скорост която се получава при твоите настройки. Ако можеш избери си такава при която контролера има малка грешка. Обаче от друга страна няма как да имаш 20-30 пакета с такава грешка, или искаш да кажеш че на всеки 20-30 имаш грешка? Казваш терминатори на линията, на коя линия има терминатори, ти не говориш ли за RS232 или дори TTL комуникация ? Самите пакети нямат ли чексуми най-малкото, а и корекция на грешки те, поне единични грешки да можеш да коригираш ще е голямо подобрение. Според мен имаш разминаване в скоростта на двата серийни порта, и от там идват чат пат грешки. |
|
| Автор: | stoyanoff [ Нед Юли 15, 2018 5:52 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Да уточня - на 20-30 пакета по 70-80 байта 1 грешка. Ами според чаршафите на контролера ми при този осцилатор и тази скорост грешката трябва да е 0%! Разминаване може да има. |
|
| Автор: | ToHu [ Нед Юли 15, 2018 7:02 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Ами 0% е съвсем теоретично, въпроса е точен ли ти е осцилатора. Отделно синхронизацията ти е по всеки стартов байт, та ако си толкова близо до точната скорост 1/1400 байта започва да не изглежда толкова малка грешка, да не е смущение, при по-висока скорост си по-податлив на смущения. |
|
| Автор: | stoyanoff [ Нед Юли 15, 2018 8:55 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Напълно възможно е. Прави го на рандом. Уж съм се постарал с опроводяване и т. н. Принципно заради една такава грешчица се хвърля цял пакет. Ще го тестваме как се държи при реално теглене/пращане на данни. Защото ако е само като го товариш с ping, всичко е ок. И като съм на наполовина по-ниска скорост не съм го наблюдавал за сега. А и по линията има и level shifter, може и той да казва бау... От къде да го знам. Ти не си ли правил някакви такива по-бързи комуникации? Просто някаква база за сравнение да имам... Защото то реално винаги е възможно такова нещо... |
|
| Автор: | stoyanoff [ Вто Юли 17, 2018 5:59 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Ето какво се случва - контролерът много бавно установява пиновете си в ниво. Трябват от порядъка на 10-20мс. Имам в предвид, че стойността за 10-20мс е нестабилна и варира, докато най-накрая се качи до Vcc. Контролерът е PIC32MK1024GPD064 и съм го пуснал на 120MHz. Това се случва на всички пинове, които се използват като управяляващи ('1'-'0'). Такива са пиновете, които управляват разрешението за предаване от модула и управлението на транссийвърите. Да не е дефектен нещо?! Мога да го подменя... Софтуерът ми е ок мисля. Толкова мога да установя един пин. Спрял съм вътрешни pull-up/down и т.н. Говоря за пинове от различни портове! Предполагам и това ми прави по-горния проблем - ако късно се задейства сигналът за спиране на данните от модула, вероятно се препълва буфера и губи пакета. Аз съм оставил 2000 байта толеранс, обаче при 921600 тамън си ги препълва за 20ms... Такова чудо не ми се беше случвало... Някакви идеи?! |
|
| Автор: | itso.t [ Вто Юли 17, 2018 6:20 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Не става ясно - "мс" е us или ms? |
|
| Автор: | stoyanoff [ Вто Юли 17, 2018 6:33 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
милисекунди = 1s*10E-3! Става някаква работа тука. Има едни настройки на клока за пиновете и когато го намалих до 12Mhz при установяване от 0 към 1 е по-добре. И понякога всичко става, както трябва! Шашава работа! Имам чувството, че тоя туц има някакъв вътрешен брояч или нещо от сорта... |
|
| Автор: | ToHu [ Вто Юли 17, 2018 9:28 pm ] |
| Заглавие: | Re: Софтуерен I2C за работа с ЕЕПРОМ |
Нееееееее какви 20 МС, нещо не е конфигурирано, преход тр1бва да е от порядъка на Нано секунди. |
|
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|