Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Закрытая тема
 
Опции темы Опции просмотра
Старый 02.11.2013, 01:17   #1
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Программный I2C

Для PIC32 сейчас в качестве отладочной версии использую программный i2c просто с задержками. программа реализована на TN Kernel.
Возникает проблема - если приоритет задачи i2c высокий - тратится много ресурсов просто на дрыгание ногами (частота 10 кГц), если низкий - проблемы с затягиванием сигналов i2c.
Как можно реализовать удобный, быстрый и незатратный программный i2c? (идеи есть, но хотелось бы послушать общественность ))
__________________

Vanizma вне форума  
Старый 02.11.2013, 18:31   #2
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 52
Сообщений: 1,917
Вес репутации: 3232/97
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: Программный I2C

В прерывание засунь
Vovka вне форума  
Старый 02.11.2013, 19:37   #3
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Vovka Посмотреть сообщение
В прерывание засунь
Ну логика железная. Только в ход в системное прерывание тоже длинноват. А если в прерывание без использования TN Kenrel - как красиво связать задачи с прерыванием?
__________________

Vanizma вне форума  
Старый 02.11.2013, 20:03   #4
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Vanizma Посмотреть сообщение
Ну логика железная. Только в ход в системное прерывание тоже длинноват. А если в прерывание без использования TN Kenrel - как красиво связать задачи с прерыванием?
так оно, по идее, что в лоб, что по лбу...
что аппаратный, что программный...
хотя, конечно, 10кГц - немало в цикле покрутиться нужно

у меня программно-аппартный, типа такого

Код:
void IdleI2C(unsigned int ch)
{
    /* Wait until I2C Bus is Inactive */
    
    if (ch == I2C1)
    while(I2C1CONbits.SEN || I2C1CONbits.PEN || I2C1CONbits.RCEN || 
          I2C1CONbits.RSEN ||I2C1CONbits.ACKEN || I2C1STATbits.TRSTAT);    

    if (ch == I2C2)
    while(I2C2CONbits.SEN || I2C2CONbits.PEN || I2C2CONbits.RCEN || 
          I2C2CONbits.RSEN ||I2C2CONbits.ACKEN || I2C2STATbits.TRSTAT);
   
      if (ch == I2C3)
    while(I2C3CONbits.SEN || I2C3CONbits.PEN || I2C3CONbits.RCEN || 
          I2C3CONbits.RSEN ||I2C3CONbits.ACKEN || I2C3STATbits.TRSTAT);
}

void MasterWaitForIntrI2C(unsigned int ch)
{
    if (ch == I2C1)
    {
        while (!INTGetFlag(INT_I2C1));
        INTClearFlag(INT_I2C1);
    }
    if (ch == I2C2)
    {
        while (!INTGetFlag(INT_I2C2));
        INTClearFlag(INT_I2C2);
    }    
    if (ch == I2C3)
    {
        while (!INTGetFlag(INT_I2C3));
        INTClearFlag(INT_I2C3);
    }    
}
но и работает на 400кГц, т.е. можно и в цикле покрутиться

а так, я решения особо даже не вижу
vitalka вне форума  
Старый 02.11.2013, 20:25   #5
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
так оно, по идее, что в лоб, что по лбу...
что аппаратный, что программный...
хотя, конечно, 10кГц - немало в цикле покрутиться нужно

у меня программно-аппартный, типа такого

Код:
void IdleI2C(unsigned int ch)
{
    /* Wait until I2C Bus is Inactive */
    
    if (ch == I2C1)
    while(I2C1CONbits.SEN || I2C1CONbits.PEN || I2C1CONbits.RCEN || 
          I2C1CONbits.RSEN ||I2C1CONbits.ACKEN || I2C1STATbits.TRSTAT);    

    if (ch == I2C2)
    while(I2C2CONbits.SEN || I2C2CONbits.PEN || I2C2CONbits.RCEN || 
          I2C2CONbits.RSEN ||I2C2CONbits.ACKEN || I2C2STATbits.TRSTAT);
   
      if (ch == I2C3)
    while(I2C3CONbits.SEN || I2C3CONbits.PEN || I2C3CONbits.RCEN || 
          I2C3CONbits.RSEN ||I2C3CONbits.ACKEN || I2C3STATbits.TRSTAT);
}

