|
lpc2378, кто производит на нем что-либо и какие проблемы с ним? |
|
|
|
Jun 30 2009, 05:52
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
В новых изделиях нужно добавить can и ethernet. Так как старые наработки исполнены на SAM7S для пеtремственности можно было бы использовать SAM7X512, но хотелось бы заложится на более преспективный камушек, тем более в SAM7 нет ни нормальных часов, ни достаточного количества уартов, ни полноценного интерфейса к sd-карте, ни, возможно, достаточного быстродействия из флэш.
К тому же в процессе эксплуатации изделий на sam7s выяснилась неприятная особенность - watchdog при какой-либо перезагрузке ресетит только cpu, вся остальная периферия, включая aic, остается нетронутой. В результате есть шанс что полноценной перезагрузки не произойдет и половина периферии подвисает. У меня вис АЦП(подвисали именно измерения- выдавал нулевые семплы), таймеры счетчики, PIT, вход ресет контроллера тоже, как правило, отваливается при первом удобном случае. И ведь watchdog не поставишь внешний в такой ситуации, так как непонятно какая часть кода в данный момент отвалится. Отловить момент и причину зависания так и не смог, оставлял презагружатся по собаке каждые сутки - нулевой эффект все работает. Что я только не делал чтоб от этой фичи избавится - выключал периферию прежде чем включить, сбрасывал сначала все флажки прерываний в AIC, переключаясь в edge-triggered - все равно не уверен что победил. Watchdog использовали для команд перезагрузки при смене настроек и прошивки - пришлось отказаться и ресетить программно с помощью ресет-контроллера, однако на случай сильных ЭМП и прочего душа остается неспокойной.
Плюс к этому говёно работает бод. Я так и не понял при каком напряжении происходит ресет. При плавном снижении напряжении питания и последующем повышении процессор запускался заново в 50% случаев. Поставил внешний супервизор на 3 вольта отрубающий питание процу, буду испытывать как соберут новую плату.
В общем, хотелось бы избежать подобного в будущем, соответственно мучает вопрос, ожидает ли подобное в NXP, то есть есть ли там честный аппаратный сброс и перезагрузка. а также можно ли положится на встроенный супервизор питания.
Кстати с еще большими надеждами расстривается 2388.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
 |
Ответов
|
Jul 2 2009, 07:45
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754

|
Цитата(SpiritDance @ Jun 30 2009, 09:52)  В новых изделиях нужно добавить can и ethernet. Так как старые наработки исполнены на SAM7S для пеtремственности можно было бы использовать SAM7X512, но хотелось бы заложится на более преспективный камушек, тем более в SAM7 нет ни нормальных часов, ни достаточного количества уартов, ни полноценного интерфейса к sd-карте, ни, возможно, достаточного быстродействия из флэш. ......................... lpc2378 тоже не особо перспективный т.к. у NXP на подходе почти аналогичные камни на кортексах. Из минусов по отношению к SAM7X серии: Чуть меньше суммарная ОЗУ ОЗУ фрагментирована на сегменты 32кб, Ethernet, USB, 2кб RTC - ну может это кому то покажется плюсом Нельзя записывать по встроенную Flash память побитно (как на sam7), только по 16 байт вроде Ethernet только RMII, т.е. нельзя использовать дешевый камень типа Realtek, придется использовать (в большинстве случаев) кварцовый генератор Интерфейс к SD карте может работать с DMA только из памяти USB (мне лично также реализация FIFO не понравилась) Нет красивых библиотечек как у Atmel с inline процедурами для инициализации (ну это только для тех кому нравится с ними работать) IAP функции ИМХО - как бы скрывают от пользователя то что в SAM7 можно написать в RAM функции так как тебе это нужно Больше пока не припомню а в остальном одни плюсы: Дешевле (1-2$), Быстрее, RTC, 2КБ ОЗУ на батарейке, SD интерфейс (хотя для таких процов преимущества в скорости перед SPI нет никакого), RMII - меньше ног
|
|
|
|
|
Jul 3 2009, 05:17
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(Nemod @ Jul 2 2009, 11:45)  lpc2378 тоже не особо перспективный т.к. у NXP на подходе почти аналогичные камни на кортексах. Честно говоря более преспективными видятся кристаллы 2387 2388. Скорее всего прям с них и начнем. Вопрос к shashr Будут ли такие же только на кортексе?
Цитата(Nemod @ Jul 2 2009, 11:45)  ОЗУ фрагментирована на сегменты 32кб, Ethernet, USB, 2кб RTC - ну может это кому то покажется плюсом А в чем, собственно, минус? Нельзя выделить массив больше чем 32К? Цитата(Nemod @ Jul 2 2009, 11:45)  ОЗУ фрагментирована на сегменты 32кб, Ethernet, USB, 2кб RTC - ну может это кому то Нельзя записывать по встроенную Flash память побитно (как на sam7), только по 16 байт вроде Побайтно, Вы имеете ввиду. В принципе не использовал, так как там довольно хитрая прцедура, я так понял все равно прееписывается вся страничка. Меня больше волнует проблема написания собственного загрузчика. Я так понял что в nxp это будет посложнее реализовать, так как надо использовать возможности встроенного. Цитата(Nemod @ Jul 2 2009, 11:45)  Ethernet только RMII, т.е. нельзя использовать дешевый камень типа Realtek, придется использовать (в большинстве случаев) кварцовый генератор Для меня это плюс - не надо тратить кучу драгоценных лап. А вот у X он не работает по еррате кстати видел здесь обсуждение про то что кристаллы не со всеми драйверами стабильно работают. Какой PHY посоветуют использующие??
Цитата(Nemod @ Jul 2 2009, 11:45)  Интерфейс к SD карте может работать с DMA только из памяти USB (мне лично также реализация FIFO не понравилась) Интересная подробность. Правда сравнить с X не получится. Цитата(Nemod @ Jul 2 2009, 11:45)  Нет красивых библиотечек как у Atmel с inline процедурами для инициализации (ну это только для тех кому нравится с ними работать) долбанные индусы [censored]
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 3 2009, 14:00
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754

