- Для ATmega2561 в режиме «External Memory» при обращении к области адресов ниже 0х2200 что наблюдается на линиях Адреса, Данных, ALE, /RD, /WR? Есть ли разница при обращении к областям РОН (0..31), IN/OUT (32..63, 64..93, 94..511), при обращении к maleon(71 знак., 20.12.2017 15:51 - 18:05, AVR, полностью)
- в проекте на ATmega2560 использую построение внешней обвязки шины практически как там (только потроха CPLD на рассыпухе)--> - Vit(04.01.2018 08:44, ссылка)
- 9.1.1 Using the External Memory Interface - "When the XMEM interface is enabled, also an internal access will cause activity on address, data and ALE ports, but the RD and WR strobes will not toggle during internal access."(c) - argus98(21.12.2017 12:25)
- Вы таки что конкретно хотите, сформулируйте чётче и понятнее пожалуйста! - AU08(20.12.2017 19:56 - 20:08)
- ничего не наблюдаться не должно, в шите всё нарисовано. второго вопроса не понял m16_home(20.12.2017 17:55)
- ЕМНИП есть бит разрешения работы с внешним ОЗУ. Если он отключен, то НЕТ никаких "линий адреса, данных, ALE, AU08_(56 знак., 20.12.2017 17:14, )
- Какая последняя студия лезет на ХР, нужна под ХМЕГУ128? И где её взять? Звиняйте если боян, но лень искать. - rual(19.12.2017 09:13, AVR, полностью)
- ATTINY212, ATTINY214 появились в каталоге DigiKey. Самих MCU на складе пока нет. Цены радуют! 51 от Nuvoton в тоске :) Для примера рядом приведены 8кб версии. Evgeny_CD(536 знак., 14.12.2017 00:12 - 00:24, AVR, полностью)
- Читаю: шаг постройки частоты встроенного генератора (Calibration step size) ±1,5% - многовато будет! ИОН ±3% typ. (не гарантировано) - AU08(14.12.2017 11:34 - 11:39)
- ATSAMD09C13A-SSUT 100- $0.468 Cortex®-M0+ 48MHz 8KBFLASH 4K SRAM 14-SOIC -> DMA, ADC 350ksps, но питание 2.4V – 3.63V - Evgeny_CD(14.12.2017 01:40, ссылка)
- В целом, маркетологи позаботились об этом чипе. DMA, DTC там нет :(. SPI master до 10 Мбит/сек, но таскать данные процом в фоне не получится. На такой скорости только монопольная работа с SPI контроллером. Говнюки!!!!! - Evgeny_CD(14.12.2017 01:19)
- ATtiny416, ATTINY816, ATTINY1616, ATTINY1617 - есть и цены, и чипы. Все очень достойно! Evgeny_CD(415 знак., 14.12.2017 00:51 - 00:56)
- Под крылом Микрочипа Тиньки стали как Меги, а Меги как Х-Меги :). Казалось бы, несомненный прогресс, но тот же самый эффект можно получить перемаркировкой. :) - Ксения(14.12.2017 00:33)
- DAC имеется, однако. - Гyдвин(14.12.2017 00:25)
- Что такое ATmega3208, ATmega3209, ATmega4808, ATmega4809? Неужели Microchip выпустил новые AVR-ки? Google пока не находит, а у IAR только что появилось в списке поддерживаемых компилятором девайсов. => - Ксения(26.10.2017 01:05, AVR, ссылка, полностью)
- mega2561, зашивается долговато. А не встречал ли кто программатора (может бутлоадера), который мог-бы шить начиная только с того адреса, где начались изменения хекса? Могло бы сильно времени сэкономить. - maleon(04.12.2017 17:11, AVR, полностью)
- STK500 не отказывается писать Fuse, если символ не от 0...9 до A...F; В результате заблокировал ATTINY44. Русская "С" и английская "C" выглядят одинаково. AU08(151 знак., 24.11.2017 22:33 - 22:52, AVR, полностью)
- А у какой ATtiny активной есть высокоскоростной ШИМ как раньше в ATtiny15 был? - Yft(20.11.2017 19:19, AVR, полностью)
- Atmel в примерах программ для Xmega заложил интересные грабли: функции, работающие с контроллером NVM (например, вычитывающие калибровочные константы) не возвращают регистр NVM.CMD в исходное состояние (0x00). При этом перестает корректно работать AlexG(253 знак., 15.11.2017 06:57 - 07:00, AVR, полностью)
- И снова AVR и EEPROM. Устройство с питанием от АКБ, AVR питается через понижающий DC-DC напряжением 5Вольт. Кварц 16МГц. BOD установлен на 4.5Вольта, задержка старта максимальная, 65мс. С хорошей батареей все нормально. При подключении убитой Yurasvs(568 знак., 06.11.2017 00:24, AVR, полностью)Kceния
- Чота тоже испужался барьерности АРМов при буферах. И нарыл, что не только способные на ре-ордеринг АРМы, но и банальные АВРы могут при многозадачности поднаср@ть в карман зазевавшемуся: Petrovich(430 знак., 08.11.2017 10:30, , AVR, полностью)MBedder
- 1) volatile int head, tail. 2) вставить asm volatile("": : :"memory") после каждого ++ (или после обоих). - fk0(09.11.2017 00:06)
- Торможу. Собственно операция ++ нифига не атомарная же. Чтение-модификация-запись. И прерваться может на каждом тире. Если gcc то использовать __sync_add_and_fetch(), иначе х.з. что делать. Для обработчиков прерываний, понятно, мьютексы fk0(61 знак., 09.11.2017 00:47)
- Со времен 8080 "атомарность" операции чтение-модификация-запись достигалось запретом и разрешением прерываний. Что-то изменилось? - VLLV(09.11.2017 11:35)
- Запрет прерываний не всегда возможен. - fk0(09.11.2017 23:40)
- Здесь ошибка не от атомарности RMW. Здесь ошибка атомарности наблюдения за инкрементами обоих переменных. Если Задача2 получила управление после tail++, когда обе переменные равны, и успев загрузить head, потеряла управление, и в следующий раз, Petrovich(80 знак., 09.11.2017 12:40, )
- Петрович набросил и устранился. Атомарность нужна редко. Чаще всего можно выкрутиться при помощи volatile. - SciFi(09.11.2017 12:09)
- На 8-битном процессоре чтение и запись не атомарные -- не выкрутишься. Старший байт записал например, обновленный, а младший не успел. А другой поток читать начал. И ошибка. - fk0(09.11.2017 23:41)
- В таких случаях можно читать несколько раз, пока не прочитаешь то, что нужно. - SciFi(10.11.2017 07:31)
- Не всегда в общем случае. Как понять критерий нужности? - fk0(10.11.2017 11:31)
- часто при чтении пару раз подряд совпасть должно - Vit(10.11.2017 11:40)
- Если читаешь достаточно быстрый аппаратный таймер -- он никогда не совпадет. Младшая половина всегда убегает вперед, а старшая за несколько чтений не успевает измениться. См. мой ответ ниже. - fk0(10.11.2017 11:46)
- Таймера считываются проще Petrovich(145 знак., 10.11.2017 12:57, )
- У тебя три загрузки таймера в цикле, а у меня два. И положение байт в структуре -- не гарантировано. - fk0(10.11.2017 13:04)
- Схематично - это вот так: 1) Берём МК с таймером 2) ... 3) Профит! - SciFi(10.11.2017 13:04)
- Таймера у читающих даташиты считываются еще проще - при корректном чтении первой половины таймера (в ДШ написано, какую именно половину следует читать первой) содержимое второй половины аппаратно защелкивается в теневой регистр, из которого MBedder(38 знак., 10.11.2017 13:02)
- Увы, это не всегда помогает. У pic18 есть теневой регистр, но... для нормальной работы пришлось городить такую конструкцию: аппаратный таймер 16 бит, или даже 12, тут не помню, по прерыванию инкрементится ещё слово (16 бит) программной части fk0(1081 знак., 10.11.2017 13:12)
- 8051 просит разъяснить поподробнее о теневом регистре :) - Petrovich(10.11.2017 13:06, )
- Тяжёлое детство, деревянные игрушки, отсутствие теневого регистра. У меня, кстати, на столе лежит штука, в которой интересный регистр разбит на половинки, и именно вот эта петрушка. Выкинуть на помойку не предлагать. - SciFi(10.11.2017 13:06)
- Нафиг общий случай? Пару раз такое нужно было, всё было просто. Чтение переменной, которая меняется достаточно редко: SciFi(190 знак., 10.11.2017 11:36)
- Да я думал неинтересно народу... Надеюсь, вы поняли откуда появляется ошибка. Это, оказывается, всего лишь ошибка наблюдателя. Выход - проверять в обратной поледовательности чем инкремент, т.е. if(tail>head) {out ERROR;} и будет хорошо. Petrovich(866 знак., 09.11.2017 12:33, )
- Только как понять, выкрутился или нет? - VLLV(09.11.2017 12:18)
- Появились 1. Новые методы запрета прерываний "на время" 2. Атомарные операции инкремента/декремента/и других модификаций ячейки памяти. - AlexBi(09.11.2017 11:51)
- В условиях ни чего не сказано про приоритеты, кто кого может прервать. Если считать что задачи 1 и 2 с одинаковыми приоритетами и прерывать друг друга не могут, тогда проблемы нет совсем. - AlexBi(09.11.2017 11:11)
- что значит "прерваться может на каждом тире" ??? где сохраняется состояние? ну, как узнать на какое тире возвращаться??? - Mahagam(09.11.2017 02:11)
- Продолжайте наблюдение. Сообщите, когда увидите микроконтроллер, который по результату сравнения регистра с текущим значением АЦП аппаратно сможет сбросить ШИМ. Некоторые пики подошли к этому совсем близко, но остановились на прерывании. - Экспериментатор(27.10.2017 00:45, , AVR, полностью)Kceния
- Сие пока тайна, покрытая мраком... Вот ATmega16804 доводилось пользовать - в корпусе SIP4 ;) - Гyдвин(26.10.2017 09:40, AVR, полностью)Kceния
- Стоит ли заморачиваться с кодом Грея для сохранения в EEPROM mAVR некого счетчика как дополнительной меры повышения надежности? Другими словами, является ли часто изменяемый младший бит слабым звеном в ERASE-WRITE памяти - g6sgf(03.10.2017 11:54, , AVR, полностью)
- запись длится 5мс, в сутки 17М записей. Может, проверить раз и закрыть вопрос? VLLV(37 знак., 07.10.2017 16:21)
- почему бы просто не использовать EERAM? Constantin24(69 знак., 06.10.2017 07:49)
- Если объем EEPROM для этого достаточен, то размазывание перезаписей по множеству ячеек хорошо работает и без кода Грея. AlexG(174 знак., 04.10.2017 07:18)
- СтОит, если каждый бит этого счетчика хранится в отдельном байте EEPROM. :) - Хаос(03.10.2017 16:59, )
- А почему не хотите использовать микроконтроллер с отдельным входом для резервной батарейки RAM? - Экспериментатор(03.10.2017 16:01, )
- в коде Грея младший бит будет меняться в 2 раза реже чем в обычном бинарном, это не так много, я думаю что это не поможет. Nikolay801_(410 знак., 03.10.2017 14:37)
- Для повышения надежности записи в ЕЕПРОМ применяю дублирование, размазывание по площадям и контроль целостности. - ASDFS(03.10.2017 13:03)
- По-моему наоборот, старший бит является слабым звеном. В старший бит вы скорее всего всегда будете писать 0, а в младший только в 50% случаев. - Ale3000(03.10.2017 12:15)
- UPD. Просьба к тем, у кого в руках исходники иаровских библиотек: выложите функцию __x_ML_SRAM_EEPROM_24_16. йцукен(311 знак., 01.10.2017 16:48 - 02.10.2017 11:25, AVR, полностью)
- В ЙАР AVR возможно пользоваться вычислениями с плавающей точкой двойной точности (double float) ? - AU08(29.09.2017 01:29, AVR, полностью)