Axel
Свой-
Постов
553 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Весь контент Axel
-
Работа с внешней памятью
Axel ответил SidAlex тема в Программирование
Важен порядок передачи байтов - начинать со старшего. Ну и обязательно дождаться статуса окончания записи. И еще пин разрешеня записи сбросить в "0". -
NXP из-за этого "класса" задерживают старшие версии этой серии. Но к июлю обещают все залатать...
-
Работа с внешней памятью
Axel ответил SidAlex тема в Программирование
Первое, что приходит в голову: проверьте настройку SPI - в смысле фазы данных и клока. Не поможет - надо смотреть код. У меня есть опыт с M25P32 - это вроде из одного класса. Проблем не было... -
Давным-давно, кажется в прошлую пятницу © довелось мне использовать сенсоры SHT75. ИМХО простенько и со вкусом. Помнится, я и программу поддержки для MSP430 на форуме выкладывал. Поищите, если интересно...
-
LPC2387
Axel ответил addi тема в Программирование
Вообще-то while ( ((PLLSTAT & (1 << 26)) == 0) ); и while (!(PLLSTAT & 0x02000000)); не синонимы. Надо-бы: while (!(PLLSTAT & 0x04000000)); У меня работает так: m_val = 0x0B; n_val = 0; do { stat_value = PLLSTAT; } while (((stat_value & 0x00007FFF) != m_val) || (((stat_value & 0x00FF0000) >> 16) != n_val) || !(stat_value & (1 << 26))); -
China-Link, Вариант отладчика из Китая
Axel ответил krestnick тема в Отладочные платы
Жмите "Yes"... -
Renesas R8C & IAP
Axel ответил DogPawlowa тема в Все остальные микроконтроллеры
Мой код практически такой-же: u8 flash_write(u8 *prog_data) { u8 i; u8 res = COMPLETE; u8 *write_addr = (u8 *)(*((u16 *)prog_data)); u16 size = *(u16 *)(prog_data + 2); u8 *data_addr = (u8 *)(prog_data + 4); asm("fclr i"); fmr0 = 0x01; asm(" "); fmr0 = 0x03; // CPU rewrite enable fmr1 = 0x80; asm(" "); fmr1 = 0x82; // EW1 mode for( i = 0; i < size; i++ ) { write_addr[i] = 0x40; write_addr[i] = data_addr[i]; while( fmr00 != 1 ); if( fmr06 == 1 ) // Program error { *write_addr = 0x50; // Clear stutus register res = DATA_PROGRAM_ERR; break; } } fmr0 = 0x01; // CPU rewrite disable asm("fset i"); return res; } / u8 block_erase(u8 block_num) { u8 res = COMPLETE; u8 *ers_addr; switch(block_num) { case 0: ers_addr = (u8 *)BLOCK_A; break; case 1: ers_addr = (u8 *)BLOCK_B; break; case 2: ers_addr = (u8 *)BLOCK_0; break; default: return ERASE_ERR; } asm("fclr i"); fmr0 = 0x01; asm(" "); fmr0 = 0x03; // CPU rewrite enable fmr1 = 0x80; asm(" "); fmr1 = 0x82; // EW1 mode *ers_addr = 0x20; // Block erase command write *ers_addr = 0xd0; // Block erase command write while( fmr00 != 1 ); if( fmr07 == 1 ) { *ers_addr = 0x50; // Clear stutus register res = ERASE_ERR; } fmr0 = 0x01; // CPU rewrite disable asm("fset i"); return res; } Может что-нибудь с запретом прерываний? -
Renesas R8C & IAP
Axel ответил DogPawlowa тема в Все остальные микроконтроллеры
Я использую отдельный банк для периодически обновляемых таблиц (проц R5F211B4). Около полутора сотен попыток были успешными. Может чего в коде неаккуратно... Или дополнительный кондер на питание... Или бубен... -
Infineon C167 ищу дезассемблёра
Axel ответил MainM тема в Все остальные микроконтроллеры
"Система" - это ECU? Если да, то какой? -
China-Link, Вариант отладчика из Китая
Axel ответил krestnick тема в Отладочные платы
Скорее недочитал... 1. Соединить пин "Erase" (55) c +3.3V. Подключить/отключить J-Link. Отсоединить. 2. Соединить пины PA0, PA1, PA2, TST с +3.3V. Подключить J-Link на 10 секунд. Отлючить. Отсоединить все. 3. Подключить J-Link. Запустить SAM-BA (обычную, не cdc). Она сама предложит порт. 4. В строке "Send File Name" указать имя прошивки. Нажать "Send File" 5. Отказаться от блокирования памяти после загрузки. 6. Запустить J-Link.exe и согласиться на апдейт. Все... Ну и конечно вначале установить перемычки. -
Рекомендую - на основе собственного опыта - TNKernel. Бесплатная, прозрачная, с открытыми исходниками. Имеющиеся примеры помогают быстро освоить. Подводные камни - только традиционные, типа инверсии приоритетов. Я доволен...
-
Описаны, конечно... Только мне этого не хватило. Без текстов библиотек до нужной степени не разобрался. Но допускаю, что это только мои проблемы...
-
По поводу STM32 - необходимость расковыривать библиотеки для того, чтобы написать нормальный код, действительно огорчает. Но к этому быстро привыкаешь (ИМХО). Кроме того - не вполне настоящий DMA - в смысле того, что он не имеет своей шины. Но в остальном - вполне рабочая лошадка.
-
MMNET1001 Ethernet MAC
Axel ответил ZED тема в Программирование
Это здесь (если судить по написанному здесь). Вроде бесплатно... -
Их навалом в Инете... Я один такой прикрутил к проекту на LPC23, выход - через АЦП. Вроде ничего звучит. Памяти требует - 4kB на секунду звука, RAMa - совсем немного.
-
SPI - аппаратный ресурс, который "шарится" между различными задачами, поэтому отдельная SPI-задача может иметь смысл (ИМХО). Правда нормально это будет работать, если при этом не требуется перенастройки (скорость, полярность клока и т.д.).
-
А что, индуктивность уже отменили? Речь вроде как идет об импульсах, и, вероятно, адекватной длительности...
-
Только поторопиться - балка видимо "потекла". Помрет скоро...
-
Там есть фишка синхронного преобразования, но только по двум каналам. Три не получится...
-
Является...LPC2378 / 2478 на полном разгоне, с USB, внешней памятью и другой периферией потребляющие ок 110 ма, я бы определил как "чуть теплые". Думаю, надо искать дальше...
-
OBD-2 и EOBD
Axel ответил AirDevil тема в АВТО электроника
Посмотрите это: http://www.intrepidsupport.com/ICSDocument...re/neoOBDII.htm Верятно это "Low Speed Fault Tolerant CAN" -
Коллеги! Если имеете какие-нибудь средства разработки для TriCore (TC1796 и иже с ним) - поделитесь pls!
-
Была несколько похожая проблема с аналогичными чипами - не прошивались J-Link'ом. Но после первой прошивки Wiggler'ом в дальнейшем все работало (в смысле J-Link). З.Ы.: Утилита JLinkSTM32 от Segger (Flash unlock) не помогала.
-
Традиционно для повышения помехоустойчивости неиспользуемые пины программируются на выход (или "как выходы") и на них выводятся нули. Но даже и без этого я ничего подобного не припомню (в т.ч. и с конкретно этими чипами). Похоже Ваши проблемы в железе...