AndyS 0 26 августа, 2010 Опубликовано 26 августа, 2010 · Жалоба Доброго всем времени суток! В устройстве к порту P3 сабжевого МК подключены АЦП AD7934 и микросхема флеш памяти MT29F4G08 (Micron).Управление работой м/сх флеш (CS, ALE, CLE) и АЦП (CS,HBEN) осуществляется через P1,P2 и P4 (RD,WR). Конфигурация портов следующая: sbit ACS = P1.3 // CS АЦП sbit AST = P1.0 // старт преобразования sbit BUSY = P1.1 // готовность рез-та преобразования sbit CSF = P2.0 // chip select flash sbit ALE = P2.1 // ALE flash sbit CLE = P2.2 // CLE flash sbit BUSY_F = P2.2 // готовность Flash sbit HBEN = P1.2 // разрешение ст. байта АЦП ……………………………………………………………………………….. // для уменьшения энергопотребления переводим порты в пассивное состояние (спящий режим) Port_IO_OFF: mov SFRPAGE, #CONFIG_PAGE mov P0MDIN, #0FFh mov P2MDIN, #09Fh mov P0MDOUT, #000h mov P1MDOUT, #00Dh mov P1MDIN, #0FFh mov P2MDOUT, #09Fh mov P3MDOUT, #000h mov P4MDOUT, #000h mov P0SKIP, #000h mov P2SKIP, #000h mov P1SKIP, #000h mov P3SKIP, #000h mov XBR0, #000h mov XBR1, #000h mov P4, #11111111b mov P1, #11111111b mov P2, #10001111b ………………………………………………………………………………….. // перевод портов в активное состояние Port_IO_Init: mov SFRPAGE, #CONFIG_PAGE mov P0MDIN, #09Fh mov P2MDIN, #09Fh mov P0MDOUT, #0FFh mov P1MDOUT, #03Dh mov P1MDIN, #0CFh mov P2MDOUT, #09Fh mov P3MDOUT, #0FFh mov P4MDOUT, #030h mov P0SKIP, #079h mov P2SKIP, #0FFh mov P1SKIP, #0FFh mov P3SKIP, #0FFh mov XBR0, #009h mov XBR1, #040h mov P4, #00111111b mov P1, #10111110b mov P2, #00101001b После нескольких циклов включения/выключения (скольких сказать точно не могу, но в пределах от 15 и до….) наблюдается странное поведение устройства, (повышение тока потребления, «выгорание» линий порта Р3 МК и т.д - вплоть до КЗ по +3В) Не может ли приводить к такому эффекту неверно настроенные порты МК или надо копать аппаратную часть? Заранее спасибо за помощь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
barabek 0 27 августа, 2010 Опубликовано 27 августа, 2010 · Жалоба Доброго всем времени суток! В устройстве к порту P3 сабжевого МК подключены АЦП AD7934 и микросхема флеш памяти MT29F4G08 (Micron).Управление работой м/сх флеш (CS, ALE, CLE) и АЦП (CS,HBEN) осуществляется через P1,P2 и P4 (RD,WR). Может схему приведете, а то не совсем понятно что и как у Вас подключено, и, соответственно, не ясно для чего Вы сконфигурировали так. В том числе и для Вашего 3-го порта непонятно, почему перевели в пуш-пул. Может что-нибудь навстречу стреляет после включения, не обеспечивается время повер-он-ресет на этой шине. В общем, приходится гадать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyS 0 27 августа, 2010 Опубликовано 27 августа, 2010 · Жалоба Может схему приведете, а то не совсем понятно что и как у Вас подключено, и, соответственно, не ясно для чего Вы сконфигурировали так. В том числе и для Вашего 3-го порта непонятно, почему перевели в пуш-пул. Может что-нибудь навстречу стреляет после включения, не обеспечивается время повер-он-ресет на этой шине. В общем, приходится гадать. теперь только в понедельник, т.к. схема на работе :wassat: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyS 0 30 августа, 2010 Опубликовано 30 августа, 2010 · Жалоба теперь только в понедельник, т.к. схема на работе :wassat: собственно вот Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 30 августа, 2010 Опубликовано 30 августа, 2010 · Жалоба Как у вас организовано питание +5В и +3В? Возможна ли ситуация когда есть +5В, но еще или уже нет +3В? Вообще тактически неправильно сажать на одну шину устройства с разным питанием. Я понимаю, что у вас цифровая цасть АЦП запитана тем же напряжением, что и МК (3В) и это не противоречит даташиту AD7934, но не исключен вариант, когда при переходных процессах через какие-то внутренние защитные цепи кристалла +5В попадает на его цифровые пины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 30 августа, 2010 Опубликовано 30 августа, 2010 · Жалоба Не могут ли какие-то цепи находиться в 3-м состоянии? Если да, то такие цепи надо защитить диодами на + питания (наименьшего, если устройства цепи от разных источников питаются) и на землю, если внутри кристалла таких нет. А если есть - согласен с rezident - надо проследить чтоб на 3,3-вольтовую микросхему не попадало 5В - иначе защитные диоды превращаются в открытый тиристор с + питания на землю, у самого такая беда с камнем альтеры была - вобще разогревался, задеть нельзя было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyS 0 30 августа, 2010 Опубликовано 30 августа, 2010 · Жалоба Как у вас организовано питание +5В и +3В? Возможна ли ситуация когда есть +5В, но еще или уже нет +3В? Вообще тактически неправильно сажать на одну шину устройства с разным питанием. Понятно что нежелательно...,но другого выхода я не увидел :cranky: Была задача оцифровывать сигнал от 0 до +5В,интерфейс сделал 3В для снижения потребления+камень Silabs почти идеально подошел по быстродействию что было на первом месте при разработки системы. По осциллограмме +3В и +5В вроде как одновеменно появляются при включении.Снятие питания еще не смотрел Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 30 августа, 2010 Опубликовано 30 августа, 2010 · Жалоба Не знаю всех ваших подробностей/критериев выбора, но лично я уже как-то привык к последовательным интерфейсам. Поэтому на вашем месте вряд ли бы стал выбирать АЦП с параллельным интерфейсом. Да еще и МК для этого АЦП специально выбирать соответственно с параллельной шиной. В вашем случае я могу посоветовать включить резисторы 47-100 Ом последовательно со всеми цифровыми выходами АЦП - шина данных и сигнал BUSY. Тогда даже при явном перекосе питаний ток будет ограничен на безопасном для защитных диодов обоих кристаллов уровне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
barabek 0 30 августа, 2010 Опубликовано 30 августа, 2010 · Жалоба А функция Port_IO_Init когда вызывается? Я к тому, что может Вы рано переводите порт 3 в пуш-пул? Нужно ведь это делать только при записи во флэш, во всех остальных случаях при чтении только опендрейн. Еще. Непонятно для чего Вы делаете mov P0MDIN, #09Fh (2 ноги перевели в аналоговый входной режим), а затем все ноги этого порта переводите в пуш-пул. Не знаю как на это реагирует камень, может и ничего страшного, но как-то некорректно. остальное не смотрел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyS 0 31 августа, 2010 Опубликовано 31 августа, 2010 · Жалоба надо проследить чтоб на 3,3-вольтовую микросхему не попадало 5В - иначе защитные диоды превращаются в открытый тиристор с + питания на землю, у самого такая беда с камнем альтеры была - вобще разогревался, задеть нельзя было. А если поставить м/сх шинного формирователя, например 74LCX245 для развязки +5В и +3В? Не знаю всех ваших подробностей/критериев выбора, но лично я уже как-то привык к последовательным интерфейсам. Поэтому на вашем месте вряд ли бы стал выбирать АЦП с параллельным интерфейсом. Да еще и МК для этого АЦП специально выбирать соответственно с параллельной шиной. В вашем случае я могу посоветовать включить резисторы 47-100 Ом последовательно со всеми цифровыми выходами АЦП - шина данных и сигнал BUSY. Тогда даже при явном перекосе питаний ток будет ограничен на безопасном для защитных диодов обоих кристаллов уровне. Скорость у последовательного интерфейса слишком мала...По ТЗ частота дискретизации аналогового сигнала не более 6,6мкс Насчет резисторов - попробую,но не скоро-надо переразводить плату Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 31 августа, 2010 Опубликовано 31 августа, 2010 · Жалоба Скорость у последовательного интерфейса слишком мала...По ТЗ частота дискретизации аналогового сигнала не более 6,6мкс У той же C8051F360 максимальная частота тактирования SPI в режиме master - 12,5МГц. 16-и битный результат оцифровки АЦП передается за 3-4 байта. Соответственно получается 4*8бит/12,5МГц=2,56мкс - вполне удовлетворяет вашему требованию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
barabek 0 31 августа, 2010 Опубликовано 31 августа, 2010 · Жалоба А если поставить м/сх шинного формирователя, например 74LCX245 для развязки +5В и +3В? Эти камни выдерживают 5 вольт на входе при питании от 3.3 , согласно документации максимум 5.8 В, а не Vdd+0.3 как это принято. На то они и 5В толерантными называются. На мой пост Вы не ответили, на счет инициализации. Смею посоветовать еще одну вещь. По Вашему первому сообщению получается что выход из строя происходит хорошо повторяющийся. Тогда пожертвуйте еще одним камнем. Но в программе полностью уберите перевод в пуш-пул выходов, оставив их в опендрейне. Конечно, функционировать нормально Ваше устройство вряд ли будет из-за завалившихся фронтов. Однако увидите, будет ли в этом случае выгорать. Видимо бывают моменты когда МК и флэш или ацп работают оба на выход. Можно даже вообще запретить обмен с флэшем (например, СЕ в еденицу подвесить). Если в этом случае камень гореть не будет - хорошо. Останется разобраться с прогой. Появится еще один труп - тогда "Кац предлагает сдаться" (цэ), (в смысле придется разбираться с железом) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyS 0 31 августа, 2010 Опубликовано 31 августа, 2010 · Жалоба Эти камни выдерживают 5 вольт на входе при питании от 3.3 , согласно документации максимум 5.8 В, а не Vdd+0.3 как это принято. На то они и 5В толерантными называются. На мой пост Вы не ответили, на счет инициализации. Смею посоветовать еще одну вещь. По Вашему первому сообщению получается что выход из строя происходит хорошо повторяющийся. Тогда пожертвуйте еще одним камнем. Но в программе полностью уберите перевод в пуш-пул выходов, оставив их в опендрейне. Конечно, функционировать нормально Ваше устройство вряд ли будет из-за завалившихся фронтов. Однако увидите, будет ли в этом случае выгорать. Видимо бывают моменты когда МК и флэш или ацп работают оба на выход. Можно даже вообще запретить обмен с флэшем (например, СЕ в еденицу подвесить). Если в этом случае камень гореть не будет - хорошо. Останется разобраться с прогой. Появится еще один труп - тогда "Кац предлагает сдаться" (цэ), (в смысле придется разбираться с железом) К сожалению сжечь последний прибор не позволит начальство :maniac: побробую завтра поигаться с инициализацией на свой страх и риск Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndreyS 0 2 сентября, 2010 Опубликовано 2 сентября, 2010 (изменено) · Жалоба Добрый день. У вас, AndyS, на порту P3 висит и флешь и АЦП. Так? Видимо как минимум с АЦП вы считываете данные, а это значит что порт P3 не имеет право быть PUSH-PULL. Так как в таком режиме он не имеет Z состояния. Т.е. вы выставите на нем 1 и это означает что у вас на порту будет включен транзистор верхнего плеча и выдаст свое Vio. В этот момент, не дай бог АЦП выставит на этот пин 0. Тогда произойдет конфликт по логике. И первое. Вы скорее всего получите неправильные данные и ко всему прочему еще и вызжете этот пин. Ну дай бог внутри АЦП будет защита по току (скорее нет). Вообще в данном случае этот порт не может быть в режиме пуш пул, он у вас работает в двунаправленом режиме. Ставть подтяжки и переводите порт в открытый коллектор. Вот если бы вы только записывали во шлешь через этот порт, тогда да, можно. Ну как мера, можно при смене направления менять настройки порта с пуш плуа на открытый коллектор, вы ведь мастер в данном случае, а не АЦП. Но нужно посмотреть сколько времни будет выполняться этот переход(думаю что ваша прошивка успеет). У меня было странно выгорание портов в этом проце (именно в ф360) только при перегреве чипа, вернее при достижении на ядре близкой к его максимально допустимой. Выгорали пины, которыми часто дергали в этот момент (ШИМ, УАРТ на большой частоте в нескольок МГц). Удачи PS. В процедуре Port_IO_OFF: не возымеют должного эффекта последние 3 строки (mov P4, #11111111b mov P1, #11111111b mov P2, #10001111b ), так как перед ними вы выключили кросбар (почитайте даташит, если я не ошибаюсь, просото сейчас работаю с Ф410, то это у них у всех. Как выключаете кроссбар, то управлять портами вы не можете. Т.е. что бы просто подрыгать ногами проца, как минимум нужно включить кроссбар XBR1=0x40; До кучи. Глядя на вашу реализацию и на даташитв идно что вы АЦП и флешь не отобразили во внешнем адресном пространстве. А обращаетесь к ним вручную, т.е. не используете команды MOVX A,@DPTR. Коли у вас весь интерфейс сделан полность программным, то после режима записи параллельный интерфейс, переключайте порт P3 в режим открытого коллектора. Тогда ненужны будут подтяжки по порту. Но честно говоря геморная реализация. У вас в проце есть интерфейс внешней памяти, а вы его не используете. Ради повышения своих знаний, зачем вы управляете общей точкой питания Vss флешки (т.е. отрезаете ей шину земли) с проца. У вас Vss флешки заведен на порт P0.0 через резюк. Интересно как себя поведет флешка, когда вы ей вырубите Vss (дадите туда лог 1) и при этом попытаетесь с нее что-нибудь считать или записать, да еще и пушпулом? Как все это тянет порт P0.0 (какой ток течет через резюк R58)? PSS Упс. С Vss не заметил. Это просто общая точка для всей схемы :) Изменено 2 сентября, 2010 пользователем AndreyS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться