|
Настройка портов ввода-вывода в Silabs С8051F360 для сопряжения с внешним АЦП и памятью, нужна помощь |
|
|
|
Aug 26 2010, 15:37
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 5-02-07
Пользователь №: 25 086

|
Доброго всем времени суток! В устройстве к порту 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В) Не может ли приводить к такому эффекту неверно настроенные порты МК или надо копать аппаратную часть? Заранее спасибо за помощь
|
|
|
|
|
 |
Ответов
|
Aug 31 2010, 06:36
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 5-02-07
Пользователь №: 25 086

|
Цитата(alexPec @ Aug 30 2010, 21:03)  надо проследить чтоб на 3,3-вольтовую микросхему не попадало 5В - иначе защитные диоды превращаются в открытый тиристор с + питания на землю, у самого такая беда с камнем альтеры была - вобще разогревался, задеть нельзя было. А если поставить м/сх шинного формирователя, например 74LCX245 для развязки +5В и +3В? Цитата(rezident @ Aug 31 2010, 00:15)  Не знаю всех ваших подробностей/критериев выбора, но лично я уже как-то привык к последовательным интерфейсам. Поэтому на вашем месте вряд ли бы стал выбирать АЦП с параллельным интерфейсом. Да еще и МК для этого АЦП специально выбирать соответственно с параллельной шиной. В вашем случае я могу посоветовать включить резисторы 47-100 Ом последовательно со всеми цифровыми выходами АЦП - шина данных и сигнал BUSY. Тогда даже при явном перекосе питаний ток будет ограничен на безопасном для защитных диодов обоих кристаллов уровне. Скорость у последовательного интерфейса слишком мала...По ТЗ частота дискретизации аналогового сигнала не более 6,6мкс Насчет резисторов - попробую,но не скоро-надо переразводить плату
|
|
|
|
|
Aug 31 2010, 13:10
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(AndyS @ Aug 31 2010, 17:36)  А если поставить м/сх шинного формирователя, например 74LCX245 для развязки +5В и +3В? Эти камни выдерживают 5 вольт на входе при питании от 3.3 , согласно документации максимум 5.8 В, а не Vdd+0.3 как это принято. На то они и 5В толерантными называются. На мой пост Вы не ответили, на счет инициализации. Смею посоветовать еще одну вещь. По Вашему первому сообщению получается что выход из строя происходит хорошо повторяющийся. Тогда пожертвуйте еще одним камнем. Но в программе полностью уберите перевод в пуш-пул выходов, оставив их в опендрейне. Конечно, функционировать нормально Ваше устройство вряд ли будет из-за завалившихся фронтов. Однако увидите, будет ли в этом случае выгорать. Видимо бывают моменты когда МК и флэш или ацп работают оба на выход. Можно даже вообще запретить обмен с флэшем (например, СЕ в еденицу подвесить). Если в этом случае камень гореть не будет - хорошо. Останется разобраться с прогой. Появится еще один труп - тогда "Кац предлагает сдаться" (цэ), (в смысле придется разбираться с железом)
|
|
|
|
Сообщений в этой теме
AndyS Настройка портов ввода-вывода в Silabs С8051F360 для сопряжения с внешним АЦП и памятью Aug 26 2010, 15:37 barabek Цитата(AndyS @ Aug 27 2010, 01:37) Доброг... Aug 27 2010, 08:27 AndyS Цитата(barabek @ Aug 27 2010, 12:27) Може... Aug 27 2010, 13:07  AndyS Цитата(AndyS @ Aug 27 2010, 17:07) теперь... Aug 30 2010, 14:28   rezident Цитата(AndyS @ Aug 31 2010, 12:36) Скорос... Aug 31 2010, 11:36    AndyS Цитата(barabek @ Aug 31 2010, 17:10) Эти ... Aug 31 2010, 14:14 AndyS Цитата(rezident @ Aug 30 2010, 20:51) Как... Aug 30 2010, 18:56 rezident Не знаю всех ваших подробностей/критериев выбора, ... Aug 30 2010, 20:15 barabek А функция Port_IO_Init когда вызывается? Я к тому... Aug 30 2010, 21:33 AndreyS Добрый день.
У вас, AndyS, на порту P3 висит и фл... Sep 2 2010, 19:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|