|
Цитата(SpiritDance @ Jul 3 2009, 09:17)  Честно говоря более преспективными видятся кристаллы 2387 2388. Скорее всего прям с них и начнем.
Вопрос к shashr Будут ли такие же только на кортексе?
А в чем, собственно, минус? Нельзя выделить массив больше чем 32К? Собственно да, почему бы и нет, смотря какой стиль программирования используешь, например обьявить массив для расперделения памяти между пользовательскими процессами в операционках и псевдооперационках  Есть и другой минус - у тебя только одна область (сегмент - сектор, смотря кто какую IDE использует  ) DATA, в которую по умолчанию кидаются все глобальные переменные. Остальные которые не влезли придется распределять средствами компилятора. Что снижает читабельность, портируемость проекта, и возможно источником ошибок. Цитата Побайтно, Вы имеете ввиду. В принципе не использовал, так как там довольно хитрая прцедура, я так понял все равно прееписывается вся страничка. Нет именно побитно, на Sam7 есть возможность например сбросить какой нибудь Флаг на константно залитой структуре на флэшке. В Lpc для такого флага надо выделить соответственно регион в 16 байт 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF. Т.е в Sam7 можно на избранный байт 0x55 записать 0x51 и получить 0x51 (естественно вся остальная часть записываемой странички в 256 байт должна быть идентичной той которой лежит). Цитата Для меня это плюс - не надо тратить кучу драгоценных лап. А вот у X он не работает по еррате Кстати щас юзаю тут sam7x512 никто не знает реанимировали ли у него RMII, в роде как в еррате на него я знаменитого Not Functional не нашел  ? И ещё у него 2 флэш контроллера, можно ли одновременно писать в один контроллер и при этом паралельно исполнялся бы код из другого (прерывания к примеру)??? Цитата кстати видел здесь обсуждение про то что кристаллы не со всеми драйверами стабильно работают.
Какой PHY посоветуют использующие??
Стоимость важна? если нет тогда бери те что рекомендует NXP и ставит на свои киты. А так можешь пошношаться с каким нибудь Lan8700 или более неизвестными китайскими образцами (тут кто то мне кидал ссылку на работающий от резонатора и стоимостью в бакс, но использующих его я ещё не встречал). Цитата Интересная подробность. Правда сравнить с X не получится.
долбанные индусы [censored] Там DMA вообще работает только с USB памятью (из той которая на борту)
|
|
|
|
|
Jul 4 2009, 10:58
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Nemod @ Jul 3 2009, 17:00)  Собственно да, почему бы и нет, смотря какой стиль программирования используешь Так используйте "нормальный"  Цитата , например обьявить массив для расперделения памяти между пользовательскими процессами в операционках и псевдооперационках  А вот это по барабану любому, сколь-нибудь пригодному для использования "распределителю", ибо он, как минимум должен уметь распределять дефрагментированную память при этом совершенно не важно, существует эта фрагментация изначально из-за конструктивных особенностей, либо возникла в процессе. Цитата Остальные которые не влезли придется распределять средствами компилятора. Что снижает читабельность, портируемость проекта, и возможно источником ошибок. Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 4 2009, 15:58
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754

