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

Sergey K

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Sergey K

  • Звание
    Участник
    Участник
  • День рождения 26.07.1982

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Я их могу изменить в процессе выполнения программы, могу выставить в битах конфигурации (а вот с этим у меня пока большая загвоздка - в keil я вообще никак их ни просмотреть, ни изменить не могу и пока никак не могу найти, как биты конфигурации можно задать в коде. Пока только с помощью отдельной программы для программирования МК). Вопрос в другом, что выставить и как это работает на этом камне. Зачем отзеркаливать первый сектор LDROM в первый сектор APROM?
  2. Именно так и реализовано у меня на других МК. Не могу разобраться с битами конфигурации конкретно у Nuvoton (например, отзеркаливание первого сектора памяти загрузчика в нулевой сектор основной прошивки вводит меня в недопонимание логики работы этого камня), чтобы реализовать так-же и здесь. Например, отрубили питание в процессе (или комп повис), а загрузчик стартует только перенастройкой битов CBS[1:0] (как например предлагается в Nuvoton).
  3. Nuvoton NUC472 bootloader LD и APROM

    Перешел с Microchip на ARM32 в лице Nuvoton NUC472, в целом программа уже работает, но столкнулся с непониманием работы FMC, а именно логики работы загрузчика. Микроконтроллер предлагает две области памяти: LDROM для загрузчика и APROM для самого приложения, но в настройках есть варианты отзеркаливания части загрузчика в первом секторе основной программы и честно говоря я не совсем понимаю, как это работает и зачем это нужно. 00 LDROM with IAP function Chip booting from LDROM, program executing range including LDROM and most of APROM (all except first 2048 bytes as the first 2048 bytes is mapped from LDROM). LDROM address is mapping to 0x0010_0000 ~ 0x0010_3FFF, and also the first 2048 bytes of LDROM is mapping to the address 0x0000_0000 ~ 0x0000_07FF. The address 0x0000_0000 ~ 0x0000_07FF can be re-mapped to any other page within executing range through ISP command. Both APROM and LDROM are programmable in this mode no matter the code is currently running on LDROM or APROM. Data Flash is meaningless in this mode, because any area of APROM and LDROM can just be used as the Data Flash. DFBADR is not functioned in this mode. 01 LDROM without IAP function Chip booting from LDROM, program executing range only including LDROM; APROM cannot be access by program directly, except by through ISP. LDROM is write-protected in this mode. 10 APROM with IAP function Chip booting from APROM, program executing range including LDROM and APROM LDROM address is mapping to 0x0010_0000~0x0010_3FFF The address 0x0000_0000 ~ 0x0000_07FF can be re-mapped to any other page within executing range though ISP command. Both APROM and LDROM are programmable in this mode no matter the code is currently running on LDROM or APROM. Data Flash is meaningless in this mode, because any area of APROM and LDROM can just be used as the Data Flash. DFBADR is not functioned in this mode. 11 APROM without IAP function Chip booting from APROM and program executing range only including APROM. LDROM cannot be access by program directly, except by through ISP. APROM is write-protected in this mode. Собственно мне нужно, чтобы МК стартовал с загрузчика, проверял состояние ножки и если нет нужды - передавал управление основной программе. Насколько я понял, логика предполагает, что я должен в основной программе изменить биты (CBS[1:0]), отвечающие за старт и после перезагрузки запустится загрузчик, он выполнит обновление прошивки и изменит биты на запуск основной прошивки, но основная прошивка может оказаться неработоспособной и снова изменить биты на запуск загрузчика уже не сможет. Смотрел примеры, которые входят в комплект CMSIS, но это не внесло ясности, что-то я упускаю.
  4. А если подход реализовать по другому? Доступна ли точка соединения всех динамиков? Если да, то можно в "обратный" провод каждого динамика поставить по резистору небольшого номинала и измерять напряжение на нем. В случае обрыва напряжение на нем пропадет вовсе, в случае КЗ заметно возрастет (отностительно некоторого среднего). Возможно удастся реализовать даже на паре компараторов. В этом случае сразу получаем координаты неисправного динамика. З.Ы. Это только моя теория
  5. Это почти тот же конденсатор, но с более высоким внутреним сопротивлением. КЗ или большие токи он может не пережить. Также он сильно боится выхода напряжения выше указанного. В превой схеме (я упоминал о них выше) я заряжаю ионистор через резистивный делитель (т.к. мне нужно зарядить его до 3,5В от 5В источника), во второй - через резистор на 100 Ом (тут он до 5В заряжается). Про саморазряд я не сильно бесокоюсь, т.к. мои устройства ежедневно включаются и ионистор заряжается. Если устройство будет получать внешнее питание не реже одного раза в месяц - я бы ставил ионистор и забыл об "разряженной батарейке". Кстати, я в 3х моих бывших материнках менял эти литьевые батарейки раз в год.
  6. У меня ионистор на 0.1F с RTC DS1307 держит больше недели. Недавно сделал часы на МК PIC16F887 (конструкция выходного дня :) ). Во время отсуствия питания, МК гасит все светодиодные индикаторы и переходит в спящий режим с короткими просыпаниями каждые 2 сек. Ионистора на 1.0F хватает больше, чем на сутки. Питание для МК от 2 до 5 В. В обоих устройствах предельное время (до отключения) я не засекал.
  7. Поставить виртуальный принтер (FinePrint, PDFFactory) и печатать как на обычном. Результат - PDF-файл
  8. Я делал на сверлильном станке. Нормально получается. Просто нужно хорошо закрепить корпус и сверлить ровным острым(!) сверлом перпендикулярно к плоскости. Тогда наплывов по краям практически нет. С ручной дрелью у меня ничего приличного не получалось. Только со сверлильным станком. Но это круглые отверстия. С другими формами... неприятные воспоминания от напильника... надфиля... :(
  9. Я бы посоветовал МК PIC16F628A. Это усовершенствованый аналог PIC16F84A и он дешевле. У него есть аппаратный UART. Компилятор можете взять CCS, у него есть заготовки под работу с UART. SPI-интерфейс легко можно сделать и самому (я делал SPI для AD7792 на PIC12F628 с программным UART).
  10. AVR + AD7705

    Мне кажется, что я нашел причину. Похоже дело в опросе внутренего датчика температуры. Могу предположить, что при настройке микросхмемы на измерение температуры встроенным термодатчиком автоматически отключается напряжение подтяжки, конденсаторы начинают разряжатся (причем на плюсовом выводе быстрее). После переключения измерения на входы, источник подключается и заряжает конденсаторы почти до номинального уровня. Так как конденсатор на положительном электроде заряжается дополнительно через цепочку резисторов в 20к, то он заряжается чуть медленее, а учитывая, что вся шкала - это +/- 18 мВ, то это "чуть" становится заметным. Пары секунд для полной зарядки, похоже недостаточно, т.к. чем ближе напряжение к эталноу, тем ниже скорость. Вот я и ловил эти остаточные пару мВ. Сейчас сделал опрос датчика температуры раз в 10 циклов, припаял конденсаторы на 0,1 мкФ между каждым входом и землей и получил отклонение (в градусах) не более 1 (у меня отображаются целые, может там всего и 0,5, но меня это устраивает). Надеюсь, я правильно понял, в чем была причина.
  11. AVR + AD7705

    А у меня с AD7792 сложилась несколько другая проблема. Если подключать термопару напрямую к выводам АЦП, то все нормально (во всяком случае закорачивание выводов дает 0 градусов, без компенсации холодного спая). Но вот если подключить RC-цепочку, то положительный вывод уходит слегка в минус, т.е. появляется разбаланс тем больший, чем больше емкость конденсаторов. При этом даже закорачивание выводов отверткой не убирает полностью разбаланс (по результатам АЦП). Сопротивление резистора снижал до 100 Ом, конденсатора от десятков пФ до 0,1 мкФ. Вот уже 4й день ковыряюсь, пробую разные конденсаторы и резисторы, но с любым конденсатором появляется разбаланс. P.S. Для статистики: использую все три входа.
  12. По поводу компенсации: я вот думаю, можно ли сразу перевести ЭДС термопары в градусы и затем к ним прибавить температуру окружающей среды (окружающая среда -30...+80 градусов Цельсия максимум, т.е. на улице). Или же нужно сначала все в микровольты переводить, там делать компенсацию и лиш затем переводить в градусы (как в учебниках)? Точности в пару градусов достаточно. Измеряю температуру 3мя каналами AD7792, темерературу холодного спая - внутреним датчиком AD7792 (вся конструкция в металлической коробке, куда приходят концы термопар)
  13. Осенью на выставке я видел Bluetoth модули, у которых бумажка гласила, что среди них есть "дальнобойные" до 50 и до 100 метров (хотя, учитывая стандартный диапазон в 10 метром меня начали терзать смутные сомнения...). На выходе у них толи только UART толи еще и SPI можно организовать. Меня самого немного заинтриговали эти модули, но времени для более детального изочения (ди и необходимости в них) пока не нашлось. Где-то у меня должно быть фото... ............ вот
  14. PIC18 + FAT16 + MMC or SD

    Так ведь файл один на флэшке, поэтому он и фрагментироваться не будет. А то, что внутри - это уже на разработчике висит. P.S. А вот у карт xD SPI есть? В интернете ничего найти не смог, хотя уже неоднократно слышал о переходниках "micro SD" => "xD" :( А то лежит из цифровика карта на 128М без дела, хочу диктофон сделать
  15. у PIC10F200 только внутрений генератор есть. К 12F629 можно и кварц пристроить. Если не нужна высокая экономичность, то можно и с кварцем 32 кГц не засыпать. Если же засыпать, то нужно средство, выводящее МК из спячки (причем с точными промежуткми времени, а не через WDT), ведь в сонном режиме таймер от штатного тактового генератора останавливается. В своей самоделке на PIC16F877 (887) я вначале делал программные часы, но точность была не велика (с штатным кварцем на 4 МГц). Позже поставил DS1307 к которой вместо батарейки пристроил ионистор на 0,1Ф (это устройство у меня каждый день включается и ионистор подзаряжается. На сутки заряда хватает, а больше я не пробовал). тут уж как Вам удобнее. Проще всего написать обмен по SPI (но нужно как минимум 3-4 ножки задействовать), если есть еще одно устройство с таким интерфейсом - то подключить совсем не сложно. Для OneWire достаточно и одной ножки, но тут нужно четче соблюдать временные интервалы. Можно конечно и по UART организовать обмен....
×
×
  • Создать...