void MasterWaitForIntrI2C(unsigned int ch)
{
    if (ch == I2C1)
    {
        while (!INTGetFlag(INT_I2C1));
        INTClearFlag(INT_I2C1);
    }
    if (ch == I2C2)
    {
        while (!INTGetFlag(INT_I2C2));
        INTClearFlag(INT_I2C2);
    }    
    if (ch == I2C3)
    {
        while (!INTGetFlag(INT_I2C3));
        INTClearFlag(INT_I2C3);
    }    
}
но и работает на 400кГц, т.е. можно и в цикле покрутиться

а так, я решения особо даже не вижу
ну пока по таймеру думаю машину состояний запустить - впадать туда из функции, впадать в спячку в ней. а из прерывания таймера, по завершении цикла i2c выставлять программное прерывание (уже системное) по которому просыпаться.
хз, получится-ли нормально реализовать
__________________

Vanizma вне форума  
Старый 02.11.2013, 22:28   #6
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Vanizma Посмотреть сообщение
ну пока по таймеру думаю машину состояний запустить - впадать туда из функции, впадать в спячку в ней. а из прерывания таймера, по завершении цикла i2c выставлять программное прерывание (уже системное) по которому просыпаться.
хз, получится-ли нормально реализовать
запутано
в системное прерывание тоже вход не быстрый (для 10кГц может и нормально)
да и разница невелика - что засыпать, что цикл крутить...

а что у тебя там такое на 10кГц?
vitalka вне форума  
Старый 02.11.2013, 22:34   #7
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
запутано
в системное прерывание тоже вход не быстрый (для 10кГц может и нормально)
да и разница невелика - что засыпать, что цикл крутить...

а что у тебя там такое на 10кГц?
почему ж невелика? в цикле на 1 считывание получается минимум 250 мкс.
датчики внешние. завал фронтов приличный, при бОльшей частоте треугольники получаются.
__________________

Vanizma вне форума  
Старый 02.11.2013, 22:50   #8
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Vanizma Посмотреть сообщение
почему ж невелика? в цикле на 1 считывание получается минимум 250 мкс.
я имел ввиду, что все равно: что спишь - впустую время тратится, что цикл крутишь - тоже впустую время
vitalka вне форума  
Старый 02.11.2013, 22:53   #9
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
я имел ввиду, что все равно: что спишь - впустую время тратится, что цикл крутишь - тоже впустую время
почему впустую? вытесняющая ось - так я могу на самую медленную задачу поставить считывание данных по i2c, а пока в спячке - остальные задачи работают. должно выйти сильно экономичнее по времени с прерыванием.
__________________

Vanizma вне форума  
Старый 02.11.2013, 23:04   #10
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Vanizma Посмотреть сообщение
почему впустую? вытесняющая ось - так я могу на самую медленную задачу поставить считывание данных по i2c, а пока в спячке - остальные задачи работают. должно выйти сильно экономичнее по времени с прерыванием.
аа, я про другую спячку подумал
ну, не знаю
вход в системное прерывание + перевод ее в состояние ready + ожидание, когда она станет running...
vitalka вне форума  
Старый 02.11.2013, 23:10   #11
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

если уже экономия нужна тогда как-то так:
глоб. переменная состояния (state, ptr, data, etc)
в задаче она инитится, запускается механизм i2c и засыпается на время достаточное для обмена (можно цикл засыпания с проверкой конечного флага), а в прерывании уже все делать (запустил передачу, вышел из прерывания и т.д.) и в конце выставить флаг
задача проснется, увидит флаг и покатит себе дальше
vitalka вне форума  
Старый 02.11.2013, 23:17   #12
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,031
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
в задаче она инитится, запускается механизм i2c и засыпается на время достаточное для обмена (можно цикл засыпания с проверкой конечного флага)
у него программный ИИС
Greg вне форума  
Старый 02.11.2013, 23:17   #13
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
аа, я про другую спячку подумал
ну, не знаю
вход в системное прерывание + перевод ее в состояние ready + ожидание, когда она станет running...
не, так в том и дело что не в прерывании TNkernel хочу реализовать, а в прерывании по таймеру с приоритетом >1, а когда закончится считывание или запись по i2c - выставить программное прерывание, которое разбудит задачу (по флагу или очереди, пока не знаю).
Скорость чтения в задаче не важно, она и подождать может. критично иметь более-менее ровную частоту i2c( это не дает в цикле использовать i2c на низкоприоритетной задаче) и невысокая загрузка по времени всего пика (это не дает в цикле использовать i2c на высокоприоритетной задаче).
Пока что от конечного автомата уже мозг пухнет
__________________