|
Цитата(zltigo @ Jul 4 2009, 14:58)  Так используйте "нормальный"  Я и использую нормальный. Цитата А вот это по барабану любому, сколь-нибудь пригодному для использования "распределителю", ибо он, как минимум должен уметь распределять дефрагментированную память при этом совершенно не важно, существует эта фрагментация изначально из-за конструктивных особенностей, либо возникла в процессе. Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении. Ну начались теологические беседы  Далее я бы должен спросить какой линкер вы используете, какую модель распределения кучи и какой планировщик задач и т д и т п Но мне не интересен флуд, я лишь проинформировал человека о возможных (далеко не всех) use cases.
|
|
|
|
|
Jul 4 2009, 18:03
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Nemod @ Jul 4 2009, 18:58)  Я и использую нормальный. Судя по поднятым проблемам - не совсем  Цитата Далее я бы должен спросить какой линкер вы используете Отвечаю - любой линкер. Цитата какую модель распределения кучи Отвечаю - ту о работе которой я знаю все, а не те черные ящики, которые для галочки поставляются производителями компиляторов. По большиму счету, это тоже не ммеет ни малейшего значения, ибо, повторюсь, любой из них обязан ументь работать с дефрагментированной памятью, а дыра с адресном пространстве просто частный случай дефрагментации отмечается как занятый блок. Цитата и какой планировщик задач Не имеет ни малейшего значения, если при создании задачи память статически выделяется - нет проблем - линкер воззьмет ее откуда угодно. Если динамически - менеджер памяти. Цитата я лишь проинформировал человека о возможных (далеко не всех) use cases. Увы, это больше похоже на ДЕЗинформацию  . По этой причине и не смог пройти мимо. На самом деле проблемы две - выделене более 32K памяти одним куском и потенциальная возможность потери памяти из-за начально дефрагметированной памяти. Все.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
SpiritDance lpc2378 Jun 30 2009, 05:52 aaarrr Цитата(SpiritDance @ Jun 30 2009, 09:52) ... Jun 30 2009, 08:58 SpiritDance Цитата(aaarrr @ Jun 30 2009, 12:58) Ай-яй... Jun 30 2009, 13:14  aaarrr Цитата(SpiritDance @ Jun 30 2009, 17:14) ... Jun 30 2009, 13:35   SpiritDance Цитата(aaarrr @ Jun 30 2009, 17:35) Тогда... Jun 30 2009, 14:05    aaarrr Цитата(SpiritDance @ Jun 30 2009, 18:00) ... Jun 30 2009, 14:07     SpiritDance Цитата(aaarrr @ Jun 30 2009, 18:07) Похож... Jun 30 2009, 14:24      aaarrr Цитата(SpiritDance @ Jun 30 2009, 18:24) ... Jun 30 2009, 14:30       SpiritDance Цитата(aaarrr @ Jun 30 2009, 18:30) Я тож... Jul 1 2009, 06:09    shahr Цитата(SpiritDance @ Jun 30 2009, 18:05) ... Jun 30 2009, 14:16    VslavX Цитата(SpiritDance @ Jun 30 2009, 17:05) ... Jun 30 2009, 15:59 shahr Цитата(SpiritDance @ Jun 30 2009, 09:52) ... Jun 30 2009, 13:59 sensor_ua Мы пару разновидностей контроллеров на LPC2378 вып... Jun 30 2009, 18:29 demiurg_spb Цитата(Nemod @ Jul 2 2009, 11:45) lpc2378... Jul 2 2009, 09:05 shahr Цитата(Nemod @ Jul 2 2009, 11:45) lpc2378... Jul 2 2009, 11:06  shahr Цитата(SpiritDance @ Jul 3 2009, 09:17) В... Jul 3 2009, 06:06   SpiritDance Цитата(shahr @ Jul 3 2009, 10:06) Вопрос ... Jul 3 2009, 09:16    Andy Mozzhevilov Цитата(SpiritDance @ Jul 3 2009, 13:16) Д... Jul 3 2009, 09:38  Andy Mozzhevilov Цитата(SpiritDance @ Jul 3 2009, 09:17) М... Jul 3 2009, 07:04    Nemod ЦитатаНе нужно ничего "распределять средствам... Jul 6 2009, 07:07     SpiritDance Цитата(Nemod @ Jul 6 2009, 11:07) Это и н... Jul 6 2009, 07:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|