Разводка платы LPC1788
Привет всем!!! Разводил раньше платы в пи каде, уже год перешел на алтиум. И вот возникла необходимость нарисовать плату с контроллером LPC1788 + SDRAM K4S561632H + Stаic RAM CY62157EV30LLZS + Flash S29GL512P, частота 60МГц Раньше дел с высокочастотными схемами не имел. Схему нарисовал, начал разводить память, получается честно говоря не очень, проигнорировал много правил. Память подключается к контроллеру как иголки у ежика - со всех сторон вперемешку. Чувствую, что делаю что-то не так. Отсюда вопросы:
- Обязательно ли в моем случае ставить терминирующие резисторы? Я не поставил, так как мы используем компоненты 0805 (меньше монтажницы отказуються паять), а 0805 развести вообще не реально.
- Память должна подключаться только последовательно, или возможно Т-образное подключение? У меня получилось половину таких, половину таких подключений. Могу, конечно подключить все последовательно, только увеличатся длинны и количество переходных отверстий.
- Размер переходного 0,3х0,6мм Не маловато?
Плата планируется четырехслойная. Помогите не наделать ошибок.
- Обязательно ли в моем случае ставить терминирующие резисторы? Я не поставил, так как мы используем компоненты 0805 (меньше монтажницы отказуються паять), а 0805 развести вообще не реально.
- Память должна подключаться только последовательно, или возможно Т-образное подключение? У меня получилось половину таких, половину таких подключений. Могу, конечно подключить все последовательно, только увеличатся длинны и количество переходных отверстий.
- Размер переходного 0,3х0,6мм Не маловато?
Плата планируется четырехслойная. Помогите не наделать ошибок.
- iEugene0x7CA
- Адепт
- Сообщения: 1570
- Откуда: Киев
lobzik писал(а):- Обязательно ли в моем случае ставить терминирующие резисторы? Я не поставил, так как мы используем компоненты 0805 (меньше монтажницы отказуються паять), а 0805 развести вообще не реально.
- Память должна подключаться только последовательно, или возможно Т-образное подключение? У меня получилось половину таких, половину таких подключений. Могу, конечно подключить все последовательно, только увеличатся длинны и количество переходных отверстий.
- Размер переходного 0,3х0,6мм Не маловато?
Проектик весьма нефиговый на самом деле. Если его дали разводить не шарящему в high-speed — тут либо у конторы всё плохо, либо пошутили.
Помочь могу разве что аппнотами Альтеры, на днях листал их, очень интересно:
https://www.altera.com/en_US/pdfs/liter ... /an075.pdf
https://www.altera.com/content/dam/alte ... ndbnce.pdf
Насчёт терминирующих резисторов, у меня есть знакомый, который беспилотники в НИИ для ВСРФ делал. Говорит, что у них чуть ли не палками били, но чтобы на каждой сигнальной линии стояло по резистору, обычно по 33 Ом.
В другой конторе уже было без требований, но у них периодически горела микруха, вообще не понятно от чего, и девайсы возвращали. В итоге он вспомнил былые времена и нафигачил вокруг неё резисторов.
После этого проблем не возникало, не возвращали. Вместо 0805 можно резистор аррей заюзать, там 4 штуки в 1: http://p.globalsources.com/IMAGES/PDT/B ... tworks.jpg
Ну, и пусть монтажницы на 0603 переходят, паять их не так и сложно.
А вообще, на практике полюбу придется хоть как-то развести для начала, после уже смотреть как схема поведёт себя и править лажу при наличии.
Если его дали разводить не шарящему в high-speed — тут либо у конторы всё плохо, либо пошутили.
На самом деле пошутил над собой я сам, меня никто не заставлял, я сам взялся за данный проэкт, нужно расти, захотелось на нашем контроллере заиметь графику, надоели символьные дисплеи.
Вместо 0805 можно резистор аррей заюзать, там 4 штуки в 1
Думал об этом, но ноги контроллера что идут на память сильно разбросаны, и такие резисторы не помогут.
Перейду на конденсаторв 0603, их монтажницы запаяют, резисторы пока оставлю 0805, так как поменять в раскладчике все резисторы пока нереально, у нас еще паяется очень много плат, и менять каждый раз ленты нереально.
Развел платку, уже приехала с Китая, щас паяем и ждем недостающую комплектацию.
Крутяк, но память можно было поближе подвинуть. Посмотрим, как будет работать.
Можно, конечно было бы поставить на выходы регистры, освободить немного ножек контроллера, тогда и память получилось бы расположить поближе. Распаяю, тогда посмотрим. В любом случае это мой опыт, на этой плате я изучал альтиум, наработал библиотеки, на пикад больше не вернусь
Возникла проблема с батарейной памятью CY62157EV30LLZS, когда снимаю питание с контроллера на входах записи, чтения, и др появляется активный низкий уровень и в первые ячейки памяти записывается мусор, причем микросхема тянет с батарейки 0,7mA, быстро разряжая ее. Как сделать чтоб такого не происходило, держать постоянно высокий уровень на этих входах без питания микроконтроллера?
Или настроить контроллер так, чтоб пока не загрузился, был Z, а на входы памяти - пулапы. Внешние или внутренние. С данным семейством камней я дела не имел, так что в порядке предположения. Голимый спартан-6 это, например, позволяет. То же самое касается антизвонных резиков. У контроллера есть фича регулировки выходного сопротивления? Если есть, как в ПЛИС или СТМках, то можно настроить как надо и на резики забить - частоты тут для таких дорог небольшие.
Что били по пальцам за отсутствие резиков - это правильно. Сам бью, особенно если с буфера сигнал в корзину уходит. Хоть и не занимаюсь беспилотниками.
Что били по пальцам за отсутствие резиков - это правильно. Сам бью, особенно если с буфера сигнал в корзину уходит. Хоть и не занимаюсь беспилотниками.
Кстати, у атмела в первых АВРках была такая-же фигня, повреждался еепром. Атмел предлагал гениальное решение - просто не использовать нулевой адрес.
Пока отделался подтяжкой плюса от батарейки на СЕ вход памяти, но в следующей версии платы поставлю супервизор.
Ну ок, поставишь супервизор. Тогда его тоже придется от батарейки запитывать. Оно же по нулю память включает.
>Кстати, у атмела в первых АВРках была такая-же фигня, повреждался еепром
Он у них бывало тупо не работал. Не все ячейки корректно писались.
>Кстати, у атмела в первых АВРках была такая-же фигня, повреждался еепром
Он у них бывало тупо не работал. Не все ячейки корректно писались.
Осталась проблема, то было при отключении, сейчас при включении до инициализации контроллера на входы памяти приходят импульсы, и записывается мусор. Это даже без работы с памятью, написал программу просто включающую ножку СS на плюс, все равно до инициализации контроллера идет мусор.
- iEugene0x7CA
- Адепт
- Сообщения: 1570
- Откуда: Киев
lobzik писал(а):Возникла проблема с батарейной памятью CY62157EV30LLZS, когда снимаю питание с контроллера на входах записи, чтения, и др появляется активный низкий уровень и в первые ячейки памяти записывается мусор, причем микросхема тянет с батарейки 0,7mA, быстро разряжая ее. Как сделать чтоб такого не происходило, держать постоянно высокий уровень на этих входах без питания микроконтроллера?
Ну, тут явно что-то не так — похоже SRAM'а не уходит в standby режим, или же батарейка не подключена по хитрой схемке. Возможно все вместе.
В шите указано, что SRAM переходит в standby при определенных сигналах на некоторых пинах: http://www.cypress.com/file/43021/download
Так же батарейка должна быть подключена так, чтобы питалась только SRAM и ничего более — обычно это делается при помощи диодов.
Насчет порчи при отключении — тут правильно намекнули, мол нужна схемка, которая предупреждала бы МК о пропаже питания.
В качестве источника обычно юзают небольшой ионистор, его как раз достаточно на пару секунд работы, дабы МК дописал что нужно и потух, не остановившись на пол пути.
lobzik писал(а):программу просто включающую ножку СS на плюс, все равно до инициализации контроллера идет мусор.
CS — это CE(т.е. Chip Enable), как понимаю. Возможно её стоит подтянуть к питанию SRAM'ы через резистор.
В таком случае, когда МК нужно будет что-то записать — он запишет, а когда не нужно — оператива будет игнорировать любую лажу.
CS — это CE(т.е. Chip Enable), как понимаю. Возможно её стоит подтянуть к питанию SRAM'ы через резистор.
В таком случае, когда МК нужно будет что-то записать — он запишет, а когда не нужно — оператива будет игнорировать любую лажу
Я сразу же так и сделал, из-за подтяжки немного увеличилось потребления от батарейки (4мкА, было 2) но все равно в момент старта блока питания проходят импульсы и в нулевую ячейку записывается мусор. Это происходт где-то раз на десять включений. Потом до меня доперло, что это может быть из-за логического анализатора, что я подпаял на вход. Отпаял провод, нащелкал блоком питания раз 100, ошибок нет. Думаю поставлю пускатель, пусть ночь пощелкает, посмотрим что получится, может проблема была в проводе, что я подпаял на вход.
Похоже, что проблему я придумал сам, без дополнительных проводов анализатора все работает без сбоев. Даже взял пускатель подключил через его же NC контакт как звонок и потрещал рядом с платой, от помех пускателя на компе отвалились USB преобразователи, а память сбоев не дала. Буду считать что проверка на помехоустойчивость пройдена. Уже запустили SDRAM, осталась флеш.
- iEugene0x7CA
- Адепт
- Сообщения: 1570
- Откуда: Киев
Хоть фоточки платки запили, чего там получилось в итоге.
Пока в таком состоянии, дисплей не подключен, до него далеко еще.
Отдохнул я в отпуске 2 недельки, прихожу на работу, а программисты уже дисплейчик настроили И еще нашел супервизор для батарейной памяти M40SZ100W, вроде для моих целей самое то, может в следующей версии применю, хоть и с подтяжкой СЕ пока сбоев небыло.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость