Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Atmega324_328Pb

Сообщений 1 страница 4 из 4

1

В МК Atmega324Pb_328Pb есть серийный номер, т.е., каждый  чип уникальный

Чтение серийного номера МК Atmega328Pb

$map       'Получаем карту распределения памяти компилятором Bascom
  $regfile = "m328pbdef.dat"       'Используемый контроллер
  $crystal = 8000000       '8 МГц , кварц для стабильной работы USART во всём диапазоне скоростей передачи и приёма
  $framesize = 256       'Размер области используемой и необходимой для преобразований
  $hwstack = 256       'Размер аппаратного стека
  $swstack = 256       'Размер программного стека

  'USART   TX    RX
  '  0     D.1   D.0
  '  1     B.3   B.4
  Config Com1 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

  Config Com2 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
  Open "com2:" For Binary As #1

  Dim Serial_number(10) As Byte


  Do

      Gosub Read_serial_number

      Print "Atmega328Pb S/n : " ; _
            Hex(serial_number(1)) ; Hex(serial_number(2)) ; _
            Hex(serial_number(3)) ; Hex(serial_number(4)) ; _
            Hex(serial_number(5)) ; Hex(serial_number(6)) ; _
            Hex(serial_number(7)) ; Hex(serial_number(8)) ; _
            Hex(serial_number(9)) ; Hex(serial_number(10))

   Idle
  Loop
End

'===============================================================================
  Read_serial_number:
'-------------------------------------------------------------------------------
    Loadadr Serial_number(1) , X
    !ldi R30 , 14       '(&H_0E) Начальный адрес серийного номера МК
    !clr R31

    'Для разрешения чтения серийного номера нужно установить биты, после чтения автоматом сбрасываются в "0"
    'SPMCSR 7:0 SPMIE RWWSB SIGRD RWWSRE BLBSET PGWRT PGERS SPMEN
    'Spmcsr.spmen = 1
    'Spmcsr.sigrd = 1
    !ldi R16 , &B_0010_0001
    !ldi R17 , 10       'Количество читаемых байт

   Repeat_serial_number_reading:
    !out Spmcsr , R16
    !lpm R18 , Z+
    !st X+ , R18
    !dec R17
    !brne Repeat_serial_number_reading
'-------------------------------------------------------------------------------
  Return
'===============================================================================

+1

2

Где купить

Проверил все, серийники разные, лазерная маркировка,

0

3

Приветствую, Александр
Вот и я дозрел: хочу купить и почувствовать вкус нового семейства :)

А usbasp с ним дружит?для avrDude есть файлик?

0

4

Посмотрел статью по теме. Есть интересные вещи, типа серийного номера, механизма обнаружения сбоев синхронизации, но почему включается это через биты конфигурации? Почему не программно? Была бы возможность в любой момент включить или выключить этот механизм. О чем думают разработчики новых МК?

0