Перейти к содержанию
    

GDI

Свой
  • Постов

    1 228
  • Зарегистрирован

  • Посещение

Весь контент GDI


  1. Почитайте мануал, там же всё написано. В простейшем случае, Вам на приемной стороне даже контроллера не надо ставить, просто управляйте 8ю портами ввода-вывода. Подключать по УАРТу, другого интерфейса там и нет.
  2. Вот как раз в еепром, да и любых других вариантах non-volatile ROM, данные могут побиться, пролетело нейтрино и изменило состояние ячейки. Просто явление это редкое и стоит ли так бороться за целостность данных? Лично я никогда такого не делал. Но, на другом форуме, встречал человека который говорил что его приборы настолько надежные, что он хранит 2 копии программы во флеше с контрольной суммой и во время работы ее периодически сверяет и, если что, перезагружается из другой копии. Видно ему это было надо, а для сторонних посетителей форума, его рассуждения выглядели как параноидальный бред. В общем, всё зависит от задачи, путей решения множество - выбирайте и реализуйте.
  3. Ресурс записи у ЕЕПРОМ составляет, как минимум, 100000 циклов, не думаю, что пользовательские настройки будут меняться часто, так что о ресурсе тут даже и не стоит заботиться. Прикинуть ресурс можно, получив при этом сотни лет, а потом успокоиться по этому поводу навсегда :).
  4. Я бы сделал несколько массивов по определенным адресам, или, вернее это были бы структуры данных описывающие Ваши настройки, которые нужно сохранять, для записи я бы добавил к ним еще поле, размером 4 байта, в котором можно хранить инкрементируемый номер, чтобы можно было прочитать номера всех записей и выбрать наибольший. Еще, если Вы хотите, можно добавить поле с контрольной суммой. В процессе работы эту структуру надо хранить в RАМе, и подгружать из еепрома в момент включения, а запись в еепром делать по нажатию кнопки "сохранить" в меню настроек.
  5. Настройки записываются в одно и то же место или Вы храните некую историю настроек и потому данные могут располагаться по разным адресам ЕЕПРОМ?
  6. А Вы опишите задачу, а то так можно гадать бесконечно. Зачем Вам вообще нужен такой контроль содержимого ЕЕПРОМ?
  7. NGW100

    Сделайте print в юбуте и посмотрите какие переменные у него прописаны.
  8. Я как то позабыл о том что Вы уже выпаяли чип. В качестве OFF-Top-а скажу. При ремонте незнакомого оборудования схемы нет практически никогда, но очень помогают даташиты на конкретные микросхемы, которые гораздо проще достать. К тому же, даташиты всегда более информативны в плане внутренней структуры, назначении ножек, возможных режимов работы и т.п.
  9. Т.е. припаять 6-10 (не знаю, что там за джитаг) проводков сложнее, чем выпаять корпус целиком, а потом всё равно как то подключать к программатору, а потом паять обратно? Решать Вам, конечно. Тут опыт работы с конкретным инструментом имеет решающее значение, и наличие самого инструмента.
  10. А что там за НАНД стоит, к ножнам можно припаяться или она в БГА?
  11. Это я понял, я про использование внешнего проца говорил, т.е. если бы плата КИТа была с SАМ9 ,то просто Самбой Атмелловской к нему подключиться и она уже позволяет писать файлы в НАНД. Но и у Самсунга тоже могут быть какие-то встроенные средства отладки по USB или по последовательному порту. На худой конец, у сасой НАНД может быть JTAG интерфейс, а у производителя - софт для заливки НАНДа. Ведь как то же ее прошивают при производстве.
  12. SAM9260/63 может прошить НАНД прямо через USB при помощи Sam-Ba, надо только подключить ее так как в ките. Т.е. даже писать ничего не надо, весь код уже есть в бут-роме или загружается в РАМ через ЮСБ Самбой.
  13. Да, именно так, задача была лишь измерить длительность импульса. Ваша задача тоже может быть решена на регистрах сравнения таймеров. Проблема только в том, чтобы найти нужное количество таймеров и подклюить сигналы на их входы сравнения. У SAM9263 есть 3 таймера и каждый имеет по 2 регистра захвата-сравнения. С SAM9G45 я не работал, но, думаю, там таймеров не меньше. Сами измерения при этом будут происходить аппаратно, ну а результат и управляющее воздействие - это отдельная задача. У меня результат читался в юзерспейсе и воздействие было очень медленным, с интервалом в десятки секунд. В общем курите раздел Timer Counter Вашего контроллера, а именно Capture Mode.
  14. Ну, один канал высокоточного измерения импульсов я делал на SAM9263 с использованием режима захвата таймера, пришлось патчить ядро, конечно. Разрешение было получено 40нс при клоке 200МГц и это не предел, можно было и 20нс получить, просто измеряемые импульсы были секундными, и счетчик переполнялся. Так что, если найдется 4 входа захвата и свободные таймера, то почему нет?
  15. Ищете примеры работы с нужной датафлешью, например тут http://electronix.ru/forum/index.php?act=SF&s=&f=10 , затем заменяете аппаратные функции чтения и записи байта в SPI на ваши софтовые реализации.
  16. Только надо еще как то узнать о том что произошел отказ, для этого можно писать еще и какую-то контрольную сумму в каждую запись, и проверять ее при чтении, вот тогда и можно будет определившись что данные испорчены, поискать предыдущие валидные записи.
  17. Ставьте SUT=11, а потом перебирайте варианты: 1. Заменить кварц на другой, например 8МГц (какая то странная частота у вашего кварца 13,824МГц). 2. Попробовать подключить осцилл через щуп с делителем. 3. Не знаю вашей схемы, но можно попробовать "поиграть" емкостями конденсаторов, что подключены к кварцу. 4. Проверить питание МК (какое оно кстати?).
  18. Обратите внимание на колонку Oscillator Source/Power Conditions в этих таблицах, а потом смело ставьте SUT=11.
  19. На первой картинке у Вас установлен Ceramic resonator, fast rising power, да и на второй картинке аналогично. Для работы с кварцевым резонатором надо оба SUT поставить в 1, т.е. отжать кнопки.
  20. А не пробовали давать переменным другие, несхожие имена? Т.е. чтобы в функциях OutChar и LcdOutValue ( и других) не было локальных переменных с одинаковыми именами zX и zY. Для интереса можете посмотреть в дебаггере что с этими одноименными переменными происходит.
  21. При чем тут параметры компилятора или камня? Ошибку в своем коде ищите.
  22. Почитайте в хэлпе как асм код встраивать в Си, точно не помню, нужно что-то типа #pragma asm+ ... тут асм код... #pragma asm-
  23. Да, к программе слишком много вопросов: 1. Почему переменная i не имеет начального значения? 2. Зачем она int, да еще и со знаком? 3. Зачем float temper, тут вообще не нужно вычислений с плавучкой, они просто не нужны. 4. Почему массив digits интовый? вполне можно сделать чар, а может даже и BOOL. 5. С какой частотой работает таймер? 6. Зачем так часто опрашивать температуру? 7. почему в свиче в прерывании меняются только 2 линии порта из 3х? 8. Если сделать пустой цикл while(1), т.е. не опрашивать температуру вообще, что будет выводиться на индикатор?
  24. Так может у вас тупо контроллер сбрасывается от собаки или от переполнения стека? И еще, датчик в первый раз после включения всегда отдает температуру 85, если мне память не изменяет, проверьте в даташите, может у Вас именно это значение выводится? Если это так, тогда, есть вариант что у Вас плохой контакт питания на датчике. И еще уточню - 88 выводится в железе или в Протеусе, или и там, и там?
×
×
  • Создать...