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

visht

Свой
  • Постов

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

  • Посещение

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


  1. конкретно 8-ю не шил, но остальное вполне работало. Им же можно и перекодировать из bin в hex
  2. примерно 20 мА + ток потребления вашей схемы. это ток холостого хода часто используемого стабилизатора 7805. По поводу входных диодов то они защищают только от импульсных помех, а их токовое ограничение обсуждалось где-то сдесь, поищите, вопрос часто задаваемый. Вообще нужно стараться не подавать напряжение на вход более чем питание, а входной ток ограничивать резисторами.
  3. почти согласен с aahardsoft но делал чуть иначе: Запись моточасов проводилась в RTC с интервалом 1 минута. При этом считалось CRC записи, или просто инверсия (не раз наверное видели в дампах щитков :) ). Для супер надежности можно сделать 2-й буфер, на случай вырубки питания в момент записи. По выключению питания ничего не пишется, все действия производяться по включению. 1. даем выдержку для устаканивания питания, можно в этот момент LCD проинитить или еще что нибудь. 2. проверяем CRC записи, и если все OK переносим результат в EEPROM процессора. 3. Если CRC не совпало ни в одном буфере - переносим данные из EEPROM в RTC. Потеря время последней работы. 4. Если совсем все плохо, CRC не совпало нигде - общая ошибка ... Ну а все остальное типа буфер в EEPROM на любителя :)
  4. проблемы с JTAG

    Собственно а в чем проблема то ? Плата не работает или Jtag-ом не береться ? при 1-м варианте возможно вы неправильно отключаете сам JTAG, JTD нужно устанавливать 2 раза подряд. например : MCSCR |= 0x80; MCSCR |= 0x80; при 2-м случае если вы успешно установили JTD перейти на JTAG получиться только стерев вашу прогу. Для этого дополнительно заведите SRST на ресет проца. Вроде 6-й пин JTAG разъема. Тогда AVR Studio при контакте выдаст окошко и там жать кнопку, не помню что там написано но это оно. Ну а если Вы вырубули JTAG фузом то (___)(___). Тут уже придетьс по SPI достучаться. Еще возможно отсутсвие отладки по снятом бите ocden, не знаю чем вы отлаживаетесь, IAR сам его ставит, остальные х.з.
  5. сдесь должно быть CRC_rus.pdf
  6. Поставил 4.30 компилю проект и... внутренняя ошибка в модуле меню :( После изысканий выяснилось что ему не понравилось __generic в описании аргументов фунций откатился на старую, обидно. А еще давно достает то, что не сохраняются настройки прерываний в С-SPY, а по доке вроде как должны.
  7. AVR признали !

    У PIC переферия конечно быстрее появляется, а у AVR позже, но зато гораздо удобнее сделана. А в 8 лапках PIC удобнее, и засунуть в него можно чуть больше. Это если вычисления на уровне битов, без особой математики. А так конечно PIC сложно именовать процессором :)
  8. Судя по тому что SPI то вы наверное мегу тоже по SPI Подключили, а она для программирования пользует PDI, PDO, SCK и Reset.
  9. А этот модуль к портам доступ имеет ? Может с питанием что то происходит ? У меня были подвисания отладки и уход на конец области памяти.... Можно еще предположить стек, но тогда обычно просто зависает. но посмотреть стоит.
  10. Mix C++ и Asm в IAR EW AVR 4.21A

    Ну выделить то можно, а вот учитывать он их не будет пока вы не сделаете asm отдельным модулем. И кстати там же в документации пишут что этого делать нерекомендуется, всмысле использовать вставки типа asm(" ") Да и потом то что вы написали, компилятор сам очень хорошо разложит, нужно только оптимизацию настроить на HIGH
  11. Mix C++ и Asm в IAR EW AVR 4.21A

    __no_init __regvar unsigned char CRCL @ 15; __no_init __regvar unsigned char Byte @ 14; __no_init __regvar unsigned char Temp @ 13; и в Option/C/C++/Code зарезервировать 3 регистра asm(" EOR r15,r14 asm(" MOV r13,r15 "); НО, никогда так не делайте компилятор не учитывает ваши асмовские попытки, и при оптимизации вы получите сюрприз. Дочитайте раздел до конца, и оформляйте асмовские функции отдельно, тут слегка на русском http://electronix.ru/forum/index.php?act=A...ost&id=7393
  12. что касается положительных - простой резистивный делитель. Для отрицательного придеться ставить ОУ для инверсии. А какая точность нужна ?
  13. О глюках PCAD можно написать брошюру, и постоянно добавлять глюки новой версии :) Но все равно многие ею пользуються, потому как лучьше либо нет, лобо сложная и малораспостранена. Что касается selectPoint то по крайней мере с 2000-го PCAD оно вяжеться либо к центру "пятака" либо по сетке, что ближе. Интересен также тот факт, что если Вы вяжетесь по сетке вне зоны выделения, то тащить группу обьектов нужно начинать не от точки привязки, а от любой точки находящейся в зоне выделения. Произвольных точек в PCAD нет, система сеточная, просто сетка может быть очень мелкой .... смысл ErrorX и ErrorY наверное знает тот программист который писал этот модуль, а может он его стянул из нета и знание это утеряно ....
  14. Кокнулся JTAG?

    Я тоже не имел, а Вы попробуйте в программе JTAG выключить, вот тогда и вспомните...
  15. Кокнулся JTAG?

    попробуйте дать ресет от JTAG SRST или 6-я нога JTAG-овского разьема на ногу сброса проца. При запуске AVR студия должна выдать большое окошко и внизу нужно поставить "галочку" для активации сброса от JTAG, и жмем OK.
  16. asm -> алгоритм

    Вот что-то подобное. Особо не вдавался в подробности, необходимости не было, но там обещания насчет С/C++ есть так что может быть .... http://www.fceditor.nm.ru/
  17. Не работает SPI

    Все понял, а я то на эту ногу уже Chip Select приделал :) Спасибо, все заработало как в симуляторе.
  18. Не работает SPI

    Потому что Keil. Разработчики поленились и описали только регистры, на описание битов сил у них не хватило :( Другое дело IAR, там все по человечески сделано, но решил опробовать Keil ввиду возможности симулить переферию. До нормального описания битов через #define пока не дошли руки. да, это недосмотр. Просто в TXSPI были строки выключения SPI вначале и включение в конце, а потом я их устранил чтобы не захломлять код, удалил и эту строку из прерывания, а также настроил SSEL на вывод IODIR0 |= 1<<20; Результат тот же, прерывание срабатывает только 1 раз. По косвенным признакам нога SCK1 (P0.17) в Z. Если посмотреть в отладке на PINSEL0 то там все в порядке, т.е. видно что к ногам прицеплен SPI1.
  19. Не работает SPI

    Поскольку АРМ только начал изучать решил попробовать Keil 3.51 Задача состоит в работе SPI на LPC2294. За основу был взят пример из книги Тревора Мартина слегка переделанный под задачу. делаем инициализацию: PINSEL1 = 0x000002A8; //Enable SPI1 pins IODIR1 = 0x00000000; //Enable Chipselect pin as output VICVectCntl0 = 0x0000002B; //Select a priority slot for a given interrupt (A - interrupt SPI0) VICVectAddr0 = (unsigned)SPI_ISR; //Pass the address of the IRQ into the VIC slot VICIntEnable = 0x00000800; //Enable interrupt SPI1 Функция записи данных контроллером void TxSPI(unsigned char *pData, unsigned char SPICount) { unsigned char i; CountTxSPI = SPICount; // загрузка счетчика переданных байт for(i = SPICount; i > 0;) // перегрузка данных в буфер SPI { BufSPI[--i] = *pData++; } pSPI = &BufSPI[SPICount-1]; // указатель на начало передачи S1SPCCR = 0xFF; S1SPCR = (1<<SPIE)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA); S1SPDR = *pSPI; } и собственно обработка прерывания void SPI_ISR(void) __irq { *pSPI = S1SPDR; // чтение данных в буфер if (CountTxSPI > 1) { S1SPDR = *(--pSPI); CountTxSPI--; } else { CountTxSPI = 0; PCONP &= ~(1<<PCSPI1); // выключение SPI } S1SPINT = 0x01; VICVectAddr = 0x00000000; return; } И вот получается что в симуляции все нормально, а в реальном железе прерывание срабатывает только 1 раз. Пример из которого переделывалось ведет себя аналогично. PLL не использую, кварц 14.7456MHz Видимо симулятор что то не договаривает, но вот что ?
  20. купил MT-link...

    Это да, но там её нет. Как и других к которым я привык на AVR, но это ARM и надо привыкать :) А вот с утра загрузил и все заработало, вчерашней ошибки от J-LINK нет :( Видимо я замучал вчера USB, и нужна была перезагрузка. Если вдруг попаду на что то подобное то напишу как создать данную проблему. Насчет функции задержки все ясно, по крайней мере после таких обьяснений не так обидно что её нет. Не знаю что на счет такой функции в Keil, пока остановился на IAR так как среда привычная, да и трафик пока 60 метров не потянет :( Спасибо всем, по крайней мере теперь есть от чего идти дальше, жаль тока безвременно ушедшую ногу ...
  21. купил MT-link...

    нашел :( почему то умерла нога процессора. Никто над ней вроде не издевался, светодиод был анодом на питании и через 100 Ом на ноге P0.30. Если переставить ногу на P30.0 все как то работает. Итак удалось запустить в режиме J-LINK для ОЗУ и в RDI из ОЗУ и из FLASH. в режиме J-LINK из FLASH Wed Apr 04 18:32:29 2007: There were warnings during download of FLASH loader, see Log Window Wed Apr 04 18:32:36 2007: Failed to load flash loader: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\ARM\config\flashloader\NXP\FlashNXPLPC256k.d79 Wed Apr 04 18:32:37 2007: PID changed. Old PID = 0x000009A8, Current PID = 0x00000980 Проблемы были в установках xcl файлов и в отдельных Настройках RDI. Еще вопрос : не нашел функции типа __delay_cycles(); её нет или она как то иначе называется ?
  22. купил MT-link...

    а там это где ? и даже если переключиться на J_LINK результат неизменный Wed Apr 04 17:25:48 2007: Logging to file: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\ARM\cspycomm.log Wed Apr 04 17:25:48 2007: DLL version: V3.68b, compiled Mar 30 2007 16:52:49 Wed Apr 04 17:25:48 2007: Firmware: J-Link compiled Mar 22 2007 16:08:22 ARM Rev.5 Wed Apr 04 17:25:48 2007: JTAG speed is initially set to: 32 kHz Wed Apr 04 17:25:48 2007: Halting CPU core Wed Apr 04 17:25:48 2007: Software reset was performed Wed Apr 04 17:25:48 2007: Initial reset was performed Wed Apr 04 17:25:48 2007: J-Link found 1 JTAG device. ARM core Id: 4F1F0F0F(ARM7) Wed Apr 04 17:25:48 2007: Device at TAP0 selected Wed Apr 04 17:25:48 2007: RTCK reaction time is approx. 126ns Wed Apr 04 17:25:48 2007: Auto JTAG speed: Adaptive Wed Apr 04 17:25:48 2007: 560 bytes downloaded and verified (1.46 Kbytes/sec) Wed Apr 04 17:25:48 2007: Warning: Verify error at address 0x00000154, target byte: 0x00, byte in file: 0x01 Wed Apr 04 17:25:48 2007: Warning: Verify error at address 0x00000155, target byte: 0x20, byte in file: 0x00 Wed Apr 04 17:25:48 2007: Warning: Verify error at address 0x00000156, target byte: 0x00, byte in file: 0x50 причем в стеке лежит в основном CDCDCDCDCDCDCDCD .... Нашел по поводу RDI? настроил под свой процессор. Вроде все нормально, тока не работает код :) причем код самый простейший - мограние диодом. Пошел искать что не так ...
  23. купил MT-link...

    Да, к сожалению, а может и к счастью, у меня IAR. Проц LPC2294 но демоборде от Olimex Спасибо за ссылку, одна проблема решилась. Стало работать при отладке кода в RAM. для отладки во flash указал phytec_pcm023_iflash.xcl ну и далее по пунктам 6.1 и 7.2. Проблемы со CSTACK остались. Wed Apr 04 17:00:08 2007: Sign on message from RDI driver: Segger JLink ARM JTAG Wed Apr 04 17:00:08 2007: 10641 bytes downloaded and verified (26.58 Kbytes/sec) Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x00000154-0x000001D7 Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x00000040-0x000000AF Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x000001D8-0x000001FB Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x0000025C-0x00000267 Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x000001FC-0x0000024B Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected at Memory address 0x00000020 Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x000000B0-0x00000153 Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x0000024C-0x0000025B Wed Apr 04 17:00:08 2007: There were warnings during download, see Log Window Wed Apr 04 17:00:10 2007: Loaded debugee: E:\PJT\asa\C-Soft\Debug\Exe\H2294.d79 Wed Apr 04 17:00:10 2007: Target reset Wed Apr 04 17:00:10 2007: A breakpoint has been set on a SWI instruction at 0x000001D8 The interrupt handler reading the SWI number field, will read incorrect value Avoid setting breakpoints on these instructions Wed Apr 04 17:00:12 2007: The stack 'CSTACK' is filled to 100% (8192 bytes used out of 8192). The warning threshold is set to 90%. Wed Apr 04 17:00:12 2007: The stack pointer for stack 'IRQ_STACK' (currently 0x40001310) is outside the stack range (0x40002000 to 0x40002100)
  24. купил MT-link...

    Заказал недавно MT-LINK новой версии. Проблемы очень похожие на описанные автором поста. При работе с новыми драйверами RDI равно как и с J-LINK от IAR наблюдается нижеследующее: Процесс загрузки начинается с вывода окна сообщения There were warnings during download, see log Window и программа сразу идет в работу. При остановке отладки (пауза) окно CSTACK переполнено, да Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008114-0x00008197 Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008000-0x0000806F Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008198-0x000081BB Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008220-0x0000822B Если убрать галочку Run to Main, то отладчик останавливается на __programm_start но все остальное также. Как с этим бороться ?
  25. Аппаратные средства С-SPY не симулит. Только С код. Что касается прерываний то есть меню Simulator/Interrrupts вот там можете настроить эмуляцию сработки ваших прерываний, но счетчики считать не будут да и вся прочая переферия тоже. Есть еще макросы C-SPY про которые описано в Help. Если этого не достаточно то делайте выходной формат Ubrof8 и симулите в AVRStudio. Как можно поискать поиском, вопросы неоднократно обсуждались.
×
×
  • Создать...