Vanizma вне форума  
Старый 02.11.2013, 23:19   #14
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Greg Посмотреть сообщение
у него программный ИИС
в начале был

идет поиск путей для оптимизации простоя и он уже согласен на гибрид
vitalka вне форума  
Старый 02.11.2013, 23:22   #15
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,031
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
в начале был

идет поиск путей для оптимизации простоя и он уже согласен на гибрид
а там нет на неё дма?
Greg вне форума  
Старый 02.11.2013, 23:22   #16
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

а насколько часто датчики опрашиваются?
vitalka вне форума  
Старый 02.11.2013, 23:24   #17
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
в начале был

идет поиск путей для оптимизации простоя и он уже согласен на гибрид
не, не согласен. мне ногами дрыгать надо в такт спецификации i2c
с аппаратным-то просто все.
датчики опрашиваются не часто. раз в 10-100мс. но тратить время 2,5-3 мс для просто опроса датчиков- не хочется
__________________

Vanizma вне форума  
Старый 02.11.2013, 23:24   #18
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 45
Сообщений: 3,334
Вес репутации: 2341/105
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Greg Посмотреть сообщение
а там нет на неё дма?
да на i2c я что-то слабо себе представляю дма
со всеми этими коллизиями, ожиданием idle, ack nack и т.д.
vitalka вне форума  
Старый 02.11.2013, 23:27   #19
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,031
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от vitalka Посмотреть сообщение
да на i2c я что-то слабо себе представляю дма
со всеми этими коллизиями, ожиданием idle, ack nack и т.д.
это да. но есть много потоком передавать или принимать - самое оно
Greg вне форума  
Старый 02.11.2013, 23:48   #20
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,031
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Greg Посмотреть сообщение
это да. но есть много потоком передавать или принимать - самое оно
в STM32 1xx настолько глючный аппаратный ИИС, что даже два байта рекомендуют принимать по дма.
выясняется, что и SPI - ещё та засада, а ведь что может быть проще и надёжней...
Greg вне форума  
Старый 02.11.2013, 23:53   #21
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Greg Посмотреть сообщение
в STM32 1xx настолько глючный аппаратный ИИС, что даже два байта рекомендуют принимать по дма.
выясняется, что и SPI - ещё та засада, а ведь что может быть проще и надёжней...
вот что-что, а в пиках SPI железобетонные
__________________

Vanizma вне форума  
Старый 02.11.2013, 23:57   #22
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,031
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Vanizma Посмотреть сообщение
вот что-что, а в пиках SPI железобетонные
тут жаловались http://www.microchip.su/showpost.php?p=189005&postcount=27
жесть...
Greg вне форума  
Старый 03.11.2013, 00:04   #23
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

Цитата:
Сообщение от Greg Посмотреть сообщение
тут жаловались http://www.microchip.su/showpost.php?p=189005&postcount=27
жесть...
а не, вспомнил, но наверное не к SPI относится - при температуре >35-40 град. SPI слейв настраивал порт данных на вывод периодически. Скорость была 2 МГц, данные на дисплей через мой контроллер гнались из внешнего. после долгих мучений лечил натыкиванием по всей программе настройку порта на вход. После этого - ни одного сбоя не было на сотнях изделий.
__________________

Vanizma вне форума  
Старый 04.11.2013, 21:43   #24
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,184
Вес репутации: 4763/133
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: Программный I2C

тему можно закрывать.
С частотой я ошибся вначале, не 10, а 100 кГц (вернее 70).
Реализация в прерывании работает, но конечный автомат вышел таким, что 70% от полупериода занимает работа в прерывании. Поэтому неэффективно получается. Пока сделал входом в критические секции в местах, где нужно иметь стабильную частоту.
__________________

Vanizma вне форума  
Закрытая тема


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pic24FJxx, I2C Slave Map Access driver Russky Вопросы начинающих 1 07.07.2011 18:03
Программный I2C на MicroC+EasyPic5 для PIC12F675 paffik Вопросы начинающих 4 27.03.2011 17:46
программный I2C на pic16f628a marinad Вопросы начинающих 13 14.03.2011 13:47
I2C и EEPROM что-то у меня не так Aries Продукция MICROCHIP 19 23.07.2010 11:23
GSM-модуль Siemens (Cinterion) TC65 и шина I2C Avilon Общетехнические вопросы 4 28.06.2009 13:22


Часовой пояс GMT +3, время: 12:16.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot